syntax ::= select expr_list from var_defs where condition

name ::= <\w>+

fqdn ::= name[.name...]

string ::= '[{<^'>+|<'>{2}}...]'

number ::= [{+|-}] <\d>+

math_op ::= {+|-|*|/}

compare_op ::= {<\>>|<\<>|==|!=}

log_op ::= {OR|AND}

not_op ::= NOT

expr ::= {string|number|fqdn} [math_op {string|number|fqdn|( expr )} ...]

expr_list ::= expr [, expr ...]

type ::= name [<\<>type [, type ...]<\>>]

condition ::= [not_op] expr compare_op expr [log_op {condition|( condition )} ...]

var_defs ::= name as type [, name as type ...]
