add more tests; allow \< escape out
This commit is contained in:
2
pike.c
2
pike.c
@@ -203,6 +203,8 @@ static int _compilecode(const char **re_loc, rcode *prog, int sizecode)
|
|||||||
re++;
|
re++;
|
||||||
if (!*re) goto syntax_error; // Trailing backslash
|
if (!*re) goto syntax_error; // Trailing backslash
|
||||||
if (*re == '<' || *re == '>') {
|
if (*re == '<' || *re == '>') {
|
||||||
|
if (re - *re_loc > 2 && re[-2] == '\\')
|
||||||
|
break;
|
||||||
EMIT(PC++, *re == '<' ? WBEG : WEND);
|
EMIT(PC++, *re == '<' ? WBEG : WEND);
|
||||||
prog->len++;
|
prog->len++;
|
||||||
term = PC;
|
term = PC;
|
||||||
|
|||||||
42
test.sh
42
test.sh
@@ -140,6 +140,20 @@ aaaaa(aa)aa(aa(a)a)?aa
|
|||||||
(a(a)a|(a)|a(aa)|aa){2,5}
|
(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}
|
||||||
((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="\
|
input="\
|
||||||
abcdef
|
abcdef
|
||||||
@@ -281,6 +295,20 @@ aaaaaaaaaa
|
|||||||
aaaaaaaaaaaaaa
|
aaaaaaaaaaaaaa
|
||||||
aaaaaaaaaaaaaaaaa
|
aaaaaaaaaaaaaaaaa
|
||||||
aaaaaaaaaaaaaaaaa
|
aaaaaaaaaaaaaaaaa
|
||||||
|
aaaaaaaaaaaaaaa
|
||||||
|
axbaxaxbaxaxaxbaxaxaxax
|
||||||
|
aaabbbbbbb
|
||||||
|
aaaaaaaaaaaaaaaaa
|
||||||
|
atend
|
||||||
|
aaaaaa
|
||||||
|
aaaaaa
|
||||||
|
bbaa
|
||||||
|
abc
|
||||||
|
abcacb
|
||||||
|
aa
|
||||||
|
xabcx
|
||||||
|
\\<
|
||||||
|
\\\\\\\\<
|
||||||
"
|
"
|
||||||
expect="\
|
expect="\
|
||||||
(0,3)
|
(0,3)
|
||||||
@@ -422,6 +450,20 @@ expect="\
|
|||||||
(0,13)(12,13)(10,11)(12,13)(?,?)
|
(0,13)(12,13)(10,11)(12,13)(?,?)
|
||||||
(0,17)(17,17)(14,15)(?,?)(?,?)(17,17)
|
(0,17)(17,17)(14,15)(?,?)(?,?)(17,17)
|
||||||
(0,17)(16,17)(14,15)(?,?)(?,?)(16,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)
|
(0,0)
|
||||||
"
|
"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user