modern: Don't allow patterns like ``foo: ;``
parent
c06f0eb5f7
commit
137384cdea
|
@ -11,7 +11,6 @@ ERROR: string-expected-got-eof n string ;
|
|||
ERROR: long-opening-mismatch tag open n string ch ;
|
||||
|
||||
SYMBOL: strict-upper
|
||||
|
||||
SYMBOL: delimiter-stack
|
||||
: push-delimiter-stack ( obj -- ) delimiter-stack get push ;
|
||||
: pop-delimiter-stack ( -- obj ) delimiter-stack get pop ;
|
||||
|
@ -150,8 +149,18 @@ MACRO:: read-matched ( ch -- quot: ( n string tag -- n' string slice' ) )
|
|||
merge-slice-til-whitespace
|
||||
] if ;
|
||||
|
||||
: terminator? ( slice -- ? )
|
||||
{
|
||||
[ ";" sequence= ]
|
||||
} 1|| ;
|
||||
|
||||
ERROR: token-expected n string obj ;
|
||||
ERROR: unexpected-terminator n string slice ;
|
||||
: read-lowercase-colon ( n string slice -- n' string lowercase-colon )
|
||||
[ lex-factor ] dip swap 2array ;
|
||||
[
|
||||
lex-factor dup [ token-expected ] unless
|
||||
dup terminator? [ unexpected-terminator ] when
|
||||
] dip swap 2array ;
|
||||
|
||||
: strict-upper? ( string -- ? )
|
||||
[ { [ CHAR: A CHAR: Z between? ] [ ":-" member? ] } 1|| ] all? ;
|
||||
|
|
|
@ -95,7 +95,7 @@ ERROR: unexpected-end n string ;
|
|||
n string f f
|
||||
] if ; inline
|
||||
|
||||
: skip-whitespace ( n string -- n' string )
|
||||
: skip-whitespace ( n/f string -- n'/f string )
|
||||
slice-til-not-whitespace 2drop ;
|
||||
|
||||
: empty-slice-end ( seq -- slice )
|
||||
|
@ -169,7 +169,7 @@ ERROR: unexpected-end n string ;
|
|||
[ [ 1 - ] change-to ] dip
|
||||
] when ;
|
||||
|
||||
:: slice-til-either ( n string tokens -- n'/f string slice/f ch )
|
||||
:: slice-til-either ( n string tokens -- n'/f string slice/f ch/f )
|
||||
n [
|
||||
n string '[ tokens member? ] find-from
|
||||
dup "\s\r\n" member? [
|
||||
|
|
Loading…
Reference in New Issue