add more tests; allow \< escape out

This commit is contained in:
Kyryl Melekhin
2021-10-21 18:45:19 +00:00
parent 91e630abe9
commit 2d96c352cc
2 changed files with 44 additions and 0 deletions

2
pike.c
View File

@@ -203,6 +203,8 @@ static int _compilecode(const char **re_loc, rcode *prog, int sizecode)
re++;
if (!*re) goto syntax_error; // Trailing backslash
if (*re == '<' || *re == '>') {
if (re - *re_loc > 2 && re[-2] == '\\')
break;
EMIT(PC++, *re == '<' ? WBEG : WEND);
prog->len++;
term = PC;

42
test.sh
View File

@@ -140,6 +140,20 @@ aaaaa(aa)aa(aa(a)a)?aa
(a(a)a|(a)|a(aa)|aa){2,5}
((a)a|a(aa)|(aaaa)|(a*)){3,10}
((a)a|a(aa)|(aaaa)|(a+)){3,10}
(aa(aa){3}|(a)a+(a)|a){3,4}
((ax)+b(ax)*)*
(a*)(b?)(b+)b{3}
(a*){2,3}
(a|at|ate|aten)(ten|en|n|d)
(a|aa|aaa|aaaaa)(aa|aaaa|aaa)
(a|a.|a..|a....)(a.|a...|a..)
(a*b|b*a)(a*b|b*a)
(ab|((ab)c|abc))c*
((a*b*c*)|(a*c*b*))*
.*|.*(a|b)?
((.a|.ab)(bc.|c.)|abc.)
\\\\\\\\<
\\\\\\\\\\\\\\\\<
"
input="\
abcdef
@@ -281,6 +295,20 @@ aaaaaaaaaa
aaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaa
axbaxaxbaxaxaxbaxaxaxax
aaabbbbbbb
aaaaaaaaaaaaaaaaa
atend
aaaaaa
aaaaaa
bbaa
abc
abcacb
aa
xabcx
\\<
\\\\\\\\<
"
expect="\
(0,3)
@@ -422,6 +450,20 @@ expect="\
(0,13)(12,13)(10,11)(12,13)(?,?)
(0,17)(17,17)(14,15)(?,?)(?,?)(17,17)
(0,17)(16,17)(14,15)(?,?)(?,?)(16,17)
(0,15)(14,15)(6,8)(8,9)(13,14)
(0,7)(0,7)(0,2)(5,7)
(0,10)(0,3)(3,4)(4,7)
(0,17)(17,17)
(0,4)(0,1)(1,4)
(0,3)(0,1)(1,3)
(0,3)(0,1)(1,3)
(0,2)(0,1)(1,2)
(0,3)(0,2)(?,?)(?,?)
(0,6)(5,6)(5,6)(?,?)
(0,2)(?,?)
(0,5)(0,5)(0,2)(2,5)
(0,2)
(2,5)
(0,0)
"