कर सकते हैं किसी को समझाने के लिए मुझे क्यों कि उलटे पांव लौटने के साथ एक पुनरावर्ती वंश पार्सर की कोशिश करता है प्रस्तुतियों और एस → एक एक (इसी क्रम में) व्याकरण द्वारा गठित भाषा को मान्यता नहीं देता एस → एक एस एक | एक एक ।
यह केवल भाषा से शब्दों को पार्स करने के लिए प्रकट होता है ।
मैंने उत्पादन नियम के साथ इस एबीएनएफ पार्सर जेनरेटर का उपयोग करके इस तरह के पार्सर को उत्पन्न किया S = "a" S "a" / "aa"
और पार्सर शब्द को पहचान नहीं पाता है aaaaaa
, उदाहरण के लिए।
मैं यह उत्पादन का उपयोग करने के उम्मीद करेंगे जब तक 7 के साथ शुरू होता है बाएं से पार्स पेड़ के टर्मिनल नोड्स के संयोजन की, और फिर पार्स पेड़ ऊपर जाना उत्पादन चुनने एस → एक एक के बजाय पेड़ दिखता है जब तक इस तरह:a
S
/ | \
a S a
/ | \
a S a
/ \
a a
aaaaaa
।
aaaaaa
को पार्स करना चाहिए और नहीं करना चाहिए। लेकिन aaaa
पार्स करता है। आप स्पष्ट रूप से 2 की शक्तियों के बारे में सही हैं। इस बात को कम करना चाहिए। यह केवल aa
साथ देता है S = "aa" / "a" [S] "a"
। क्या आप पता लगा सकते हैं कि पार्सर क्या करता है?