मैं एएनटीएलआर 4 के लिए नया हूं, और ऐसा लगता है कि v4 के लिए कोई ग्रहण-प्लग-इन नहीं है। इसलिए .g4 व्याकरण से स्वचालित रूप से जावा स्रोतों को बनाना अच्छा लगेगा। मेरे पास एक सरल, खाली मेवेन-प्रोजेक्ट है जिसमें src/main/java, src/test/java है। .g4 फ़ाइलों को कहां रखा जाए? मैं स्वचालित रूप से मेवेन के साथ व्याकरण कैसे बना सकता हूं?एएनटीएलआर 4 और मेवेन के साथ स्वचालित रूप से लेक्सर + पार्सर कैसे उत्पन्न करें?
मेरा अपना पोम-परीक्षण विफल:
<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>
ग्रहण कहते हैं:
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
के लिए इस Antlr4 प्लगइन धन्यवाद! जब मैं pom.xml में बिल्ड-हेल्पर-मेवेन-प्लगइन को टिप्पणी करता हूं, तो एएनटीएलआर रखा व्याकरण के लिए लेक्सर और पार्सर बनाता है। लेकिन बिल्ड-हेल्पर-मैवेन-प्लगइन के साथ ग्रहण कहते हैं: "प्लगइन निष्पादन जीवन चक्र विन्यास द्वारा कवर नहीं किया गया है: org.codehaus.mojo: build-helper-maven-plugin: 1.7: ऐड-सोर्स (निष्पादन: डिफ़ॉल्ट, चरण: जेनरेट-स्रोत) "। एक src-folder के रूप में मैन्युअल रूप से लक्ष्य/जेनरेट-स्रोत/antlr4 को जोड़ने के बिना, मैं जेनरेटेड लेज़र/पार्सर का उपयोग नहीं कर सकता। और एक और सवाल: तर्क कैसे डालें? ' org.example config>' काम नहीं करता है। –
Vertex
ईक्लीप्स स्वचालित रूप से निर्माण सहायक प्लगइन के साथ काम करने के लिए उचित एक्सटेंशन डाउनलोड करेगा यदि आप इसे बताते हैं। पैकेज स्रोत हमेशा आपके स्रोत संरचना में .g4 फ़ाइल के स्थान के आधार पर antlr4 लक्ष्य द्वारा स्वचालित रूप से जोड़ा जाता है। जेनरेट कोड के पैकेज को बदलने के लिए, व्याकरण को स्रोत पेड़ में वांछित पैकेज में ले जाएं। –
हाँ आप सही हैं! मैंने त्वरित फिक्स को अनदेखा कर दिया है। – Vertex