]> gitweb.factorcode.org Git - factor.git/commitdiff
peg lexer changes
authorSam Anklesaria <sam@Tintin.local>
Sat, 25 Apr 2009 04:23:02 +0000 (23:23 -0500)
committerSam Anklesaria <sam@Tintin.local>
Sat, 25 Apr 2009 04:23:02 +0000 (23:23 -0500)
extra/peg-lexer/peg-lexer.factor

index e7acf1f5bbe1b87feddbc4f839434ac92f7f5f6b..e58d8dd65bef8a61cfd99531203f33c496b29a67 100644 (file)
@@ -1,5 +1,6 @@
 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
 
 TUPLE: lex-hash hash ;
@@ -43,11 +44,11 @@ M: lex-hash at*
 
 : parse* ( parser -- ast )
     compile
-    [ execute( -- result ) [ error-stack get first throw ] unless* ] with-global-lexer
+    [ execute [ error-stack get first throw ] unless* ] with-global-lexer
     ast>> ;
 
 : 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 ;
     
 SYNTAX: ON-BNF: