Mam następujący Gramatyka:Making gramatyki LL (1)
S → a S B S | b S a S | ε
Ponieważ staram się napisać dla niego mały kompilator, chciałbym zrobić LL (1). Widzę, że tutaj występuje konflikt PIERWSZY/PODEJŚCIE i wiem, że muszę użyć podstawienia, aby go rozwiązać, ale nie jestem do końca pewien, jak go rozwiązać. Oto moja proponowana gramatyka, ale nie jestem pewien, czy jest poprawna:
S-> aSbT | epsilon
T-> bFaF | epsilon
F-> epsilon
Czy ktoś może pomóc?
Dziękuję za tę pomocną odpowiedź. Byłem również ciekawy, co myślisz o gramatyce, którą zaproponowałem - wydaje mi się, że jest to również LL (1) i nie różni się tak bardzo od Knutha. Nie widzę też żadnych ciągów, które mogłyby zawieść. –
@ JohnRoberts- Nie sądzę, aby twoja gramatyka działała poprawnie - na przykład nie może uzyskać żadnych ciągów zaczynających się od 'b'. – templatetypedef