-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Welcome to the perl-Parse-Sieve wiki!
Parse::Sieve was originally based of Net::Sieve::Script, unfortunately while trying to get it to do some more interesting things, and parse existing sieve scripts it was discovered that there were a number of flaws in the core design of Net::Sieve::Script. Net::Sieve::Script does not actually parse sieve scripts, it simply runs a number of regexes over it. This approach relies on several incorrect assumption
- ; is only used as a command terminator, this is not true, they are permitted in the various string objects.
- Nobody every nests their if statements, unfortunately my users did.
- Nobody wants more than 50 commands, unfortunately my users did.
Parse::Sieve is not complete, I’ve been slowly hacking on it for a while. It’s been and being refactored. It’s a little more lenient than the core RFCs, (which occasionally contradict themselves) however it should always spit out valid Sieve…
Parse::Sieve is released under the same terms as Perl it’s self (dual licensed Artistic and GPL)
TODO:
- While Parse::Sieve will happily parse code with comments in it currently strips them out, I would like to find some sane way to preserve them…
- I’m still writing the test cases, oh the joy. Maybe next time I’ll write them as I go along.
- The documentation is only partial at this point, I’ll get there, eventually