currently, keep possibly poor "next" naming, since it was used in a few
more places than "get+increment". both are kinda bad names i guess.
: advance ( sequence-parser -- sequence-parser )
[ 1 + ] change-n ; inline
-: advance* ( sequence-parser -- )
- advance drop ; inline
-
-: next ( sequence-parser -- obj ) [ current ] [ advance* ] bi ;
-
-: get+increment ( sequence-parser -- char/f )
+: next ( sequence-parser -- char/f )
[ current ] [ advance drop ] bi ; inline
:: skip-until ( ... sequence-parser quot: ( ... obj -- ... ? ) -- ... )
} 1||
] take-while :> string
sequence-parser current quote-char = [
- sequence-parser advance* string
+ sequence-parser advance drop string
] [
start-n sequence-parser n<< f
] if ;
CHAR: \" (read-quote) ;
: read-quote ( sequence-parser -- string )
- dup get+increment CHAR: ' =
+ dup next CHAR: ' =
[ read-single-quote ] [ read-double-quote ] if ;
: read-key ( sequence-parser -- string )