Example code:
Program = __/Expression
Expression = .*
__ = [ \t\r\n]*
test is
2 * (3 + 4)
hahah hahhah
def hahah
In my mind , pegjs while match Expression when __
is not matched?
But this get a error
Line 1, column 1: Expected [ \t\r\n]
or end of input but "2"
found.
Expected behavior:
I want to know why it is not work. And I what to know is it possible to get all function callees in js use pegjs?
Actual behavior:
A parse error: Line 1, column 1: Expected [ \t\r\n]
or end of input but "2"
found.
This is because you rule __ always matched, because it match empty input. You can think, that you grammar internally rewriten as follow (this is perfectly valid grammar, you can input it in pegjs online):
So you input parsed as: