gitbox 2.1.3

Git toolbox to simplify adoption of conventional commits and semantic version, among other things.
Documentation
WHITESPACE   =  _{ " " | "\t" | NEWLINE }

START = _{ SOI ~ (OR_STMT | AND_STMT | STMT) ~ EOI}

AND_STMT = { (PAR_STMT | STMT) ~ "AND" ~ (PAR_STMT | AND_STMT | STMT) }

PAR_STMT = { "(" ~ OR_STMT ~ ")" }

OR_STMT = { (AND_STMT | STMT) ~ "OR" ~ (AND_STMT | OR_STMT | STMT) }

STMT = { BREAKING_STMT | ARRAY_STMT }

ARRAY_STMT = { OBJECT ~ "IN" ~ ARRAY }

BREAKING_STMT = { "breaking" }

ARRAY = { "[" ~ LITERAL ~ ("," ~ LITERAL)* ~ "]" }

OBJECT = { TYPE_OBJECT | SCOPE_OBJECT }

TYPE_OBJECT = { "type" }

SCOPE_OBJECT = { "scope" }

LITERAL = @{ ASCII_ALPHA_LOWER ~ (ASCII_ALPHA_LOWER | "-")* | "General" }