क्या अन्य बीएनएफ वाक्यविन्यासों से और एएनटीएलआर व्याकरण वाक्यविन्यास को बदलने के लिए कोई उपकरण हैं? विनिर्देश के साथ बैकस-नौर फॉर्म (बीएनएफ, ईबीएनएफ, एबीएनएफ, डब्ल्यू 3 सी-बीएनएफ, एक्सबीएनएफ ...) के कई रूप हैं। see this list। एएनटीएलआर व्याकरण वाक्यविन्यास केवल described by examples लगता है। मुझे पता है कि एएनटीएलआर व्याकरण फाइलें संदर्भ-मुक्त वाक्यविन्यास के विनिर्देशन से अधिक होती हैं, लेकिन आप कम से कम सामान्य सबसेट को परिवर्तित करने में सक्षम होना चाहिए - क्या किसी ने अभी तक स्वचालित रूप से किया है?क्या एएनटीएलआर और बीएनएफ के अन्य रूपों के बीच कनवर्ट करने के लिए उपकरण हैं?
उत्तर
जेकब ने लिखा है:
ANTLR व्याकरण वाक्य रचना केवल उदाहरण द्वारा वर्णित किया जा रहा है।
ANTLR (v3) लिखा है "अपने स्वयं के शब्दों में" (टेरेंस पार खुद डाल के रूप में) यह व्याकरण में:
http://www.antlr.org/grammar/ANTLR/ANTLRv3.g
जेकब ने लिखा है:
लेकिन आप कम से कम सी को परिवर्तित करने में सक्षम होना चाहिए ommon सबसेट - क्या किसी ने अभी तक स्वचालित रूप से किया है?
मुझे पता नहीं है। और यदि यह अस्तित्व में है, तो मैंने कभी भी इस उपकरण को एएनटीएलआर मेलिंग सूची पर चर्चा नहीं की है जिसे मैंने नियमित आधार पर पढ़ा है।
यह भी ध्यान दें कि कई बीएनएफ-वेरिएंट left-recursive नियमों के लिए अनुमति देते हैं, कुछ ऐसा जो एलएल-पार्सर जेनरेटर जैसे एएनटीएलआर का सामना नहीं कर सकता है। बाएं रिकर्सिव नियमों को निश्चित रूप से उपकरण द्वारा फिर से पहचाना जा सकता है, लेकिन यह मुश्किल हो सकता है, और शायद इसके परिणामस्वरूप मैन्युअल रूप से ऐसा करने से एक बहुत कम "पठनीय" व्याकरण होगा।
एएनटीएलआर व्याकरण को बीएनएफ-जैसे रूप में परिवर्तित करने के रूप में मुझे लगता है कि यह केवल आसान होगा, हालांकि केवल सबसे छोटे व्याकरण के साथ। जैसे ही विभिन्न प्रकार के भविष्यवाणियों को एएनटीएलआर व्याकरण में रखा जाता है, रूपांतरण फिर से मुश्किल हो सकता है।
# Grammar Syntax
| | BNF | ISO EBNF | ABNF | ANTLR |
|:-----------------------------:|:-----------------------------:|:-----------------------------:|:-----------------------------:|:-----------------------------:|
| rule definition | `<name> ::= ...` | `name = ... ;` | `name = ...` | `name : ... ;` |
| terminal items | `...` | `'...'` or `"..."` | integer or `"..."` | `'...'` |
| non-terminal items | `<...>` | `...` | `...` or `<...>` | `...` |
| concatenation | (space) | `,` | (space) | (space) |
| choice | `|` | `|` | `/` | `|` |
| optional | requires choice syntax[^1] | `[...]` | `*1...` or `[...]` | `...?` |
| 0 or more repititions | requires choice syntax[^2] | `{...}` | `*...` | `...*` |
| 1 or more repititions | requires choice syntax[^3] | `{...}-` | `1*...` | `...+` |
| n repititions | | `n*...` | `n*n...` | |
| n to m repititions | | | `n*m...` | |
| grouping | | `(...)` | `(...)` | `(...)` |
| comment | | `(*...*)` | `;...` | `// ...` or `/* ... */` |
[^1]: `optionalb ::= a b c d | a c d`
[^2]: `list ::= | listitem list`
[^3]: `list ::= listitem | listitem list`
अगर मैं गलत हूं तो कृपया मुझे सही करें। मैं इसके लिए नया हूँ।^_^बी – Travis
हां, आप कम से कम सरल व्याकरण के लिए कम से कम वाक्यविन्यास के बीच मानचित्र कर सकते हैं। मैं एक उपकरण की तलाश में था जो इस रूपांतरण (बीएनएफ, आईएसओ ईबीएनएफ, एबीएनएफ, एएनटीएलआर ...) करता है। निश्चित रूप से अपना स्वयं का टूल बनाना संभव है ;-) – Jakob
- 1. स्कैला के लिए एएनटीएलआर व्याकरण?
- 2. एक्सटेक्स्ट और एएनटीएलआर के बीच संबंध क्या है?
- 3. विभिन्न रूपों के बीच संचार
- 4. ऑपरेटर ++ के उपसर्ग और पोस्टफिक्स रूपों के बीच (ओवरलोडिंग) को अलग करने के लिए कैसे? (C++)
- 5. एक PSD टुकड़ा करने के लिए क्या उपकरण हैं?
- 6. क्या एएनटीएलआर एक बाइनरी डेटा प्रारूप को क्रमबद्ध/deserialize करने के लिए एक उपयुक्त उपकरण है?
- 7. PHP के लिए Agile उपकरण क्या हैं?
- 8. सी में इनलाइन रूपों के इन दो रूपों के बीच क्या अंतर है?
- 9. क्या WADL फ़ाइल उत्पन्न करने के लिए कोई उपकरण हैं?
- 10. क्या स्कैला के लिए कोड obfuscation के लिए उपकरण हैं?
- 11. बीएनएफ का बीएनएफ क्या है? यानी हम बीएनएफ मेटा-व्याकरण को कैसे परिभाषित करते हैं?
- 12. एएनटीएलआर व्याकरण के लिए संपादक जनरेटर?
- 13. एएनटीएलआर: बैकट्रैक के बीच अंतर और आगे देखो?
- 14. वेब सेवाओं का परीक्षण करने के लिए उपकरण और सर्वोत्तम अभ्यास क्या हैं?
- 15. कनवर्ट और पार्स के बीच क्या अंतर है?
- 16. String.Format और string.Format (और आदिम डेटा प्रकारों के अन्य स्थिर सदस्यों) के बीच क्या अंतर है?
- 17. $ {} और # {} के बीच अंतर क्या हैं?
- 18. क्या Emacs के लिए कोई बीएनएफ मोड है?
- 19. क्लाउड 9 विचार और matplotlib या अजगर के लिए अन्य ग्राफिकल उपकरण के लिए समर्थन?
- 20. रेगेक्स के लिए बीएनएफ क्या है (पूर्ण या आंशिक पार्सर लिखने के लिए)
- 21. हास्केल: बाइटस्ट्रिंग्स और विभिन्न टेक्स्ट एन्कोडिंग के बीच कनवर्ट करना
- 22. पायथन कनवर्ट करने के लिए एमपी 3
- 23. डीबग और रिलीज बिल्ड के बीच डिबगिंग अंतर के लिए सर्वोत्तम अभ्यास और उपकरण?
- 24. एक पाइथन और एक हैकेल प्रक्रिया के बीच संवाद करने के लिए आईपीसी libs क्या हैं?
- 25. Windows XP के लिए और Vista के लिए प्रोग्रामिंग के बीच मुख्य अंतर क्या हैं?
- 26. क्या COM पुस्तकालयों के लिए परावर्तक जैसे उपकरण हैं?
- 27. mySQL कनवर्ट करने के लिए तारीख
- 28. क्या जावा और सी ++ को एकीकृत करने के लिए उपकरण हैं?
- 29. उपकरण pom.xml निर्भरताओं के लिए लाइसेंस निर्धारित करने के लिए
- 30. क्या आपके ऐप के iCloud डेटा ब्राउज़ करने के लिए कोई उपकरण हैं?
धन्यवाद, एएनटीएलआर में लिखित एएनटीएलआर व्याकरण एक चीज थी जिसे मैं ढूंढ रहा था। जहां तक मैं एएनटीएलआर समझता हूं * आप * बाएं-रिकर्सिव व्याकरण लिख सकते हैं, लेकिन फिर आपको उन्हें हाथ से दोबारा प्रतिक्रिया देना चाहिए। अन्य बीएनएफ-फॉर्म और एएनटीएलआर से कनवर्टर कम से कम बीएनएफ-सिंटैक्स वेरिएंट के विराम चिह्न और अन्य मामूली पहलुओं में मतभेदों को मैन्युअल रूप से अपनाने की आवश्यकता को कम करेगा। – Jakob
ऐसा लगता है कि एएनटीएलआर बेसिक बहुभाषी विमान के ऊपर यूनिकोड वर्णों का सामना नहीं कर सकता है: ईएससी: '\\' (... | 'यू' एक्सडिजिट एक्सडिजिट एक्सडिजिट एक्सडीआईजीआईटी) ऊपर दिए गए कोडपॉइंट्स से मेल नहीं खा सकता \ uFFFF। – Jakob
@ जैकोब, सही, समर्थित सीमा '\ u0000'..' \ uFFFF' है। –