Lisp HUG Maillist Archive

parsergen push-token

Hello all,

a quick question first:
What does "push-and-restart" do?

I cannot figure out myself, how to explicitly insert a token for 
recovery.

I am dealing with this normal production rule to parse e.g. "5+a":
((expr expr :op expr)
    `(,$2 ,$1 ,$3))

and I am trying to write:
((expr :error)
	.....)

The idea is to use this to insert a missing :op terminal (for left out 
multiplication e.x. "5a")
When the error rule is entered the current value is "a".

Do I have to save the current value, discard it, push the :op token, 
then repush the current value?
Do I have to care about the first value 5 to repush it???

A quick comment would be very nice.

Thanks,

	Peter




Updated at: 2020-12-10 08:55 UTC