From: Slava Pestov Date: Wed, 3 Mar 2010 04:35:12 +0000 (+1300) Subject: Merge branch 'lexer-parsing-word-errors' of git://factorcode.org/git/factor into... X-Git-Tag: 0.97~4769 X-Git-Url: https://gitweb.factorcode.org/gitweb.cgi?p=factor.git;a=commitdiff_plain;h=102a8dc8f806b3bd2eac2bac118007c560e8fb73 Merge branch 'lexer-parsing-word-errors' of git://factorcode.org/git/factor into lexer-parsing-word-errors --- 102a8dc8f806b3bd2eac2bac118007c560e8fb73 diff --cc core/lexer/lexer.factor index 7ad454c67c,3b0348aa10..e03cae74db --- a/core/lexer/lexer.factor +++ b/core/lexer/lexer.factor @@@ -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 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 ;