7
Sto cercando di corrispondere a questoAnalisi espressione booleana senza ricorsione mano sinistra
f(some_thing) == 'something else'
- f (some_thing) è una chiamata di funzione, che è espressione
- == è un operatore booleano
- 'qualcos'altro' è una stringa, che è anche un'espressione
quindi l'espressione booleana deve essere
expression operator expression
Il problema è che non riesco a capire come farlo senza lasciato ricorsione Queste sono le mie regole
expression
=
bool_expression
/function_call
/string
/real_number
/integer
/identifier
bool_expression
= l:expression space* op:bool_operator space* r:expression
{ return ... }
usando la notazione grammatica, ho hanno
O := ==|<=|>=|<|>|!= // operators
E := B|.... // expression, many non terminals
B := EOE
Perché la mia grammatica è EOE non so come utilizzare l'algoritmo della mano sinistra che è
A := Ab|B
transforms into
A := BA'
A':= e|bA
dove E è vuoto e b è un terminale
Grazie buon signore, che funziona! Ho scoperto prima di questa risposta come farlo e stavo per postarlo, ma hai fatto un lavoro fantastico: P – gosukiwi