7
Próbuję dopasować tenanalizowania wyrażenie logiczne bez lewej ręki rekursji
f(some_thing) == 'something else'
- f (some_thing) jest wywołanie funkcji, która jest wyrazem
- == JEST operator boolowski
- "coś innego" to ciąg znaków, który jest również wyrażeniem
więc wyrażenie logiczne powinno być
expression operator expression
Problemem jest to, że nie może dowiedzieć się, jak to zrobić bez lewej rekursji Są to moje zasady
expression
=
bool_expression
/function_call
/string
/real_number
/integer
/identifier
bool_expression
= l:expression space* op:bool_operator space* r:expression
{ return ... }
notacji gramatyki, I ma
Ponieważ moja gramatyka to EOE, nie wiem jak użyć algorytmu lewej stronie, która jest
A := Ab|B
transforms into
A := BA'
A':= e|bA
gdzie e jest pusta, a b jest terminal
Dziękuję dobry panie, że działa! Dowiedziałem się przed tą odpowiedzią, jak to zrobić, i miałem zamiar to opublikować, ale wykonałeś niesamowitą robotę: P – gosukiwi