new accessors

db4
Doug Coleman 2008-08-29 16:16:43 -05:00
parent aa102390a2
commit 44ad8b5f3f
1 changed files with 11 additions and 9 deletions

View File

@ -29,8 +29,8 @@ TUPLE: lexer text line line-text line-length column ;
: change-lexer-column ( lexer quot -- ) : change-lexer-column ( lexer quot -- )
swap swap
[ dup lexer-column swap lexer-line-text rot call ] keep [ [ column>> ] [ line-text>> ] bi rot call ] keep
set-lexer-column ; inline swap >>column drop ; inline
GENERIC: skip-blank ( lexer -- ) GENERIC: skip-blank ( lexer -- )
@ -45,16 +45,18 @@ M: lexer skip-word ( lexer -- )
] change-lexer-column ; ] change-lexer-column ;
: still-parsing? ( lexer -- ? ) : still-parsing? ( lexer -- ? )
dup lexer-line swap lexer-text length <= ; [ line>> ] [ text>> ] bi length <= ;
: still-parsing-line? ( lexer -- ? ) : still-parsing-line? ( lexer -- ? )
dup lexer-column swap lexer-line-length < ; [ column>> ] [ line-length>> ] bi < ;
: (parse-token) ( lexer -- str ) : (parse-token) ( lexer -- str )
[ lexer-column ] keep {
[ skip-word ] keep [ column>> ]
[ lexer-column ] keep [ skip-word ]
lexer-line-text subseq ; [ column>> ]
[ line-text>> ]
} cleave subseq ;
: parse-token ( lexer -- str/f ) : parse-token ( lexer -- str/f )
dup still-parsing? [ dup still-parsing? [
@ -68,7 +70,7 @@ M: lexer skip-word ( lexer -- )
ERROR: unexpected want got ; ERROR: unexpected want got ;
PREDICATE: unexpected-eof < unexpected PREDICATE: unexpected-eof < unexpected
unexpected-got not ; got>> not ;
: unexpected-eof ( word -- * ) f unexpected ; : unexpected-eof ( word -- * ) f unexpected ;