Closed MatyasKriz closed 6 years ago
EBNF as of making this parser: CONDITION := '[' EXPRESSION ']'; EXPRESSION := TERM [ or TERM ]; TERM := COMPARISON [ and COMPARISON ]; COMPARISON := FACTOR [ ( == | != | ':gt' | ':gte' | ':lt' | ':lte' ) FACTOR ]; FACTOR := [ '!' ] ( '(' EXPRESSION ')' | IDENTIFIER | FLOAT_NUMBER ); FLOAT_NUMBER := { same as Swift's Float } IDENTIFIER := { all cases in the ConditionStatement enum };
Float
Also in this PR:
:gte
:lte
:gt
:lt
EBNF as of making this parser: CONDITION := '[' EXPRESSION ']'; EXPRESSION := TERM [ or TERM ]; TERM := COMPARISON [ and COMPARISON ]; COMPARISON := FACTOR [ ( == | != | ':gt' | ':gte' | ':lt' | ':lte' ) FACTOR ]; FACTOR := [ '!' ] ( '(' EXPRESSION ')' | IDENTIFIER | FLOAT_NUMBER ); FLOAT_NUMBER := { same as Swift's
Float
} IDENTIFIER := { all cases in the ConditionStatement enum };Also in this PR:
:gte
and:lte
aliases to constraints to replace misleading:gt
and:lt
,