سؤال

وأنا أحاول أن أفهم كيف 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) -> الحد)

ويكيبيديا

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top