ANTLR4'te yeniyim ve v4 için Eclipse-Plug-In yok gibi görünüyor. Bu yüzden, Java kaynaklarını otomatik olarak .g4 gramerlerinden oluşturmak güzel olurdu. Src/main/java, src/test/java ile basit, boş bir Maven projem var. .g4 dosyaları nereye yerleştirilir? Maven ile dilbilgileri nasıl otomatik olarak oluşturabilirim?ANTLR4 ve Maven ile otomatik olarak lexer + ayrıştırıcısı nasıl oluşturulur?
Kendi POM-testi başarısız oldu:
<repository>
<id>mvn-public</id>
<name>MVNRepository</name>
<url>http://mvnrepository.com</url>
</repository>
...
<build>
<plugins>
<plugin>
<groupId>org.antlr</groupId>
<artifactId>antlr4-maven-plugin</artifactId>
<version>4.0.0</version>
<executions>
<execution>
<goals>
<goal>antlr</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
Eclipse diyor ki:
Failure to find org.antlr:antlr4-maven-plugin:pom:4.0.0 in http://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of
central has elapsed or updates are forced
için bu Antlr4 eklentisi teşekkür ederiz! Yap-helper-maven-plugin'i pom.xml dosyasında yorumladığımda, ANTLR yerleştirilmiş dilbilgisi için lexer ve ayrıştırıcıyı oluşturur. Ama yap-helper-maven-eklentisi ile Eclipse diyor ki: "Eklenti yürütme yaşam döngüsü yapılandırması tarafından kapsanmıyor: org.codehaus.mojo: build-helper-maven-plugin: 1.7: add-source (yürütme: varsayılan, faz: üretmek-kaynakları)". Hedef/generatet-kaynakları/antlr4'ü src-klasörü olarak manuel olarak eklemeden, oluşturulan lexer/parser'i kullanamıyorum. Ve başka bir soru: nasıl argümanlar koymak? ' org.example yapılandırma>' çalışmaz. –
Vertex
Eclipse, eğer isterseniz, yardımcı eklenti ile çalışmak için uygun uzantıyı otomatik olarak indirecektir. Paket tümcesi, kaynak yapınızdaki .g4 dosyasının konumuna göre antlr4 hedefi tarafından her zaman otomatik olarak eklenir. Oluşturulan kodun paketini değiştirmek için, dilbilginin kendisini kaynak ağacındaki istenen pakete taşıyın. –
Evet haklısınız! Hızlı çözümü göz ardı ettim. – Vertex