home *** CD-ROM | disk | FTP | other *** search
- //---------------------------------------------------------------------
- //
- // WARNING: The demo version of Visual Parse++ will not compile this
- // rule file, it's to large. The demo version is limited to very
- // small rule files.
- //
- // This is an SQL rule file that we got off the internet and transcribed
- // to our format (we have copyright permission from the author).
- // It parses SQL II. We have done some testing, and the original
- // yacc file has been around for some time. It has been used by
- // several institutions, so we think its complete.
- //
- // The grammar generates 3 shift/reduce conflicts (6 messages). You can
- // ignore them all, the shift (the default) is the appropriate action
- // to take.
- //
- // We also have an embedded SQL version of the same grammar. It required
- // only very minor changes to this rule file.
- //
- //----------------------------------------------------------------------
-
- %macro
- {D} [0-9];
- {E} [Ee][\-+]?{D}+;
-
- %expression Main
- '"$"[a-zA-Z_][a-zA-Z0-9_#@]*' PARM;
- '[a-zA-Z_][a-zA-Z0-9_#@]*' IDENTIFIER;
- '\"' %ignore, %push DQuote;
- '''' %ignore, %push SQuote;
- '{D}+' INTEGER;
- '({D}+"."{D}*({E})?)|({D}+{E})' REAL;
- ":" TCOL;
- ":" Colon, ':' ;
- ';' Semicolon, ';';
- ".*" ALLFIELDS, '.*';
- "." Dot, '.' ;
- ',' PORD;
- ',' Comma, ',' ;
- "!" Not, '!';
- "!=" Ne, '!=';
- "<=" Le, '<=';
- ">=" Ge, '>=';
- "<" Lt, '<';
- "!<" Nlt, '!<';
- ">" Gt, '>';
- "!>" Ngt, '!>';
- "(" Oparen, '(';
- ")" CParen, ')';
- ">>" RShift, '>>';
- "<<" LShift, '<<';
- "|" Bitor, '|';
- "||" Or, '||';
- "^" Bitxor, '^';
- "&" Bitand, '&';
- "&&" And, '&&';
- "~" BitNot, '~';
- "`" Semantic, '`';
- "]" CBrack, ']';
- "[" OBrack, '[';
- "=" ASSIGN;
- "=" EQ, '=';
- "+" Plus, '+';
- "-" UMINUS;
- "-" Minus, '-';
- "*" Mult, '*';
- "**" Power, '**';
- '/' Div, '/';
- "%" Mod, '%';
- "?" Quest, '?';
- '[ \n\t\r]+' %ignore;
-
- '[aA][dD][dD]' ADD;
- '[aA][lL][lL]' ALL;
- '[aA][lL][lL][oO][wW][eE][dD]' ALLOWED;
- '[aA][fF][tT][eE][rR]' AFTER;
- '[aA][lL][tT][eE][rR]' ALTER;
- '[aA][nN][dD]' AND;
- '[aA][nN][yY]' ANY;
- '[aA][sS]' AS;
- '[aA][sS][cC]' ASC;
- '[aA][tT]' AT;
- '[aA][uU][dD][iI][tT]' AUDIT;
- '[bB][eE][fF][oO][rR][eE]' BEFORE;
- '[bB][bB][eE][gG][iI][nN]' BBEGIN;
- '[bB][eE][tT][wW][eE][eE][nN]' BETWEEN;
- '[bB][yY]' BY;
- '[cC][hH][eE][cC][kK]' CHECK;
- '[cC][lL][oO][sS][eE]' CLOSE;
- '[cC][oO][mM][mM][rE][nN][tT]' COMMENT;
- '[cC][oO][mM][mM][iI][tT]' COMMIT;
- '[cC][Oo][Mm][Pp][Oo][Ss][Ii][Tt][Ee]' COMPOSITE;
- '[cC][oO][nN][sS][tT][rR][aA][iI][nN][tT]' CONSTRAINT;
- '[cC][rR][eE][aA][tT][eE]' CREATE;
- '[dD][aA][tT][aA][bB][aA][sS][eE]' DATABASE;
- '[dD][eE][fF][aA][uU][lL][tT]' DEFAULT;
- '[dD][eE][lL][eE][tT][eE]' DELETE;
- '[dD][eE][sS][cC]' DESC;
- '[dD][iI][sS][tT][iI][nN][cC][tT]' DISTINCT;
- '[dD][iI][vV][iI][dD][eE][bB][yY]' DIVIDEBY;
- '[dD][oO][mM][aA][iI][nN]' DOMAIN;
- '[dD][rR][oO][pP]' DROP;
- '[dD][uU][mM][pP]' DUMP;
- '[eE][nN][dD]' END;
- '[eE][lL][sS][eE]' ELSE;
- '[eE][xX][iI][sS][tT][sS]' EXISTS;
- '[fF][oO][rR]' FOR;
- '[fF][oO][rR][eE][iI][gG][nN]' FOREIGN;
- '[fF][rR][aA][gG][mM][eE][nN][tT]' FRAGMENT;
- '[fF][rR][oO][mM]' FROM;
- '[gG][rR][aA][nN][tT]' GRANT;
- '[gG][rR][oO][uU][pP]' GROUP;
- '[hH][aA][vV][iI][nN][gG]' HAVING;
- '[iI][dD][eE][nN][tT][iI][fF][iI][eE][sS]' IDENTIFIES;
- '[iI][fF]' IF;
- '[iI][nN]' IN;
- '[iI][nN][dD][eE][xX]' INDEX;
- '[iI][nN][fF][oO]' INFO;
- '[iI][nN][sS][eE][rR][tT]' INSERT;
- '[iI][nN][tT][oO]' INTO;
- '[iI][nN][tT][eE][rR][sS][eE][cC][tT]' INTERSECT;
- '[iI][sS]' IS;
- '[lL][iI][kK][eE]' LIKE;
- '[lL][oO][cC][kK]' LOCK;
- '[mM][iI][nN][uU][sS]' MINUS;
- '[mM][oO][dD][eE]' MODE;
- '[mM][oO][dD][iI][fF][yY]' MODIFY;
- '[nN][oO][tT]' NOT;
- '[nN][uU][lL][lL]' NULLN;
- '[nN][uU][lL][lL][sS]' NULLS;
- '[oO][fF]' OF;
- '[oO][nN]' ON;
- '[oO][pP][eE][nN]' OPEN;
- '[oO][pP][tT][iI][oO][nN]' OPTION;
- '[oO][rR]' OR;
- '[oO][rR][dD][eE][rR]' ORDER;
- '[oO][uU][tT][eE][rR]' OUTER;
- '[pP][rR][iI][mM][aA][rR][yY]' PRIMARY;
- '[pP][rR][oO][gG][rR][aA][mM]' PROGRAM;
- '[rR][aA][nN][gG][eE]' RANGE;
- '[rR][eE][pP][aA][iI][rR]' REPAIR;
- '[rR][eE][sS][tT][oO][rR][eE]' RESTORE;
- '[rR][eE][vV][oO][kK][eE]' REVOKE;
- '[rR][oO][lL][lL][bB][aA][cC][kK]' ROLLBACK;
- '[rR][oO][lL][lL][fF][oO][rR][wW][aA][rR][dD]' ROLLFORWARD;
- '[sS][eE][lL][eE][cC][tT]' SELECT;
- '[sS][eE][tT]' SET;
- '[sS][hH][oO][wW]' SHOW;
- '[sS][nN][aA][pP][sS][hH][oO][tT]' SNAPSHOT;
- '[sS][tT][aA][rR][tT]' START;
- '[sS][tT][oO][rR][eE]' STORE;
- '[sS][yY][nN][cC]' SYNC;
- '[sS][yY][nN][oO][nN][yY][mM]' SYNONYM;
- '[Tt][aA][bB][lL][eE]' TABLE;
- '[Tt][hH][eE][nN]' THEN;
- '[Tt][oO]' TO;
- '[tT][yY][pP][eE]' TYPE;
- '[vV][aA][lL][uU][eE][sS]' VALUES;
- '[vV][iI][eE][wW]' VIEW;
- '[uU][nN][iI][oO][nN]' UNION;
- '[uU][nN][iI][qQ][uU][eE]' UNIQUE;
- '[uU][pP][dD][aA][tT][eE]' UPDATE;
- '[wW][hH][eE][rR][eE]' WHERE;
- '[wW][oO][rR][kK]' WORK;
- '[wW][iI][tT][hH]' WITH;
-
- %expression DQuote
- '[^"\\\n]+' STRINGPART;
- '\\\n' %ignore;
- '\\' STRINGPART;
- '\"' STRINGEND, %pop;
-
- %expression SQuote
- '[^''\\\n]+' STRINGPART;
- '\\\n' %ignore;
- '\\' STRINGPART;
- '''' STRINGEND, %pop;
-
- %prec
- 1, ';', %left;
- 2, WHERE %left;
- 3, OR, %left;
- 4, AND, %left;
- 5, ',' %left;
- 6, ASSIGN, %right;
- 7, TCOL, %right;
- 8, '?', %left;
- 9, '||', %left;
- 10,'&&', %left;
- 11, '|', %left;
- 12, '^', %left;
- 13, '&', %left;
- 14, '!<', %left;
- 14, '!>', %left;
- 14, '<', %left;
- 14, '>', %left;
- 14, '<=', %left;
- 14, '>=', %left;
- 14, '!=', %left;
- 14, '=', %left;
- 15, '<<', %left;
- 15, '>>', %left;
- 16, '+', %left;
- 16, '-', %left;
- 17, '*', %left;
- 17, '/', %left;
- 17, '%', %left;
- 18, '**', %right;
- 19, UMINUS,%right;
- 19, '~', %right;
- 20, PORD, %left;
- 21, '`', %left;
- 22, '.', %left;
-
- %production dsl
-
- StartDsl dsl -> stats;
- StartProg dsl -> STORE PROGRAM prog_name '(' parm_list ')'
- stats ';' END STORE ';';
- Stats stats -> stats statWithEnd;
- StatsOne stats -> statWithEnd;
-
- StatWithEnd statWithEnd -> statement ';';
-
- StatError statement -> %error;
- StatAlter statement -> alter;
- StatAudit statement -> audit;
- StatBegin statement -> begin;
- StatCheck statement -> check;
- StatClose statement -> close;
- StatComment statement -> comment;
- StatCommit statement -> commit;
- StatCreate statement -> create;
- StatDelete statement -> delete;
- StatDrop statement -> drop;
- StatDump statement -> dump;
- StatGrant statement -> grant;
- StatInfo statement -> info;
- StatInsert statement -> insert;
- StatLock statement -> lock;
- StatOpen statement -> open;
- StatRollback statement -> rollback;
- StatRollforw statement -> rollforward;
- StatRepair statement -> repair;
- StatRestore statement -> restore;
- StatRevoke statement -> revoke;
- StatSelect statement -> select;
- StatSet statement -> set;
- StatStart statement -> start;
- StatSync statement -> sync;
- StatUpdate statement -> update;
-
- Start start -> prog_name '(' expr_list ')';
-
- ParmListOne parm_list -> parm;
- ParmList parm_list -> parm ',' parm_list;
-
- Parm parm -> parm_name;
- ParmExpr parm -> parm_name EQ expr %prec ASSIGN;
-
- Delete delete -> DELETE FROM rec_alias where_clause;
-
- InsertField insert -> INSERT INTO rec_alias '(' field_list ')' icond;
- Insert insert -> INSERT INTO rec_alias icond;
-
- Update update -> UPDATE rec_alias set_show where_clause;
-
- RecAlias rec_alias -> path;
- RecAliasPath rec_alias -> path alias;
-
- ICondFrom icond -> FROM filename;
- ICondSelect icond -> select_statement;
- ICondValues icond -> VALUES '(' const_list ')';
-
- SetShow set_show -> SHOW setelements;
- SetShowSet set_show -> SET setelements;
-
- SetElementsOne setelements -> setelement;
- SetElements setelements -> setelements ',' setelement;
-
- SetElementExpr setelement -> field EQ expr %prec ASSIGN;
- SetElementSel setelement -> field EQ select_statement %prec ASSIGN;
- SetElementEq setelement -> '[' field_list ']' EQ '[' expr_list ']' %prec ASSIGN;
- SetElementEqSel setelement -> '[' field_list ']' EQ select_statement %prec ASSIGN;
-
- Select select -> select_expr order_clause into_clause;
-
- SelectExprStat select_expr -> select_statement;
- SelectExprUnion select_expr -> select_expr UNION any select_statement;
- SelectExprMinus select_expr -> select_expr MINUS select_statement;
- SelectExprDiv select_expr -> select_expr DIVIDEBY select_statement;
- SelectExprInter select_expr -> select_expr INTERSECT select_statement;
- SelectExprNest select_expr -> '(' select_expr ')';
-
- OrderClauseNull order_clause -> ;
- OrderClause order_clause -> ORDER BY norder_list;
-
- IntoClauseNull into_clause -> ;
- IntoClause into_clause -> INTO filename;
-
- SelectStat select_statement -> select_clause FROM
- from_item_list select_options;
-
- OrderListOne order_list -> path orderdir %prec PORD;
- OrderList order_list -> order_list ',' path orderdir;
-
- NOrderListOne norder_list -> expr orderdir %prec PORD;
- NOrderList norder_list -> norder_list ',' norder_list;
-
- SelectClause select_clause -> SELECT unique sellist;
- SelectClauseUn select_clause -> SELECT unique '*';
-
- FromItListOne from_item_list -> from_item;
- FromItemList from_item_list -> from_item_list ',' from_item_list;
-
- FromItemRec from_item -> rec_alias;
- FromItemOut from_item -> OUTER rec_alias;
- FromItemOutLst from_item -> OUTER '(' from_item_list ')';
-
- SelectOptionsNu select_options -> ;
- SelectOptWPred select_options -> WHERE predicate;
- SelectOptWPG select_options -> WHERE predicate group_clause;
- SelectOptGroup select_options -> group_clause;
-
- GroupClause group_clause -> GROUP BY path_list;
- GroupClauseHav group_clause -> GROUP BY path_list HAVING predicate;
-
- UniqueNill unique -> ;
- UniqueAll unique -> ALL;
- UniqueDistinct unique -> DISTINCT;
- UniqueUnique unique -> UNIQUE;
-
- SelListOne sellist -> selelement;
- SelList sellist -> sellist ',' selelement;
-
- SelEleRec selelement -> record ALLFIELDS;
- SelEleExpr selelement -> expr;
- SelEleExStr selelement -> expr STRING;
-
- PredCond predicate -> condition;
- PredCondAnd predicate -> condition AND predicate;
- PredCondOr predicate -> condition OR predicate;
- PredCondNot predicate -> NOT predicate %prec '~';
- PredCondParen predicate -> '(' predicate ')';
- PredCondIf predicate -> IF predicate THEN predicate else_pred;
-
- ElsePredNull else_pred -> ;
- ElsePred else_pred -> ELSE predicate;
-
- CondExpr condition -> expr;
- CondExprNotIn condition -> expr not IN in_sel_expr;
- CondExprPath condition -> '[' path_list ']' not IN in_sel_expr;
- CondExprNulln condition -> expr IS not NULLN;
- CondExprDef condition -> expr IS not DEFAULT;
- CondExprBetw condition -> expr not BETWEEN expr AND expr;
- CondExprLike condition -> expr not LIKE const;
- CondExprExists condition -> EXISTS '(' select_statement ')';
-
- NotNull not -> ;
- Not not -> NOT;
-
- AnyNull any -> ;
- AnyAll any -> ALL;
- Any any -> ANY;
-
- InSelExpr in_sel_expr -> '(' select_statement ')';
- InSelExprConst in_sel_expr -> const_recs;
-
- CondSel cond_sel_expr -> expr;
- CondSelSel cond_sel_expr -> '(' select_statement ')';
-
- ConstRecs const_recs -> '(' const_list ')';
- ConstRecsList const_recs -> '[' const_rec_list ']';
-
- ConstRecListOne const_rec_list -> '(' const_list ')';
- ConstRecList const_rec_list -> const_rec_list ',' '(' const_list ')';
-
- PathListOne path_list -> path;
- PathList path_list -> path_list ',' path;
-
- FieldListOne field_list -> field;
- FieldList field_list -> field_list ',' field;
-
- Path path -> path_e_list;
- PathEle path -> path_e_list '[' element_name ']';
-
- PathEleOne path_e_list -> path_element;
- PathEleList path_e_list -> path_element '.' path_e_list;
-
- ElementName element_name -> norder_list;
-
- OrderDirNull orderdir -> ;
- OrderDirDesc orderdir -> DESC;
- OrderDirAsc orderdir -> ASC;
-
- ConstListOne const_list -> const;
- ConstList const_list -> const_list ',' const;
-
- ExprSemantic expr -> expr '`' s_control;
- ExprUnaryMinus expr -> '-' expr %prec UMINUS;
- ExprPlus expr -> expr '+' expr;
- ExprMinus expr -> expr '-' expr;
- ExprMult expr -> expr '*' expr;
- ExprDiv expr -> expr '/' expr;
- ExprMod expr -> expr '%' expr;
- ExprPwr expr -> expr '**' expr;
- ExprCond expr -> expr '?' else_part;
- ExprComp expr -> '~' expr;
- ExprRShift expr -> expr '>>' expr;
- ExprLShift expr -> expr '<<' expr;
- ExprXor expr -> expr '^' expr;
- ExprOr expr -> expr '|' expr;
- ExprAnd expr -> expr '&' expr;
- ExprLogOr expr -> expr '||' expr;
- ExprLogAnd expr -> expr '&&' expr;
- ExprCondNLT expr -> expr '!<' cond_sel_expr;
- ExprCondNGT expr -> expr '!>' cond_sel_expr;
- ExprCondLT expr -> expr '<' any cond_sel_expr;
- ExprCondGT expr -> expr '>' any cond_sel_expr;
- ExprCondEQ expr -> expr '=' any cond_sel_expr;
- ExprCondGE expr -> expr '>=' cond_sel_expr;
- ExprCondLE expr -> expr '<=' cond_sel_expr;
- ExprCondNE expr -> expr '!=' any cond_sel_expr;
- ExprCondParen expr -> '(' expr ')';
- ExprConst expr -> const;
- ExprPath expr -> path;
- ExprFunction expr -> function;
-
- ElsePart else_part -> expr ':' expr %prec TCOL;
-
- ConstInteger const -> INTEGER;
- ConstReal const -> REAL;
- ConstString const -> STRING;
- ConstDefault const -> DEFAULT;
- ConstNulln const -> NULLN;
- ConstParm const -> PARM;
-
- FunctionStar function -> fname '(' '*' ')';
- FunctionExpr function -> fname '(' expr_list ')';
- FunctionUnique function -> fname '(' UNIQUE path ')';
-
- ExprListOne expr_list -> expr;
- ExprList expr_list -> expr_list ',' expr;
-
- CreateTable create -> CREATE cluster TABLE path tfd_list with_clause;
- CreateView create -> CREATE VIEW view_name vfd
- AS select_statement with_clause;
- CreateFragment create -> CREATE FRAGMENT view_name vfd
- AS select_statement with_clause;
- CreateSnapshot create -> CREATE SNAPSHOT view_name vfd
- AS select_statement with_clause;
- CreateSynonym create -> CREATE SYNONYM syn_name FOR path;
- CreateIndex create -> CREATE unique cluster INDEX index_name
- ON path '(' order_list ')' with_clause;
- CreateDatabase create -> CREATE DATABASE dbname TYPE dbtype
- ON hname with_clause;
- CreateDomain create -> CREATE DOMAIN domain_name_list
- IS domain_types defaults domain_restrict;
- CreateType create -> CREATE TYPE type_name IS;
- CreateConstr create -> CREATE CONSTRAINT constr_name trigger_list
- CHECK predicate;
-
- AlterList alter -> ALTER TABLE path alter_list with_clause;
- AlterPath alter -> ALTER TABLE path path with_clause;
-
- DropIndex drop -> DROP INDEX index_name;
- Drop drop -> DROP object_type path;
-
- Comment comment -> COMMENT ON path;
- CommentIs comment -> COMMENT ON path IS comment_str;
-
- Info info -> INFO;
-
- CommentStrOne comment_str -> STRING;
- CommentStrList comment_str -> STRING ',' STRING;
-
- TriggerListOne trigger_list -> trigger;
- TriggerList trigger_list -> trigger_list ',' trigger;
-
- TriggerAt trigger -> AT event;
- TriggerAfter trigger -> AFTER event OF path FROM path;
- TriggerBefore trigger -> BEFORE event OF path FROM path;
-
- EventCommit event -> COMMIT;
- EventDelete event -> DELETE;
- EventInsert event -> INSERT;
- EventUpdate event -> UPDATE;
-
- IndexName index_name -> path;
-
- ClusterNull cluster -> ;
- Cluster cluster -> IDENTIFIER;
-
- ViewName view_name -> record;
- ViewNameUser view_name -> user '.' record;
-
- WithClauseNull with_clause -> ;
- WithClause with_clause -> WITH option_list;
-
- OptionListOne option_list -> option;
- OptionList option_list -> option ',' option_list;
-
- OptionId option -> IDENTIFIER;
- OptionIdId option -> IDENTIFIER IDENTIFIER;
- OptionIdEq option -> IDENTIFIER EQ const;
-
- TfdListPrim tfd_list -> primary_key foreign_keys field_dis;
-
- FieldDis field_dis -> '(' tfd_fields ')';
-
- PrimaryNull primary_key -> ;
- Primary primary_key -> PRIMARY '(' primary_keys ')';
-
- PrimaryListOne primary_keys -> field;
- PrimaryList primary_keys -> primary_keys ',' field;
-
- ForeignListNull foreign_keys -> ;
- ForeignList foreign_keys -> foreign_keys foreign_key;
-
- ForeignKey foreign_key -> FOREIGN '(' f_key IDENTIFIES path
- nulls DELETE OF path effect UPDATE OF path effect ')';
-
- NullsAllowed nulls -> NULLS ALLOWED;
- NullsNAllowed nulls -> NULLS NOT ALLOWED;
-
- TfdFieldsOne tfd_fields -> tfd;
- TfdFieldsList tfd_fields -> tfd_fields ',' tfd;
-
- TfdField tfd -> field o_domain_name;
- TfdFieldList tfd -> field '(' field_list ')' o_domain_name;
-
- DomainNull o_domain_name -> ;
- Domain o_domain_name -> domain_name;
-
- TypeName type_name -> IDENTIFIER;
-
- DomNameListOne domain_name_list -> domain_name;
- DomNameList domain_name_list -> domain_name_list ',' domain_name;
-
- DomTypeOne domain_types -> domain_type;
- DomTypeList domain_types -> '(' domain_type_list ')';
-
- DefaultsNull defaults -> ;
- Defaults defaults -> DEFAULT;
-
- DomRestrWhere domain_restrict -> where_clause;
- DomRestrSelect domain_restrict -> select_statement;
-
- DomListNull domain_type_list -> ;
- DomList domain_type_list -> domain_type_list ',' domain_type;
-
- DomainTypeName domain_type -> type_name;
- DomainTypeNameL domain_type -> type_name '(' i_list ')';
-
- IListOne i_list -> INTEGER;
- IList i_list -> i_list ',' INTEGER;
-
- VfdNull vfd -> ;
- Vfd vfd -> '(' vfd_list ')';
-
- VfdListOne vfd_list -> field;
- VfdList vfd_list -> vfd_list ',' field;
-
- AlterListOne alter_list -> alteration;
- AlterList0 alter_list -> alter_list ',' alteration;
-
- AlterAdd alteration -> ADD '(' a_tfd_fields ')';
- AlterDrop alteration -> DROP vfd;
- AlterModify alteration -> MODIFY '(' m_tfd_fields ')';
-
- ATfdFieldsOne a_tfd_fields -> tfd before;
- ATfdFieldsList a_tfd_fields -> a_tfd_fields ',' tfd before;
-
- MTfdFieldsOne m_tfd_fields -> field tfd;
- MTfdFields m_tfd_fields -> m_tfd_fields ',' field tfd;
-
- BeforeNull before -> ;
- Before before -> BEFORE field;
-
- Effect effect -> IDENTIFIER;
-
- ObjectDatabase object_type -> DATABASE;
- ObjectDomain object_type -> DOMAIN;
- ObjectProgram object_type -> PROGRAM;
- ObjectSynonym object_type -> SYNONYM;
- ObjectType object_type -> TYPE;
- ObjectTable object_type -> TABLE;
- ObjectView object_type -> VIEW;
-
- Grant grant -> GRANT privileges gr_on TO users
- at_option between_option on_option where_option wgo;
-
- AtOptNull at_option -> ;
- AtOpt at_option -> AT terminal_list;
-
- BetweenOptNull between_option -> ;
- BetweenOpt between_option -> BETWEEN time1 AND time2;
-
- OnOptNull on_option -> ;
- OnOpt on_option -> ON day1 AND day2;
-
- WhereOptNull where_option -> ;
- WhereOpt where_option -> WHERE predicate;
-
- WgoNull wgo -> ;
- Wgo wgo -> WITH GRANT OPTION;
-
- TermListOne terminal_list -> tty;
- TermList terminal_list -> tty ',' terminal_list;
-
- Revoke revoke -> REVOKE privileges gr_on FROM users;
-
- PrivNull privileges -> ;
- PrivOne privileges -> privileg;
- PrivList privileges -> privileges ',' privileg;
-
- Priv privileg -> priv_name;
- PrivFields privileg -> priv_name '(' field_list ')';
-
- GrOnNull gr_on -> ;
- GrOn gr_on -> ON object_type objects;
-
- UserOne users -> user;
- UserList users -> users ',' user;
-
- ObjectsOne objects -> IDENTIFIER;
- Objects objects -> objects ',' IDENTIFIER;
-
- Lock lock -> LOCK TABLE path IN mode MODE;
-
- Begin begin -> BBEGIN work;
-
- Commit commit -> COMMIT work;
-
- Rollback rollback -> ROLLBACK work;
- RollbackSync rollback -> ROLLBACK SYNC;
-
- Rollforward rollforward -> ROLLFORWARD path FROM path roll_op;
-
- RollOpNull roll_op -> ;
- RollOp roll_op -> TO STRING time;
-
- TimeNull time -> ;
- Time time -> STRING;
-
- Sync sync -> SYNC;
-
- WorkNull work -> ;
- Work work -> WORK;
-
- Close close -> CLOSE dbname;
-
- Open open -> OPEN dbname password;
-
- Password password -> IDENTIFIER;
-
- Audit audit -> AUDIT into_clause path_list
- from_clause where_clause;
-
- Check check -> CHECK;
-
- Dump dump -> DUMP DATABASE dbname to_clause;
- DumpTable dump -> DUMP TABLE dbname to_clause;
-
- Repair repair -> REPAIR;
-
- Restore restore -> RESTORE DATABASE dbname rfrom_clause;
- RestoreTable restore -> RESTORE TABLE dbname rfrom_clause;
-
- ToClauseNull to_clause -> ;
- ToClause to_clause -> TO filename;
-
- RFromClauseNull rfrom_clause -> ;
- RFromClause rfrom_clause -> FROM filename;
-
- Set set -> SET option_list;
-
- WhereClauseNull where_clause -> ;
- WhereClause where_clause -> WHERE predicate;
-
- FromClauseNull from_clause -> ;
- FromClause from_clause -> FROM path_list;
-
- Mode mode -> IDENTIFIER;
-
- PrivNameId priv_name -> IDENTIFIER;
- PrivNameAlter priv_name -> ALTER;
- PrivNameCreate priv_name -> CREATE;
- PrivNameDelete priv_name -> DELETE;
- PrivNameDump priv_name -> DUMP;
- PrivNameRestore priv_name -> RESTORE;
- PrivNameDrop priv_name -> DROP;
- PrivNameInsert priv_name -> INSERT;
- PrivNameLock priv_name -> LOCK;
- PrivNameSelect priv_name -> SELECT;
- PrivNameUpdate priv_name -> UPDATE;
-
- SControl s_control -> IDENTIFIER;
- AliasId alias -> IDENTIFIER;
- ConstrName constr_name -> IDENTIFIER;
- Day1 day1 -> IDENTIFIER;
- Day2 day2 -> IDENTIFIER;
- DbType dbtype -> PARM;
- DbTypeId dbtype -> IDENTIFIER;
- DbNameParm dbname -> PARM;
- DbNameId dbname -> IDENTIFIER;
- DomainName domain_name -> IDENTIFIER;
- FieldName field -> IDENTIFIER;
- Filename filename -> PARM;
- FilenameId filename -> IDENTIFIER;
- Fname fname -> IDENTIFIER;
- FKey f_key -> IDENTIFIER;
- HName hname -> IDENTIFIER;
- ParmName parm_name -> IDENTIFIER;
- PathElement path_element -> IDENTIFIER;
- ProgName prog_name -> IDENTIFIER;
- Record record -> IDENTIFIER;
- SynName syn_name -> IDENTIFIER;
- Tty tty -> IDENTIFIER;
- Time1 time1 -> IDENTIFIER;
- Time2 time2 -> IDENTIFIER;
- User user -> PARM;
- UserId user -> IDENTIFIER;
-
- String STRING -> stringList STRINGEND;
- StringList stringList -> stringList STRINGPART;
- StringListOne stringList -> STRINGPART;
-
-