FAQ Tiger T2
Gestion des erreurs dans le parseur
Q:
par exemple, ici on sait quoi faire :
| LPAREN exps RPAREN {$$ = new SeqExp (@$, *$2)}
mais alors la que lui dire de faire ? :
| LPAREN error RPAREN {????????????????}
R:
Tu fais pareil que si ça s'était bien passé, i.e., tu dois lui donner
un $$ qui va bien (sinon les phases suivantes se prendront une merde
genre NULL).
Donc comme il veut une Exp, t'as le choix entre une
SeqExp vide, un Int(0), une boucle while de la mort qui tue etc.
T'as le droit à tout du moment que c'est une Exp valide. Mais
évidemment passer un While c'est tordu.
|