Reference: Formal iFL Syntax
Expr::= ExprOR | ExprOR "," Expr | ExprOR Expr
ExprOR::= ExprAND | ExprAND "OR" ExprOR
ExprAND::= ExprCompare | ExprCompare "AND" ExprAND
ExprCompare::= ExprPlusMinus | ExprPlusMinus CompareOp ExprCompare
ExprPlusMinus::= ExprMultDiv | ExprMultDiv PlusMinusOp ExprPlusMinus
ExprMultDiv::= ExprUnary | ExprNot MultDivOp ExprMultDiv
ExprUnary::== ExprFundamental | "!" ExprFundamental | "-" ExprFundamental
ExprFundamental::= Literal | "(" ExprInParens | FuncCall
ExprInParens::= ExprOR | ExprOR "," ExprInParens | ExprOR ExprInParens
FuncCall::== Func ParmList
ParmList::= ")" | ExprParm ")" | ExprParm "," ParmList | "," ParmList
ExprParm::= ExprOR | ExprOR ExprParm
CompareOp::= "<" | ">" | "=" | "<=" | ">=" | "==" 
PlusMinusOp::= "+" | "-"
MultDivOp::= "%"
Func::= Identifier "("
Literal::= QuotedLiteral | BareToken
QuotedLiteral::= SingleQuoted | DoubleQuoted
SingleQuoted::= SQuote SingleQuotedChars
DoubleQuoted::= DQuote DoubleQuotedChars
SQuote::= "'"
DQuote::= "
BaskSlash::= \
SingleQuotedChars::= SQuote | PlainChar SingleQuotedChars |
DQuote SingleQuotedChars | EscapedChar SingleQuotedChars
DoubleQuotedChars::= DQuote | PlainChar DoubleQuotedChars |
SQuote DoubleQuotedChars | EscapedChar DoubleQuotedChars
PlainChar::= AnyChar except SQuote, DQuote, BackSlash
EscapedChar::= "\r" | "\n" | "\f" | "\t" | "\'" | "\"" | HexEscapedChar | UnicodeEscapedChar
HexEscapedChar:: "\x" HexChar HexChar | "\0x" HexChar HexChar
UnicodeEscapedChar:: "\" "u" HexChar HexChar HexChar HexChar
HexChar:: Digit | HexLetter
Digit:: "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
HexLetter:: "a" | "b" | "c" | "d" | "e" | "f" | "A" | "B" | "C" | "D" | "E" | "F"
BareToken::= Sequence of unquoted chars containing no recognized special chars nor keywords

iWay Software