⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dsl.y

📁 一个SQL解析器
💻 Y
📖 第 1 页 / 共 2 页
字号:
        | DEFAULT        | NULLN        | PARM        ;function:           fname '(' '*' ')'        | fname '(' expr_list ')'        | fname '(' UNIQUE path ')'        ;expr_list:          expr        | expr_list ',' expr        ;/*Data Definition Language*/create:          CREATE cluster TABLE path tfd_list with_clause        | CREATE VIEW view_name vfd AS select_statement with_clause        | CREATE FRAGMENT view_name vfd AS select_statement with_clause        | CREATE SNAPSHOT view_name vfd AS select_statement with_clause        | CREATE SYNONYM syn_name FOR path         | CREATE unique cluster INDEX index_name                ON path '(' order_list ')' with_clause        | CREATE DATABASE dbname TYPE dbtype ON hname with_clause        | CREATE DOMAIN domain_name_list IS domain_types                defaults domain_restrict        | CREATE TYPE type_name IS         | CREATE CONSTRAINT constr_name trigger_list CHECK predicateelse_clause        ;alter:          ALTER TABLE path alter_list with_clause        | ALTER TABLE path path with_clause        ;drop:          DROP INDEX index_name        | DROP object_type path        ;comment:          COMMENT ON path        | COMMENT ON path IS comment_str        ;info:          INFO        ;comment_str:          STRING        | STRING ',' STRING        ;trigger_list:        trigger        | trigger_list ',' trigger        ;trigger:          AT event        | AFTER event OF path FROM path        | BEFORE event OF path FROM path        ;event:          COMMIT        | DELETE        | INSERT        | UPDATE        ;else_clause:        | ELSE statement        ;index_name:     path;cluster:        | IDENTIFIER        /*        |CLUSTERED |NONCLUSTERED        */        ;view_name:          record        | user '.' record        ;with_clause:        |WITH option_list        ;option_list:          option        | option ',' option_list        ;option:        IDENTIFIER        | IDENTIFIER IDENTIFIER        | IDENTIFIER EQ const/*reconfigure| check option |logfile = "file_name"*/        ;tfd_list:          primary_key          foreign_keys          field_dis        ;field_dis:          '(' tfd_fields ')'        ;primary_key:        | PRIMARY '(' primary_keys ')'        ;primary_keys:          field        | primary_keys ',' field        ;foreign_keys:        | foreign_keys foreign_key        ;foreign_key:          FOREIGN '(' f_key IDENTIFIES path                  nulls                  DELETE OF path effect                  UPDATE OF path effect')'        ;/*f_keys:          f_key        | f_keys ',' f_key        ;*/nulls:          NULLS ALLOWED        | NULLS NOT ALLOWED        ;tfd_fields:          tfd        | tfd_fields ',' tfd        ;tfd:          field o_domain_name        | field '(' field_list ')' o_domain_name        ;o_domain_name:        |domain_name        ;type_name:        IDENTIFIER        /*Base types:        boolean(bit)|        char|short_integer|long_integer|        byte|short_word|long_word|        float|double|extended|bcd|bcdfltpredefine extentions:        char|byte[1-2,000,000,000]        [short|long]_[integer|word][1-2,000,000,000]        float|double|extended[1-2,000,000,000]        bcd|bcdflt[1-2,000,000,000]        date_[]        money        time_[m,ap,sm,sap,micro]        */        ;domain_name_list:        domain_name        | domain_name_list ',' domain_name        ;domain_types:        domain_type        | '(' domain_type_list ')'        ;defaults:        | DEFAULT         ;domain_restrict:          where_clause        | select_statement        ;domain_type_list:        | domain_type_list ',' domain_type        ;domain_type:          type_name        | type_name '(' i_list ')'        ;i_list:        INTEGER        | i_list ',' INTEGER        ;vfd:        | '(' vfd_list ')'         ;vfd_list:          field        | vfd_list ',' field        ;alter_list:        alteration        | alter_list ',' alteration        ;alteration:          ADD '(' a_tfd_fields ')'        | DROP vfd        | MODIFY '(' m_tfd_fields ')'        ;a_tfd_fields:          tfd before        | a_tfd_fields ',' tfd before        ;m_tfd_fields:          field tfd        | m_tfd_fields ',' field tfd        ;before:        | BEFORE field        ;effect:        IDENTIFIER/*        CASCADES | RESTRICTED | NULLIFIES*/        ;/**/object_type:        DATABASE| DOMAIN| PROGRAM| SYNONYM| TYPE| TABLE| VIEW        ;/*Security*/grant:          GRANT privileges gr_on TO users at_option between_option                on_option where_option wgo        ;at_option:        |AT terminal_list        ;between_option:        |BETWEEN time1 AND time2        ;on_option:        |ON day1 AND day2        ;where_option:        |WHERE predicate        ;wgo:        | WITH GRANT OPTION        ;terminal_list:          tty        | tty ',' terminal_list        ;revoke:        REVOKE privileges gr_on FROM users        ;privileges:        | privileg        | privileges ',' privileg        ;privileg:          priv_name        | priv_name '(' field_list ')'        ;gr_on:        | ON object_type objects         ;users:        user        | users ',' user        ;objects:          IDENTIFIER        | objects ',' IDENTIFIER        ;/*Transaction Management*/lock:          LOCK TABLE path IN mode MODE        ;begin:          BBEGIN work        ;commit:          COMMIT work        ;rollback:          ROLLBACK work        | ROLLBACK SYNC        ;rollforward:          ROLLFORWARD path FROM path roll_op        ;roll_op:        |TO STRING time        ;time:        |STRING         ;sync:          SYNC        ;work:        |WORK        ;/*Acess management*/close:        CLOSE dbname        ;open:        OPEN dbname password        ;password:        |IDENTIFIER        ;/*DataBase Maintaince and Configuration*/audit:          AUDIT into_clause path_list                from_clause where_clause /* Set audit flag */        ;check:        CHECK        ;dump:          DUMP DATABASE dbname to_clause        | DUMP TABLE dbname to_clause        ;repair:        REPAIR        ;restore:          RESTORE DATABASE dbname rfrom_clause        | RESTORE TABLE dbname rfrom_clause        ;to_clause:        |TO filename        ;rfrom_clause:        |FROM filename        ;set:        SET option_list        ;where_clause:        | WHERE predicate        ;from_clause:        | FROM path_list        ;/*CONSTRAND IDENTIFIERS*/mode:        IDENTIFIER/* check        SHARE | EXCLUSIVE | OFF*/        ;priv_name:          IDENTIFIER        | ALTER | CREATE | DELETE | DUMP | RESTORE         | DROP | INSERT | LOCK | SELECT | UPDATE/* check        | CREATE_TABLE | CREATE_DATABASE         | CREATE_INDEX | ALL*/      ;s_control:          IDENTIFIER          ;/*IDENTIFIERS*/alias:  IDENTIFIER;constr_name:    IDENTIFIER;/* Constraint Name */day1: IDENTIFIER;day2: IDENTIFIER;dbtype: PARM |  IDENTIFIER;/* Database type */dbname: PARM |  IDENTIFIER;/* Database name */domain_name:    IDENTIFIER;field:  IDENTIFIER;filename:       PARM |  IDENTIFIER; /* File name */fname:  IDENTIFIER;     /* FUNCTION NAME */f_key:  IDENTIFIER;hname:  IDENTIFIER;parm_name:      IDENTIFIER;/* Field or Record path element */path_element:   IDENTIFIER {strcat(path_name,$1);};prog_name:      IDENTIFIER;record: IDENTIFIER;syn_name:       IDENTIFIER;tty:    IDENTIFIER;time1: IDENTIFIER;time2: IDENTIFIER;user:   PARM | IDENTIFIER;/*range_num: IDENTIFIER | INTEGER;*/%%#include "lex.yy.c"

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -