Fix infinite loop with unterminated (
parent
4ae3b85dbf
commit
0bb9e1df30
|
|
@ -7,9 +7,14 @@ USING: alien arrays errors generic hashtables kernel lists math
|
||||||
namespaces parser sequences strings syntax vectors
|
namespaces parser sequences strings syntax vectors
|
||||||
words ;
|
words ;
|
||||||
|
|
||||||
: ( CHAR: ) ch-search until ; parsing
|
: (
|
||||||
: ! until-eol ; parsing
|
CHAR: ) column [
|
||||||
: #! until-eol ; parsing
|
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
|
: IN: scan set-in ; parsing
|
||||||
: USE: scan use+ ; parsing
|
: USE: scan use+ ; parsing
|
||||||
: USING: string-mode on [ string-mode off add-use ] f ; parsing
|
: USING: string-mode on [ string-mode off add-use ] f ; parsing
|
||||||
|
|
|
||||||
|
|
@ -84,12 +84,6 @@ SYMBOL: string-mode
|
||||||
: (parse) ( str -- ) line-text set 0 column set parse-loop ;
|
: (parse) ( str -- ) line-text set 0 column set parse-loop ;
|
||||||
|
|
||||||
! Parsing word utilities
|
! 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 )
|
: escape ( ch -- esc )
|
||||||
H{
|
H{
|
||||||
{ CHAR: e CHAR: \e }
|
{ CHAR: e CHAR: \e }
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue