shproto Home
Status: Pre-Alpha
Brought to you by:
mikerez
*** DRAFT! ***
'SELECT' [ \t] <SELECT>
'UPDATE' [ \t] <UPDATE>
'DELETE' [ \t] <DELETE>
<@SELECT>
<FIELDS>
<FIELDS> <WHERE> [ \t]* 'ORDER BY' <FIELDS> [ \t]* 'LIMIT' count:u32 ";"
default: ";" $
<@FIELDS> # used for tables list also, could be splitted for better syntax checking
[ \t]*
"(" \
'SELECT' <SELECT> ")"
default: <FIELD> ")"
'AS' [ \t] alias:substring(32,",")
'INNER JOIN' [ \t]
'OUTER JOIN' [ \t]
'JOIN' [ \t]
'FROM' [ \t] $$
'LIMIT' [ \t] $$
","
";" $
default(32): <FIELD>
<@FIELD>
field:substring(128,",(")
"(" <FIELD>
default: $$
<@WHERE>
[ \t]*
'AND' [ \t]
'OR' [ \t]
'EXISTS' [ \t]
"("
'SELECT' <SELECT> ")"
default: <WHERE> ")"
"=="
">"
"="
default:
"<"
"="
default:
expression:substring(128,"(<>=")
<@UPDATE> # TODO
<@DELETE> # TODO