pike.c: handle 0 case in repetition

This commit is contained in:
Kyryl Melekhin
2025-11-01 20:44:03 +00:00
parent 36c27822f5
commit a43ab17911
3 changed files with 57 additions and 3 deletions

42
test.sh
View File

@@ -1,6 +1,20 @@
#!/bin/sh
regex="\
a{0}
(aaaa){0,}
(aaaa){0,0}
(aaa+a){0,}
(aaaa){0,0}|a
(aaaa){0,0}|abc
(aaaa){0,}|bc
(aaaa){0,2}|bc
(aaaa){0,2}|bc
(aaaa){0,2}|bc
bc{0}|(aaaa){0,2}
(bc{0,})+|(aaaa){0,2}
(bc{0,}){3,5}|(aaaa){0,2}
(bc{0,}){3,5}|(aaaa){0,2}
abc
cde
abc*
@@ -195,6 +209,20 @@ aaaaa(aa)aa(aa(a)a)?aa
(((?:(?:(?:ffffff(a)?ffff)+)+?)*)*)+
"
input="\
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaa
aaaa
aaa
ccc
bbbbccc
bbbbbccccc
bbbbbbccccc
abcdef
abcdef
abdef
@@ -389,6 +417,20 @@ fffffaffffffffff
fffffffffffffffffffffffff
"
expect="\
(0,0)
(0,8)(4,8)
(0,0)(?,?)
(0,10)(0,10)
(0,0)(?,?)
(0,0)(?,?)
(0,8)(4,8)
(0,4)(0,4)
(0,4)(0,4)
(0,0)(?,?)
(0,0)(?,?)
(0,7)(3,7)(?,?)
(0,10)(4,10)(?,?)
(0,5)(4,5)(?,?)
(0,3)
(2,5)
(0,2)