# BIPS (Built-in Phrases)are linked to the type-code returned # by the line-reconstruction code (aka lexer) # These *must* come first. B = 1; B = 2; P = , ; P = ; P = , ; P = "create" ; P = "or" "replace", ; P = , ; P = "package" "end" ; P = "is", "as"; P = , ; P = "package" "begin" "end" ; P = , ; P = "body", ; P = , ; P = ; P = , ; P = , , , , , , , , ; P = ; P = "constant", ; P = "not" "null", ; P = , "default"; P = , ; P = "subtype" "is" ; P = "cursor" "is" ; P = , ; P = , ; P = , , , , , , , ; P = ; P = , ; P = , , , , , , , , , , ; P = "begin" ; P = , ; P = "declare", ; # SHOULD THIS REALLY BE OPTIONAL? P = ; P = , ; P = "end" ; P = , ; P = "exception" , ; P = , ; P = , ; P = , , , , , , , , ; P = , ; P = , ; P = , , , ; P = , ; P = , ; P = ; P = ; P = ; P = ; P = "goto" ; P = ; P = "exit" ; P = "when" , ; P = "binary_integer" , "natural" , "positive" , "number" , "char" , "long" , "raw" , "boolean" , "date" , "smallint" , "real" , "numeric" , "int" , "integer" , "pls_integer" , "double" "precision" , "decimal" , "dec" , "varchar2" , "varchar" , "character" , "mlslabel" ; P = "raw", ; P = , ; P = , ; P = , ; P = , "type" , "type" , "rowtype" , ; P = ; P = , ; P = ; P = , ; P = ; P = "cursor" "return" ; P = "procedure" ; P = , ; P = , ; P = "function" "return" ; P = "exception" ; P = ; P = , ; P = ; P = "pragma" "exception_init" ; P = ; P = , ; P = "type" "is" "record" ; P = , ; P = "rowtype" ; P = ; P = , ; P = "type" "is" "table" "of" ; P = "index" "by", "indexed" "by"; P = , ; P = ; P = ; P = ; P = "procedure" "begin" "end" ; P = , ; P = "return" , ; P = , ; P = , ; P = "exception" , ; P = "begin" "end" ; P = "when" "then" ; P = "or" , ; P = "create" ; P = "function" "return" "begin" "end" ; P = "declare" , ; P = ; P = , ; P = ; P = ; P = , ; P = , ; P = "inout", "in" "out", "in", "out", ; P = ; P = ; P = , , "null"; # NULL added by GT P = , , ; P = ; P = ; P = ; P = , ; P = ; P = "null" ; P = "raise" ; P = , ; P = "return" ; P = , ; P = "loop" "end" "loop" ; P = "while" , "for" , ; P = , ; P = ; P = ; P = "not", ; P = "or" , ; P = ; P = "and" , ; P = "exists" # added by GT , , , , , ; P = , ; P = "notfound", "found", "isopen", ; P = , "is" "null" , "like" , "between" "and" , "in" , ; P = , ; P = "notfound", "found", "isopen"; P = "true", "false", "null"; P = "in" ; P = "reverse", ; P = ; P = , ; P = ; P = "in" ; P = , ; P = ; P = , , , , ; P = ; P = , ; P = , ; P = ; P = , ; P = , ; P = ; P = , , , , # GT , , "null" , "rowcount" ; P = , ; # As in table_name(1)(2) P = '*' '*' , ; P = ; P = , , ; P = ; P = , ; P = ; P= , ; P = , , , , , "null" ; P = ; P = , , , , , "null" ; P = ; P = "commit" ; P = "if" "then" "end" "if" ; P = "elsif" "then" , ; P = "else" , ; P = ; P = , ; P = , , , , ; P = , , , , , , ; P = "delete" "from" "where" ; P = ; P = "union" , ; P = , ; P = "select" ; P = "all", "distinct", ; P = "into" , ; P = , ; P = , ; P = , ; P = , ; P = , ; P = , ; P = , ; P = , ; P = "from" ; P = , ; P = ; P = "where" ; P = ; P = , ; P = , ; P = , ; P = ; P = ; P = ; P = , ; P = , ; P = ; P = "as", ; P = ; P = , ; P = , ; P = ; P = ; P = , ; P = , , , , , , , ; P = , "all", "distinct", ; P = , ; P = , ; P = ; P = , , "null" ; P = ; P = , ; P = ; P = , ; P = ; P = , ; P = ; P = , , , , ; P = "abs", "ceil", "floor", "mod", "power", "round" , "sign", "sqrt", "trunc" ; P = "chr", "initcap", "lower", "lpad", "ltrim", "replace" , "rpad", "rtrim", "soundex", "substr", "translate", "upper" , "ascii", "instr", "length" , "concat" ; P = "avg", "count", "max", "min", "stddev", "sum" , "variance" ; P = "chartorowid", "convert", "hextoraw", "rawtohex", "rowidtochar" , "to_char", "to_date", "to_number" ; P = "decode", "dump", "greatest", "least", "nvl" , "uid", "userenv", "vsize" ; P = "user", "sysdate" ; P = ; P = , ; P = ; P = , ; P = ; P = ; P = ; P = "or" , ; P = ; P = "and" , ; P = , , , "not" , ; P = , "is" "null"; P = "prior",; P = "in" , "like" , "between" "and" ; P = "escape" , ; P = , "exists" , ; P = "all", "any", ; P = , , , , , ; P = , ; P = ; P = "connect" "by" ; P = "start" "with" , ; P = "prior" , "prior" ; P = , ; P = "and" , ; P = "group" "by" ; P = "having" , ; P = ; P = , "intersect", "minus"; P = "union" "all"; P = "order" "by" ; P = , ; P = ; P = , ; P = "asc", "desc", ; P = "for" "update" ; P = "nowait", ; P = "of" , ; P = , ; P = "insert" "into" ; P = , ; P = "values" , ; P = , ; # is column_spec just one??? P = ',' , ; P = , ; P = "update" "set" "where" ; P = , ; P = , ; P = "update" "set" "where" ; P = , ; P = "set" "transaction" "read" "only"; P = "close" ; P = "fetch" "into" ; P = , ; P = , ; P = "lock" "table" "in" "mode" ; P = "row" "share" , "row" "exclusive" , "share" "update" , "share" "row" "exclusive" , "share" , "exclusive" ; P = "open" ; P = "rollback" ; P = "comment" , ; P = "work", ; P = "to" , ; P = "savepoint", ; P = "savepoint" ; P = ; #P = # , , # ; P = ; P = ; P = ; P = "abs" , "ascii" , "ceil" , "chartorowid" , "chr" , "concat" , "convert" , "count" , "decode" , "dump" , "floor" , "greatest" , "hextoraw" , "initcap" , "instr" , "intersect" , "least" , "length" , "lower" , "lpad" , "ltrim" , "nvl" , "power" , "rawtohex" , "replace" , "round" , "rowidtochar" , "rpad" , "rtrim" , "sign" , "soundex" , "sqrt" , "substr" , "sysdate" , "to_char" , "to_date" , "to_number" , "translate" , "trunc" , "upper" , "user" , "userenv" , "vsize" ; P = ';'; P = ','; P = '*'; P = '@'; P = '('; P = ')'; P = '+'; P = '-'; P = '/'; P = '%'; P = '.' '.'; P = '.'; P = '<' '<'; P = '>' '>'; P = ':' '='; P = ':'; P = '|'; P = '<' '>' , '!' '=', '^' '='; P = '<' '='; P = '<'; P = '>' '='; P = '>'; P = '='; P = ; P = "e" , ; P = , ; P = , ; P = , , ; P = ; P = , ; P = '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'; E