ANTLR
TestRig / grun
खोज…
सेटअप TestRig
ANTLR में रनटाइम लाइब्रेरी में एक परीक्षण उपकरण होता है, इस टूल का उपयोग आपकी व्याकरण फ़ाइल में परिभाषित नियमों के विरुद्ध इनपुट से मिलान करने के लिए पार्सिंग कैसे किया जाता है, इसकी जानकारी प्रदर्शित करने के लिए किया जा सकता है।
ANTLR जार फ़ाइल के भीतर निहित इस टूल का उपयोग करने के लिए आपको अपने सिस्टम क्लासपाथ को ANTLR टूल और रनटाइम लाइब्रेरी दोनों तक पहुँच की अनुमति देने के लिए सेटअप करना चाहिए:
export CLASSPATH=".:/usr/local/lib/antlr-4.5.3-complete.jar:$CLASSPATH"
नोट: यह सुनिश्चित करें कि जावा वर्चुअल मशीन अभ्यस्त अपनी वर्तमान कार्यशील निर्देशिका में कक्षाएं सुनिश्चित करने के लिए किसी भी पथ से पहले डॉट सुनिश्चित करें।
उपयोग किए गए आदेशों को सरल बनाने के लिए लिनक्स / मैक / यूनिक्स पर आकृतियों का उपयोग किया जा सकता है:
alias antlr4='java -jar /usr/local/lib/antlr-4.5.3-complete.jar'
//or any directory where your jar is located
एलियास और क्लासपैथ सेटअप के लिए खिड़कियों पर नोट सेटअप अधिक जटिल हो सकता है, अधिक व्यापक विवरण के लिए यहां देखें।
टेस्टिग तक पहुँचना
एक बार जब आप अपना उपनाम सेट कर लेते हैं, तो आप TestRig को निम्न तरीके से सेटअप कर सकते हैं, फिर से एक उपनाम का उपयोग करने की अनुशंसा की जाती है क्योंकि कार्रवाई करने के लिए आवश्यक समय की मात्रा कम कर देता है:
alias grun='java org.antlr.v4.runtime.misc.TestRig'
यदि आप खिड़कियों पर एक उपनाम स्थापित करने की इच्छा नहीं रखते हैं, तो आप अपने ANTLR जार निर्देशिका के रूप में उसी स्थान पर निम्न कमांड चलाकर TestRig का उपयोग कर सकते हैं:
java -cp .;antlr.4.5.3-complete.jar org.antlr.v4.runtime.misc.TestRig
//or
java -cp .;antlr.4.5.3-complete.jar org.antlr.v4.gui.TestRig
अपने व्याकरण पर TestRig चलाने के लिए आप इस तरह से अपने व्याकरण के लिए मापदंडों को पारित कर सकते हैं:
grun yourGrammar yourRule -tree //using the setup alias
java -cp .;antlr.4.5.3-complete.jar org.antlr.v4.gui.TestRig yourGrammar YourRule -tree //on windows with no alias
java -cp .;antlr.4.5.3-complete.jar org.antlr.v4.gui.TestRig yourGrammar Hello r -tree
//Windows with the grammar Hello.g4 starting from the rule 'r'.
विज़ुअल पार्स ट्री के साथ व्याकरण का निर्माण करें
परीक्षण रिग में ANTLR व्याकरण चलाते समय -gui
कमांड लाइन विकल्प को निर्दिष्ट करने से पार्स ट्री के दृश्य प्रतिनिधित्व के साथ एक विंडो पॉपिंग हो जाएगी। उदाहरण के लिए:
निम्नलिखित व्याकरण को देखते हुए:
JSON.g4
/** Taken from "The Definitive ANTLR 4 Reference" by Terence Parr */
// Derived from http://json.org
grammar JSON;
json
: value
;
object
: '{' pair (',' pair)* '}'
| '{' '}'
;
pair
: STRING ':' value
;
array
: '[' value (',' value)* ']'
| '[' ']'
;
value
: STRING
| NUMBER
| object
| array
| 'true'
| 'false'
| 'null'
;
STRING
: '"' (ESC | ~ ["\\])* '"'
;
fragment ESC
: '\\' (["\\/bfnrt] | UNICODE)
;
fragment UNICODE
: 'u' HEX HEX HEX HEX
;
fragment HEX
: [0-9a-fA-F]
;
NUMBER
: '-'? INT '.' [0-9] + EXP? | '-'? INT EXP | '-'? INT
;
fragment INT
: '0' | [1-9] [0-9]*
;
// no leading zeros
fragment EXP
: [Ee] [+\-]? INT
;
// \- since - means "range" inside [...]
WS
: [ \t\n\r] + -> skip
;
निम्नलिखित JSON फ़ाइल को देखते हुए:
example.json
{
"name": "John Doe",
"age": 25,
"address": {
"streetAddress": "21 2nd Street",
"city": "New York",
"state": "NY",
"postalCode": "10021-3100"
},
"phoneNumbers": [
{
"type": "home",
"number": "212 555-1234"
},
{
"type": "mobile",
"number": "123 456-7890"
}
],
"children": [],
"spouse": null
}
निम्नलिखित सिंटैक्स कमांड लाइन सिंटैक्स:
export CLASSPATH=".:/usr/local/lib/antlr-4.0-complete.jar:$CLASSPATH"
alias antlr4='java -jar /usr/local/lib/antlr-4.0-complete.jar'
alias grun='java org.antlr.v4.runtime.misc.TestRig'
antlr4 -o . -lib . -no-listener -no-visitor JSON.g4; javac *.java; grun JSON json -gui example.json
उत्पन्न जावा और .tokens फ़ाइलें, साथ ही संकलित .class फ़ाइलों में परिणाम होगा:
JSON.g4 JSONLexer.class JSONListener.java JSONParser$PairContext.class JSON.tokens JSONLexer.java JSONParser$ArrayContext.class JSONParser$ValueContext.class JSONBaseListener.class JSONLexer.tokens JSONParser$JsonContext.class JSONParser.class
JSONBaseListener.java JSONListener.class
JSONParser$ObjectContext.class JSONParser.java
और निम्नलिखित पार्स ट्री: