peg lexer changes
parent
22d14b036a
commit
b31f8a0d15
|
@ -1,5 +1,6 @@
|
||||||
USING: hashtables assocs sequences locals math accessors multiline delegate strings
|
USING: hashtables assocs sequences locals math accessors multiline delegate strings
|
||||||
delegate.protocols kernel peg peg.ebnf lexer namespaces combinators parser words ;
|
delegate.protocols kernel peg peg.ebnf peg.private lexer namespaces combinators parser
|
||||||
|
words ;
|
||||||
IN: peg-lexer
|
IN: peg-lexer
|
||||||
|
|
||||||
TUPLE: lex-hash hash ;
|
TUPLE: lex-hash hash ;
|
||||||
|
@ -43,11 +44,11 @@ M: lex-hash at*
|
||||||
|
|
||||||
: parse* ( parser -- ast )
|
: parse* ( parser -- ast )
|
||||||
compile
|
compile
|
||||||
[ execute( -- result ) [ error-stack get first throw ] unless* ] with-global-lexer
|
[ execute [ error-stack get first throw ] unless* ] with-global-lexer
|
||||||
ast>> ;
|
ast>> ;
|
||||||
|
|
||||||
: create-bnf ( name parser -- )
|
: create-bnf ( name parser -- )
|
||||||
reset-tokenizer [ lexer get skip-blank parse* parsed ] curry
|
reset-tokenizer [ lexer get skip-blank parse* dup ignore? [ drop ] [ parsed ] if ] curry
|
||||||
define-syntax ;
|
define-syntax ;
|
||||||
|
|
||||||
SYNTAX: ON-BNF:
|
SYNTAX: ON-BNF:
|
||||||
|
|
Loading…
Reference in New Issue