Hello List,

I've just started using and working on a packrat parser.

My specific problem is that I have an input language that I want to
transform into an output language and collect some data about what
occured during the parse.

As a simple example, imagine the following grammar and code:

start <- a b c / b

a     <- 'a' {print "a"}
b     <- 'b' {print "b"}
c     <- 'c' {print "c"}

If I give the input "ab", this is is not a valid string, but if the
code immediately executes during the parse, It will  print both "a"
and "b".  A more complex example might parse a fair part of the input
before backtracking.

Given that backtracking could make code executed in-place like this
invalid, what is typical in a packrat parser if the code can be
specified inline like this?

Do I limit myself to non-destructive (functional) operations?  Do I
collect the code snippets and execute all of them after a valid parse?
Something else?

Thank you for your help,

-Alan
-- 
.i ko djuno fi le do sevzi

_______________________________________________
PEG mailing list
PEG@lists.csail.mit.edu
https://lists.csail.mit.edu/mailman/listinfo/peg

Reply via email to