क्या वाक्यविन्यास त्रुटि होने पर "अपेक्षित टोकन" सूची उत्पन्न करने का कोई ज्ञात तरीका है? मैं नींबू जनरेटर के रूप में नींबू का उपयोग कर रहा हूँ।नींबू पार्सर जनरेटर का उपयोग करके "अपेक्षित टोकन"
उत्तर
यह काम करने के लिए लगता है:
%syntax_error {
int n = sizeof(yyTokenName)/sizeof(yyTokenName[0]);
for (int i = 0; i < n; ++i) {
int a = yy_find_shift_action(yypParser, (YYCODETYPE)i);
if (a < YYNSTATE + YYNRULE) {
printf("possible token: %s\n", yyTokenName[i]);
}
}
}
यह सब संभव टोकन कोशिश करता है और उन है कि वर्तमान पार्सर राज्य में लागू होते हैं प्रिंट करता है।
ध्यान दें कि जब कोई गलत टोकन आता है, तो पार्सर तुरंत वाक्यविन्यास को कॉल नहीं करता है, लेकिन यह टोकन को बाद में स्थानांतरित करने की उम्मीद कर रहा है कि स्टैक पर क्या हो रहा है इसे कम करने की कोशिश करता है। केवल तभी जब कुछ भी कम नहीं किया जा सकता है और वर्तमान टोकन को स्थानांतरित नहीं किया जा सकता है, पार्सर वाक्यविन्यास_error को कॉल करता है। कटौती पार्सर स्टेटस को बदल देगी, जिसका मतलब है कि आप कम टोकन देख सकते हैं इससे पहले कि कटौती से पहले लागू हो। हालांकि त्रुटि रिपोर्टिंग के लिए यह पर्याप्त होना चाहिए।
नींबू में ऐसी सूची उत्पन्न करने के लिए कोई सीधी विधि नहीं है। लेकिन आप नींबू उपकरण के डीबग आउटपुट और जेनरेट पार्सर के डीबग ट्रेस का उपयोग करके ऐसा करने का प्रयास कर सकते हैं। ParseTrace फ़ंक्शन को कॉल करने के बाद शिफ्ट की पार्सर प्रिंट्स सूची उत्पन्न होती है और इसे कम करता है यह इनपुट स्ट्रीम पर लागू होता है। वाक्यविन्यास त्रुटि से पहले अंतिम शिफ्ट में त्रुटि से पहले वर्तमान स्थिति की संख्या होती है। अपने पार्सर के लिए * .out फ़ाइल में इस स्थिति को ढूंढें और इसके लिए अपेक्षित टोकन की सूची देखें।
- 1. एक पार्सर जनरेटर
- 2. नियमित अभिव्यक्ति पार्सर जनरेटर
- 3. पार्सर जनरेटर का उपयोग कब करें, रेगेक्स कब पर्याप्त है?
- 4. पार्सर जनरेटर का उपयोग करना व्यावहारिक कब है?
- 5. विरासत: अपेक्षित वर्ग-नाम '{' टोकन
- 6. त्रुटि: अपेक्षित वर्ग-नाम '{' टोकन
- 7. जावा - अपेक्षित "" "लेकिन अज्ञात टोकन
- 8. स्कैला पार्सर टोकन डेलीमीटर समस्या
- 9. मुझे उचित रूबी/पायथन पार्सर जनरेटर
- 10. ANTLR बनाम बनाम अन्य पार्सर जनरेटर
- 11. जीसीसी - "अपेक्षित अयोग्य-आईडी पहले ')' टोकन"
- 12. एफ # जनरेटर का जनरेटर?
- 13. अपेक्षित '=', ',', ';', 'asm' या '__attribute__' से पहले '।' टोकन
- 14. सी - '=' टोकन से पहले अपेक्षित अभिव्यक्ति ... '='
- 15. त्रुटि: "टोकन पर सिंटेक्स त्रुटि"; ",, अपेक्षित" क्यों?
- 16. मोबाइल उपकरणों के लिए PHP का उपयोग करके टोकन प्रमाणीकरण
- 17. क्या पाइथन का उपयोग करके पार्सर विकिपीडिया डंप फ़ाइलों को पार्सर/रास्ता उपलब्ध है?
- 18. मैं अपने रीफ्रेश टोकन का उपयोग करके अपने google_oauth2 एक्सेस टोकन को रीफ्रेश कैसे करूं?
- 19. नींबू व्याकरण (प्राथमिकता?) के साथ समस्याएं
- 20. मेरे छात्रों को पढ़ाने के लिए कौन सा पार्सर जनरेटर?
- 21. पार्सर जेनरेटर और रैगेल ... अपना खुद का डी पार्सर बनाना
- 22. सामान्य लिस्प के लिए लेक्सर और पार्सर जनरेटर
- 23. डोम php पार्सर का उपयोग कैसे करें
- 24. जैक्सन जेएसओएन पार्सर का उपयोग: कॉम्प्लेक्स जेएसओएन?
- 25. जनरेटर अभिव्यक्ति का उपयोग करके कई सेटों का संघ कैसे बनाएं?
- 26. स्टैनफोर्ड पार्सर मल्टीथ्रेड उपयोग
- 27. पॉको इकाई जनरेटर का उपयोग कैसे करें
- 28. जीडब्ल्यूटी जनरेटर का उपयोग क्या है?
- 29. रेजीक्स का उपयोग यूनी-भाषाई टोकन
- 30. त्रुटि: अपेक्षित कन्स्ट्रक्टर, विनाशक, या टाइप 'से पहले रूपांतरण; टोकन?
बिल्कुल मैं जो पूछ रहा था! हालांकि, आप yy_find_shift_action के पहले पैरामीटर के रूप में 'yypParser' भूल गए हैं :) –