modern: fix regression for names like CC>n.
parent
69997a3f21
commit
f89f5312ae
|
@ -116,10 +116,17 @@ ERROR: unexpected-end n string ;
|
|||
n' >>n drop
|
||||
n' string' slice ch ;
|
||||
|
||||
! rollback only n, other state is not rolled back
|
||||
:: with-lexer-rollback ( lexer quot -- )
|
||||
lexer n>> :> n
|
||||
lexer quot call lexer n >>n drop ; inline
|
||||
|
||||
|
||||
: merge-lex-til-whitespace ( lexer slice -- slice' )
|
||||
[ lex-til-whitespace drop 2nip ] dip merge-slices ;
|
||||
|
||||
: peek-merge-til-whitespace ( lexer slice -- slice' )
|
||||
'[ _ merge-lex-til-whitespace ] with-lexer-rollback ;
|
||||
|
||||
:: slice-til-eol ( n string -- n'/f string slice/f ch/f )
|
||||
n [
|
||||
|
|
|
@ -452,7 +452,8 @@ ERROR: mismatched-terminator lexer slice ;
|
|||
] if ;
|
||||
|
||||
: gt-terminator ( lexer slice -- slice/f )
|
||||
dup top-level-greater-than? [
|
||||
2dup peek-merge-til-whitespace
|
||||
top-level-greater-than? [
|
||||
2dup [ dup peek-tag ] dip delimiters-match? [
|
||||
nip terminator-literal make-tag-class-literal
|
||||
] [
|
||||
|
|
|
@ -81,3 +81,5 @@ in: modern.out.tests
|
|||
|
||||
{ t } [ "->[ ]" rewrite-same-string ] unit-test
|
||||
{ t } [ "abc>[ ]" rewrite-same-string ] unit-test
|
||||
{ t } [ "CC>n" rewrite-same-string ] unit-test
|
||||
{ t } [ "CC>CC" rewrite-same-string ] unit-test
|
||||
|
|
Loading…
Reference in New Issue