<Expr> ::= <BinOrExpr> [':' <Expr>]
<BinOrExpr> ::= <BinAndExpr> ['||' <BinOrExpr>]
<BinAndExpr> ::= <CompareExpr> ['&&' <BinAndExpr>]
<CompareExpr> ::= <PlusMinExpr> [('==' | '<' | '>' | '<=' | '>=' | '!=') <CompareExpr>]
<PlusMinExpr> ::= <TimesDivExpr> (('+' | '-') <TimesDivExpr>)*
<TimesDivExpr> ::= <BasicExpr> (['*' | '/' | '%'] <BasicExpr>)*
<Expr> ::= <BinOrExpr> [':' <Expr>]
<BinOrExpr> ::= <BinAndExpr> ['||' <BinOrExpr>]
<BinAndExpr> ::= <CompareExpr> ['&&' <BinAndExpr>]
<CompareExpr> ::= <PlusMinExpr> [('==' | '<' | '>' | '<=' | '>=' | '!=') <CompareExpr>]
<PlusMinExpr> ::= <TimesDivExpr> (('+' | '-') <TimesDivExpr>)*
<TimesDivExpr> ::= <BasicExpr> (['*' | '/' | '%'] <BasicExpr>)*