Fix infinite loop with unterminated (

slava 2006-02-21 23:33:16 +00:00
parent 4ae3b85dbf
commit 0bb9e1df30
2 changed files with 8 additions and 9 deletions

View File

@ -7,9 +7,14 @@ USING: alien arrays errors generic hashtables kernel lists math
namespaces parser sequences strings syntax vectors
words ;
: ( CHAR: ) ch-search until ; parsing
: ! until-eol ; parsing
: #! until-eol ; parsing
: (
CHAR: ) column [
line-text get index* dup -1 =
[ "Unterminated (" throw ] when 1+
] change ; parsing
: ! line-text get length column set ; parsing
: #! POSTPONE: ! ; parsing
: IN: scan set-in ; parsing
: USE: scan use+ ; parsing
: USING: string-mode on [ string-mode off add-use ] f ; parsing

View File

@ -84,12 +84,6 @@ SYMBOL: string-mode
: (parse) ( str -- ) line-text set 0 column set parse-loop ;
! Parsing word utilities
: ch-search ( ch -- index ) column get line-text get index* ;
: until ( index -- ) 1+ column set ;
: until-eol ( -- ) line-text get length until ;
: escape ( ch -- esc )
H{
{ CHAR: e CHAR: \e }