LR1 محلل وابسيلون
-
20-08-2019 - |
سؤال
وأنا أحاول أن أفهم كيف LR1 موزعي العمل ولكن خطرت لي مشكلة غريبة: ماذا لو النحوي يحتوي Epsilons؟ على سبيل المثال: إذا كان لدي النحوي:
S -> A
A -> a A | B
B -> a
من الواضح كيف تبدأ:
S -> .A
A -> .a A
A -> .B
... وهلم جرا
ولكن لا أعرف كيف نفعل ذلك لمثل هذا النحوي:
S -> A
A -> a A a | \epsilon
هل يصح القيام به:
S -> .A
A -> .a A a
( A -> .\epsilon )
وبعد ذلك جعل هذه الدولة في DFA التي تقبل؟
وسيكون حقا أن يكون موضع تقدير أي مساعدة!
المحلول
نعم، بالضبط (التفكير في إبسيلون الفضاء، فارغة، حيث لم تكن هناك مكانين للنقطة على الجانبين).
في لLR (0) إنسان، هل جعل قبول الدولة وخفض إلى A. ومع ذلك، ويرجع ذلك إلى إنتاج A->a A a
، سوف يكون هناك تحول / لحد من الصراع.
في لLR (1) إنسان، هل تحديد ما إذا كان التحول أو تقليل استخدام lookahead (a
-> التحول، أي شيء في FOLLOW(A)
-> الحد)
لا تنتمي إلى StackOverflow