Changes for version 0.003 - 2026-07-05
- Element: a new role for all "things that can turn into Sieve"; this covers Lines and Block
- Document: eliminate "append"; documents are now meant to be immutable
- BracketComment: for things /* like this */
- Command: can now have a "block" like "foreverypart" takes
- Heredoc: now supports a comment between "text:" and next line
- Num: to represent numeric literals (including with magnitude suffix)
- Sugar: add sugar for "negate" (Sieve's "not") and "number"
Modules
generate Sieve email filter scripts
role for objects that render as Sieve code
a Sieve block (a brace-delimited sequence of statements)
a Sieve bracket comment (/* ... */)
a single Sieve command statement
a Sieve comment line
a sequence of Sieve lines forming a complete script or blank line
a Sieve multiline string (heredoc)
a Sieve if/elsif/else conditional construct
a Sieve allof/anyof/noneof test
a Sieve numeric literal
a Sieve quoted string
a Sieve string list (a bracketed list of quoted strings)
a sequence of Sieve terms joined by spaces
constructor functions for building Sieve generator objects