21 lines
593 B
Plaintext
21 lines
593 B
Plaintext
WHITESPACE = _{ " " }
|
|
|
|
truthtable = { SOI ~ column_list ~ EOI }
|
|
|
|
column_list = _{ column ~ (", " ~ column)* }
|
|
|
|
column = _{ emphazised | expression }
|
|
emphazised = { "E" ~ expression }
|
|
expression = { negatable_term ~ (binop ~ negatable_term)* }
|
|
negatable_term = _{ negated | term }
|
|
negated = { negation ~ term }
|
|
term = _{ label | "(" ~ expression ~ ")" }
|
|
|
|
negation = _{ "not" | "!" | "~" }
|
|
binop = @{ and_op | or_op | iff_op | if_op }
|
|
and_op = _{ "and" | "^" | "&&" }
|
|
or_op = _{ "or" | "v" | "||" }
|
|
if_op = _{ "if" | "->" }
|
|
iff_op = _{ "iff" | "<->" | "<>" }
|
|
|
|
label = @{ ASCII_ALPHA+ } |