diff --git a/library/syntax/parse-syntax.factor b/library/syntax/parse-syntax.factor index e27e0dd86b..8987f3a3d6 100644 --- a/library/syntax/parse-syntax.factor +++ b/library/syntax/parse-syntax.factor @@ -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 diff --git a/library/syntax/parser.factor b/library/syntax/parser.factor index 15292062bc..c98cd79172 100644 --- a/library/syntax/parser.factor +++ b/library/syntax/parser.factor @@ -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 }