]> gitweb.factorcode.org Git - factor.git/commitdiff
Merge branch 'lexer-parsing-word-errors' of git://factorcode.org/git/factor into...
authorSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Wed, 3 Mar 2010 04:35:12 +0000 (17:35 +1300)
committerSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Wed, 3 Mar 2010 04:35:12 +0000 (17:35 +1300)
1  2 
core/lexer/lexer.factor

index 7ad454c67ce6866386c19e05d9a2c1836485999d,3b0348aa1016a868e2138799ecf24376d1913cac..e03cae74db80444f77ee4ae5b1d9398eb43d56f6
@@@ -82,19 -97,17 +97,19 @@@ PREDICATE: unexpected-eof < unexpecte
      [ unexpected-eof ]
      if* ;
  
 -: (parse-tokens) ( accum end -- accum )
 -    scan 2dup = [
 -        2drop
 -    ] [
 -        [ pick push (parse-tokens) ] [ unexpected-eof ] if*
 -    ] if ;
 +: (each-token) ( end quot -- pred quot )
 +    [ [ [ scan dup ] ] dip [ = not ] curry [ [ f ] if* ] curry compose ] dip ; inline
 +
 +: each-token ( end quot -- )
 +    (each-token) while drop ; inline
 +
 +: map-tokens ( end quot -- seq )
 +    (each-token) produce nip ; inline
  
  : parse-tokens ( end -- seq )
 -    100 <vector> swap (parse-tokens) >array ;
 +    [ ] map-tokens ;
  
- TUPLE: lexer-error line column line-text error ;
+ TUPLE: lexer-error line column line-text parsing-words error ;
  
  M: lexer-error error-file error>> error-file ;
  M: lexer-error error-line [ error>> error-line ] [ line>> ] bi or ;