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' >>n drop
|
||||||
n' string' slice ch ;
|
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' )
|
: merge-lex-til-whitespace ( lexer slice -- slice' )
|
||||||
[ lex-til-whitespace drop 2nip ] dip merge-slices ;
|
[ 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 )
|
:: slice-til-eol ( n string -- n'/f string slice/f ch/f )
|
||||||
n [
|
n [
|
||||||
|
|
|
@ -452,7 +452,8 @@ ERROR: mismatched-terminator lexer slice ;
|
||||||
] if ;
|
] if ;
|
||||||
|
|
||||||
: gt-terminator ( lexer slice -- slice/f )
|
: 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? [
|
2dup [ dup peek-tag ] dip delimiters-match? [
|
||||||
nip terminator-literal make-tag-class-literal
|
nip terminator-literal make-tag-class-literal
|
||||||
] [
|
] [
|
||||||
|
|
|
@ -80,4 +80,6 @@ in: modern.out.tests
|
||||||
{ t } [ "!a" rewrite-same-string ] unit-test
|
{ t } [ "!a" rewrite-same-string ] unit-test
|
||||||
|
|
||||||
{ t } [ "->[ ]" rewrite-same-string ] unit-test
|
{ t } [ "->[ ]" rewrite-same-string ] unit-test
|
||||||
{ t } [ "abc>[ ]" 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