parsing - Antlr3 parser path command shell -
मुझे कमांड शेल को पार्स करने की आवश्यकता है जैसे:
cp / home / test / घर / test2
मेरी समस्या सही पथ पार्सिंग में है।
मैंने एक नियम परिभाषित किया है (मैं पथ के रूप में टोकन का उपयोग नहीं कर सकता, लेकिन मुझे इसे परिभाषित करने की आवश्यकता है पार्सर):
पथ: ('/' आईडी) +;
के साथ
आईडी: (ए .. Z | एक .. z) +; WS: ('') {$ channel = HIDDEN;};
मुझे टोकन डब्ल्यूएस छिपाए रखने की आवश्यकता है, लेकिन इससे मुझे समस्या आती है कि इस उदाहरण में 2 पथ को एकल पथ के रूप में माना जाता है।
मैं कैसे कर सकता हूं इस समस्या को हल करें?
धन्यवाद
एएनटीएलआरवर्क्स में चारों ओर एक छोटे से खेल के साथ मैं था इसे काम करने में सक्षम:
कमांड: कमांड + ईओएफ; कमांड: (सीएमडी पहले = पथ दूसरा = पथ '\ n') {System.out.println ("कमांड मिला, पहला पथ:" $ first.text + ", और दूसरा रास्ता:" + $ second.text + " \ n ");}; पथ: फ़ाइल {System.out.println ("फ़ाइल है:" + $ FILE.text);}; खंड आईडी: ('ए' .. 'जेड' | 'ए' .. 'जेड') ('ए' .. 'जेड' | 'ए' .. 'जेड' | '0' .. '9') +; सीएमडी: आईडी; फ़ाइल: ('/' आईडी) +; डब्ल्यूएस: ('' '' '\ t' | '\ r' | '' \ n ') {$ channel = HIDDEN;};
कृपया ध्यान दें कि मुझे कुछ और नियमों को बनाने के लिए और फिर परीक्षण करने के लिए अलग-अलग पार्सर्स नियम डालना शुरू करें। मैंने जावा लक्ष्य का इस्तेमाल किया था और आपको जो भी लक्ष्य चाहते हैं वह आपको इस्तेमाल करने देगा।
ओह, प्रत्येक आदेश कमांड नियम में '\ n' के कारण एक अलग पंक्ति पर होना चाहिए।
Comments
Post a Comment