diff --git a/extra/peg/ebnf/ebnf.factor b/extra/peg/ebnf/ebnf.factor index 26e5d68df8..a6567ce8f3 100644 --- a/extra/peg/ebnf/ebnf.factor +++ b/extra/peg/ebnf/ebnf.factor @@ -310,9 +310,14 @@ M: ebnf-var (transform) ( ast -- parser ) M: ebnf-terminal (transform) ( ast -- parser ) symbol>> token sp ; +: parser-not-found ( name -- * ) + [ + "Parser " % % " not found." % + ] "" make throw ; + M: ebnf-non-terminal (transform) ( ast -- parser ) symbol>> [ - , parser get , \ at , \ sp , + , \ dup , parser get , \ at , [ parser-not-found ] , \ unless* , \ sp , \ nip , ] [ ] make box ; : transform-ebnf ( string -- object )