\ sdollar.txt \ Quote with specified delimiter \ Authors: Tom Zegub, Jos v.d.Ven, Michael Gassanenko, Ruvim Pinka \ From: http://forth.sourceforge.net/word/s-dollar/index.html \ (s-delim) parse-s$ s$ \ Match delimiters for string : (s-delim) ( c1 -- c2) CASE [CHAR] < OF [CHAR] > ENDOF [CHAR] { OF [CHAR] } ENDOF [CHAR] [ OF [CHAR] ] ENDOF [CHAR] ( OF [CHAR] ) ENDOF DUP \ use same character for all others ENDCASE ; \ run-time routine for string parsing : parse-s$ ( ccc -- addr u) SOURCE >IN @ MIN + \ address of 1st character C@ (s-delim) \ determine second delimiter 1 >IN +! \ bump past first delimiter PARSE \ parse to second delimiter ; \ parse string; if compiling, compile it as a literal. : s$ ( ccc -- addr u) PARSE-s$ STATE @ IF ( compiling) POSTPONE SLITERAL \ include parsed string in definition THEN ; IMMEDIATE