[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Pasrser and EOF
Hi.
It seems that implementing a parser without some kind of end-of-input
character is not really feasible without changing the "expected"
behavior of the parser. This is because some backtracking would be
needed, and I am not sure I want to deal with this kind of headache.
On the other hand, the "end-of-input" token could be user specified.
Something along the line:
Tokens
id = ['a'..'z']+;
number = ['0'..'9']+;
blank = ' ';
new_line = 13 | 10 | 13 10;
Ignored Tokens
blank;
End Of Stream Token
new_line;
Productions
grammar = id* | number*;
The effect of the "End Of Stream Token" directive would be to change the
implicit start production to:
start = grammar new_line;
instead of
start = grammar eof;
There is a catch, though. The "End Of Stream Token" cannot be used in
the grammar.
Would that satisfy everybody's need?
Etienne