C: <parse-error> parse-error
C: <parser> parser
+M: parse-error error.
+ "Peg parsing error at character position " write dup position>> number>string write
+ "." print "Expected " write messages>> [ " or " write ] [ write ] interleave nl ;
+
SYMBOL: error-stack
: (merge-errors) ( a b -- c )
dup >r ?head-slice [
r> <parse-result> f f add-error
] [
- drop input-slice input-from "Expected token '" r> append "'" append 1vector add-error f
+ drop input-slice input-from "token '" r> append "'" append 1vector add-error f
] if ;
M: token-parser (compile) ( parser -- quot )