rendered paste body#501$2 Thu 08101604:42:16 jim@keyframe:~: cd work/xSWO/#502$3 Thu 08101604:42:24 jim@keyframe:~/work/xSWO: lsDoxyfile bnf2spirit.sh main.cpp s2k3.sh sparql.d sql2003.i tests xSWO.xcodeprojMakefile docs pch.hxx sparql.cpp sparql.h test.git xSWO.1#503$4 Thu 08101604:42:24 jim@keyframe:~/work/xSWO: ./s2k3.sh + IFS='|'+ sed -re '/^\w+ *=.+/ {s,\=,\=\n,gb}:us,(\W) ?(ABS|ABSOLUTE|ACTION|ADA|ADD|ADMIN|AFTER|ALL|ALLOCATE|ALTER|ALWAYS|AND|ANY|ARE|ARRAY|AS|ASC|ASENSITIVE|ASSERTION|ASSIGNMENT|ASYMMETRIC|AT|ATOMIC|ATTRIBUTE|ATTRIBUTES|AUTHORIZATION|AVG|BEFORE|BEGIN|BERNOULLI|BETWEEN|BIGINT|BINARY|BLOB|BOOLEAN|BOTH|BREADTH|BY|CALL|CALLED|CARDINALITY|CASCADE|CASCADED|CASE|CAST|CATALOG|CATALOG_NAME|CEIL|CEILING|CHAIN|CHAR|CHARACTER|CHARACTERISTICS|CHARACTERS|CHARACTER_LENGTH|CHARACTER_SET_CATALOG|CHARACTER_SET_NAME|CHARACTER_SET_SCHEMA|CHAR_LENGTH|CHECK|CHECKED|CLASS_ORIGIN|CLOB|CLOSE|COALESCE|COBOL|CODE_UNITS|COLLATE|COLLATION|COLLATION_CATALOG|COLLATION_NAME|COLLATION_SCHEMA|COLLECT|COLUMN|COLUMN_NAME|COMMAND_FUNCTION|COMMAND_FUNCTION_CODE|COMMIT|COMMITTED|CONDITION|CONDITION_NUMBER|CONNECT|CONNECTION_NAME|CONSTRAINT|CONSTRAINTS|CONSTRAINT_CATALOG|CONSTRAINT_NAME|CONSTRAINT_SCHEMA|CONSTRUCTORS|CONTAINS|CONTINUE|CONVERT|CORR|CORRESPONDING|COUNT|COVAR_POP|COVAR_SAMP|CREATE|CROSS|CUBE|CUME_DIST|CURRENT|CURRENT_COLLATION|CURRENT_DATE|CURRENT_DEFAULT_TRANSFORM_GROUP|CURRENT_PATH|CURRENT_ROLE|CURRENT_TIME|CURRENT_TIMESTAMP|CURRENT_TRANSFORM_GROUP_FOR_TYPE|CURRENT_USER|CURSOR|CURSOR_NAME|CYCLE|DATA|DATE|DATETIME_INTERVAL_CODE|DATETIME_INTERVAL_PRECISION|DAY|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFAULTS|DEFERRABLE|DEFERRED|DEFINED|DEFINER|DEGREE|DELETE|DENSE_RANK|DEPTH|DEREF|DERIVED|DESC|DESCRIBE|DESCRIPTOR|DETERMINISTIC|DIAGNOSTICS|DISCONNECT|DISPATCH|DISTINCT|DOMAIN|DOUBLE|DROP|DYNAMIC|DYNAMIC_FUNCTION|DYNAMIC_FUNCTION_CODE|EACH|ELEMENT|ELSE|END|EQUALS|ESCAPE|EVERY|EXCEPT|EXCEPTION|EXCLUDE|EXCLUDING|EXEC|EXECUTE|EXISTS|EXP|EXTERNAL|EXTRACT|FALSE|FETCH|FILTER|FINAL|FIRST|FLOAT|FLOOR|FOLLOWING|FOR|FOREIGN|FORTRAN|FOUND|FREE|FROM|FULL|FUNCTION|FUSION|GENERAL|GET|GLOBAL|GO|GOTO|GRANT|GRANTED|GROUP|GROUPING|HAVING|HIERARCHY|HOLD|HOUR|IDENTITY|IMMEDIATE|IMPLEMENTATION|IN|INCLUDING|INCREMENT|INDICATOR|INITIALLY|INNER|INOUT|INPUT|INSENSITIVE|INSERT|INSTANCE|INSTANTIABLE|INT|INTEGER|INTERSECT|INTERSECTION|INTERVAL|INTO|INVOKER|IS|ISOLATION|JOIN|KEY|KEY_MEMBER|KEY_TYPE|LANGUAGE|LARGE|LAST|LATERAL|LEADING|LEFT|LENGTH|LEVEL|LIKE|LN|LOCAL|LOCALTIME|LOCALTIMESTAMP|LOCATOR|LOWER|MAP|MATCH|MATCHED|MAX|MAXVALUE|MEMBER|MERGE|MESSAGE_LENGTH|MESSAGE_OCTET_LENGTH|MESSAGE_TEXT|METHOD|MIN|MINUTE|MINVALUE|MOD|MODIFIES|MODULE|MONTH|MORE|MULTISET|MUMPS|NAME|NAMES|NATIONAL|NATURAL|NCHAR|NCLOB|NESTING|NEW|NEXT|NO|NONE|NORMALIZE|NORMALIZED|NOT|NULL|NULLABLE|NULLIF|NULLS|NUMBER|NUMERIC|OBJECT|OCTETS|OCTET_LENGTH|OF|OLD|ON|ONLY|OPEN|OPTION|OPTIONS|OR|ORDER|ORDERING|ORDINALITY|OTHERS|OUT|OUTER|OUTPUT|OVER|OVERLAPS|OVERLAY|OVERRIDING|PAD|PARAMETER|PARAMETER_MODE|PARAMETER_NAME|PARAMETER_ORDINAL_POSITION|PARAMETER_SPECIFIC_CATALOG|PARAMETER_SPECIFIC_NAME|PARAMETER_SPECIFIC_SCHEMA|PARTIAL|PARTITION|PASCAL|PATH|PERCENTILE_CONT|PERCENTILE_DISC|PERCENT_RANK|PLACING|PLI|POSITION|POWER|PRECEDING|PRECISION|PREPARE|PRESERVE|PRIMARY|PRIOR|PRIVILEGES|PROCEDURE|PUBLIC|RANGE|RANK|READ|READS|REAL|RECURSIVE|REF|REFERENCES|REFERENCING|REGR_AVGX|REGR_AVGY|REGR_COUNT|REGR_INTERCEPT|REGR_R2|REGR_SLOPE|REGR_SXX|REGR_SXY|RELATIVE|RELEASE|REPEATABLE|RESTART|RESULT|RETURN|RETURNED_CARDINALITY|RETURNED_LENGTH|RETURNED_OCTET_LENGTH|RETURNED_SQLSTATE|RETURNS|REVOKE|RIGHT|ROLE|ROLLBACK|ROLLUP|ROUTINE|ROUTINE_CATALOG|ROUTINE_NAME|ROUTINE_SCHEMA|ROW|ROWS|ROW_COUNT|ROW_NUMBER|SAVEPOINT|SCALE|SCHEMA|SCHEMA_NAME|SCOPE_CATALOG|SCOPE_NAME|SCOPE_SCHEMA|SCROLL|SEARCH|SECOND|SECTION|SECURITY|SELECT|SELF|SENSITIVE|SEQUENCE|SERIALIZABLE|SERVER_NAME|SESSION|SESSION_USER|SET|SETS|SIMILAR|SIMPLE|SIZE|SMALLINT|SOME|SOURCE|SPACE|SPECIFIC|SPECIFICTYPE|SPECIFIC_NAME|SQL|SQLEXCEPTION|SQLSTATE|SQLWARNING|SQRT|START|STATE|STATEMENT|STATIC|STDDEV_POP|STDDEV_SAMP|STRUCTURE|STYLE|SUBCLASS_ORIGIN|SUBMULTISET|SUBSTRING|SUM|SYMMETRIC|SYSTEM|SYSTEM_USER|TABLE|TABLESAMPLE|TABLE_NAME|TEMPORARY|THEN|TIES|TIME|TIMESTAMP|TIMEZONE_HOUR|TIMEZONE_MINUTE|TO|TOP_LEVEL_COUNT|TRAILING|TRANSACTION|TRANSACTIONS_COMMITTED|TRANSACTIONS_ROLLED_BACK|TRANSACTION_ACTIVE|TRANSFORM|TRANSFORMS|TRANSLATE|TRANSLATION|TREAT|TRIGGER|TRIGGER_CATALOG|TRIGGE+ sed -re 's/^(ABS|ABSOLUTE|ACTION|ADA|ADD|ADMIN|AFTER|ALL|ALLOCATE|ALTER|ALWAYS|AND|ANY|ARE|ARRAY|AS|ASC|ASENSITIVE|ASSERTION|ASSIGNMENT|ASYMMETRIC|AT|ATOMIC|ATTRIBUTE|ATTRIBUTES|AUTHORIZATION|AVG|BEFORE|BEGIN|BERNOULLI|BETWEEN|BIGINT|BINARY|BLOB|BOOLEAN|BOTH|BREADTH|BY|CALL|CALLED|CARDINALITY|CASCADE|CASCADED|CASE|CAST|CATALOG|CATALOG_NAME|CEIL|CEILING|CHAIN|CHAR|CHARACTER|CHARACTERISTICS|CHARACTERS|CHARACTER_LENGTH|CHARACTER_SET_CATALOG|CHARACTER_SET_NAME|CHARACTER_SET_SCHEMA|CHAR_LENGTH|CHECK|CHECKED|CLASS_ORIGIN|CLOB|CLOSE|COALESCE|COBOL|CODE_UNITS|COLLATE|COLLATION|COLLATION_CATALOG|COLLATION_NAME|COLLATION_SCHEMA|COLLECT|COLUMN|COLUMN_NAME|COMMAND_FUNCTION|COMMAND_FUNCTION_CODE|COMMIT|COMMITTED|CONDITION|CONDITION_NUMBER|CONNECT|CONNECTION_NAME|CONSTRAINT|CONSTRAINTS|CONSTRAINT_CATALOG|CONSTRAINT_NAME|CONSTRAINT_SCHEMA|CONSTRUCTORS|CONTAINS|CONTINUE|CONVERT|CORR|CORRESPONDING|COUNT|COVAR_POP|COVAR_SAMP|CREATE|CROSS|CUBE|CUME_DIST|CURRENT|CURRENT_COLLATION|CURRENT_DATE|CURRENT_DEFAULT_TRANSFORM_GROUP|CURRENT_PATH|CURRENT_ROLE|CURRENT_TIME|CURRENT_TIMESTAMP|CURRENT_TRANSFORM_GROUP_FOR_TYPE|CURRENT_USER|CURSOR|CURSOR_NAME|CYCLE|DATA|DATE|DATETIME_INTERVAL_CODE|DATETIME_INTERVAL_PRECISION|DAY|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFAULTS|DEFERRABLE|DEFERRED|DEFINED|DEFINER|DEGREE|DELETE|DENSE_RANK|DEPTH|DEREF|DERIVED|DESC|DESCRIBE|DESCRIPTOR|DETERMINISTIC|DIAGNOSTICS|DISCONNECT|DISPATCH|DISTINCT|DOMAIN|DOUBLE|DROP|DYNAMIC|DYNAMIC_FUNCTION|DYNAMIC_FUNCTION_CODE|EACH|ELEMENT|ELSE|END|EQUALS|ESCAPE|EVERY|EXCEPT|EXCEPTION|EXCLUDE|EXCLUDING|EXEC|EXECUTE|EXISTS|EXP|EXTERNAL|EXTRACT|FALSE|FETCH|FILTER|FINAL|FIRST|FLOAT|FLOOR|FOLLOWING|FOR|FOREIGN|FORTRAN|FOUND|FREE|FROM|FULL|FUNCTION|FUSION|GENERAL|GET|GLOBAL|GO|GOTO|GRANT|GRANTED|GROUP|GROUPING|HAVING|HIERARCHY|HOLD|HOUR|IDENTITY|IMMEDIATE|IMPLEMENTATION|IN|INCLUDING|INCREMENT|INDICATOR|INITIALLY|INNER|INOUT|INPUT|INSENSITIVE|INSERT|INSTANCE|INSTANTIABLE|INT|INTEGER|INTERSECT|INTERSECTION|INTERVAL|INTO|INVOKER|IS|ISOLATION|JOIN|KEY|KEY_MEMBER|KEY_TYPE|LANGUAGE|LARGE|LAST|LATERAL|LEADING|LEFT|LENGTH|LEVEL|LIKE|LN|LOCAL|LOCALTIME|LOCALTIMESTAMP|LOCATOR|LOWER|MAP|MATCH|MATCHED|MAX|MAXVALUE|MEMBER|MERGE|MESSAGE_LENGTH|MESSAGE_OCTET_LENGTH|MESSAGE_TEXT|METHOD|MIN|MINUTE|MINVALUE|MOD|MODIFIES|MODULE|MONTH|MORE|MULTISET|MUMPS|NAME|NAMES|NATIONAL|NATURAL|NCHAR|NCLOB|NESTING|NEW|NEXT|NO|NONE|NORMALIZE|NORMALIZED|NOT|NULL|NULLABLE|NULLIF|NULLS|NUMBER|NUMERIC|OBJECT|OCTETS|OCTET_LENGTH|OF|OLD|ON|ONLY|OPEN|OPTION|OPTIONS|OR|ORDER|ORDERING|ORDINALITY|OTHERS|OUT|OUTER|OUTPUT|OVER|OVERLAPS|OVERLAY|OVERRIDING|PAD|PARAMETER|PARAMETER_MODE|PARAMETER_NAME|PARAMETER_ORDINAL_POSITION|PARAMETER_SPECIFIC_CATALOG|PARAMETER_SPECIFIC_NAME|PARAMETER_SPECIFIC_SCHEMA|PARTIAL|PARTITION|PASCAL|PATH|PERCENTILE_CONT|PERCENTILE_DISC|PERCENT_RANK|PLACING|PLI|POSITION|POWER|PRECEDING|PRECISION|PREPARE|PRESERVE|PRIMARY|PRIOR|PRIVILEGES|PROCEDURE|PUBLIC|RANGE|RANK|READ|READS|REAL|RECURSIVE|REF|REFERENCES|REFERENCING|REGR_AVGX|REGR_AVGY|REGR_COUNT|REGR_INTERCEPT|REGR_R2|REGR_SLOPE|REGR_SXX|REGR_SXY|RELATIVE|RELEASE|REPEATABLE|RESTART|RESULT|RETURN|RETURNED_CARDINALITY|RETURNED_LENGTH|RETURNED_OCTET_LENGTH|RETURNED_SQLSTATE|RETURNS|REVOKE|RIGHT|ROLE|ROLLBACK|ROLLUP|ROUTINE|ROUTINE_CATALOG|ROUTINE_NAME|ROUTINE_SCHEMA|ROW|ROWS|ROW_COUNT|ROW_NUMBER|SAVEPOINT|SCALE|SCHEMA|SCHEMA_NAME|SCOPE_CATALOG|SCOPE_NAME|SCOPE_SCHEMA|SCROLL|SEARCH|SECOND|SECTION|SECURITY|SELECT|SELF|SENSITIVE|SEQUENCE|SERIALIZABLE|SERVER_NAME|SESSION|SESSION_USER|SET|SETS|SIMILAR|SIMPLE|SIZE|SMALLINT|SOME|SOURCE|SPACE|SPECIFIC|SPECIFICTYPE|SPECIFIC_NAME|SQL|SQLEXCEPTION|SQLSTATE|SQLWARNING|SQRT|START|STATE|STATEMENT|STATIC|STDDEV_POP|STDDEV_SAMP|STRUCTURE|STYLE|SUBCLASS_ORIGIN|SUBMULTISET|SUBSTRING|SUM|SYMMETRIC|SYSTEM|SYSTEM_USER|TABLE|TABLESAMPLE|TABLE_NAME|TEMPORARY|THEN|TIES|TIME|TIMESTAMP|TIMEZONE_HOUR|TIMEZONE_MINUTE|TO|TOP_LEVEL_COUNT|TRAILING|TRANSACTION|TRANSACTIONS_COMMITTED|TRANSACTIONS_ROLLED_BACK|TRANSACTION_ACTIVE|TRANSFORM|TRANSFORMS|TRANSLATE|TRANSLATION|TREAT|TRIGGER|TRIGGER_CATALOG|TRIGGER_NAME|TRIGGER_SCHEMA|TRIM|TRUE|TYPE|UNBOUNDED|UNCOMMITTED|UNDER|UNION|UNIQUE|UNKNOWN|UNNAMED|UNNEST|UPDATE|UPPER|USAGE|USER|USER_DEFINED_TYPE_CATALOG|USER_DEFINED_TYPE_CODE|USER_DEFINED_TYPE_NAME|USER_DEFINED_TYPE_SCHEMA|USING|VALUE|VALUES|VARCHAR|VARYING|VAR_POP|VAR_SAMP|VIEW|WHEN|WHENEVER|WHERE|WIDTH_BUCKET|WINDOW|WITH|WITHIN|WITHOUT|WORK|WRITE|YEAR|ZONE)$/str_p("&")/t'R_NAME|TRIGGER_SCHEMA|TRIM|TRUE|TYPE|UNBOUNDED|UNCOMMITTED|UNDER|UNION|UNIQUE|UNKNOWN|UNNAMED|UNNEST|UPDATE|UPPER|USAGE|USER|USER_DEFINED_TYPE_CATALOG|USER_DEFINED_TYPE_CODE|USER_DEFINED_TYPE_NAME|USER_DEFINED_TYPE_SCHEMA|USING|VALUE|VALUES|VARCHAR|VARYING|VAR_POP|VAR_SAMP|VIEW|WHEN|WHENEVER|WHERE|WIDTH_BUCKET|WINDOW|WITH|WITHIN|WITHOUT|WORK|WRITE|YEAR|ZONE)(\W|$),\1(\n\2\n)\3,gtNbu+ sed -re '/\w+ *=/,/;;;/ {s,(\||=|^) (.)$,\1ch_p('\''\2'\''),}s,'\'''\'''\'','\''\\'\'''\'','+ sed -nre '/\w+ *=.*/,/;;;/M {:zN/;;;/! {bz}s,\n,,g}s,(\||>>)(\(*)(ch_p|str_p),\1\2,gp''BNF >> Grammar >> for >> ISO/IEC >> 9075-2:(2003 >> -Database >> Language >>(str_p("SQL")) >>(str_p("SQL"))-2003 >>(str_p("SQL")))/Foundation=====================================================================================@(#)$Id:sql-2003-2.bnf,v >> 1.11 >> 2005/07/13 >> 18:37:30 >> jleffler >> Exp$;;;SQLTerminalCharacter = SQLLanguageCharacter;;;SQLLanguageCharacter = SimpleLatinLetter | Digit | SQLSpecialCharacter;;;SimpleLatinLetter = SimpleLatinUpperCaseLetter | SimpleLatinLowerCaseLetter;;;SimpleLatinUpperCaseLetter =ch_p('A') |('B') |('C') |('D') |('E') |('F') |('G') |('H') |('I') |('J') |('K') |('L') |('M') |('N') |('O') |('P') |('Q') |('R') |('S') |('T') |('U') |('V') |('W') |('X') |('Y') |('Z');;;SimpleLatinLowerCaseLetter =ch_p('A') |('B') |('C') |('D') |('E') |('F') |('G') |('H') |('I') |('J') |('K') |('L') |('M') |('N') |('O') |('P') |('Q') |('R') |('S') |('T') |('U') |('V') |('W') |('X') |('Y') |('Z');;;Digit =ch_p('0') |('1') |('2') |('3') |('4') |('5') |('6') |('7') |('8') |('9');;;SQLSpecialCharacter = Space | DoubleQuote | Percent | Ampersand | Quote | LeftParen | RightParen | Asterisk | PlusSign | Comma | MinusSign | Period | Solidus | Colon | Semicolon | LessThanOperator | EqualsOperator | GreaterThanOperator | QuestionMark | LeftBracket | RightBracket | Circumflex | Underscore | VerticalBar | LeftBrace | RightBrace;;;Space = !!See >> the >> Syntax >> Rules;;;DoubleQuote =ch_p('"');;;Percent =ch_p('%');;;Ampersand =ch_p('&');;;Quote =ch_p('\'');;;LeftParen =ch_p('(');;;RightParen =ch_p(')');;;Asterisk =ch_p('*');;;PlusSign =ch_p('+');;;Comma =ch_p(',');;;MinusSign =ch_p('-');;;Period =ch_p('.');;;Solidus =ch_p('/');;;Colon =ch_p(':');;;Semicolon =ch_p(';');;;LessThanOperator =ch_p('(');;;EqualsOperator =ch_p('=');;;GreaterThanOperator =ch_p(')');;;QuestionMark =ch_p('?');;;Token = NondelimiterToken | DelimiterToken;;;NondelimiterToken = RegularIdentifier | KeyWord | UnsignedNumericLiteral | NationalCharacterStringLiteral | BitStringLiteral | HexStringLiteral | LargeObjectLengthToken | Multiplier;;;RegularIdentifier = IdentifierBody;;;IdentifierBody = (IdentifierStart >> *IdentifierPart);;;IdentifierPart = IdentifierStart | IdentifierExtend;;;IdentifierStart = !!See >> The >> Syntax >> Rules;;;IdentifierExtend = !!See >> The >> Syntax >> Rules;;;LargeObjectLengthToken = +Digit >> Multiplier;;;Multiplier =ch_p('K') |('M') |('G');;;UnicodeDelimitedIdentifier = (U >> Ampersand >> DoubleQuote >> +UnicodeDelimiterBody >> DoubleQuote >> !(str_p("ESCAPE")) >> EscapeCharacter);;;UnicodeDelimiterBody = +UnicodeIdentifierPart;;;UnicodeIdentifierPart = DelimitedIdentifierPart | UnicodeEscapeValue;;;UnicodeEscapeValue = Unicode4DigitEscapeValue | Unicode6DigitEscapeValue;;;Unicode4DigitEscapeValue = EscapeCharacter >> Hexit >> Hexit >> Hexit >> Hexit;;;Unicode6DigitEscapeValue = EscapeCharacter >> PlusSign >> Hexit >> Hexit >> Hexit >> Hexit >> Hexit >> Hexit;;;EscapeCharacter = !!See >> The >> Syntax >> Rules;;;NondoublequoteCharacter = !!See >> The >> Syntax >> Rules;;;DoublequoteSymbol = DoubleQuote >> DoubleQuote;;;DelimiterToken = CharacterStringLiteral | DateString | TimeString | TimestampString | IntervalString | DelimitedIdentifier | UnicodeDelimitedIdentifier | SQLSpecialCharacter | NotEqualsOperator | GreaterThanOrEqualsOperator | LessThanOrEqualsOperator | ConcatenationOperator | RightArrow | LeftBracketTrigraph | RightBracketTrigraph | DoubleColon | DoublePeriod;;;NotEqualsOperator = LessThanOperator >> GreaterThanOperator;;;GreaterThanOrEqualsOperator = GreaterThanOperator >> EqualsOperator;;;LessThanOrEqualsOperator = LessThanOperator >> EqualsOperator;;;ConcatenationOperator = VerticalBar >> VerticalBar;;;RightArrow = MinusSign >> GreaterThanOperator;;;DoubleColon = Colon >> Colon;;;DoublePeriod = Period >> Period;;;Separator = +(Comment | WhiteSpace);;;Comment = SimpleComment | BracketedComment;;;SimpleComment = (SimpleCommentIntroducer >> *CommentCharacter >> Newline);;;SimpleCommentIntroducer = (MinusSign >> MinusSign >> *MinusSign);;;BracketedComment = BracketedCommentIntroducer >> BracketedCommentContents >> BracketedCommentTerminator;;;BracketedCommentIntroducer = Slash >> Asterisk;;;BracketedCommentTerminator = Asterisk >> Slash;;;BracketedCommentContents = *((CommentCharacter | Separator));;;CommentCharacter = NonquoteCharacter | Quote;;;Newline = !!See >> the >> Syntax >> Rules;;;KeyWord = ReservedWord | NonReservedWord;;;NonReservedWord =ch_p('A') |(("ABS")) |(("ABSOLUTE")) |(("ACTION")) |(("ADA")) |(("ADMIN")) |(("AFTER")) |(("ALWAYS")) |(("ASC")) |(("ASSERTION")) |(("ASSIGNMENT")) |(("ATTRIBUTE")) |(("ATTRIBUTES")) |(("AVG")) |(("BEFORE")) |(("BERNOULLI")) |(("BREADTH")) |('C') |(("CARDINALITY")) |(("CASCADE")) |(("CATALOG")) |(("CATALOG_NAME")) |(("CEIL")) |(("CEILING")) |(("CHAIN")) |(("CHARACTERISTICS")) |(("CHARACTERS")) |(("CHARACTER_LENGTH")) |(("CHARACTER_SET_CATALOG")) |(("CHARACTER_SET_NAME")) |(("CHARACTER_SET_SCHEMA")) |(("CHAR_LENGTH")) |(("CHECKED")) |(("CLASS_ORIGIN")) |(("COALESCE")) |(("COBOL")) |(("CODE_UNITS")) |(("COLLATION")) |(("COLLATION_CATALOG")) |(("COLLATION_NAME")) |(("COLLATION_SCHEMA")) |(("COLLECT")) |(("COLUMN_NAME")) |(("COMMAND_FUNCTION")) |(("COMMAND_FUNCTION_CODE")) |(("COMMITTED")) |(("CONDITION")) |(("CONDITION_NUMBER")) |(("CONNECTION_NAME")) |(("CONSTRAINTS")) |(("CONSTRAINT_CATALOG")) |(("CONSTRAINT_NAME")) |(("CONSTRAINT_SCHEMA")) |(("CONSTRUCTORS")) |(("CONTAINS")) |(("CONVERT")) |(("CORR")) |(("COUNT")) |(("COVAR_POP")) |(("COVAR_SAMP")) |(("CUME_DIST")) |(("CURRENT_COLLATION")) |(("CURSOR_NAME")) |(("DATA")) |(("DATETIME_INTERVAL_CODE")) |(("DATETIME_INTERVAL_PRECISION")) |(("DEFAULTS")) |(("DEFERRABLE")) |(("DEFERRED")) |(("DEFINED")) |(("DEFINER")) |(("DEGREE")) |(("DENSE_RANK")) |(("DEPTH")) |(("DERIVED")) |(("DESC")) |(("DESCRIPTOR")) |(("DIAGNOSTICS")) |(("DISPATCH")) |(("DOMAIN")) |(("DYNAMIC_FUNCTION")) |(("DYNAMIC_FUNCTION_CODE")) |(("EQUALS")) |(("EVERY")) |(("EXCEPTION")) |(("EXCLUDE")) |(("EXCLUDING")) |(("EXP")) |(("EXTRACT")) |(("FINAL")) |(("FIRST")) |(("FLOOR")) |(("FOLLOWING")) |(("FORTRAN")) |(("FOUND")) |(("FUSION")) |('G') |(("GENERAL")) |(("GO")) |(("GOTO")) |(("GRANTED")) |(("HIERARCHY")) |(("IMPLEMENTATION")) |(("INCLUDING")) |(("INCREMENT")) |(("INITIALLY")) |(("INSTANCE")) |(("INSTANTIABLE")) |(("INTERSECTION")) |(("INVOKER")) |(("ISOLATION")) |('K') |(("KEY")) |(("KEY_MEMBER")) |(("KEY_TYPE")) |(("LAST")) |(("LENGTH")) |(("LEVEL")) |(("LN")) |(("LOCATOR")) |(("LOWER")) |('M') |(("MAP")) |(("MATCHED")) |(("MAX")) |(("MAXVALUE")) |(("MESSAGE_LENGTH")) |(("MESSAGE_OCTET_LENGTH")) |(("MESSAGE_TEXT")) |(("MIN")) |(("MINVALUE")) |(("MOD")) |(("MORE")) |(("MUMPS")) |(("NAME")) |(("NAMES")) |(("NESTING")) |(("NEXT")) |(("NORMALIZE")) |(("NORMALIZED")) |(("NULLABLE")) |(("NULLIF")) |(("NULLS")) |(("NUMBER")) |(("OBJECT")) |(("OCTETS")) |(("OCTET_LENGTH")) |(("OPTION")) |(("OPTIONS")) |(("ORDERING")) |(("ORDINALITY")) |(("OTHERS")) |(("OVERLAY")) |(("OVERRIDING")) |(("PAD")) |(("PARAMETER_MODE")) |(("PARAMETER_NAME")) |(("PARAMETER_ORDINAL_POSITION")) |(("PARAMETER_SPECIFIC_CATALOG")) |(("PARAMETER_SPECIFIC_NAME")) |(("PARAMETER_SPECIFIC_SCHEMA")) |(("PARTIAL")) |(("PASCAL")) |(("PATH")) |(("PERCENTILE_CONT")) |(("PERCENTILE_DISC")) |(("PERCENT_RANK")) |(("PLACING")) |(("PLI")) |(("POSITION")) |(("POWER")) |(("PRECEDING")) |(("PRESERVE")) |(("PRIOR")) |(("PRIVILEGES")) |(("PUBLIC")) |(("RANK")) |(("READ")) |(("REGR_AVGX")) |(("REGR_AVGY")) |(("REGR_COUNT")) |(("REGR_INTERCEPT")) |(("REGR_R2")) |(("REGR_SLOPE")) |(("REGR_SXX")) |(("REGR_SXY")) |(("REGR_SXY")) |(("RELATIVE")) |(("REPEATABLE")) |(("RESTART")) |(("RESULT")) |(("RETURNED_CARDINALITY")) |(("RETURNED_LENGTH")) |(("RETURNED_OCTET_LENGTH")) |(("RETURNED_SQLSTATE")) |(("ROLE")) |(("ROUTINE")) |(("ROUTINE_CATALOG")) |(("ROUTINE_NAME")) |(("ROUTINE_SCHEMA")) |(("ROW_COUNT")) |(("ROW_NUMBER")) |(("SCALE")) |(("SCHEMA")) |(("SCHEMA_NAME")) |(("SCOPE_CATALOG")) |(("SCOPE_NAME")) |(("SCOPE_SCHEMA")) |(("SECTION")) |(("SECURITY")) |(("SELF")) |(("SEQUENCE")) |(("SERIALIZABLE")) |(("SERVER_NAME")) |(("SESSION")) |(("SETS")) |(("SIMPLE")) |(("SIZE")) |(("SOURCE")) |(("SPACE")) |(("SPECIFIC_NAME")) |(("SQRT")) |(("STATE")) |(("STATEMENT")) |(("STDDEV_POP")) |(("STDDEV_SAMP")) |(("STRUCTURE")) |(("STYLE")) |(("SUBCLASS_ORIGIN")) |(("SUBSTRING")) |(("SUM")) |(("TABLESAMPLE")) |(("TABLE_NAME")) |(("TEMPORARY")) |(("TIES")) |(("TOP_LEVEL_COUNT")) |(("TRANSACTION")) |(("TRANSACTIONS_COMMITTED")) |(("TRANSACTIONS_ROLLED_BACK")) |(("TRANSACTION_ACTIVE")) |(("TRANSFORM")) |(("TRANSFORMS")) |(("TRANSLATE")) |(("TRIGGER_CATALOG")) |(("TRIGGER_NAME")) |(("TRIGGER_SCHEMA")) |(("TRIM")) |(("TYPE")) |(("UNBOUNDED")) |(("UNCOMMITTED")) |(("UNDER")) |(("UNNAMED")) |(("UPPER")) |(("USAGE")) |(("USER_DEFINED_TYPE_CATALOG")) |(("USER_DEFINED_TYPE_CODE")) |(("USER_DEFINED_TYPE_NAME")) |(("USER_DEFINED_TYPE_SCHEMA")) |(("VAR_POP")) |(("VAR_SAMP")) |(("VIEW")) |(("WIDTH_BUCKET")) |(("WORK")) |(("WRITE")) |(("ZONE"));;;ReservedWord =(str_p("ADD")) |(("ALL")) |(("ALLOCATE")) |(("ALTER")) |(("AND")) |(("ANY")) |(("ARE")) |(("ARRAY")) |(("AS")) |(("ASENSITIVE")) |(("ASYMMETRIC")) |(("AT")) |(("ATOMIC")) |(("AUTHORIZATION")) |(("BEGIN")) |(("BETWEEN")) |(("BIGINT")) |(("BINARY")) |(("BLOB")) |(("BOOLEAN")) |(("BOTH")) |(("BY")) |(("CALL")) |(("CALLED")) |(("CASCADED")) |(("CASE")) |(("CAST")) |(("CHAR")) |(("CHARACTER")) |(("CHECK")) |(("CLOB")) |(("CLOSE")) |(("COLLATE")) |(("COLUMN")) |(("COMMIT")) |(("CONNECT")) |(("CONSTRAINT")) |(("CONTINUE")) |(("CORRESPONDING")) |(("CREATE")) |(("CROSS")) |(("CUBE")) |(("CURRENT")) |(("CURRENT_DATE")) |(("CURRENT_DEFAULT_TRANSFORM_GROUP")) |(("CURRENT_PATH")) |(("CURRENT_ROLE")) |(("CURRENT_TIME")) |(("CURRENT_TIMESTAMP")) |(("CURRENT_TRANSFORM_GROUP_FOR_TYPE")) |(("CURRENT_USER")) |(("CURSOR")) |(("CYCLE")) |(("DATE")) |(("DAY")) |(("DEALLOCATE")) |(("DEC")) |(("DECIMAL")) |(("DECLARE")) |(("DEFAULT")) |(("DELETE")) |(("DEREF")) |(("DESCRIBE")) |(("DETERMINISTIC")) |(("DISCONNECT")) |(("DISTINCT")) |(("DOUBLE")) |(("DROP")) |(("DYNAMIC")) |(("EACH")) |(("ELEMENT")) |(("ELSE")) |(("END")) | ((str_p("END")) >> -(str_p("EXEC"))) |(("ESCAPE")) |(("EXCEPT")) |(("EXEC")) |(("EXECUTE")) |(("EXISTS")) |(("EXTERNAL")) |(("FALSE")) |(("FETCH")) |(("FILTER")) |(("FLOAT")) |(("FOR")) |(("FOREIGN")) |(("FREE")) |(("FROM")) |(("FULL")) |(("FUNCTION")) |(("GET")) |(("GLOBAL")) |(("GRANT")) |(("GROUP")) |(("GROUPING")) |(("HAVING")) |(("HOLD")) |(("HOUR")) |(("IDENTITY")) |(("IMMEDIATE")) |(("IN")) |(("INDICATOR")) |(("INNER")) |(("INOUT")) |(("INPUT")) |(("INSENSITIVE")) |(("INSERT")) |(("INT")) |(("INTEGER")) |(("INTERSECT")) |(("INTERVAL")) |(("INTO")) |(("IS")) |(("ISOLATION")) |(("JOIN")) |(("LANGUAGE")) |(("LARGE")) |(("LATERAL")) |(("LEADING")) |(("LEFT")) |(("LIKE")) |(("LOCAL")) |(("LOCALTIME")) |(("LOCALTIMESTAMP")) |(("MATCH")) |(("MEMBER")) |(("MERGE")) |(("METHOD")) |(("MINUTE")) |(("MODIFIES")) |(("MODULE")) |(("MONTH")) |(("MULTISET")) |(("NATIONAL")) |(("NATURAL")) |(("NCHAR")) |(("NCLOB")) |(("NEW")) |(("NO")) |(("NONE")) |(("NOT")) |(("NULL")) |(("NUMERIC")) |(("OF")) |(("OLD")) |(("ON")) |(("ONLY")) |(("OPEN")) |(("OR")) |(("ORDER")) |(("OUT")) |(("OUTER")) |(("OUTPUT")) |(("OVER")) |(("OVERLAPS")) |(("PARAMETER")) |(("PARTITION")) |(("PRECISION")) |(("PREPARE")) |(("PRIMARY")) |(("PROCEDURE")) |(("RANGE")) |(("READS")) |(("REAL")) |(("RECURSIVE")) |(("REF")) |(("REFERENCES")) |(("REFERENCING")) |(("RELEASE")) |(("RETURN")) |(("RETURNS")) |(("REVOKE")) |(("RIGHT")) |(("ROLLBACK")) |(("ROLLUP")) |(("ROW")) |(("ROWS")) |(("SAVEPOINT")) |(("SCROLL")) |(("SEARCH")) |(("SECOND")) |(("SELECT")) |(("SENSITIVE")) |(("SESSION_USER")) |(("SET")) |(("SIMILAR")) |(("SMALLINT")) |(("SOME")) |(("SPECIFIC")) |(("SPECIFICTYPE")) |(("SQL")) |(("SQLEXCEPTION")) |(("SQLSTATE")) |(("SQLWARNING")) |(("START")) |(("STATIC")) |(("SUBMULTISET")) |(("SYMMETRIC")) |(("SYSTEM")) |(("SYSTEM_USER")) |(("TABLE")) |(("THEN")) |(("TIME")) |(("TIMESTAMP")) |(("TIMEZONE_HOUR")) |(("TIMEZONE_MINUTE")) |(("TO")) |(("TRAILING")) |(("TRANSLATION")) |(("TREAT")) |(("TRIGGER")) |(("TRUE")) |(("UNION")) |(("UNIQUE")) |(("UNKNOWN")) |(("UNNEST")) |(("UPDATE")) |(("USER")) |(("USING")) |(("VALUE")) |(("VALUES")) |(("VARCHAR")) |(("VARYING")) |(("WHEN")) |(("WHENEVER")) |(("WHERE")) |(("WINDOW")) |(("WITH")) |(("WITHIN")) |(("WITHOUT")) |(("YEAR"));;;Literal = SignedNumericLiteral | GeneralLiteral;;;UnsignedLiteral = UnsignedNumericLiteral | GeneralLiteral;;;GeneralLiteral = CharacterStringLiteral | NationalCharacterStringLiteral | UnicodeCharacterStringLiteral | BinaryStringLiteral | DatetimeLiteral | IntervalLiteral | BooleanLiteral;;;CharacterStringLiteral = !(Introducer >> CharacterSetSpecification >> Quote >> *CharacterRepresentation >> Quote >> *((Separator >> Quote >> *CharacterRepresentation >> Quote)));;;Introducer = Underscore;;;CharacterRepresentation = NonquoteCharacter | QuoteSymbol;;;NonquoteCharacter = !!See >> The >> Syntax >> Rules;;;QuoteSymbol = Quote >> Quote;;;NationalCharacterStringLiteral = (N >> Quote >> *CharacterRepresentation >> Quote >> *((Separator >> Quote >> *CharacterRepresentation >> Quote)));;;UnicodeCharacterStringLiteral = !(Introducer >> CharacterSetSpecification >> U >> Ampersand >> Quote >> *UnicodeRepresentation >> Quote >> *((Separator >> Quote >> *UnicodeRepresentation >> Quote)) >> !(str_p("ESCAPE")) >> EscapeCharacter);;;UnicodeRepresentation = CharacterRepresentation | UnicodeEscapeValue;;;BinaryStringLiteral = (X >> Quote >> *(Hexit >> Hexit) >> Quote >> *((Separator >> Quote >> *(Hexit >> Hexit) >> Quote)) >> !(str_p("ESCAPE")) >> EscapeCharacter);;;Hexit = Digit |('A') |('B') |('C') |('D') |('E') |('F') |('A') |('B') |('C') |('D') |('E') |('F');;;SignedNumericLiteral = !(Sign >> UnsignedNumericLiteral);;;UnsignedNumericLiteral = ExactNumericLiteral | ApproximateNumericLiteral;;;ExactNumericLiteral = (UnsignedInteger >> !(Period >> !UnsignedInteger)) | Period >> UnsignedInteger;;;Sign = PlusSign | MinusSign;;;ApproximateNumericLiteral = Mantissa >> E >> Exponent;;;Mantissa = ExactNumericLiteral;;;Exponent = SignedInteger;;;SignedInteger = !(Sign >> UnsignedInteger);;;DatetimeLiteral = DateLiteral | TimeLiteral | TimestampLiteral;;;DateLiteral =(str_p("DATE")) >> DateString;;;TimeLiteral =(str_p("TIME")) >> TimeString;;;TimestampLiteral =(str_p("TIMESTAMP")) >> TimestampString;;;DateString = Quote >> UnquotedDateString >> Quote;;;TimeString = Quote >> UnquotedTimeString >> Quote;;;TimestampString = Quote >> UnquotedTimestampString >> Quote;;;TimeZoneInterval = Sign >> HoursValue >> Colon >> MinutesValue;;;DateValue = YearsValue >> MinusSign >> MonthsValue >> MinusSign >> DaysValue;;;TimeValue = HoursValue >> Colon >> MinutesValue >> Colon >> SecondsValue;;;IntervalLiteral = ((str_p("INTERVAL")) >> !Sign >> IntervalString >> IntervalQualifier);;;IntervalString = Quote >> UnquotedIntervalString >> Quote;;;UnquotedDateString = DateValue;;;UnquotedTimeString = (TimeValue >> !TimeZoneInterval);;;UnquotedTimestampString = UnquotedDateString >> Space >> UnquotedTimeString;;;UnquotedIntervalString = !(Sign >> YearMonthLiteral | DayTimeLiteral);;;YearMonthLiteral = YearsValue | !(YearsValue >> MinusSign >> MonthsValue);;;DayTimeLiteral = DayTimeInterval | TimeInterval;;;DayTimeInterval = (DaysValue >> !(Space >> HoursValue >> !(Colon >> MinutesValue >> !Colon >> SecondsValue)));;;TimeInterval = (HoursValue >> !(Colon >> MinutesValue >> !Colon >> SecondsValue)) | (MinutesValue >> !Colon >> SecondsValue) | SecondsValue;;;YearsValue = DatetimeValue;;;MonthsValue = DatetimeValue;;;DaysValue = DatetimeValue;;;HoursValue = DatetimeValue;;;MinutesValue = DatetimeValue;;;SecondsValue = (SecondsIntegerValue >> !(Period >> !SecondsFraction));;;SecondsIntegerValue = UnsignedInteger;;;SecondsFraction = UnsignedInteger;;;DatetimeValue = UnsignedInteger;;;BooleanLiteral =(str_p("TRUE")) |(("FALSE")) |(("UNKNOWN"));;;Identifier = ActualIdentifier;;;ActualIdentifier = RegularIdentifier | DelimitedIdentifier;;;SQLLanguageIdentifier = (SQLLanguageIdentifierStart >> *(Underscore | SQLLanguageIdentifierPart));;;SQLLanguageIdentifierStart = SimpleLatinLetter;;;SQLLanguageIdentifierPart = SimpleLatinLetter | Digit;;;AuthorizationIdentifier = RoleName | UserIdentifier;;;TableName = LocalOrSchemaQualifiedName;;;DomainName = SchemaQualifiedName;;;SchemaName = !(CatalogName >> Period >> UnqualifiedSchemaName);;;CatalogName = Identifier;;;SchemaQualifiedName = !(SchemaName >> Period >> QualifiedIdentifier);;;LocalOrSchemaQualifiedName = !(LocalOrSchemaQualifier >> Period >> QualifiedIdentifier);;;LocalOrSchemaQualifier = SchemaName |(("MODULE"));;;QualifiedIdentifier = Identifier;;;ColumnName = Identifier;;;CorrelationName = Identifier;;;QueryName = Identifier;;;SQLClientModuleName = Identifier;;;ProcedureName = Identifier;;;SchemaQualifiedRoutineName = SchemaQualifiedName;;;MethodName = Identifier;;;SpecificName = SchemaQualifiedName;;;CursorName = LocalQualifiedName;;;LocalQualifiedName = !(LocalQualifier >> Period >> QualifiedIdentifier);;;LocalQualifier =(str_p("MODULE"));;;HostParameterName = Colon >> Identifier;;;SQLParameterName = Identifier;;;ConstraintName = SchemaQualifiedName;;;ExternalRoutineName = Identifier | CharacterStringLiteral;;;TriggerName = SchemaQualifiedName;;;CollationName = SchemaQualifiedName;;;CharacterSetName = !(SchemaName >> Period >> SQLLanguageIdentifier);;;TransliterationName = SchemaQualifiedName;;;TranscodingName = SchemaQualifiedName;;;UserDefinedTypeName = SchemaQualifiedTypeName;;;SchemaResolvedUserDefinedTypeName = UserDefinedTypeName;;;SchemaQualifiedTypeName = !(SchemaName >> Period >> QualifiedIdentifier);;;AttributeName = Identifier;;;FieldName = Identifier;;;SavepointName = Identifier;;;SequenceGeneratorName = SchemaQualifiedName;;;RoleName = Identifier;;;UserIdentifier = Identifier;;;ConnectionName = SimpleValueSpecification;;;SQLServerName = SimpleValueSpecification;;;ConnectionUserName = SimpleValueSpecification;;;SQLStatementName = StatementName | ExtendedStatementName;;;StatementName = Identifier;;;ExtendedStatementName = !(ScopeOption >> SimpleValueSpecification);;;DynamicCursorName = CursorName | ExtendedCursorName;;;ExtendedCursorName = !(ScopeOption >> SimpleValueSpecification);;;DescriptorName = !(ScopeOption >> SimpleValueSpecification);;;ScopeOption =(str_p("GLOBAL")) |(("LOCAL"));;;WindowName = Identifier;;;DataType = PredefinedType | RowType | PathResolvedUserDefinedTypeName | ReferenceType | CollectionType;;;PredefinedType = (CharacterStringType >> !(str_p("CHARACTER")) >>(("SET")) >> CharacterSetSpecification >> !CollateClause) | (NationalCharacterStringType >> !CollateClause) | BinaryLargeObjectStringType | NumericType | BooleanType | DatetimeType | IntervalType;;;CharacterStringType = ((str_p("CHARACTER")) >> !LeftParen >> Length >> RightParen) | ((str_p("CHAR")) >> !LeftParen >> Length >> RightParen) |(("CHARACTER")) >>(("VARYING")) >> LeftParen >> Length >> RightParen |(("CHAR")) >>(("VARYING")) >> LeftParen >> Length >> RightParen |(("VARCHAR")) >> LeftParen >> Length >> RightParen | ((str_p("CHARACTER")) >>(("LARGE")) >>(("OBJECT")) >> !LeftParen >> LargeObjectLength >> RightParen) | ((str_p("CHAR")) >>(("LARGE")) >>(("OBJECT")) >> !LeftParen >> LargeObjectLength >> RightParen) | ((str_p("CLOB")) >> !LeftParen >> LargeObjectLength >> RightParen);;;NationalCharacterStringType = ((str_p("NATIONAL")) >>(("CHARACTER")) >> !LeftParen >> Length >> RightParen) | ((str_p("NATIONAL")) >>(("CHAR")) >> !LeftParen >> Length >> RightParen) | ((str_p("NCHAR")) >> !LeftParen >> Length >> RightParen) |(("NATIONAL")) >>(("CHARACTER")) >>(("VARYING")) >> LeftParen >> Length >> RightParen |(("NATIONAL")) >>(("CHAR")) >>(("VARYING")) >> LeftParen >> Length >> RightParen |(("NCHAR")) >>(("VARYING")) >> LeftParen >> Length >> RightParen | ((str_p("NATIONAL")) >>(("CHARACTER")) >>(("LARGE")) >>(("OBJECT")) >> !LeftParen >> LargeObjectLength >> RightParen) | ((str_p("NCHAR")) >>(("LARGE")) >>(("OBJECT")) >> !LeftParen >> LargeObjectLength >> RightParen) | ((str_p("NCLOB")) >> !LeftParen >> LargeObjectLength >> RightParen);;;BinaryLargeObjectStringType = ((str_p("BINARY")) >>(("LARGE")) >>(("OBJECT")) >> !LeftParen >> LargeObjectLength >> RightParen) | ((str_p("BLOB")) >> !LeftParen >> LargeObjectLength >> RightParen);;;NumericType = ExactNumericType | ApproximateNumericType;;;ExactNumericType = ((str_p("NUMERIC")) >> !(LeftParen >> Precision >> !Comma >> Scale >> RightParen)) | ((str_p("DECIMAL")) >> !(LeftParen >> Precision >> !Comma >> Scale >> RightParen)) | ((str_p("DEC")) >> !(LeftParen >> Precision >> !Comma >> Scale >> RightParen)) |(("SMALLINT")) |(("INTEGER")) |(("INT")) |(("BIGINT"));;;ApproximateNumericType = ((str_p("FLOAT")) >> !LeftParen >> Precision >> RightParen) |(("REAL")) |(("DOUBLE")) >>(("PRECISION"));;;Length = UnsignedInteger;;;LargeObjectLength = (UnsignedInteger >> !Multiplier >> !CharLengthUnits) | (LargeObjectLengthToken >> !CharLengthUnits);;;CharLengthUnits =(str_p("CHARACTERS")) |(("CODE_UNITS")) |(("OCTETS"));;;Precision = UnsignedInteger;;;Scale = UnsignedInteger;;;BooleanType =(str_p("BOOLEAN"));;;DatetimeType =(str_p("DATE")) | ((str_p("TIME")) >> !LeftParen >> TimePrecision >> RightParen >> !WithOrWithoutTimeZone) | ((str_p("TIMESTAMP")) >> !LeftParen >> TimestampPrecision >> RightParen >> !WithOrWithoutTimeZone);;;WithOrWithoutTimeZone =(str_p("WITH")) >>(("TIME")) >>(("ZONE")) |(("WITHOUT")) >>(("TIME")) >>(("ZONE"));;;TimePrecision = TimeFractionalSecondsPrecision;;;TimestampPrecision = TimeFractionalSecondsPrecision;;;TimeFractionalSecondsPrecision = UnsignedInteger;;;IntervalType =(str_p("INTERVAL")) >> IntervalQualifier;;;RowType =(str_p("ROW")) >> RowTypeBody;;;RowTypeBody = (LeftParen >> (FieldDefinition%Comma) >> RightParen);;;ReferenceType = ((str_p("REF")) >> LeftParen >> ReferencedType >> RightParen >> !ScopeClause);;;ScopeClause = SCOPE >> TableName;;;ReferencedType = PathResolvedUserDefinedTypeName;;;PathResolvedUserDefinedTypeName = UserDefinedTypeName;;;PathResolvedUserDefinedTypeName = UserDefinedTypeName;;;CollectionType = ArrayType | MultisetType;;;ArrayType = (DataType >>(("ARRAY")) >> !LeftBracketOrTrigraph >> UnsignedInteger >> RightBracketOrTrigraph);;;MultisetType = DataType >>(("MULTISET"));;;FieldDefinition = (FieldName >> DataType >> !ReferenceScopeCheck);;;ValueExpressionPrimary = ParenthesizedValueExpression | NonparenthesizedValueExpressionPrimary;;;ParenthesizedValueExpression = LeftParen >> ValueExpression >> RightParen;;;NonparenthesizedValueExpressionPrimary = UnsignedValueSpecification | ColumnReference | SetFunctionSpecification | WindowFunction | ScalarSubquery | CaseExpression | CastSpecification | FieldReference | SubtypeTreatment | MethodInvocation | StaticMethodInvocation | NewSpecification | AttributeOrMethodReference | ReferenceResolution | CollectionValueConstructor | ArrayElementReference | MultisetElementReference | RoutineInvocation | NextValueExpression;;;ValueSpecification = Literal | GeneralValueSpecification;;;UnsignedValueSpecification = UnsignedLiteral | GeneralValueSpecification;;;GeneralValueSpecification = HostParameterSpecification | SQLParameterReference | DynamicParameterSpecification | EmbeddedVariableSpecification | CurrentCollationSpecification |(("CURRENT_DEFAULT_TRANSFORM_GROUP")) |(("CURRENT_PATH")) |(("CURRENT_ROLE")) |(("CURRENT_TRANSFORM_GROUP_FOR_TYPE")) >> PathResolvedUserDefinedTypeName |(("CURRENT_USER")) |(("SESSION_USER")) |(("SYSTEM_USER")) |(("USER")) |(("VALUE"));;;SimpleValueSpecification = Literal | HostParameterName | SQLParameterReference | EmbeddedVariableName;;;TargetSpecification = HostParameterSpecification | SQLParameterReference | ColumnReference | TargetArrayElementSpecification | DynamicParameterSpecification | EmbeddedVariableSpecification;;;SimpleTargetSpecification = HostParameterSpecification | SQLParameterReference | ColumnReference | EmbeddedVariableName;;;HostParameterSpecification = (HostParameterName >> !IndicatorParameter);;;DynamicParameterSpecification = QuestionMark;;;EmbeddedVariableSpecification = (EmbeddedVariableName >> !IndicatorVariable);;;IndicatorVariable = !((str_p("INDICATOR")) >> EmbeddedVariableName);;;IndicatorParameter = !((str_p("INDICATOR")) >> HostParameterName);;;TargetArrayElementSpecification = TargetArrayReference >> LeftBracketOrTrigraph >> SimpleValueSpecification >> RightBracketOrTrigraph;;;TargetArrayReference = SQLParameterReference | ColumnReference;;;CurrentCollationSpecification =(str_p("CURRENT_COLLATION")) >> LeftParen >> StringValueExpression >> RightParen;;;ContextuallyTypedValueSpecification = ImplicitlyTypedValueSpecification | DefaultSpecification;;;ImplicitlyTypedValueSpecification = NullSpecification | EmptySpecification;;;NullSpecification =(str_p("NULL"));;;EmptySpecification =(str_p("ARRAY")) >> LeftBracketOrTrigraph >> RightBracketOrTrigraph |(("MULTISET")) >> LeftBracketOrTrigraph >> RightBracketOrTrigraph;;;DefaultSpecification =(str_p("DEFAULT"));;;IdentifierChain = ((Identifier%Period));;;BasicIdentifierChain = IdentifierChain;;;ColumnReference = BasicIdentifierChain |(("MODULE")) >> Period >> QualifiedIdentifier >> Period >> ColumnName;;;SQLParameterReference = BasicIdentifierChain;;;SetFunctionSpecification = AggregateFunction | GroupingOperation;;;GroupingOperation = ((str_p("GROUPING")) >> LeftParen >> (ColumnReference%Comma) >> RightParen);;;WindowFunction = WindowFunctionType >>(("OVER")) >> WindowNameOrSpecification;;;WindowFunctionType = RankFunctionType >> LeftParen >> RightParen |(("ROW_NUMBER")) >> LeftParen >> RightParen | AggregateFunction;;;RankFunctionType =(str_p("RANK")) |(("DENSE_RANK")) |(("PERCENT_RANK")) |(("CUME_DIST"));;;WindowNameOrSpecification = WindowName | InLineWindowSpecification;;;InLineWindowSpecification = WindowSpecification;;;CaseExpression = CaseAbbreviation | CaseSpecification;;;CaseAbbreviation =(str_p("NULLIF")) >> LeftParen >> ValueExpression >> Comma >> ValueExpression >> RightParen | ((str_p("COALESCE")) >> LeftParen >> ValueExpression >> +Comma >> ValueExpression >> RightParen);;;CaseSpecification = SimpleCase | SearchedCase;;;SimpleCase = ((str_p("CASE")) >> CaseOperand >> +SimpleWhenClause >> !ElseClause >>(("END")));;;SearchedCase = ((str_p("CASE")) >> +SearchedWhenClause >> !ElseClause >>(("END")));;;SimpleWhenClause =(str_p("WHEN")) >> WhenOperand >>(("THEN")) >> Result;;;SearchedWhenClause =(str_p("WHEN")) >> SearchCondition >>(("THEN")) >> Result;;;ElseClause =(str_p("ELSE")) >> Result;;;CaseOperand = RowValuePredicand | OverlapsPredicatePart;;;WhenOperand = RowValuePredicand | ComparisonPredicatePart2 | BetweenPredicatePart2 | InPredicatePart2 | CharacterLikePredicatePart2 | OctetLikePredicatePart2 | SimilarPredicatePart2 | NullPredicatePart2 | QuantifiedComparisonPredicatePart2 | MatchPredicatePart2 | OverlapsPredicatePart2 | DistinctPredicatePart2 | MemberPredicatePart2 | SubmultisetPredicatePart2 | SetPredicatePart2 | TypePredicatePart2;;;Result = ResultExpression |(("NULL"));;;ResultExpression = ValueExpression;;;CastSpecification =(str_p("CAST")) >> LeftParen >> CastOperand >>(("AS")) >> CastTarget >> RightParen;;;CastOperand = ValueExpression | ImplicitlyTypedValueSpecification;;;CastTarget = DomainName | DataType;;;NextValueExpression =(str_p("NEXT")) >>(("VALUE")) >>(("FOR")) >> SequenceGeneratorName;;;FieldReference = ValueExpressionPrimary >> Period >> FieldName;;;SubtypeTreatment =(str_p("TREAT")) >> LeftParen >> SubtypeOperand >>(("AS")) >> TargetSubtype >> RightParen;;;SubtypeOperand = ValueExpression;;;TargetSubtype = PathResolvedUserDefinedTypeName | ReferenceType;;;MethodInvocation = DirectInvocation | GeneralizedInvocation;;;DirectInvocation = (ValueExpressionPrimary >> Period >> MethodName >> !SQLArgumentList);;;GeneralizedInvocation = (LeftParen >> ValueExpressionPrimary >>(("AS")) >> DataType >> RightParen >> Period >> MethodName >> !SQLArgumentList);;;MethodSelection = RoutineInvocation;;;ConstructorMethodSelection = RoutineInvocation;;;StaticMethodInvocation = (PathResolvedUserDefinedTypeName >> DoubleColon >> MethodName >> !SQLArgumentList);;;StaticMethodSelection = RoutineInvocation;;;NewSpecification =(str_p("NEW")) >> RoutineInvocation;;;NewInvocation = MethodInvocation | RoutineInvocation;;;AttributeOrMethodReference = (ValueExpressionPrimary >> DereferenceOperator >> QualifiedIdentifier >> !SQLArgumentList);;;DereferenceOperator = RightArrow;;;DereferenceOperation = ReferenceValueExpression >> DereferenceOperator >> AttributeName;;;MethodReference = ValueExpressionPrimary >> DereferenceOperator >> MethodName >> SQLArgumentList;;;ReferenceResolution =(str_p("DEREF")) >> LeftParen >> ReferenceValueExpression >> RightParen;;;ArrayElementReference = ArrayValueExpression >> LeftBracketOrTrigraph >> NumericValueExpression >> RightBracketOrTrigraph;;;MultisetElementReference =(str_p("ELEMENT")) >> LeftParen >> MultsetValueExpression >> RightParen;;;ValueExpression = CommonValueExpression | BooleanValueExpression | RowValueExpression;;;CommonValueExpression = NumericValueExpression | StringValueExpression | DatetimeValueExpression | IntervalValueExpression | UserDefinedTypeValueExpression | ReferenceValueExpression | CollectionValueExpression;;;UserDefinedTypeValueExpression = ValueExpressionPrimary;;;ReferenceValueExpression = ValueExpressionPrimary;;;CollectionValueExpression = ArrayValueExpression | MultisetValueExpression;;;CollectionValueConstructor = ArrayValueConstructor | MultisetValueConstructor;;;NumericValueExpression = Term | NumericValueExpression >> PlusSign >> Term | NumericValueExpression >> MinusSign >> Term;;;Term = Factor | Term >> Asterisk >> Factor | Term >> Solidus >> Factor;;;Factor = !(Sign >> NumericPrimary);;;NumericPrimary = ValueExpressionPrimary | NumericValueFunction;;;NumericValueFunction = PositionExpression | ExtractExpression | LengthExpression | CardinalityExpression | AbsoluteValueExpression | ModulusExpression | NaturalLogarithm | ExponentialFunction | PowerFunction | SquareRoot | FloorFunction | CeilingFunction | WidthBucketFunction;;;PositionExpression = StringPositionExpression | BlobPositionExpression;;;StringPositionExpression = ((str_p("POSITION")) >> LeftParen >> StringValueExpression >>(("IN")) >> StringValueExpression >> !(str_p("USING")) >> CharLengthUnits >> RightParen);;;BlobPositionExpression =(str_p("POSITION")) >> LeftParen >> BlobValueExpression >>(("IN")) >> BlobValueExpression >> RightParen;;;LengthExpression = CharLengthExpression | OctetLengthExpression;;;CharLengthExpression = ((str_p("CHAR_LENGTH")) |(("CHARACTER_LENGTH")) >> LeftParen >> StringValueExpression >> !(str_p("USING")) >> CharLengthUnits >> RightParen);;;OctetLengthExpression =(str_p("OCTET_LENGTH")) >> LeftParen >> StringValueExpression >> RightParen;;;ExtractExpression =(str_p("EXTRACT")) >> LeftParen >> ExtractField >>(("FROM")) >> ExtractSource >> RightParen;;;ExtractField = PrimaryDatetimeField | TimeZoneField;;;TimeZoneField =(str_p("TIMEZONE_HOUR")) |(("TIMEZONE_MINUTE"));;;ExtractSource = DatetimeValueExpression | IntervalValueExpression;;;CardinalityExpression =(str_p("CARDINALITY")) >> LeftParen >> CollectionValueExpression >> RightParen;;;AbsoluteValueExpression =(str_p("ABS")) >> LeftParen >> NumericValueExpression >> RightParen;;;ModulusExpression =(str_p("MOD")) >> LeftParen >> NumericValueExpressionDividend >> Comma >> NumericValueExpressionDivisor >> RightParen;;;NaturalLogarithm =(str_p("LN")) >> LeftParen >> NumericValueExpression >> RightParen;;;ExponentialFunction =(str_p("EXP")) >> LeftParen >> NumericValueExpression >> RightParen;;;PowerFunction =(str_p("POWER")) >> LeftParen >> NumericValueExpressionBase >> Comma >> NumericValueExpressionExponent >> RightParen;;;NumericValueExpressionBase = NumericValueExpression;;;NumericValueExpressionExponent = NumericValueExpression;;;SquareRoot =(str_p("SQRT")) >> LeftParen >> NumericValueExpression >> RightParen;;;FloorFunction =(str_p("FLOOR")) >> LeftParen >> NumericValueExpression >> RightParen;;;CeilingFunction = ((str_p("CEIL")) |(("CEILING")) >> LeftParen >> NumericValueExpression >> RightParen);;;WidthBucketFunction =(str_p("WIDTH_BUCKET")) >> LeftParen >> WidthBucketOperand >> Comma >> WidthBucketBound1 >> Comma >> WidthBucketBound2 >> Comma >> WidthBucketCount >> RightParen;;;WidthBucketOperand = NumericValueExpression;;;WidthBucketBound1 = NumericValueExpression;;;WidthBucketBound2 = NumericValueExpression;;;WidthBucketCount = NumericValueExpression;;;StringValueExpression = CharacterValueExpression | BlobValueExpression;;;CharacterValueExpression = Concatenation | CharacterFactor;;;Concatenation = CharacterValueExpression >> ConcatenationOperator >> CharacterFactor;;;CharacterFactor = (CharacterPrimary >> !CollateClause);;;CharacterPrimary = ValueExpressionPrimary | StringValueFunction;;;BlobValueExpression = BlobConcatenation | BlobFactor;;;BlobFactor = BlobPrimary;;;BlobPrimary = ValueExpressionPrimary | StringValueFunction;;;BlobConcatenation = BlobValueExpression >> ConcatenationOperator >> BlobFactor;;;StringValueFunction = CharacterValueFunction | BlobValueFunction;;;CharacterValueFunction = CharacterSubstringFunction | RegularExpressionSubstringFunction | Fold | Transcoding | CharacterTransliteration | TrimFunction | CharacterOverlayFunction | NormalizeFunction | SpecificTypeMethod;;;CharacterSubstringFunction = ((str_p("SUBSTRING")) >> LeftParen >> CharacterValueExpression >>(("FROM")) >> StartPosition >> !(str_p("FOR")) >> StringLength >> !(str_p("USING")) >> CharLengthUnits >> RightParen);;;RegularExpressionSubstringFunction =(str_p("SUBSTRING")) >> LeftParen >> CharacterValueExpression >>(("SIMILAR")) >> CharacterValueExpression >>(("ESCAPE")) >> EscapeCharacter >> RightParen;;;Fold = ((str_p("UPPER")) |(("LOWER")) >> LeftParen >> CharacterValueExpression >> RightParen);;;Transcoding =(str_p("CONVERT")) >> LeftParen >> CharacterValueExpression >>(("USING")) >> TranscodingName >> RightParen;;;CharacterTransliteration =(str_p("TRANSLATE")) >> LeftParen >> CharacterValueExpression >>(("USING")) >> TransliterationName >> RightParen;;;TrimFunction =(str_p("TRIM")) >> LeftParen >> TrimOperands >> RightParen;;;TrimOperands = !(!(TrimSpecification >> !TrimCharacter >>(("FROM"))) >> TrimSource);;;TrimSource = CharacterValueExpression;;;TrimSpecification =(str_p("LEADING")) |(("TRAILING")) |(("BOTH"));;;TrimCharacter = CharacterValueExpression;;;CharacterOverlayFunction = ((str_p("OVERLAY")) >> LeftParen >> CharacterValueExpression >>(("PLACING")) >> CharacterValueExpression >>(("FROM")) >> StartPosition >> !(str_p("FOR")) >> StringLength >> !(str_p("USING")) >> CharLengthUnits >> RightParen);;;NormalizeFunction =(str_p("NORMALIZE")) >> LeftParen >> CharacterValueExpression >> RightParen;;;SpecificTypeMethod = UserDefinedTypeValueExpression >> Period >>(("SPECIFICTYPE"));;;BlobValueFunction = BlobSubstringFunction | BlobTrimFunction | BlobOverlayFunction;;;BlobSubstringFunction = ((str_p("SUBSTRING")) >> LeftParen >> BlobValueExpression >>(("FROM")) >> StartPosition >> !(str_p("FOR")) >> StringLength >> RightParen);;;BlobTrimFunction =(str_p("TRIM")) >> LeftParen >> BlobTrimOperands >> RightParen;;;BlobTrimOperands = !(!(TrimSpecification >> !TrimOctet >>(("FROM"))) >> BlobTrimSource);;;BlobTrimSource = BlobValueExpression;;;TrimOctet = BlobValueExpression;;;BlobOverlayFunction = ((str_p("OVERLAY")) >> LeftParen >> BlobValueExpression >>(("PLACING")) >> BlobValueExpression >>(("FROM")) >> StartPosition >> !(str_p("FOR")) >> StringLength >> RightParen);;;StartPosition = NumericValueExpression;;;StringLength = NumericValueExpression;;;DatetimeValueExpression = DatetimeTerm | IntervalValueExpression >> PlusSign >> DatetimeTerm | DatetimeValueExpression >> PlusSign >> IntervalTerm | DatetimeValueExpression >> MinusSign >> IntervalTerm;;;DatetimeTerm = DatetimeFactor;;;DatetimeFactor = (DatetimePrimary >> !TimeZone);;;DatetimePrimary = ValueExpressionPrimary | DatetimeValueFunction;;;TimeZone =(str_p("AT")) >> TimeZoneSpecifier;;;TimeZoneSpecifier =(str_p("LOCAL")) |(("TIME")) >>(("ZONE")) >> IntervalPrimary;;;DatetimeValueFunction = CurrentDateValueFunction | CurrentTimeValueFunction | CurrentTimestampValueFunction | CurrentLocalTimeValueFunction | CurrentLocalTimestampValueFunction;;;CurrentDateValueFunction =(str_p("CURRENT_DATE"));;;CurrentTimeValueFunction = ((str_p("CURRENT_TIME")) >> !LeftParen >> TimePrecision >> RightParen);;;CurrentLocalTimeValueFunction = ((str_p("LOCALTIME")) >> !LeftParen >> TimePrecision >> RightParen);;;CurrentTimestampValueFunction = ((str_p("CURRENT_TIMESTAMP")) >> !LeftParen >> TimestampPrecision >> RightParen);;;CurrentLocalTimestampValueFunction = ((str_p("LOCALTIMESTAMP")) >> !LeftParen >> TimestampPrecision >> RightParen);;;IntervalValueExpression = IntervalTerm | IntervalValueExpression1 >> PlusSign >> IntervalTerm1 | IntervalValueExpression1 >> MinusSign >> IntervalTerm1 | LeftParen >> DatetimeValueExpression >> MinusSign >> DatetimeTerm >> RightParen >> IntervalQualifier;;;IntervalTerm = IntervalFactor | IntervalTerm2 >> Asterisk >> Factor | IntervalTerm2 >> Solidus >> Factor | Term >> Asterisk >> IntervalFactor;;;IntervalFactor = !(Sign >> IntervalPrimary);;;IntervalPrimary = (ValueExpressionPrimary >> !IntervalQualifier) | IntervalValueFunction;;;IntervalValueExpression1 = IntervalValueExpression;;;IntervalTerm1 = IntervalTerm;;;IntervalTerm2 = IntervalTerm;;;IntervalValueFunction = IntervalAbsoluteValueFunction;;;IntervalAbsoluteValueFunction =(str_p("ABS")) >> LeftParen >> IntervalValueExpression >> RightParen;;;BooleanValueExpression = BooleanTerm | BooleanValueExpression >>(("OR")) >> BooleanTerm;;;BooleanTerm = BooleanFactor | BooleanTerm >>(("AND")) >> BooleanFactor;;;BooleanFactor = !((str_p("NOT")) >> BooleanTest);;;BooleanTest = (BooleanPrimary >> !((str_p("IS")) >> !(str_p("NOT")) >> TruthValue));;;TruthValue =(str_p("TRUE")) |(("FALSE")) |(("UNKNOWN"));;;BooleanPrimary = Predicate | BooleanPredicand;;;BooleanPredicand = ParenthesizedBooleanValueExpression | NonparenthesizedValueExpressionPrimary;;;ParenthesizedBooleanValueExpression = LeftParen >> BooleanValueExpression >> RightParen;;;ArrayValueExpression = ArrayConcatenation | ArrayFactor;;;ArrayConcatenation = ArrayValueExpression1 >> ConcatenationOperator >> ArrayFactor;;;ArrayValueExpression1 = ArrayValueExpression;;;ArrayFactor = ValueExpressionPrimary;;;ArrayValueConstructor = ArrayValueConstructorByEnumeration | ArrayValueConstructorByQuery;;;ArrayValueConstructorByEnumeration =(str_p("ARRAY")) >> LeftBracketOrTrigraph >> ArrayElementList >> RightBracketOrTrigraph;;;ArrayElementList = ((ArrayElement%Comma));;;ArrayElement = ValueExpression;;;ArrayValueConstructorByQuery = ((str_p("ARRAY")) >> LeftParen >> QueryExpression >> !OrderByClause >> RightParen);;;MultisetValueExpression = MultisetTerm | (MultisetValueExpression >>(("MULTISET")) >>(("UNION")) >> !(str_p("ALL")) |(("DISTINCT")) >> MultisetTerm) | (MultisetValueExpression >>(("MULTISET")) >>(("EXCEPT")) >> !(str_p("ALL")) |(("DISTINCT")) >> MultisetTerm);;;MultisetTerm = MultisetPrimary | (MultisetTerm >>(("MULTISET")) >>(("INTERSECT")) >> !(str_p("ALL")) |(("DISTINCT")) >> MultisetPrimary);;;MultisetPrimary = MultisetValueFunction | ValueExpressionPrimary;;;MultisetValueFunction = MultisetSetFunction;;;MultisetSetFunction =(str_p("SET")) >> LeftParen >> MultisetValueExpression >> RightParen;;;MultisetValueConstructor = MultisetValueConstructorByEnumeration | MultisetValueConstructorByQuery | TableValueConstructorByQuery;;;MultisetValueConstructorByEnumeration =(str_p("MULTISET")) >> LeftBracketOrTrigraph >> MultisetElementList >> RightBracketOrTrigraph;;;MultisetElementList = (MultisetElement >> !(Comma >> MultisetElement));;;MultisetElement = ValueExpression;;;MultisetValueConstructorByQuery =(str_p("MULTISET")) >> LeftParen >> QueryExpression >> RightParen;;;TableValueConstructorByQuery =(str_p("TABLE")) >> LeftParen >> QueryExpression >> RightParen >> Specify >> A >> Value >> Or >> List >> Of >> Values >> To >> Be >> Constructed >> Into >> A >> Row >> Or >> Partial >> Row.;;;RowValueConstructor = CommonValueExpression | BooleanValueExpression | ExplicitRowValueConstructor;;;ExplicitRowValueConstructor = LeftParen >> RowValueConstructorElement >> Comma >> RowValueConstructorElementList >> RightParen |(("ROW")) >> LeftParen >> RowValueConstructorElementList >> RightParen | RowSubquery;;;RowValueConstructorElementList = ((RowValueConstructorElement%Comma));;;RowValueConstructorElement = ValueExpression;;;ContextuallyTypedRowValueConstructor = CommonValueExpression | BooleanValueExpression | ContextuallyTypedValueSpecification | LeftParen >> ContextuallyTypedRowValueConstructorElement >> Comma >> ContextuallyTypedRowValueConstructorElementList >> RightParen |(("ROW")) >> LeftParen >> ContextuallyTypedRowValueConstructorElementList >> RightParen;;;ContextuallyTypedRowValueConstructorElementList = ((ContextuallyTypedRowValueConstructorElement%Comma));;;ContextuallyTypedRowValueConstructorElement = ValueExpression | ContextuallyTypedValueSpecification;;;RowValueConstructorPredicand = CommonValueExpression | BooleanPredicand | ExplicitRowValueConstructor;;;RowValueExpression = RowValueSpecialCase | ExplicitRowValueConstructor;;;TableRowValueExpression = RowValueSpecialCase | RowValueConstructor;;;ContextuallyTypedRowValueExpression = RowValueSpecialCase | ContextuallyTypedRowValueConstructor;;;RowValuePredicand = RowValueSpecialCase | RowValueConstructorPredicand;;;RowValueSpecialCase = NonparenthesizedValueExpressionPrimary;;;TableValueConstructor =(str_p("VALUES")) >> RowValueExpressionList;;;RowValueExpressionList = ((TableRowValueExpression%Comma));;;ContextuallyTypedTableValueConstructor =(str_p("VALUES")) >> ContextuallyTypedRowValueExpressionList;;;ContextuallyTypedRowValueExpressionList = ((ContextuallyTypedRowValueExpression%Comma));;;TableExpression = (FromClause >> !WhereClause >> !GroupByClause >> !HavingClause >> !WindowClause);;;FromClause =(str_p("FROM")) >> TableReferenceList;;;TableReferenceList = ((TableReference%Comma));;;TableReference = (TablePrimaryOrJoinedTable >> !SampleClause);;;TablePrimaryOrJoinedTable = TablePrimary | JoinedTable;;;SampleClause = ((str_p("TABLESAMPLE")) >> SampleMethod >> LeftParen >> SamplePercentage >> RightParen >> !RepeatableClause);;;SampleMethod =(str_p("BERNOULLI")) |(("SYSTEM"));;;RepeatableClause =(str_p("REPEATABLE")) >> LeftParen >> RepeatArgument >> RightParen;;;SamplePercentage = NumericValueExpression;;;RepeatArgument = NumericValueExpression;;;TablePrimary = (TableOrQueryName >> !!((str_p("AS")) >> CorrelationName >> !LeftParen >> DerivedColumnList >> RightParen)) | (DerivedTable >> !(str_p("AS")) >> CorrelationName >> !LeftParen >> DerivedColumnList >> RightParen) | (LateralDerivedTable >> !(str_p("AS")) >> CorrelationName >> !LeftParen >> DerivedColumnList >> RightParen) | (CollectionDerivedTable >> !(str_p("AS")) >> CorrelationName >> !LeftParen >> DerivedColumnList >> RightParen) | (TableFunctionDerivedTable >> !(str_p("AS")) >> CorrelationName >> !LeftParen >> DerivedColumnList >> RightParen) | (OnlySpec >> !!((str_p("AS")) >> CorrelationName >> !LeftParen >> DerivedColumnList >> RightParen)) | LeftParen >> JoinedTable >> RightParen;;;OnlySpec =(str_p("ONLY")) >> LeftParen >> TableOrQueryName >> RightParen;;;LateralDerivedTable =(str_p("LATERAL")) >> TableSubquery;;;CollectionDerivedTable = ((str_p("UNNEST")) >> LeftParen >> CollectionValueExpression >> RightParen >> !(str_p("WITH")) >>(("ORDINALITY")));;;TableFunctionDerivedTable =(str_p("TABLE")) >> LeftParen >> CollectionValueExpression >> RightParen;;;DerivedTable = TableSubquery;;;TableOrQueryName = TableName | QueryName;;;DerivedColumnList = ColumnNameList;;;ColumnNameList = ((ColumnName%Comma));;;JoinedTable = CrossJoin | QualifiedJoin | NaturalJoin | UnionJoin;;;CrossJoin = TableReference >>(("CROSS")) >>(("JOIN")) >> TablePrimary;;;QualifiedJoin = (TableReference >> !JoinType >>(("JOIN")) >> TableReference >> JoinSpecification);;;NaturalJoin = (TableReference >>(("NATURAL")) >> !JoinType >>(("JOIN")) >> TablePrimary);;;UnionJoin = TableReference >>(("UNION")) >>(("JOIN")) >> TablePrimary;;;JoinSpecification = JoinCondition | NamedColumnsJoin;;;JoinCondition =(str_p("ON")) >> SearchCondition;;;NamedColumnsJoin =(str_p("USING")) >> LeftParen >> JoinColumnList >> RightParen;;;JoinType =(str_p("INNER")) | (OuterJoinType >> !(str_p("OUTER")));;;OuterJoinType =(str_p("LEFT")) |(("RIGHT")) |(("FULL"));;;JoinColumnList = ColumnNameList;;;WhereClause =(str_p("WHERE")) >> SearchCondition;;;GroupByClause = ((str_p("GROUP")) >>(("BY")) >> !SetQuantifier >> GroupingElementList);;;GroupingElementList = ((GroupingElement%Comma));;;GroupingElement = OrdinaryGroupingSet | RollupList | CubeList | GroupingSetsSpecification | EmptyGroupingSet;;;OrdinaryGroupingSet = GroupingColumnReference | LeftParen >> GroupingColumnReferenceList >> RightParen;;;GroupingColumnReference = (ColumnReference >> !CollateClause);;;GroupingColumnReferenceList = ((GroupingColumnReference%Comma));;;RollupList =(str_p("ROLLUP")) >> LeftParen >> OrdinaryGroupingSetList >> RightParen;;;OrdinaryGroupingSetList = ((OrdinaryGroupingSet%Comma));;;CubeList =(str_p("CUBE")) >> LeftParen >> OrdinaryGroupingSetList >> RightParen;;;GroupingSetsSpecification =(str_p("GROUPING")) >>(("SETS")) >> LeftParen >> GroupingSetList >> RightParen;;;GroupingSetList = ((GroupingSet%Comma));;;GroupingSet = OrdinaryGroupingSet | RollupList | CubeList | GroupingSetsSpecification | EmptyGroupingSet;;;EmptyGroupingSet = LeftParen >> RightParen;;;HavingClause =(str_p("HAVING")) >> SearchCondition;;;WindowClause =(str_p("WINDOW")) >> WindowDefinitionList;;;WindowDefinitionList = ((WindowDefinition%Comma));;;WindowDefinition = NewWindowName >>(("AS")) >> WindowSpecification;;;NewWindowName = WindowName;;;WindowSpecification = LeftParen >> WindowSpecificationDetails >> RightParen;;;WindowSpecificationDetails = !(ExistingWindowName >> !WindowPartitionClause >> !WindowOrderClause >> !WindowFrameClause);;;ExistingWindowName = WindowName;;;WindowPartitionClause =(str_p("PARTITION")) >>(("BY")) >> WindowPartitionColumnReferenceList;;;WindowPartitionColumnReferenceList = ((WindowPartitionColumnReference%Comma));;;WindowPartitionColumnReference = (ColumnReference >> !CollateClause);;;WindowOrderClause =(str_p("ORDER")) >>(("BY")) >> SortSpecificationList;;;WindowFrameClause = (WindowFrameUnits >> WindowFrameExtent >> !WindowFrameExclusion);;;WindowFrameUnits =(str_p("ROWS")) |(("RANGE"));;;WindowFrameExtent = WindowFrameStart | WindowFrameBetween;;;WindowFrameStart =(str_p("UNBOUNDED")) >>(("PRECEDING")) | WindowFramePreceding |(("CURRENT")) >>(("ROW"));;;WindowFramePreceding = UnsignedValueSpecification >>(("PRECEDING"));;;WindowFrameBetween =(str_p("BETWEEN")) >> WindowFrameBound1 >>(("AND")) >> WindowFrameBound2;;;WindowFrameBound1 = WindowFrameBound;;;WindowFrameBound2 = WindowFrameBound;;;WindowFrameBound = WindowFrameStart |(("UNBOUNDED")) >>(("FOLLOWING")) | WindowFrameFollowing;;;WindowFrameFollowing = UnsignedValueSpecification >>(("FOLLOWING"));;;WindowFrameExclusion =(str_p("EXCLUDE")) >>(("CURRENT")) >>(("ROW")) |(("EXCLUDE")) >>(("GROUP")) |(("EXCLUDE")) >>(("TIES")) |(("EXCLUDE")) >>(("NO")) >>(("OTHERS"));;;QuerySpecification = ((str_p("SELECT")) >> !SetQuantifier >> SelectList >> TableExpression);;;SelectList = Asterisk | ((SelectSublist%Comma));;;SelectSublist = DerivedColumn | QualifiedAsterisk;;;QualifiedAsterisk = AsteriskedIdentifierChain >> Period >> Asterisk | AllFieldsReference;;;AsteriskedIdentifierChain = ((AsteriskedIdentifier%Period));;;AsteriskedIdentifier = Identifier;;;DerivedColumn = (ValueExpression >> !AsClause);;;AsClause = !((str_p("AS")) >> ColumnName);;;AllFieldsReference = (ValueExpressionPrimary >> Period >> Asterisk >> !(str_p("AS")) >> LeftParen >> AllFieldsColumnNameList >> RightParen);;;AllFieldsColumnNameList = ColumnNameList;;;QueryExpression = !(WithClause >> QueryExpressionBody);;;WithClause = ((str_p("WITH")) >> !(str_p("RECURSIVE")) >> WithList);;;WithList = ((WithListElement%Comma));;;WithListElement = (QueryName >> !LeftParen >> WithColumnList >> RightParen >>(("AS")) >> LeftParen >> QueryExpression >> RightParen >> !SearchOrCycleClause);;;WithColumnList = ColumnNameList;;;QueryExpressionBody = NonJoinQueryExpression | JoinedTable;;;NonJoinQueryExpression = NonJoinQueryTerm | (QueryExpressionBody >>(("UNION")) >> !(str_p("ALL")) |(("DISTINCT")) >> !CorrespondingSpec >> QueryTerm) | (QueryExpressionBody >>(("EXCEPT")) >> !(str_p("ALL")) |(("DISTINCT")) >> !CorrespondingSpec >> QueryTerm);;;QueryTerm = NonJoinQueryTerm | JoinedTable;;;NonJoinQueryTerm = NonJoinQueryPrimary | (QueryTerm >>(("INTERSECT")) >> !(str_p("ALL")) |(("DISTINCT")) >> !CorrespondingSpec >> QueryPrimary);;;QueryPrimary = NonJoinQueryPrimary | JoinedTable;;;NonJoinQueryPrimary = SimpleTable | LeftParen >> NonJoinQueryExpression >> RightParen;;;SimpleTable = QuerySpecification | TableValueConstructor | ExplicitTable;;;ExplicitTable =(str_p("TABLE")) >> TableOrQueryName;;;CorrespondingSpec = ((str_p("CORRESPONDING")) >> !(str_p("BY")) >> LeftParen >> CorrespondingColumnList >> RightParen);;;CorrespondingColumnList = ColumnNameList;;;SearchOrCycleClause = SearchClause | CycleClause | SearchClause >> CycleClause;;;SearchClause =(str_p("SEARCH")) >> RecursiveSearchOrder >>(("SET")) >> SequenceColumn;;;RecursiveSearchOrder =(str_p("DEPTH")) >>(("FIRST")) >>(("BY")) >> SortSpecificationList |(("BREADTH")) >>(("FIRST")) >>(("BY")) >> SortSpecificationList;;;SequenceColumn = ColumnName;;;CycleClause =(str_p("CYCLE")) >> CycleColumnList >>(("SET")) >> CycleMarkColumn >>(("TO")) >> CycleMarkValue >>(("DEFAULT")) >> NonCycleMarkValue >>(("USING")) >> PathColumn;;;CycleColumnList = ((CycleColumn%Comma));;;CycleColumn = ColumnName;;;CycleMarkColumn = ColumnName;;;PathColumn = ColumnName;;;CycleMarkValue = ValueExpression;;;NonCycleMarkValue = ValueExpression;;;ScalarSubquery = Subquery;;;RowSubquery = Subquery;;;TableSubquery = Subquery;;;Subquery = LeftParen >> QueryExpression >> RightParen;;;Predicate = ComparisonPredicate | BetweenPredicate | InPredicate | LikePredicate | SimilarPredicate | NullPredicate | QuantifiedComparisonPredicate | ExistsPredicate | UniquePredicate | NormalizedPredicate | MatchPredicate | OverlapsPredicate | DistinctPredicate | MemberPredicate | SubmultisetPredicate | SetPredicate | TypePredicate;;;ComparisonPredicate = RowValuePredicand >> ComparisonPredicatePart2;;;ComparisonPredicatePart2 = CompOp >> RowValuePredicand;;;CompOp = EqualsOperator | NotEqualsOperator | LessThanOperator | GreaterThanOperator | LessThanOrEqualsOperator | GreaterThanOrEqualsOperator;;;BetweenPredicate = RowValuePredicand >> BetweenPredicatePart2;;;BetweenPredicatePart2 = !((str_p("NOT")) >>(("BETWEEN")) >> !(str_p("ASYMMETRIC")) |(("SYMMETRIC")) >> RowValuePredicand >>(("AND")) >> RowValuePredicand);;;InPredicate = RowValuePredicand >> InPredicatePart2;;;InPredicatePart2 = !((str_p("NOT")) >>(("IN")) >> InPredicateValue);;;InPredicateValue = TableSubquery | LeftParen >> InValueList >> RightParen;;;InValueList = ((RowValueExpression%Comma));;;LikePredicate = CharacterLikePredicate | OctetLikePredicate;;;CharacterLikePredicate = RowValuePredicand >> CharacterLikePredicatePart2;;;CharacterLikePredicatePart2 = !((str_p("NOT")) >>(("LIKE")) >> CharacterPattern >> !(str_p("ESCAPE")) >> EscapeCharacter);;;CharacterPattern = CharacterValueExpression;;;EscapeCharacter = CharacterValueExpression;;;OctetLikePredicate = RowValuePredicand >> OctetLikePredicatePart2;;;OctetLikePredicatePart2 = !((str_p("NOT")) >>(("LIKE")) >> OctetPattern >> !(str_p("ESCAPE")) >> EscapeOctet);;;OctetPattern = BlobValueExpression;;;EscapeOctet = BlobValueExpression;;;SimilarPredicate = RowValuePredicand >> SimilarPredicatePart2;;;SimilarPredicatePart2 = !((str_p("NOT")) >>(("SIMILAR")) >>(("TO")) >> SimilarPattern >> !(str_p("ESCAPE")) >> EscapeCharacter);;;SimilarPattern = CharacterValueExpression;;;RegularExpression = RegularTerm | RegularExpression >> VerticalBar >> RegularTerm;;;RegularTerm = RegularFactor | RegularTerm >> RegularFactor;;;RegularFactor = RegularPrimary | RegularPrimary >> Asterisk | RegularPrimary >> PlusSign | RegularPrimary >> QuestionMark | RegularPrimary >> RepeatFactor;;;RepeatFactor = (LeftBrace >> LowValue >> !UpperLimit >> RightBrace);;;UpperLimit = (Comma >> !HighValue);;;LowValue = UnsignedInteger;;;HighValue = UnsignedInteger;;;RegularPrimary = CharacterSpecifier | Percent | RegularCharacterSet | LeftParen >> RegularExpression >> RightParen;;;CharacterSpecifier = NonEscapedCharacter | EscapedCharacter;;;NonEscapedCharacter = !!See >> The >> Syntax >> Rules;;;EscapedCharacter = !!See >> The >> Syntax >> Rules;;;RegularCharacterSet = Underscore | (LeftBracket >> +CharacterEnumeration >> RightBracket) | (LeftBracket >> Circumflex >> +CharacterEnumeration >> RightBracket) | (LeftBracket >> +CharacterEnumerationInclude >> Circumflex >> +CharacterEnumerationExclude >> RightBracket);;;CharacterEnumerationInclude = CharacterEnumeration;;;CharacterEnumerationExclude = CharacterEnumeration;;;CharacterEnumeration = CharacterSpecifier | CharacterSpecifier >> MinusSign >> CharacterSpecifier | LeftBracket >> Colon >> RegularCharacterSetIdentifier >> Colon >> RightBracket;;;RegularCharacterSetIdentifier = Identifier;;;NullPredicate = RowValuePredicand >> NullPredicatePart2;;;NullPredicatePart2 = ((str_p("IS")) >> !(str_p("NOT")) >>(("NULL")));;;QuantifiedComparisonPredicate = RowValuePredicand >> QuantifiedComparisonPredicatePart2;;;QuantifiedComparisonPredicatePart2 = CompOp >> Quantifier >> TableSubquery;;;Quantifier = All | Some;;;All =(str_p("ALL"));;;Some =(str_p("SOME")) |(("ANY"));;;ExistsPredicate =(str_p("EXISTS")) >> TableSubquery;;;UniquePredicate =(str_p("UNIQUE")) >> TableSubquery;;;NormalizedPredicate = (StringValueExpression >>(("IS")) >> !(str_p("NOT")) >>(("NORMALIZED")));;;MatchPredicate = RowValuePredicand >> MatchPredicatePart2;;;MatchPredicatePart2 = ((str_p("MATCH")) >> !(str_p("UNIQUE")) >> !(str_p("SIMPLE")) |(("PARTIAL")) |(("FULL")) >> TableSubquery);;;OverlapsPredicate = OverlapsPredicatePart1 >> OverlapsPredicatePart2;;;OverlapsPredicatePart1 = RowValuePredicand1;;;OverlapsPredicatePart2 =(str_p("OVERLAPS")) >> RowValuePredicand2;;;RowValuePredicand1 = RowValuePredicand;;;RowValuePredicand2 = RowValuePredicand;;;DistinctPredicate = RowValuePredicand3 >> DistinctPredicatePart2;;;DistinctPredicatePart2 =(str_p("IS")) >>(("DISTINCT")) >>(("FROM")) >> RowValuePredicand4;;;RowValuePredicand3 = RowValuePredicand;;;RowValuePredicand4 = RowValuePredicand;;;MemberPredicate = RowValuePredicand >> MemberPredicatePart2;;;MemberPredicatePart2 = !((str_p("NOT")) >>(("MEMBER")) >> !(str_p("OF")) >> MultisetValueExpression);;;SubmultisetPredicate = RowValuePredicand >> SubmultisetPredicatePart2;;;SubmultisetPredicatePart2 = !((str_p("NOT")) >>(("SUBMULTISET")) >> !(str_p("OF")) >> MultisetValueExpression);;;SetPredicate = RowValuePredicand >> SetPredicatePart2;;;SetPredicatePart2 = ((str_p("IS")) >> !(str_p("NOT")) >> A >>(("SET")));;;TypePredicate = RowValuePredicand >> TypePredicatePart2;;;TypePredicatePart2 = ((str_p("IS")) >> !(str_p("NOT")) >>(("OF")) >> LeftParen >> TypeList >> RightParen);;;TypeList = ((UserDefinedTypeSpecification%Comma));;;UserDefinedTypeSpecification = InclusiveUserDefinedTypeSpecification | ExclusiveUserDefinedTypeSpecification;;;InclusiveUserDefinedTypeSpecification = PathResolvedUserDefinedTypeName;;;ExclusiveUserDefinedTypeSpecification =(str_p("ONLY")) >> PathResolvedUserDefinedTypeName;;;SearchCondition = BooleanValueExpression;;;IntervalQualifier = StartField >>(("TO")) >> EndField | SingleDatetimeField;;;StartField = (NonSecondPrimaryDatetimeField >> !LeftParen >> IntervalLeadingFieldPrecision >> RightParen);;;EndField = NonSecondPrimaryDatetimeField | ((str_p("SECOND")) >> !LeftParen >> IntervalFractionalSecondsPrecision >> RightParen);;;SingleDatetimeField = (NonSecondPrimaryDatetimeField >> !LeftParen >> IntervalLeadingFieldPrecision >> RightParen) | ((str_p("SECOND")) >> !(LeftParen >> IntervalLeadingFieldPrecision >> !Comma >> IntervalFractionalSecondsPrecision >> RightParen));;;PrimaryDatetimeField = NonSecondPrimaryDatetimeField |(("SECOND"));;;NonSecondPrimaryDatetimeField =(str_p("YEAR")) |(("MONTH")) |(("DAY")) |(("HOUR")) |(("MINUTE"));;;IntervalFractionalSecondsPrecision = UnsignedInteger;;;IntervalLeadingFieldPrecision = UnsignedInteger;;;LanguageClause =(str_p("LANGUAGE")) >> LanguageName;;;LanguageName =(str_p("ADA")) |('C') |(("COBOL")) |(("FORTRAN")) |(("MUMPS")) |(("PASCAL")) |(("PLI")) |(("SQL"));;;PathSpecification =(str_p("PATH")) >> SchemaNameList;;;SchemaNameList = ((SchemaName%Comma));;;RoutineInvocation = RoutineName >> SQLArgumentList;;;RoutineName = !(SchemaName >> Period >> QualifiedIdentifier);;;SQLArgumentList = (LeftParen >> !((SQLArgument%Comma)) >> RightParen);;;SQLArgument = ValueExpression | GeneralizedExpression | TargetSpecification;;;GeneralizedExpression = ValueExpression >>(("AS")) >> PathResolvedUserDefinedTypeName;;;CharacterSetSpecification = StandardCharacterSetName | ImplementationDefinedCharacterSetName | UserDefinedCharacterSetName;;;StandardCharacterSetName = CharacterSetName;;;ImplementationDefinedCharacterSetName = CharacterSetName;;;UserDefinedCharacterSetName = CharacterSetName;;;SpecificRoutineDesignator =(str_p("SPECIFIC")) >> RoutineType >> SpecificName | (RoutineType >> MemberName >> !(str_p("FOR")) >> SchemaResolvedUserDefinedTypeName);;;RoutineType =(str_p("ROUTINE")) |(("FUNCTION")) |(("PROCEDURE")) | !((str_p("INSTANCE")) |(("STATIC")) | CONSTRUCTOR >>(("METHOD")));;;MemberName = (MemberNameAlternatives >> !DataTypeList);;;MemberNameAlternatives = SchemaQualifiedRoutineName | MethodName;;;DataTypeList = (LeftParen >> !((DataType%Comma)) >> RightParen);;;CollateClause =(str_p("COLLATE")) >> CollationName;;;ConstraintNameDefinition =(str_p("CONSTRAINT")) >> ConstraintName;;;ConstraintCharacteristics = (ConstraintCheckTime >> !!((str_p("NOT")) >>(("DEFERRABLE")))) | !((str_p("NOT")) >>(("DEFERRABLE")) >> !ConstraintCheckTime);;;ConstraintCheckTime =(str_p("INITIALLY")) >>(("DEFERRED")) |(("INITIALLY")) >>(("IMMEDIATE"));;;AggregateFunction = ((str_p("COUNT")) >> LeftParen >> Asterisk >> RightParen >> !FilterClause) | (GeneralSetFunction >> !FilterClause) | (BinarySetFunction >> !FilterClause) | (OrderedSetFunction >> !FilterClause);;;GeneralSetFunction = (SetFunctionType >> LeftParen >> !SetQuantifier >> ValueExpression >> RightParen);;;SetFunctionType = ComputationalOperation;;;ComputationalOperation =(str_p("AVG")) |(("MAX")) |(("MIN")) |(("SUM")) |(("EVERY")) |(("ANY")) |(("SOME")) |(("COUNT")) |(("STDDEV_POP")) |(("STDDEV_SAMP")) |(("VAR_SAMP")) |(("VAR_POP")) |(("COLLECT")) |(("FUSION")) |(("INTERSECTION"));;;SetQuantifier =(str_p("DISTINCT")) |(("ALL"));;;FilterClause =(str_p("FILTER")) >> LeftParen >>(("WHERE")) >> SearchCondition >> RightParen;;;BinarySetFunction = BinarySetFunctionType >> LeftParen >> DependentVariableExpression >> Comma >> IndependentVariableExpression >> RightParen;;;BinarySetFunctionType =(str_p("COVAR_POP")) |(("COVAR_SAMP")) |(("CORR")) |(("REGR_SLOPE")) |(("REGR_INTERCEPT")) |(("REGR_COUNT")) |(("REGR_R2")) |(("REGR_AVGX")) |(("REGR_AVGY")) |(("REGR_SXX")) | REGR_SYY |(("REGR_SXY"));;;DependentVariableExpression = NumericValueExpression;;;IndependentVariableExpression = NumericValueExpression;;;OrderedSetFunction = HypotheticalSetFunction | InverseDistributionFunction;;;HypotheticalSetFunction = RankFunctionType >> LeftParen >> HypotheticalSetFunctionValueExpressionList >> RightParen >> WithinGroupSpecification;;;WithinGroupSpecification =(str_p("WITHIN")) >>(("GROUP")) >> LeftParen >>(("ORDER")) >>(("BY")) >> SortSpecificationList >> RightParen;;;HypotheticalSetFunctionValueExpressionList = ((ValueExpression%Comma));;;InverseDistributionFunction = InverseDistributionFunctionType >> LeftParen >> InverseDistributionFunctionArgument >> RightParen >> WithinGroupSpecification;;;InverseDistributionFunctionArgument = NumericValueExpression;;;InverseDistributionFunctionType =(str_p("PERCENTILE_CONT")) |(("PERCENTILE_DISC"));;;SortSpecificationList = ((SortSpecification%Comma));;;SortSpecification = (SortKey >> !OrderingSpecification >> !NullOrdering);;;SortKey = ValueExpression;;;OrderingSpecification =(str_p("ASC")) |(("DESC"));;;NullOrdering =(str_p("NULLS")) >>(("FIRST")) |(("NULLS")) >>(("LAST"));;;SchemaDefinition = ((str_p("CREATE")) >>(("SCHEMA")) >> SchemaNameClause >> !SchemaCharacterSetOrPath >> *SchemaElement);;;SchemaCharacterSetOrPath = SchemaCharacterSetSpecification | SchemaPathSpecification | SchemaCharacterSetSpecification >> SchemaPathSpecification | SchemaPathSpecification >> SchemaCharacterSetSpecification;;;SchemaNameClause = SchemaName |(("AUTHORIZATION")) >> SchemaAuthorizationIdentifier | SchemaName >>(("AUTHORIZATION")) >> SchemaAuthorizationIdentifier;;;SchemaAuthorizationIdentifier = AuthorizationIdentifier;;;SchemaCharacterSetSpecification =(str_p("DEFAULT")) >>(("CHARACTER")) >>(("SET")) >> CharacterSetSpecification;;;SchemaPathSpecification = PathSpecification;;;SchemaElement = TableDefinition | ViewDefinition | DomainDefinition | CharacterSetDefinition | CollationDefinition | TransliterationDefinition | AssertionDefinition | TriggerDefinition | UserDefinedTypeDefinition | UserDefinedCastDefinition | UserDefinedOrderingDefinition | TransformDefinition | SchemaRoutine | SequenceGeneratorDefinition | GrantStatement | RoleDefinition;;;DropSchemaStatement =(str_p("DROP")) >>(("SCHEMA")) >> SchemaName >> DropBehavior;;;DropBehavior =(str_p("CASCADE")) | RESTRICT;;;TableDefinition = ((str_p("CREATE")) >> !TableScope >>(("TABLE")) >> TableName >> TableContentsSource >> !(str_p("ON")) >>(("COMMIT")) >> TableCommitAction >>(("ROWS")));;;TableContentsSource = TableElementList | ((str_p("OF")) >> PathResolvedUserDefinedTypeName >> !SubtableClause >> !TableElementList) | AsSubqueryClause;;;TableScope = GlobalOrLocal >>(("TEMPORARY"));;;GlobalOrLocal =(str_p("GLOBAL")) |(("LOCAL"));;;TableCommitAction =(str_p("PRESERVE")) |(("DELETE"));;;TableElementList = (LeftParen >> (TableElement%Comma) >> RightParen);;;TableElement = ColumnDefinition | TableConstraintDefinition | LikeClause | SelfReferencingColumnSpecification | ColumnOptions;;;SelfReferencingColumnSpecification =(str_p("REF")) >>(("IS")) >> SelfReferencingColumnName >> ReferenceGeneration;;;ReferenceGeneration =(str_p("SYSTEM")) >> GENERATED |(("USER")) >> GENERATED |(("DERIVED"));;;SelfReferencingColumnName = ColumnName;;;ColumnOptions = ColumnName >>(("WITH")) >>(("OPTIONS")) >> ColumnOptionList;;;ColumnOptionList = !(ScopeClause >> !DefaultClause >> *ColumnConstraintDefinition);;;SubtableClause =(str_p("UNDER")) >> SupertableClause;;;SupertableClause = SupertableName;;;SupertableName = TableName;;;LikeClause = ((str_p("LIKE")) >> TableName >> !LikeOptions);;;LikeOptions = IdentityOption | ColumnDefaultOption;;;IdentityOption =(str_p("INCLUDING")) >>(("IDENTITY")) |(("EXCLUDING")) >>(("IDENTITY"));;;ColumnDefaultOption =(str_p("INCLUDING")) >>(("DEFAULTS")) |(("EXCLUDING")) >>(("DEFAULTS"));;;AsSubqueryClause = !(LeftParen >> ColumnNameList >> RightParen >>(("AS")) >> Subquery >> WithOrWithoutData);;;WithOrWithoutData =(str_p("WITH")) >>(("NO")) >>(("DATA")) |(("WITH")) >>(("DATA"));;;ColumnDefinition = (ColumnName >> !DataType | DomainName >> !ReferenceScopeCheck >> !DefaultClause | IdentityColumnSpecification | GenerationClause >> *ColumnConstraintDefinition >> !CollateClause);;;ColumnConstraintDefinition = !(ConstraintNameDefinition >> ColumnConstraint >> !ConstraintCharacteristics);;;ColumnConstraint =(str_p("NOT")) >>(("NULL")) | UniqueSpecification | ReferencesSpecification | CheckConstraintDefinition;;;ReferenceScopeCheck = ((str_p("REFERENCES")) >>(("ARE")) >> !(str_p("NOT")) >>(("CHECKED")) >> !(str_p("ON")) >>(("DELETE")) >> ReferenceScopeCheckAction);;;ReferenceScopeCheckAction = ReferentialAction;;;IdentityColumnSpecification = (GENERATED >>(("ALWAYS")) |(("BY")) >>(("DEFAULT")) >>(("AS")) >>(("IDENTITY")) >> !LeftParen >> CommonSequenceGeneratorOptions >> RightParen);;;GenerationClause = GenerationRule >>(("AS")) >> GenerationExpression;;;GenerationRule = GENERATED >>(("ALWAYS"));;;GenerationExpression = LeftParen >> ValueExpression >> RightParen;;;DefaultClause =(str_p("DEFAULT")) >> DefaultOption;;;DefaultOption = Literal | DatetimeValueFunction |(("USER")) |(("CURRENT_USER")) |(("CURRENT_ROLE")) |(("SESSION_USER")) |(("SYSTEM_USER")) |(("CURRENT_PATH")) | ImplicitlyTypedValueSpecification;;;TableConstraintDefinition = !(ConstraintNameDefinition >> TableConstraint >> !ConstraintCharacteristics);;;TableConstraint = UniqueConstraintDefinition | ReferentialConstraintDefinition | CheckConstraintDefinition;;;UniqueConstraintDefinition = UniqueSpecification >> LeftParen >> UniqueColumnList >> RightParen | ((str_p("UNIQUE")) >>(("VALUE")));;;UniqueSpecification =(str_p("UNIQUE")) |(("PRIMARY")) >>(("KEY"));;;UniqueColumnList = ColumnNameList;;;ReferentialConstraintDefinition =(str_p("FOREIGN")) >>(("KEY")) >> LeftParen >> ReferencingColumns >> RightParen >> ReferencesSpecification;;;ReferencesSpecification = ((str_p("REFERENCES")) >> ReferencedTableAndColumns >> !(str_p("MATCH")) >> MatchType >> !ReferentialTriggeredAction);;;MatchType =(str_p("FULL")) |(("PARTIAL")) |(("SIMPLE"));;;ReferencingColumns = ReferenceColumnList;;;ReferencedTableAndColumns = (TableName >> !LeftParen >> ReferenceColumnList >> RightParen);;;ReferenceColumnList = ColumnNameList;;;ReferentialTriggeredAction = (UpdateRule >> !DeleteRule) | (DeleteRule >> !UpdateRule);;;UpdateRule =(str_p("ON")) >>(("UPDATE")) >> ReferentialAction;;;DeleteRule =(str_p("ON")) >>(("DELETE")) >> ReferentialAction;;;ReferentialAction =(str_p("CASCADE")) |(("SET")) >>(("NULL")) |(("SET")) >>(("DEFAULT")) | RESTRICT |(("NO")) >>(("ACTION"));;;CheckConstraintDefinition =(str_p("CHECK")) >> LeftParen >> SearchCondition >> RightParen;;;AlterTableStatement =(str_p("ALTER")) >>(("TABLE")) >> TableName >> AlterTableAction;;;AlterTableAction = AddColumnDefinition | AlterColumnDefinition | DropColumnDefinition | AddTableConstraintDefinition | DropTableConstraintDefinition;;;AddColumnDefinition = ((str_p("ADD")) >> !(str_p("COLUMN")) >> ColumnDefinition);;;AlterColumnDefinition = ((str_p("ALTER")) >> !(str_p("COLUMN")) >> ColumnName >> AlterColumnAction);;;AlterColumnAction = SetColumnDefaultClause | DropColumnDefaultClause | AddColumnScopeClause | DropColumnScopeClause | AlterIdentityColumnSpecification;;;SetColumnDefaultClause =(str_p("SET")) >> DefaultClause;;;DropColumnDefaultClause =(str_p("DROP")) >>(("DEFAULT"));;;AddColumnScopeClause =(str_p("ADD")) >> ScopeClause;;;DropColumnScopeClause =(str_p("DROP")) >> SCOPE >> DropBehavior;;;AlterIdentityColumnSpecification = +AlterIdentityColumnOption;;;AlterIdentityColumnOption = AlterSequenceGeneratorRestartOption |(("SET")) >> BasicSequenceGeneratorOption;;;DropColumnDefinition = ((str_p("DROP")) >> !(str_p("COLUMN")) >> ColumnName >> DropBehavior);;;AddTableConstraintDefinition =(str_p("ADD")) >> TableConstraintDefinition;;;DropTableConstraintDefinition =(str_p("DROP")) >>(("CONSTRAINT")) >> ConstraintName >> DropBehavior;;;DropTableStatement =(str_p("DROP")) >>(("TABLE")) >> TableName >> DropBehavior;;;ViewDefinition = ((str_p("CREATE")) >> !(str_p("RECURSIVE")) >>(("VIEW")) >> TableName >> ViewSpecification >>(("AS")) >> QueryExpression >> !((str_p("WITH")) >> !LevelsClause >>(("CHECK")) >>(("OPTION"))));;;ViewSpecification = RegularViewSpecification | ReferenceableViewSpecification;;;RegularViewSpecification = !(LeftParen >> ViewColumnList >> RightParen);;;ReferenceableViewSpecification = ((str_p("OF")) >> PathResolvedUserDefinedTypeName >> !SubviewClause >> !ViewElementList);;;SubviewClause =(str_p("UNDER")) >> TableName;;;ViewElementList = (LeftParen >> (ViewElement%Comma) >> RightParen);;;ViewElement = SelfReferencingColumnSpecification | ViewColumnOption;;;ViewColumnOption = ColumnName >>(("WITH")) >>(("OPTIONS")) >> ScopeClause;;;LevelsClause =(str_p("CASCADED")) |(("LOCAL"));;;ViewColumnList = ColumnNameList;;;DropViewStatement =(str_p("DROP")) >>(("VIEW")) >> TableName >> DropBehavior;;;DomainDefinition = ((str_p("CREATE")) >>(("DOMAIN")) >> DomainName >> !(str_p("AS")) >> DataType >> !DefaultClause >> *DomainConstraint >> !CollateClause);;;DomainConstraint = !(ConstraintNameDefinition >> CheckConstraintDefinition >> !ConstraintCharacteristics);;;AlterDomainStatement =(str_p("ALTER")) >>(("DOMAIN")) >> DomainName >> AlterDomainAction;;;AlterDomainAction = SetDomainDefaultClause | DropDomainDefaultClause | AddDomainConstraintDefinition | DropDomainConstraintDefinition;;;SetDomainDefaultClause =(str_p("SET")) >> DefaultClause;;;DropDomainDefaultClause =(str_p("DROP")) >>(("DEFAULT"));;;AddDomainConstraintDefinition =(str_p("ADD")) >> DomainConstraint;;;DropDomainConstraintDefinition =(str_p("DROP")) >>(("CONSTRAINT")) >> ConstraintName;;;DropDomainStatement =(str_p("DROP")) >>(("DOMAIN")) >> DomainName >> DropBehavior;;;CharacterSetDefinition = ((str_p("CREATE")) >>(("CHARACTER")) >>(("SET")) >> CharacterSetName >> !(str_p("AS")) >> CharacterSetSource >> !CollateClause);;;CharacterSetSource =(str_p("GET")) >> CharacterSetSpecification;;;DropCharacterSetStatement =(str_p("DROP")) >>(("CHARACTER")) >>(("SET")) >> CharacterSetName;;;CollationDefinition = ((str_p("CREATE")) >>(("COLLATION")) >> CollationName >>(("FOR")) >> CharacterSetSpecification >>(("FROM")) >> ExistingCollationName >> !PadCharacteristic);;;ExistingCollationName = CollationName;;;PadCharacteristic =(str_p("NO")) >>(("PAD")) |(("PAD")) >>(("SPACE"));;;DropCollationStatement =(str_p("DROP")) >>(("COLLATION")) >> CollationName >> DropBehavior;;;TransliterationDefinition =(str_p("CREATE")) >>(("TRANSLATION")) >> TransliterationName >>(("FOR")) >> SourceCharacterSetSpecification >>(("TO")) >> TargetCharacterSetSpecification >>(("FROM")) >> TransliterationSource;;;SourceCharacterSetSpecification = CharacterSetSpecification;;;TargetCharacterSetSpecification = CharacterSetSpecification;;;TransliterationSource = ExistingTransliterationName | TransliterationRoutine;;;ExistingTransliterationName = TransliterationName;;;TransliterationRoutine = SpecificRoutineDesignator;;;DropTransliterationStatement =(str_p("DROP")) >>(("TRANSLATION")) >> TransliterationName;;;AssertionDefinition = ((str_p("CREATE")) >>(("ASSERTION")) >> ConstraintName >>(("CHECK")) >> LeftParen >> SearchCondition >> RightParen >> !ConstraintCharacteristics);;;DropAssertionStatement =(str_p("DROP")) >>(("ASSERTION")) >> ConstraintName;;;TriggerDefinition = ((str_p("CREATE")) >>(("TRIGGER")) >> TriggerName >> TriggerActionTime >> TriggerEvent >>(("ON")) >> TableName >> !(str_p("REFERENCING")) >> OldOrNewValuesAliasList >> TriggeredAction);;;TriggerActionTime =(str_p("BEFORE")) |(("AFTER"));;;TriggerEvent =(str_p("INSERT")) |(("DELETE")) | ((str_p("UPDATE")) >> !(str_p("OF")) >> TriggerColumnList);;;TriggerColumnList = ColumnNameList;;;TriggeredAction = !(((str_p("FOR")) >>(("EACH")) >>(("ROW")) |(("STATEMENT"))) >> !(str_p("WHEN")) >> LeftParen >> SearchCondition >> RightParen >> TriggeredSQLStatement);;;TriggeredSQLStatement = SQLProcedureStatement | ((str_p("BEGIN")) >>(("ATOMIC")) >> +SQLProcedureStatement >> Semicolon >>(("END")));;;OldOrNewValuesAliasList = +OldOrNewValuesAlias;;;OldOrNewValuesAlias = ((str_p("OLD")) >> !(str_p("ROW")) >> !(str_p("AS")) >> OldValuesCorrelationName) | ((str_p("NEW")) >> !(str_p("ROW")) >> !(str_p("AS")) >> NewValuesCorrelationName) | ((str_p("OLD")) >>(("TABLE")) >> !(str_p("AS")) >> OldValuesTableAlias) | ((str_p("NEW")) >>(("TABLE")) >> !(str_p("AS")) >> NewValuesTableAlias);;;OldValuesTableAlias = Identifier;;;NewValuesTableAlias = Identifier;;;OldValuesCorrelationName = CorrelationName;;;NewValuesCorrelationName = CorrelationName;;;DropTriggerStatement =(str_p("DROP")) >>(("TRIGGER")) >> TriggerName;;;UserDefinedTypeDefinition =(str_p("CREATE")) >>(("TYPE")) >> UserDefinedTypeBody;;;UserDefinedTypeBody = (SchemaResolvedUserDefinedTypeName >> !SubtypeClause >> !(str_p("AS")) >> Representation >> !UserDefinedTypeOptionList >> !MethodSpecificationList);;;UserDefinedTypeOptionList = (UserDefinedTypeOption >> *UserDefinedTypeOption);;;UserDefinedTypeOption = InstantiableClause | Finality | ReferenceTypeSpecification | RefCastOption | CastOption;;;SubtypeClause =(str_p("UNDER")) >> SupertypeName;;;SupertypeName = PathResolvedUserDefinedTypeName;;;Representation = PredefinedType | MemberList;;;MemberList = (LeftParen >> (Member%Comma) >> RightParen);;;Member = AttributeDefinition;;;InstantiableClause =(str_p("INSTANTIABLE")) |(("NOT")) >>(("INSTANTIABLE"));;;Finality =(str_p("FINAL")) |(("NOT")) >>(("FINAL"));;;ReferenceTypeSpecification = UserDefinedRepresentation | DerivedRepresentation | SystemGeneratedRepresentation;;;UserDefinedRepresentation =(str_p("REF")) >>(("USING")) >> PredefinedType;;;DerivedRepresentation =(str_p("REF")) >>(("FROM")) >> ListOfAttributes;;;SystemGeneratedRepresentation =(str_p("REF")) >>(("IS")) >>(("SYSTEM")) >> GENERATED;;;RefCastOption = !(CastToRef >> !CastToType);;;CastToRef =(str_p("CAST")) >> LeftParen >>(("SOURCE")) >>(("AS")) >>(("REF")) >> RightParen >>(("WITH")) >> CastToRefIdentifier;;;CastToRefIdentifier = Identifier;;;CastToType =(str_p("CAST")) >> LeftParen >>(("REF")) >>(("AS")) >>(("SOURCE")) >> RightParen >>(("WITH")) >> CastToTypeIdentifier;;;CastToTypeIdentifier = Identifier;;;ListOfAttributes = (LeftParen >> (AttributeName%Comma) >> RightParen);;;CastOption = !(CastToDistinct >> !CastToSource);;;CastToDistinct =(str_p("CAST")) >> LeftParen >>(("SOURCE")) >>(("AS")) >>(("DISTINCT")) >> RightParen >>(("WITH")) >> CastToDistinctIdentifier;;;CastToDistinctIdentifier = Identifier;;;CastToSource =(str_p("CAST")) >> LeftParen >>(("DISTINCT")) >>(("AS")) >>(("SOURCE")) >> RightParen >>(("WITH")) >> CastToSourceIdentifier;;;CastToSourceIdentifier = Identifier;;;MethodSpecificationList = ((MethodSpecification%Comma));;;MethodSpecification = OriginalMethodSpecification | OverridingMethodSpecification;;;OriginalMethodSpecification = (PartialMethodSpecification >> !(str_p("SELF")) >>(("AS")) >>(("RESULT")) >> !(str_p("SELF")) >>(("AS")) >>(("LOCATOR")) >> !MethodCharacteristics);;;OverridingMethodSpecification =(str_p("OVERRIDING")) >> PartialMethodSpecification;;;PartialMethodSpecification = !((str_p("INSTANCE")) |(("STATIC")) | CONSTRUCTOR >>(("METHOD")) >> MethodName >> SQLParameterDeclarationList >> ReturnsClause >> !(str_p("SPECIFIC")) >> SpecificMethodName);;;SpecificMethodName = !(SchemaName >> Period >> QualifiedIdentifier);;;MethodCharacteristics = +MethodCharacteristic;;;MethodCharacteristic = LanguageClause | ParameterStyleClause | DeterministicCharacteristic | SQLDataAccessIndication | NullCallClause;;;AttributeDefinition = (AttributeName >> DataType >> !ReferenceScopeCheck >> !AttributeDefault >> !CollateClause);;;AttributeDefault = DefaultClause;;;AlterTypeStatement =(str_p("ALTER")) >>(("TYPE")) >> SchemaResolvedUserDefinedTypeName >> AlterTypeAction;;;AlterTypeAction = AddAttributeDefinition | DropAttributeDefinition | AddOriginalMethodSpecification | AddOverridingMethodSpecification | DropMethodSpecification;;;AddAttributeDefinition =(str_p("ADD")) >>(("ATTRIBUTE")) >> AttributeDefinition;;;DropAttributeDefinition =(str_p("DROP")) >>(("ATTRIBUTE")) >> AttributeName >> RESTRICT;;;AddOriginalMethodSpecification =(str_p("ADD")) >> OriginalMethodSpecification;;;AddOverridingMethodSpecification =(str_p("ADD")) >> OverridingMethodSpecification;;;DropMethodSpecification =(str_p("DROP")) >> SpecificMethodSpecificationDesignator >> RESTRICT;;;SpecificMethodSpecificationDesignator = !((str_p("INSTANCE")) |(("STATIC")) | CONSTRUCTOR >>(("METHOD")) >> MethodName >> DataTypeList);;;DropDataTypeStatement =(str_p("DROP")) >>(("TYPE")) >> SchemaResolvedUserDefinedTypeName >> DropBehavior;;;SQLInvokedRoutine = SchemaRoutine;;;SchemaRoutine = SchemaProcedure | SchemaFunction;;;SchemaProcedure =(str_p("CREATE")) >> SQLInvokedProcedure;;;SchemaFunction =(str_p("CREATE")) >> SQLInvokedFunction;;;SQLInvokedProcedure =(str_p("PROCEDURE")) >> SchemaQualifiedRoutineName >> SQLParameterDeclarationList >> RoutineCharacteristics >> RoutineBody;;;SQLInvokedFunction = (FunctionSpecification | MethodSpecificationDesignator >> RoutineBody);;;SQLParameterDeclarationList = (LeftParen >> !((SQLParameterDeclaration%Comma)) >> RightParen);;;SQLParameterDeclaration = !(ParameterMode >> !SQLParameterName >> ParameterType >> !(str_p("RESULT")));;;ParameterMode =(str_p("IN")) |(("OUT")) |(("INOUT"));;;ParameterType = (DataType >> !LocatorIndication);;;LocatorIndication =(str_p("AS")) >>(("LOCATOR"));;;FunctionSpecification = ((str_p("FUNCTION")) >> SchemaQualifiedRoutineName >> SQLParameterDeclarationList >> ReturnsClause >> RoutineCharacteristics >> !DispatchClause);;;MethodSpecificationDesignator =(str_p("SPECIFIC")) >>(("METHOD")) >> SpecificMethodName | !((str_p("INSTANCE")) |(("STATIC")) | CONSTRUCTOR >>(("METHOD")) >> MethodName >> SQLParameterDeclarationList >> !ReturnsClause >>(("FOR")) >> SchemaResolvedUserDefinedTypeName);;;RoutineCharacteristics = *(RoutineCharacteristic);;;RoutineCharacteristic = LanguageClause | ParameterStyleClause |(("SPECIFIC")) >> SpecificName | DeterministicCharacteristic | SQLDataAccessIndication | NullCallClause | DynamicResultSetsCharacteristic | SavepointLevelIndication;;;SavepointLevelIndication =(str_p("NEW")) >>(("SAVEPOINT")) >>(("LEVEL")) |(("OLD")) >>(("SAVEPOINT")) >>(("LEVEL"));;;DynamicResultSetsCharacteristic =(str_p("DYNAMIC")) >>(("RESULT")) >>(("SETS")) >> MaximumDynamicResultSets;;;ParameterStyleClause =(str_p("PARAMETER")) >>(("STYLE")) >> ParameterStyle;;;DispatchClause =(str_p("STATIC")) >>(("DISPATCH"));;;ReturnsClause =(str_p("RETURNS")) >> ReturnsType;;;ReturnsType = (ReturnsDataType >> !ResultCast) | ReturnsTableType;;;ReturnsTableType =(str_p("TABLE")) >> TableFunctionColumnList;;;TableFunctionColumnList = (LeftParen >> (TableFunctionColumnListElement%Comma) >> RightParen);;;TableFunctionColumnListElement = ColumnName >> DataType;;;ResultCast =(str_p("CAST")) >>(("FROM")) >> ResultCastFromType;;;ResultCastFromType = (DataType >> !LocatorIndication);;;ReturnsDataType = (DataType >> !LocatorIndication);;;RoutineBody = SQLRoutineSpec | ExternalBodyReference;;;SQLRoutineSpec = !(RightsClause >> SQLRoutineBody);;;RightsClause =(str_p("SQL")) >>(("SECURITY")) >>(("INVOKER")) |(("SQL")) >>(("SECURITY")) >>(("DEFINER"));;;SQLRoutineBody = SQLProcedureStatement;;;ExternalBodyReference = ((str_p("EXTERNAL")) >> !(str_p("NAME")) >> ExternalRoutineName >> !ParameterStyleClause >> !TransformGroupSpecification >> !ExternalSecurityClause);;;ExternalSecurityClause =(str_p("EXTERNAL")) >>(("SECURITY")) >>(("DEFINER")) |(("EXTERNAL")) >>(("SECURITY")) >>(("INVOKER")) |(("EXTERNAL")) >>(("SECURITY")) >>(("IMPLEMENTATION")) >>(("DEFINED"));;;ParameterStyle =(str_p("SQL")) |(("GENERAL"));;;DeterministicCharacteristic =(str_p("DETERMINISTIC")) |(("NOT")) >>(("DETERMINISTIC"));;;SQLDataAccessIndication =(str_p("NO")) >>(("SQL")) |(("CONTAINS")) >>(("SQL")) |(("READS")) >>(("SQL")) >>(("DATA")) |(("MODIFIES")) >>(("SQL")) >>(("DATA"));;;NullCallClause =(str_p("RETURNS")) >>(("NULL")) >>(("ON")) >>(("NULL")) >>(("INPUT")) |(("CALLED")) >>(("ON")) >>(("NULL")) >>(("INPUT"));;;MaximumDynamicResultSets = UnsignedInteger;;;TransformGroupSpecification = ((str_p("TRANSFORM")) >>(("GROUP")) >> SingleGroupSpecification | MultipleGroupSpecification);;;SingleGroupSpecification = GroupName;;;MultipleGroupSpecification = ((GroupSpecification%Comma));;;GroupSpecification = GroupName >>(("FOR")) >>(("TYPE")) >> PathResolvedUserDefinedTypeName;;;AlterRoutineStatement =(str_p("ALTER")) >> SpecificRoutineDesignator >> AlterRoutineCharacteristics >> AlterRoutineBehavior;;;AlterRoutineCharacteristics = +AlterRoutineCharacteristic;;;AlterRoutineCharacteristic = LanguageClause | ParameterStyleClause | SQLDataAccessIndication | NullCallClause | DynamicResultSetsCharacteristic |(("NAME")) >> ExternalRoutineName;;;AlterRoutineBehavior = RESTRICT;;;DropRoutineStatement =(str_p("DROP")) >> SpecificRoutineDesignator >> DropBehavior;;;UserDefinedCastDefinition = ((str_p("CREATE")) >>(("CAST")) >> LeftParen >> SourceDataType >>(("AS")) >> TargetDataType >> RightParen >>(("WITH")) >> CastFunction >> !(str_p("AS")) >>(("ASSIGNMENT")));;;CastFunction = SpecificRoutineDesignator;;;SourceDataType = DataType;;;TargetDataType = DataType;;;DropUserDefinedCastStatement =(str_p("DROP")) >>(("CAST")) >> LeftParen >> SourceDataType >>(("AS")) >> TargetDataType >> RightParen >> DropBehavior;;;UserDefinedOrderingDefinition =(str_p("CREATE")) >>(("ORDERING")) >>(("FOR")) >> SchemaResolvedUserDefinedTypeName >> OrderingForm;;;OrderingForm = EqualsOrderingForm | FullOrderingForm;;;EqualsOrderingForm =(str_p("EQUALS")) >>(("ONLY")) >>(("BY")) >> OrderingCategory;;;FullOrderingForm =(str_p("ORDER")) >>(("FULL")) >>(("BY")) >> OrderingCategory;;;OrderingCategory = RelativeCategory | MapCategory | StateCategory;;;RelativeCategory =(str_p("RELATIVE")) >>(("WITH")) >> RelativeFunctionSpecification;;;MapCategory =(str_p("MAP")) >>(("WITH")) >> MapFunctionSpecification;;;StateCategory = ((str_p("STATE")) >> !SpecificName);;;RelativeFunctionSpecification = SpecificRoutineDesignator;;;MapFunctionSpecification = SpecificRoutineDesignator;;;DropUserDefinedOrderingStatement =(str_p("DROP")) >>(("ORDERING")) >>(("FOR")) >> SchemaResolvedUserDefinedTypeName >> DropBehavior;;;TransformDefinition = ((str_p("CREATE")) >>(("TRANSFORM")) |(("TRANSFORMS")) >>(("FOR")) >> SchemaResolvedUserDefinedTypeName >> +TransformGroup);;;TransformGroup = GroupName >> LeftParen >> TransformElementList >> RightParen;;;GroupName = Identifier;;;TransformElementList = (TransformElement >> !Comma >> TransformElement);;;TransformElement = ToSql | FromSql;;;ToSql =(str_p("TO")) >>(("SQL")) >>(("WITH")) >> ToSqlFunction;;;FromSql =(str_p("FROM")) >>(("SQL")) >>(("WITH")) >> FromSqlFunction;;;ToSqlFunction = SpecificRoutineDesignator;;;FromSqlFunction = SpecificRoutineDesignator;;;AlterTransformStatement = ((str_p("ALTER")) >>(("TRANSFORM")) |(("TRANSFORMS")) >>(("FOR")) >> SchemaResolvedUserDefinedTypeName >> +AlterGroup);;;AlterGroup = GroupName >> LeftParen >> AlterTransformActionList >> RightParen;;;AlterTransformActionList = ((AlterTransformAction%Comma));;;AlterTransformAction = AddTransformElementList | DropTransformElementList;;;AddTransformElementList =(str_p("ADD")) >> LeftParen >> TransformElementList >> RightParen;;;DropTransformElementList = ((str_p("DROP")) >> LeftParen >> TransformKind >> !Comma >> TransformKind >> DropBehavior >> RightParen);;;TransformKind =(str_p("TO")) >>(("SQL")) |(("FROM")) >>(("SQL"));;;DropTransformStatement = ((str_p("DROP")) >>(("TRANSFORM")) |(("TRANSFORMS")) >> TransformsToBeDropped >>(("FOR")) >> SchemaResolvedUserDefinedTypeName >> DropBehavior);;;TransformsToBeDropped =(str_p("ALL")) | TransformGroupElement;;;TransformGroupElement = GroupName;;;SequenceGeneratorDefinition = ((str_p("CREATE")) >>(("SEQUENCE")) >> SequenceGeneratorName >> !SequenceGeneratorOptions);;;SequenceGeneratorOptions = +SequenceGeneratorOption;;;SequenceGeneratorOption = SequenceGeneratorDataTypeOption | CommonSequenceGeneratorOptions;;;CommonSequenceGeneratorOptions = +CommonSequenceGeneratorOption;;;CommonSequenceGeneratorOption = SequenceGeneratorStartWithOption | BasicSequenceGeneratorOption;;;BasicSequenceGeneratorOption = SequenceGeneratorIncrementByOption | SequenceGeneratorMaxvalueOption | SequenceGeneratorMinvalueOption | SequenceGeneratorCycleOption;;;SequenceGeneratorDataTypeOption =(str_p("AS")) >> DataType;;;SequenceGeneratorStartWithOption =(str_p("START")) >>(("WITH")) >> SequenceGeneratorStartValue;;;SequenceGeneratorStartValue = SignedNumericLiteral;;;SequenceGeneratorIncrementByOption =(str_p("INCREMENT")) >>(("BY")) >> SequenceGeneratorIncrement;;;SequenceGeneratorIncrement = SignedNumericLiteral;;;SequenceGeneratorMaxvalueOption =(str_p("MAXVALUE")) >> SequenceGeneratorMaxValue |(("NO")) >>(("MAXVALUE"));;;SequenceGeneratorMaxValue = SignedNumericLiteral;;;SequenceGeneratorMinvalueOption =(str_p("MINVALUE")) >> SequenceGeneratorMinValue |(("NO")) >>(("MINVALUE"));;;SequenceGeneratorMinValue = SignedNumericLiteral;;;SequenceGeneratorCycleOption =(str_p("CYCLE")) |(("NO")) >>(("CYCLE"));;;AlterSequenceGeneratorStatement =(str_p("ALTER")) >>(("SEQUENCE")) >> SequenceGeneratorName >> AlterSequenceGeneratorOptions;;;AlterSequenceGeneratorOptions = +AlterSequenceGeneratorOption;;;AlterSequenceGeneratorOption = AlterSequenceGeneratorRestartOption | BasicSequenceGeneratorOption;;;AlterSequenceGeneratorRestartOption =(str_p("RESTART")) >>(("WITH")) >> SequenceGeneratorRestartValue;;;SequenceGeneratorRestartValue = SignedNumericLiteral;;;DropSequenceGeneratorStatement =(str_p("DROP")) >>(("SEQUENCE")) >> SequenceGeneratorName >> DropBehavior;;;GrantStatement = GrantPrivilegeStatement | GrantRoleStatement;;;GrantPrivilegeStatement = ((str_p("GRANT")) >> Privileges >>(("TO")) >> (Grantee%Comma) >> !(str_p("WITH")) >>(("HIERARCHY")) >>(("OPTION")) >> !(str_p("WITH")) >>(("GRANT")) >>(("OPTION")) >> !(str_p("GRANTED")) >>(("BY")) >> Grantor);;;Privileges = ObjectPrivileges >>(("ON")) >> ObjectName;;;ObjectName = !((str_p("TABLE")) >> TableName) |(("DOMAIN")) >> DomainName |(("COLLATION")) >> CollationName |(("CHARACTER")) >>(("SET")) >> CharacterSetName |(("TRANSLATION")) >> TransliterationName |(("TYPE")) >> SchemaResolvedUserDefinedTypeName |(("SEQUENCE")) >> SequenceGeneratorName | SpecificRoutineDesignator;;;ObjectPrivileges =(str_p("ALL")) >>(("PRIVILEGES")) | ((Action%Comma));;;Action =(str_p("SELECT")) |(("SELECT")) >> LeftParen >> PrivilegeColumnList >> RightParen |(("SELECT")) >> LeftParen >> PrivilegeMethodList >> RightParen |(("DELETE")) | ((str_p("INSERT")) >> !LeftParen >> PrivilegeColumnList >> RightParen) | ((str_p("UPDATE")) >> !LeftParen >> PrivilegeColumnList >> RightParen) | ((str_p("REFERENCES")) >> !LeftParen >> PrivilegeColumnList >> RightParen) |(("USAGE")) |(("TRIGGER")) |(("UNDER")) |(("EXECUTE"));;;PrivilegeMethodList = ((SpecificRoutineDesignator%Comma));;;PrivilegeColumnList = ColumnNameList;;;Grantee =(str_p("PUBLIC")) | AuthorizationIdentifier;;;Grantor =(str_p("CURRENT_USER")) |(("CURRENT_ROLE"));;;RoleDefinition = ((str_p("CREATE")) >>(("ROLE")) >> RoleName >> !(str_p("WITH")) >>(("ADMIN")) >> Grantor);;;GrantRoleStatement = ((str_p("GRANT")) >> (RoleGranted%Comma) >>(("TO")) >> (Grantee%Comma) >> !(str_p("WITH")) >>(("ADMIN")) >>(("OPTION")) >> !(str_p("GRANTED")) >>(("BY")) >> Grantor);;;RoleGranted = RoleName;;;DropRoleStatement =(str_p("DROP")) >>(("ROLE")) >> RoleName;;;RevokeStatement = RevokePrivilegeStatement | RevokeRoleStatement;;;RevokePrivilegeStatement = ((str_p("REVOKE")) >> !RevokeOptionExtension >> Privileges >>(("FROM")) >> (Grantee%Comma) >> !(str_p("GRANTED")) >>(("BY")) >> Grantor >> DropBehavior);;;RevokeOptionExtension =(str_p("GRANT")) >>(("OPTION")) >>(("FOR")) |(("HIERARCHY")) >>(("OPTION")) >>(("FOR"));;;RevokeRoleStatement = ((str_p("REVOKE")) >> !(str_p("ADMIN")) >>(("OPTION")) >>(("FOR")) >> (RoleRevoked%Comma) >>(("FROM")) >> (Grantee%Comma) >> !(str_p("GRANTED")) >>(("BY")) >> Grantor >> DropBehavior);;;RoleRevoked = RoleName;;;SQLClientModuleDefinition = (ModuleNameClause >> LanguageClause >> ModuleAuthorizationClause >> !ModulePathSpecification >> !ModuleTransformGroupSpecification >> !ModuleCollation >> *TemporaryTableDeclaration >> +ModuleContents);;;ModuleAuthorizationClause =(str_p("SCHEMA")) >> SchemaName | ((str_p("AUTHORIZATION")) >> ModuleAuthorizationIdentifier >> !((str_p("FOR")) >>(("STATIC")) >>(("ONLY")) |(("AND")) >>(("DYNAMIC")))) | ((str_p("SCHEMA")) >> SchemaName >>(("AUTHORIZATION")) >> ModuleAuthorizationIdentifier >> !((str_p("FOR")) >>(("STATIC")) >>(("ONLY")) |(("AND")) >>(("DYNAMIC"))));;;ModuleAuthorizationIdentifier = AuthorizationIdentifier;;;ModulePathSpecification = PathSpecification;;;ModuleTransformGroupSpecification = TransformGroupSpecification;;;ModuleCollations = +ModuleCollationSpecification;;;ModuleCollationSpecification = ((str_p("COLLATION")) >> CollationName >> !(str_p("FOR")) >> CharacterSetSpecificationList);;;CharacterSetSpecificationList = ((CharacterSetSpecification%Comma));;;ModuleContents = DeclareCursor | DynamicDeclareCursor | ExternallyInvokedProcedure;;;ModuleNameClause = ((str_p("MODULE")) >> !SQLClientModuleName >> !ModuleCharacterSetSpecification);;;ModuleCharacterSetSpecification =(str_p("NAMES")) >>(("ARE")) >> CharacterSetSpecification;;;ExternallyInvokedProcedure =(str_p("PROCEDURE")) >> ProcedureName >> HostParameterDeclarationList >> Semicolon >> SQLProcedureStatement >> Semicolon;;;HostParameterDeclarationList = (LeftParen >> (HostParameterDeclaration%Comma) >> RightParen);;;HostParameterDeclaration = HostParameterName >> HostParameterDataType | StatusParameter;;;HostParameterDataType = (DataType >> !LocatorIndication);;;StatusParameter =(str_p("SQLSTATE"));;;SQLProcedureStatement = SQLExecutableStatement;;;SQLExecutableStatement = SQLSchemaStatement | SQLDataStatement | SQLControlStatement | SQLTransactionStatement | SQLConnectionStatement | SQLSessionStatement | SQLDiagnosticsStatement | SQLDynamicStatement;;;SQLSchemaStatement = SQLSchemaDefinitionStatement | SQLSchemaManipulationStatement;;;SQLSchemaDefinitionStatement = SchemaDefinition | TableDefinition | ViewDefinition | SQLInvokedRoutine | GrantStatement | RoleDefinition | DomainDefinition | CharacterSetDefinition | CollationDefinition | TransliterationDefinition | AssertionDefinition | TriggerDefinition | UserDefinedTypeDefinition | UserDefinedCastDefinition | UserDefinedOrderingDefinition | TransformDefinition | SequenceGeneratorDefinition;;;SQLSchemaManipulationStatement = DropSchemaStatement | AlterTableStatement | DropTableStatement | DropViewStatement | AlterRoutineStatement | DropRoutineStatement | DropUserDefinedCastStatement | RevokeStatement | DropRoleStatement | AlterDomainStatement | DropDomainStatement | DropCharacterSetStatement | DropCollationStatement | DropTransliterationStatement | DropAssertionStatement | DropTriggerStatement | AlterTypeStatement | DropDataTypeStatement | DropUserDefinedOrderingStatement | AlterTransformStatement | DropTransformStatement | AlterSequenceGeneratorStatement | DropSequenceGeneratorStatement;;;SQLDataStatement = OpenStatement | FetchStatement | CloseStatement | SelectStatementSingleRow | FreeLocatorStatement | HoldLocatorStatement | SQLDataChangeStatement;;;SQLDataChangeStatement = DeleteStatementPositioned | DeleteStatementSearched | InsertStatement | UpdateStatementPositioned | UpdateStatementSearched | MergeStatement;;;SQLControlStatement = CallStatement | ReturnStatement;;;SQLTransactionStatement = StartTransactionStatement | SetTransactionStatement | SetConstraintsModeStatement | SavepointStatement | ReleaseSavepointStatement | CommitStatement | RollbackStatement;;;SQLConnectionStatement = ConnectStatement | SetConnectionStatement | DisconnectStatement;;;SQLSessionStatement = SetSessionUserIdentifierStatement | SetRoleStatement | SetLocalTimeZoneStatement | SetSessionCharacteristicsStatement | SetCatalogStatement | SetSchemaStatement | SetNamesStatement | SetPathStatement | SetTransformGroupStatement | SetSessionCollationStatement;;;SQLDiagnosticsStatement = GetDiagnosticsStatement;;;SQLDynamicStatement = SystemDescriptorStatement | PrepareStatement | DeallocatePreparedStatement | DescribeStatement | ExecuteStatement | ExecuteImmediateStatement | SQLDynamicDataStatement;;;SQLDynamicDataStatement = AllocateCursorStatement | DynamicOpenStatement | DynamicFetchStatement | DynamicCloseStatement | DynamicDeleteStatementPositioned | DynamicUpdateStatementPositioned;;;SystemDescriptorStatement = AllocateDescriptorStatement | DeallocateDescriptorStatement | SetDescriptorStatement | GetDescriptorStatement >> Table >> 16--Data >> type >> correspondences >> for >> C;;;DeclareCursor = ((str_p("DECLARE")) >> CursorName >> !CursorSensitivity >> !CursorScrollability >>(("CURSOR")) >> !CursorHoldability >> !CursorReturnability >>(("FOR")) >> CursorSpecification);;;CursorSensitivity =(str_p("SENSITIVE")) |(("INSENSITIVE")) |(("ASENSITIVE"));;;CursorScrollability =(str_p("SCROLL")) |(("NO")) >>(("SCROLL"));;;CursorHoldability =(str_p("WITH")) >>(("HOLD")) |(("WITHOUT")) >>(("HOLD"));;;CursorReturnability =(str_p("WITH")) >>(("RETURN")) |(("WITHOUT")) >>(("RETURN"));;;CursorSpecification = (QueryExpression >> !OrderByClause >> !UpdatabilityClause);;;UpdatabilityClause = ((str_p("FOR")) >>(("READ")) >>(("ONLY")) | ((str_p("UPDATE")) >> !(str_p("OF")) >> ColumnNameList));;;OrderByClause =(str_p("ORDER")) >>(("BY")) >> SortSpecificationList;;;OpenStatement =(str_p("OPEN")) >> CursorName;;;FetchStatement = ((str_p("FETCH")) >> !!(FetchOrientation >>(("FROM"))) >> CursorName >>(("INTO")) >> FetchTargetList);;;FetchOrientation =(str_p("NEXT")) |(("PRIOR")) |(("FIRST")) |(("LAST")) | ((str_p("ABSOLUTE")) |(("RELATIVE")) >> SimpleValueSpecification);;;FetchTargetList = ((TargetSpecification%Comma) >> Close >> a >> cursor).;;;CloseStatement =(str_p("CLOSE")) >> CursorName;;;SelectStatementSingleRow = ((str_p("SELECT")) >> !SetQuantifier >> SelectList >>(("INTO")) >> SelectTargetList >> TableExpression);;;SelectTargetList = ((TargetSpecification%Comma));;;DeleteStatementPositioned =(str_p("DELETE")) >>(("FROM")) >> TargetTable >>(("WHERE")) >>(("CURRENT")) >>(("OF")) >> CursorName;;;TargetTable = TableName |(("ONLY")) >> LeftParen >> TableName >> RightParen;;;DeleteStatementSearched = ((str_p("DELETE")) >>(("FROM")) >> TargetTable >> !(str_p("WHERE")) >> SearchCondition);;;InsertStatement =(str_p("INSERT")) >>(("INTO")) >> InsertionTarget >> InsertColumnsAndSource;;;InsertionTarget = TableName;;;InsertColumnsAndSource = FromSubquery | FromConstructor | FromDefault;;;FromSubquery = !(LeftParen >> InsertColumnList >> RightParen >> !OverrideClause >> QueryExpression);;;FromConstructor = !(LeftParen >> InsertColumnList >> RightParen >> !OverrideClause >> ContextuallyTypedTableValueConstructor);;;OverrideClause =(str_p("OVERRIDING")) >>(("USER")) >>(("VALUE")) |(("OVERRIDING")) >>(("SYSTEM")) >>(("VALUE"));;;FromDefault =(str_p("DEFAULT")) >>(("VALUES"));;;InsertColumnList = ColumnNameList;;;MergeStatement = ((str_p("MERGE")) >>(("INTO")) >> TargetTable >> !!((str_p("AS")) >> MergeCorrelationName) >>(("USING")) >> TableReference >>(("ON")) >> SearchCondition >> MergeOperationSpecification);;;MergeCorrelationName = CorrelationName;;;MergeOperationSpecification = +MergeWhenClause;;;MergeWhenClause = MergeWhenMatchedClause | MergeWhenNotMatchedClause;;;MergeWhenMatchedClause =(str_p("WHEN")) >>(("MATCHED")) >>(("THEN")) >> MergeUpdateSpecification;;;MergeWhenNotMatchedClause =(str_p("WHEN")) >>(("NOT")) >>(("MATCHED")) >>(("THEN")) >> MergeInsertSpecification;;;MergeUpdateSpecification =(str_p("UPDATE")) >>(("SET")) >> SetClauseList;;;MergeInsertSpecification = ((str_p("INSERT")) >> !LeftParen >> InsertColumnList >> RightParen >> !OverrideClause >>(("VALUES")) >> MergeInsertValueList);;;MergeInsertValueList = (LeftParen >> (MergeInsertValueElement%Comma) >> RightParen);;;MergeInsertValueElement = ValueExpression | ContextuallyTypedValueSpecification;;;UpdateStatementPositioned =(str_p("UPDATE")) >> TargetTable >>(("SET")) >> SetClauseList >>(("WHERE")) >>(("CURRENT")) >>(("OF")) >> CursorName;;;UpdateStatementSearched = ((str_p("UPDATE")) >> TargetTable >>(("SET")) >> SetClauseList >> !(str_p("WHERE")) >> SearchCondition);;;SetClauseList = ((SetClause%Comma));;;SetClause = MultipleColumnAssignment | SetTarget >> EqualsOperator >> UpdateSource;;;SetTarget = UpdateTarget | MutatedSetClause;;;MultipleColumnAssignment = SetTargetList >> EqualsOperator >> AssignedRow;;;SetTargetList = (LeftParen >> (SetTarget%Comma) >> RightParen);;;AssignedRow = ContextuallyTypedRowValueExpression;;;UpdateTarget = ObjectColumn | ObjectColumn >> LeftBracketOrTrigraph >> SimpleValueSpecification >> RightBracketOrTrigraph;;;ObjectColumn = ColumnName;;;MutatedSetClause = MutatedTarget >> Period >> MethodName;;;MutatedTarget = ObjectColumn | MutatedSetClause;;;UpdateSource = ValueExpression | ContextuallyTypedValueSpecification;;;TemporaryTableDeclaration = ((str_p("DECLARE")) >>(("LOCAL")) >>(("TEMPORARY")) >>(("TABLE")) >> TableName >> TableElementList >> !(str_p("ON")) >>(("COMMIT")) >> TableCommitAction >>(("ROWS")));;;FreeLocatorStatement = ((str_p("FREE")) >>(("LOCATOR")) >> (LocatorReference%Comma));;;LocatorReference = HostParameterName | EmbeddedVariableName;;;HoldLocatorStatement = ((str_p("HOLD")) >>(("LOCATOR")) >> (LocatorReference%Comma));;;CallStatement =(str_p("CALL")) >> RoutineInvocation;;;ReturnStatement =(str_p("RETURN")) >> ReturnValue;;;ReturnValue = ValueExpression |(("NULL"));;;StartTransactionStatement = ((str_p("START")) >>(("TRANSACTION")) >> !((TransactionMode%Comma)));;;TransactionMode = IsolationLevel | TransactionAccessMode | DiagnosticsSize;;;TransactionAccessMode =(str_p("READ")) >>(("ONLY")) |(("READ")) >>(("WRITE"));;;IsolationLevel =(str_p("ISOLATION")) >>(("LEVEL")) >> LevelOfIsolation;;;LevelOfIsolation =(str_p("READ")) >>(("UNCOMMITTED")) |(("READ")) >>(("COMMITTED")) |(("REPEATABLE")) >>(("READ")) |(("SERIALIZABLE"));;;DiagnosticsSize =(str_p("DIAGNOSTICS")) >>(("SIZE")) >> NumberOfConditions;;;NumberOfConditions = SimpleValueSpecification;;;SetTransactionStatement = ((str_p("SET")) >> !(str_p("LOCAL")) >> TransactionCharacteristics);;;TransactionCharacteristics = ((str_p("TRANSACTION")) >> (TransactionMode%Comma));;;SetConstraintsModeStatement = ((str_p("SET")) >>(("CONSTRAINTS")) >> ConstraintNameList >>(("DEFERRED")) |(("IMMEDIATE")));;;ConstraintNameList =(str_p("ALL")) | ((ConstraintName%Comma));;;SavepointStatement =(str_p("SAVEPOINT")) >> SavepointSpecifier;;;SavepointSpecifier = SavepointName;;;ReleaseSavepointStatement =(str_p("RELEASE")) >>(("SAVEPOINT")) >> SavepointSpecifier;;;CommitStatement = ((str_p("COMMIT")) >> !(str_p("WORK")) >> !((str_p("AND")) >> !(str_p("NO")) >>(("CHAIN"))));;;RollbackStatement = ((str_p("ROLLBACK")) >> !(str_p("WORK")) >> !((str_p("AND")) >> !(str_p("NO")) >>(("CHAIN"))) >> !SavepointClause);;;SavepointClause =(str_p("TO")) >>(("SAVEPOINT")) >> SavepointSpecifier;;;ConnectStatement =(str_p("CONNECT")) >>(("TO")) >> ConnectionTarget;;;ConnectionTarget = (SQLServerName >> !(str_p("AS")) >> ConnectionName >> !(str_p("USER")) >> ConnectionUserName) |(("DEFAULT"));;;SetConnectionStatement =(str_p("SET")) >> CONNECTION >> ConnectionObject;;;ConnectionObject =(str_p("DEFAULT")) | ConnectionName;;;DisconnectStatement =(str_p("DISCONNECT")) >> DisconnectObject;;;DisconnectObject = ConnectionObject |(("ALL")) |(("CURRENT"));;;SetSessionCharacteristicsStatement =(str_p("SET")) >>(("SESSION")) >>(("CHARACTERISTICS")) >>(("AS")) >> SessionCharacteristicList;;;SessionCharacteristicList = ((SessionCharacteristic%Comma));;;SessionCharacteristic = TransactionCharacteristics;;;SetSessionUserIdentifierStatement =(str_p("SET")) >>(("SESSION")) >>(("AUTHORIZATION")) >> ValueSpecification;;;SetRoleStatement =(str_p("SET")) >>(("ROLE")) >> RoleSpecification;;;RoleSpecification = ValueSpecification |(("NONE"));;;SetLocalTimeZoneStatement =(str_p("SET")) >>(("TIME")) >>(("ZONE")) >> SetTimeZoneValue;;;SetTimeZoneValue = IntervalValueExpression |(("LOCAL"));;;SetCatalogStatement =(str_p("SET")) >> CatalogNameCharacteristic;;;CatalogNameCharacteristic =(str_p("CATALOG")) >> ValueSpecification;;;SetSchemaStatement =(str_p("SET")) >> SchemaNameCharacteristic;;;SchemaNameCharacteristic =(str_p("SCHEMA")) >> ValueSpecification;;;SetNamesStatement =(str_p("SET")) >> CharacterSetNameCharacteristic;;;CharacterSetNameCharacteristic =(str_p("NAMES")) >> ValueSpecification;;;SetPathStatement =(str_p("SET")) >> SQLPathCharacteristic;;;SQLPathCharacteristic =(str_p("PATH")) >> ValueSpecification;;;SetTransformGroupStatement =(str_p("SET")) >> TransformGroupCharacteristic;;;TransformGroupCharacteristic =(str_p("DEFAULT")) >>(("TRANSFORM")) >>(("GROUP")) >> ValueSpecification |(("TRANSFORM")) >>(("GROUP")) >>(("FOR")) >>(("TYPE")) >> PathResolvedUserDefinedTypeName >> ValueSpecification;;;SetSessionCollationStatement = ((str_p("SET")) >>(("COLLATION")) >> CollationSpecification >> !(str_p("FOR")) >> CharacterSetSpecificationList) | ((str_p("SET")) >>(("NO")) >>(("COLLATION")) >> !(str_p("FOR")) >> CharacterSetSpecificationList);;;CharacterSetSpecificationList = (CharacterSetSpecification >> !,+CharacterSetSpecification);;;CollationSpecification = ValueSpecification;;;AllocateDescriptorStatement = ((str_p("ALLOCATE")) >> !(str_p("SQL")) >>(("DESCRIPTOR")) >> DescriptorName >> !(str_p("WITH")) >>(("MAX")) >> Occurrences);;;Occurrences = SimpleValueSpecification;;;DeallocateDescriptorStatement = ((str_p("DEALLOCATE")) >> !(str_p("SQL")) >>(("DESCRIPTOR")) >> DescriptorName);;;GetDescriptorStatement = ((str_p("GET")) >> !(str_p("SQL")) >>(("DESCRIPTOR")) >> DescriptorName >> GetDescriptorInformation);;;GetDescriptorInformation = ((GetHeaderInformation%Comma)) | ((str_p("VALUE")) >> ItemNumber >> (GetItemInformation%Comma));;;GetHeaderInformation = SimpleTargetSpecification1 >> EqualsOperator >> HeaderItemName;;;HeaderItemName =(str_p("COUNT")) |(("KEY_TYPE")) |(("DYNAMIC_FUNCTION")) |(("DYNAMIC_FUNCTION_CODE")) |(("TOP_LEVEL_COUNT"));;;GetItemInformation = SimpleTargetSpecification2 >> EqualsOperator >> DescriptorItemName;;;ItemNumber = SimpleValueSpecification;;;SimpleTargetSpecification1 = SimpleTargetSpecification;;;SimpleTargetSpecification2 = SimpleTargetSpecification;;;DescriptorItemName =(str_p("CARDINALITY")) |(("CHARACTER_SET_CATALOG")) |(("CHARACTER_SET_NAME")) |(("CHARACTER_SET_SCHEMA")) |(("COLLATION_CATALOG")) |(("COLLATION_NAME")) |(("COLLATION_SCHEMA")) |(("DATA")) |(("DATETIME_INTERVAL_CODE")) |(("DATETIME_INTERVAL_PRECISION")) |(("DEGREE")) |(("INDICATOR")) |(("KEY_MEMBER")) |(("LENGTH")) |(("LEVEL")) |(("NAME")) |(("NULLABLE")) |(("OCTET_LENGTH")) |(("PARAMETER_MODE")) |(("PARAMETER_ORDINAL_POSITION")) |(("PARAMETER_SPECIFIC_CATALOG")) |(("PARAMETER_SPECIFIC_NAME")) |(("PARAMETER_SPECIFIC_SCHEMA")) |(("PRECISION")) |(("RETURNED_CARDINALITY")) |(("RETURNED_LENGTH")) |(("RETURNED_OCTET_LENGTH")) |(("SCALE")) |(("SCOPE_CATALOG")) |(("SCOPE_NAME")) |(("SCOPE_SCHEMA")) |(("TYPE")) |(("UNNAMED")) |(("USER_DEFINED_TYPE_CATALOG")) |(("USER_DEFINED_TYPE_NAME")) |(("USER_DEFINED_TYPE_SCHEMA")) |(("USER_DEFINED_TYPE_CODE"));;;SetDescriptorStatement = ((str_p("SET")) >> !(str_p("SQL")) >>(("DESCRIPTOR")) >> DescriptorName >> SetDescriptorInformation);;;SetDescriptorInformation = ((SetHeaderInformation%Comma)) | ((str_p("VALUE")) >> ItemNumber >> (SetItemInformation%Comma));;;SetHeaderInformation = HeaderItemName >> EqualsOperator >> SimpleValueSpecification1;;;SetItemInformation = DescriptorItemName >> EqualsOperator >> SimpleValueSpecification2;;;SimpleValueSpecification1 = SimpleValueSpecification;;;SimpleValueSpecification2 = SimpleValueSpecification;;;ItemNumber = SimpleValueSpecification;;;PrepareStatement = ((str_p("PREPARE")) >> SQLStatementName >> !AttributesSpecification >>(("FROM")) >> SQLStatementVariable);;;AttributesSpecification =(str_p("ATTRIBUTES")) >> AttributesVariable;;;AttributesVariable = SimpleValueSpecification;;;SQLStatementVariable = SimpleValueSpecification;;;PreparableStatement = PreparableSQLDataStatement | PreparableSQLSchemaStatement | PreparableSQLTransactionStatement | PreparableSQLControlStatement | PreparableSQLSessionStatement | PreparableImplementationDefinedStatement;;;PreparableSQLDataStatement = DeleteStatementSearched | DynamicSingleRowSelectStatement | InsertStatement | DynamicSelectStatement | UpdateStatementSearched | MergeStatement | PreparableDynamicDeleteStatementPositioned | PreparableDynamicUpdateStatementPositioned;;;PreparableSQLSchemaStatement = SQLSchemaStatement;;;PreparableSQLTransactionStatement = SQLTransactionStatement;;;PreparableSQLControlStatement = SQLControlStatement;;;PreparableSQLSessionStatement = SQLSessionStatement;;;DynamicSelectStatement = CursorSpecification;;;PreparableImplementationDefinedStatement = !!See >> the >> Syntax >> Rules.;;;CursorAttributes = +CursorAttribute;;;CursorAttribute = CursorSensitivity | CursorScrollability | CursorHoldability | CursorReturnability;;;DeallocatePreparedStatement =(str_p("DEALLOCATE")) >>(("PREPARE")) >> SQLStatementName;;;DescribeStatement = DescribeInputStatement | DescribeOutputStatement;;;DescribeInputStatement = ((str_p("DESCRIBE")) >>(("INPUT")) >> SQLStatementName >> UsingDescriptor >> !NestingOption);;;DescribeOutputStatement = ((str_p("DESCRIBE")) >> !(str_p("OUTPUT")) >> DescribedObject >> UsingDescriptor >> !NestingOption);;;NestingOption =(str_p("WITH")) >>(("NESTING")) |(("WITHOUT")) >>(("NESTING"));;;UsingDescriptor = ((str_p("USING")) >> !(str_p("SQL")) >>(("DESCRIPTOR")) >> DescriptorName);;;DescribedObject = SQLStatementName |(("CURSOR")) >> ExtendedCursorName >>(("STRUCTURE"));;;InputUsingClause = UsingArguments | UsingInputDescriptor;;;UsingArguments = ((str_p("USING")) >> (UsingArgument%Comma));;;UsingArgument = GeneralValueSpecification;;;UsingInputDescriptor = UsingDescriptor;;;OutputUsingClause = IntoArguments | IntoDescriptor;;;IntoArguments = ((str_p("INTO")) >> (IntoArgument%Comma));;;IntoArgument = TargetSpecification;;;IntoDescriptor = ((str_p("INTO")) >> !(str_p("SQL")) >>(("DESCRIPTOR")) >> DescriptorName);;;ExecuteStatement = ((str_p("EXECUTE")) >> SQLStatementName >> !ResultUsingClause >> !ParameterUsingClause);;;ResultUsingClause = OutputUsingClause;;;ParameterUsingClause = InputUsingClause;;;ExecuteImmediateStatement =(str_p("EXECUTE")) >>(("IMMEDIATE")) >> SQLStatementVariable;;;DynamicDeclareCursor = ((str_p("DECLARE")) >> CursorName >> !CursorSensitivity >> !CursorScrollability >>(("CURSOR")) >> !CursorHoldability >> !CursorReturnability >>(("FOR")) >> StatementName);;;AllocateCursorStatement =(str_p("ALLOCATE")) >> ExtendedCursorName >> CursorIntent;;;CursorIntent = StatementCursor | ResultSetCursor;;;StatementCursor = !(CursorSensitivity >> !CursorScrollability >>(("CURSOR")) >> !CursorHoldability >> !CursorReturnability >>(("FOR")) >> ExtendedStatementName);;;ResultSetCursor =(str_p("FOR")) >>(("PROCEDURE")) >> SpecificRoutineDesignator;;;DynamicOpenStatement = ((str_p("OPEN")) >> DynamicCursorName >> !InputUsingClause);;;DynamicFetchStatement = ((str_p("FETCH")) >> !!(FetchOrientation >>(("FROM"))) >> DynamicCursorName >> OutputUsingClause);;;DynamicSingleRowSelectStatement = QuerySpecification;;;DynamicCloseStatement =(str_p("CLOSE")) >> DynamicCursorName;;;DynamicDeleteStatementPositioned =(str_p("DELETE")) >>(("FROM")) >> TargetTable >>(("WHERE")) >>(("CURRENT")) >>(("OF")) >> DynamicCursorName;;;DynamicUpdateStatementPositioned =(str_p("UPDATE")) >> TargetTable >>(("SET")) >> SetClauseList >>(("WHERE")) >>(("CURRENT")) >>(("OF")) >> DynamicCursorName;;;PreparableDynamicDeleteStatementPositioned = ((str_p("DELETE")) >> !(str_p("FROM")) >> TargetTable >>(("WHERE")) >>(("CURRENT")) >>(("OF")) >> !ScopeOption >> CursorName);;;PreparableDynamicUpdateStatementPositioned = ((str_p("UPDATE")) >> !TargetTable >>(("SET")) >> SetClauseList >>(("WHERE")) >>(("CURRENT")) >>(("OF")) >> !ScopeOption >> CursorName);;;EmbeddedSQLHostProgram = EmbeddedSQLAdaProgram | EmbeddedSQLCProgram | EmbeddedSQLCOBOLProgram | EmbeddedSQLFortranProgram | EmbeddedSQLMUMPSProgram | EmbeddedSQLPascalProgram | EmbeddedSQLPLIProgram;;;EmbeddedSQLStatement = (SQLPrefix >> StatementOrDeclaration >> !SQLTerminator);;;StatementOrDeclaration = DeclareCursor | DynamicDeclareCursor | TemporaryTableDeclaration | EmbeddedAuthorizationDeclaration | EmbeddedPathSpecification | EmbeddedTransformGroupSpecification | EmbeddedCollationSpecification | EmbeddedExceptionDeclaration | HandlerDeclaration | SQLProcedureStatement;;;SQLPrefix =(str_p("EXEC")) >>(("SQL")) | Ampersand >>(("SQL")) >> LeftParen;;;SQLTerminator = ENDEXEC | Semicolon | RightParen;;;EmbeddedAuthorizationDeclaration =(str_p("DECLARE")) >> EmbeddedAuthorizationClause;;;EmbeddedAuthorizationClause =(str_p("SCHEMA")) >> SchemaName | ((str_p("AUTHORIZATION")) >> EmbeddedAuthorizationIdentifier >> !((str_p("FOR")) >>(("STATIC")) >>(("ONLY")) |(("AND")) >>(("DYNAMIC")))) | ((str_p("SCHEMA")) >> SchemaName >>(("AUTHORIZATION")) >> EmbeddedAuthorizationIdentifier >> !((str_p("FOR")) >>(("STATIC")) >>(("ONLY")) |(("AND")) >>(("DYNAMIC"))));;;EmbeddedAuthorizationIdentifier = ModuleAuthorizationIdentifier;;;EmbeddedPathSpecification = PathSpecification;;;EmbeddedTransformGroupSpecification = TransformGroupSpecification;;;EmbeddedCollationSpecification = ModuleCollations;;;EmbeddedSQLDeclareSection = (EmbeddedSQLBeginDeclare >> !EmbeddedCharacterSetDeclaration >> *HostVariableDefinition >> EmbeddedSQLEndDeclare) | EmbeddedSQLMUMPSDeclare;;;EmbeddedCharacterSetDeclaration =(str_p("SQL")) >>(("NAMES")) >>(("ARE")) >> CharacterSetSpecification;;;EmbeddedSQLBeginDeclare = (SQLPrefix >>(("BEGIN")) >>(("DECLARE")) >>(("SECTION")) >> !SQLTerminator);;;EmbeddedSQLEndDeclare = (SQLPrefix >>(("END")) >>(("DECLARE")) >>(("SECTION")) >> !SQLTerminator);;;EmbeddedSQLMUMPSDeclare = (SQLPrefix >>(("BEGIN")) >>(("DECLARE")) >>(("SECTION")) >> !EmbeddedCharacterSetDeclaration >> +HostVariableDefinition) >>(("END")) >>(("DECLARE")) >>(("SECTION")) >> SQLTerminator);;;HostVariableDefinition = AdaVariableDefinition | CVariableDefinition | COBOLVariableDefinition | FortranVariableDefinition | MUMPSVariableDefinition | PascalVariableDefinition | PLIVariableDefinition;;;EmbeddedVariableName = Colon >> HostIdentifier;;;HostIdentifier = AdaHostIdentifier | CHostIdentifier | COBOLHostIdentifier | FortranHostIdentifier | MUMPSHostIdentifier | PascalHostIdentifier | PLIHostIdentifier;;;EmbeddedExceptionDeclaration =(str_p("WHENEVER")) >> Condition >> ConditionAction;;;Condition = SQLCondition;;;SQLCondition = MajorCategory | ((str_p("SQLSTATE")) >> (SQLSTATEClassValue >> !,SQLSTATESubclassValue)) |(("CONSTRAINT")) >> ConstraintName;;;MajorCategory =(str_p("SQLEXCEPTION")) |(("SQLWARNING")) |(("NOT")) >>(("FOUND"));;;SQLSTATEClassValue = SQLSTATEChar >> SQLSTATEChar!!See >> the >> Syntax >> Rules.;;;SQLSTATESubclassValue = SQLSTATEChar >> SQLSTATEChar >> SQLSTATEChar!!See >> The >> Syntax >> Rules.;;;SQLSTATEChar = SimpleLatinUpperCaseLetter | Digit;;;ConditionAction =(str_p("CONTINUE")) | GoTo;;;GoTo = ((str_p("GOTO")) |(("GO")) >>(("TO")) >> GotoTarget);;;GotoTarget = HostLabelIdentifier | UnsignedInteger | HostPLILabelVariable;;;HostLabelIdentifier = !!See >> the >> Syntax >> Rules.;;;HostPLILabelVariable = !!See >> The >> Syntax >> Rules.;;;EmbeddedSQLAdaProgram = !!See >> The >> Syntax >> Rules.;;;AdaVariableDefinition = ((AdaHostIdentifier%Comma) >> Colon >> AdaTypeSpecification >> !AdaInitialValue);;;AdaInitialValue = (AdaAssignmentOperator >> +CharacterRepresentation);;;AdaAssignmentOperator = Colon >> EqualsOperator;;;AdaHostIdentifier = !!See >> The >> Syntax >> Rules.;;;AdaTypeSpecification = AdaQualifiedTypeSpecification | AdaUnqualifiedTypeSpecification | AdaDerivedTypeSpecification;;;AdaQualifiedTypeSpecification = Interfaces.((str_p("SQL")) >> Period >>(("CHAR")) >> !((str_p("CHARACTER")) >>(("SET")) >> !(str_p("IS")) >> CharacterSetSpecification) >> LeftParen >> 1 >> DoublePeriod >> Length >> RightParen) | InterfacesSQL >> Period >>(("SMALLINT")) | Interfaces.(str_p("SQL")) >> Period >>(("INT")) | InterfacesSQL >> Period >>(("BIGINT")) | Interfaces.(str_p("SQL")) >> Period >>(("REAL")) | InterfacesSQL >> Period >> DOUBLE_PRECISION | Interfaces.(str_p("SQL")) >> Period >>(("BOOLEAN")) | InterfacesSQL >> Period >> SQLSTATE_TYPE | Interfaces.(str_p("SQL")) >> Period >> INDICATOR_TYPE;;;AdaUnqualifiedTypeSpecification =(str_p("CHAR")) >> LeftParen >> 1 >> DoublePeriod >> Length >> RightParen |(("SMALLINT")) |(("INT")) |(("BIGINT")) |(("REAL")) | DOUBLE_PRECISION |(("BOOLEAN")) | SQLSTATE_TYPE | INDICATOR_TYPE;;;AdaDerivedTypeSpecification = AdaCLOBVariable | AdaCLOBLocatorVariable | AdaBLOBVariable | AdaBLOBLocatorVariable | AdaUserDefinedTypeVariable | AdaUserDefinedTypeLocatorVariable | AdaREFVariable | AdaArrayLocatorVariable | AdaMultisetLocatorVariable;;;AdaCLOBVariable = ((str_p("SQL")) >>(("TYPE")) >>(("IS")) >>(("CLOB")) >> LeftParen >> LargeObjectLength >> RightParen >> !((str_p("CHARACTER")) >>(("SET")) >> !(str_p("IS")) >> CharacterSetSpecification));;;AdaCLOBLocatorVariable =(str_p("SQL")) >>(("TYPE")) >>(("IS")) >>(("CLOB")) >>(("AS")) >>(("LOCATOR"));;;AdaBLOBVariable =(str_p("SQL")) >>(("TYPE")) >>(("IS")) >>(("BLOB")) >> LeftParen >> LargeObjectLength >> RightParen;;;AdaBLOBLocatorVariable =(str_p("SQL")) >>(("TYPE")) >>(("IS")) >>(("BLOB")) >>(("AS")) >>(("LOCATOR"));;;AdaUserDefinedTypeVariable =(str_p("SQL")) >>(("TYPE")) >>(("IS")) >> PathResolvedUserDefinedTypeName >>(("AS")) >> PredefinedType;;;AdaUserDefinedTypeLocatorVariable =(str_p("SQL")) >>(("TYPE")) >>(("IS")) >> PathResolvedUserDefinedTypeName >>(("AS")) >>(("LOCATOR"));;;AdaREFVariable =(str_p("SQL")) >>(("TYPE")) >>(("IS")) >> ReferenceType;;;AdaArrayLocatorVariable =(str_p("SQL")) >>(("TYPE")) >>(("IS")) >> ArrayType >>(("AS")) >>(("LOCATOR"));;;AdaMultisetLocatorVariable =(str_p("SQL")) >>(("TYPE")) >>(("IS")) >> MultisetType >>(("AS")) >>(("LOCATOR"));;;EmbeddedSQLCProgram = !!See >> The >> Syntax >> Rules.;;;CVariableDefinition = !(CStorageClass >> !CClassModifier >> CVariableSpecification >> Semicolon);;;CVariableSpecification = CNumericVariable | CCharacterVariable | CDerivedVariable;;;CStorageClass = Auto | Extern | Static;;;CClassModifier = const | volatile;;;CNumericVariable = (Long >> Long | Long | Short | Float | Double >> CHostIdentifier >> !CInitialValue >> *((Comma >> CHostIdentifier >> !CInitialValue)));;;CCharacterVariable = (CCharacterType >> !((str_p("CHARACTER")) >>(("SET")) >> !(str_p("IS")) >> CharacterSetSpecification) >> CHostIdentifier >> CArraySpecification >> !CInitialValue >> *((Comma >> CHostIdentifier >> CArraySpecification >> !CInitialValue)));;;CCharacterType = Char | Unsigned >> Char | Unsigned >> Short;;;CArraySpecification = LeftBracket >> Length >> RightBracket;;;CHostIdentifier = !!See >> the >> Syntax >> Rules.;;;CDerivedVariable = CVARCHARVariable | CNCHARVariable | CNCHARVARYINGVariable | CCLOBVariable | CNCLOBVariable | CBLOBVariable | CUserDefinedTypeVariable | CCLOBLocatorVariable | CBLOBLocatorVariable | CArrayLocatorVariable | CMultisetLocatorVariable | CUserDefinedTypeLocatorVariable | CREFVariable;;;CVARCHARVariable = ((str_p("VARCHAR")) >> !((str_p("CHARACTER")) >>(("SET")) >> !(str_p("IS")) >> CharacterSetSpecification) >> CHostIdentifier >> CArraySpecification >> !CInitialValue >> *((Comma >> CHostIdentifier >> CArraySpecification >> !CInitialValue)));;;CNCHARVariable = ((str_p("NCHAR")) >> !((str_p("CHARACTER")) >>(("SET")) >> !(str_p("IS")) >> CharacterSetSpecification) >> CHostIdentifier >> CArraySpecification >> !CInitialValue >> *((Comma >> CHostIdentifier >> CArraySpecification >> !CInitialValue)));;;CNCHARVARYINGVariable = ((str_p("NCHAR")) >>(("VARYING")) >> !((str_p("CHARACTER")) >>(("SET")) >> !(str_p("IS")) >> CharacterSetSpecification) >> CHostIdentifier >> CArraySpecification >> !CInitialValue >> *((Comma >> CHostIdentifier >> CArraySpecification >> !CInitialValue)));;;CCLOBVariable = ((str_p("SQL")) >>(("TYPE")) >>(("IS")) >>(("CLOB")) >> LeftParen >> LargeObjectLength >> RightParen >> !((str_p("CHARACTER")) >>(("SET")) >> !(str_p("IS")) >> CharacterSetSpecification) >> CHostIdentifier >> !CInitialValue >> *((Comma >> CHostIdentifier >> !CInitialValue)));;;CNCLOBVariable = ((str_p("SQL")) >>(("TYPE")) >>(("IS")) >>(("NCLOB")) >> LeftParen >> LargeObjectLength >> RightParen >> !((str_p("CHARACTER")) >>(("SET")) >> !(str_p("IS")) >> CharacterSetSpecification) >> CHostIdentifier >> !CInitialValue >> *((Comma >> CHostIdentifier >> !CInitialValue)));;;CUserDefinedTypeVariable = ((str_p("SQL")) >>(("TYPE")) >>(("IS")) >> PathResolvedUserDefinedTypeName >>(("AS")) >> PredefinedType >> CHostIdentifier >> !CInitialValue >> *((Comma >> CHostIdentifier >> !CInitialValue)));;;CBLOBVariable = ((str_p("SQL")) >>(("TYPE")) >>(("IS")) >>(("BLOB")) >> LeftParen >> LargeObjectLength >> RightParen >> CHostIdentifier >> !CInitialValue >> *((Comma >> CHostIdentifier >> !CInitialValue)));;;CCLOBLocatorVariable = ((str_p("SQL")) >>(("TYPE")) >>(("IS")) >>(("CLOB")) >>(("AS")) >>(("LOCATOR")) >> CHostIdentifier >> !CInitialValue >> *((Comma >> CHostIdentifier >> !CInitialValue)));;;CBLOBLocatorVariable = ((str_p("SQL")) >>(("TYPE")) >>(("IS")) >>(("BLOB")) >>(("AS")) >>(("LOCATOR")) >> CHostIdentifier >> !CInitialValue >> *((Comma >> CHostIdentifier >> !CInitialValue)));;;CArrayLocatorVariable = ((str_p("SQL")) >>(("TYPE")) >>(("IS")) >> ArrayType >>(("AS")) >>(("LOCATOR")) >> CHostIdentifier >> !CInitialValue >> *((Comma >> CHostIdentifier >> !CInitialValue)));;;CMultisetLocatorVariable = ((str_p("SQL")) >>(("TYPE")) >>(("IS")) >> MultisetType >>(("AS")) >>(("LOCATOR")) >> CHostIdentifier >> !CInitialValue >> *((Comma >> CHostIdentifier >> !CInitialValue)));;;CUserDefinedTypeLocatorVariable = ((str_p("SQL")) >>(("TYPE")) >>(("IS")) >> PathResolvedUserDefinedTypeName >>(("AS")) >>(("LOCATOR")) >> CHostIdentifier >> !CInitialValue >> *((Comma >> CHostIdentifier >> !CInitialValue)));;;CREFVariable =(str_p("SQL")) >>(("TYPE")) >>(("IS")) >> ReferenceType;;;CInitialValue = (EqualsOperator >> +CharacterRepresentation);;;EmbeddedSQLCOBOLProgram = !!See >> the >> Syntax >> Rules.;;;COBOLVariableDefinition = (01 | 77 >> COBOLHostIdentifier >> COBOLTypeSpecification >> *CharacterRepresentation >> Period);;;COBOLHostIdentifier = !!See >> The >> Syntax >> Rules.;;;COBOLTypeSpecification = COBOLCharacterType | COBOLNationalCharacterType | COBOLNumericType | COBOLIntegerType | COBOLDerivedTypeSpecification;;;COBOLDerivedTypeSpecification = COBOLCLOBVariable | COBOLNCLOBVariable | COBOLBLOBVariable | COBOLUserDefinedTypeVariable | COBOLCLOBLocatorVariable | COBOLBLOBLocatorVariable | COBOLArrayLocatorVariable | COBOLMultisetLocatorVariable | COBOLUserDefinedTypeLocatorVariable | COBOLREFVariable;;;COBOLCharacterType = !(((str_p("CHARACTER")) >>(("SET")) >> !(str_p("IS")) >> CharacterSetSpecification) >> PIC | PICTURE >> !(str_p("IS")) >> +(X >> !LeftParen >> Length >> RightParen));;;COBOLNationalCharacterType = !(((str_p("CHARACTER")) >>(("SET")) >> !(str_p("IS")) >> CharacterSetSpecification) >> PIC | PICTURE >> !(str_p("IS")) >> +(N >> !LeftParen >> Length >> RightParen));;;COBOLCLOBVariable = !(((str_p("USAGE")) >> !(str_p("IS"))) >>(("SQL")) >>(("TYPE")) >>(("IS")) >>(("CLOB")) >> LeftParen >> LargeObjectLength >> RightParen >> !((str_p("CHARACTER")) >>(("SET")) >> !(str_p("IS")) >> CharacterSetSpecification));;;COBOLNCLOBVariable = !(((str_p("USAGE")) >> !(str_p("IS"))) >>(("SQL")) >>(("TYPE")) >>(("IS")) >>(("NCLOB")) >> LeftParen >> LargeObjectLength >> RightParen >> !((str_p("CHARACTER")) >>(("SET")) >> !(str_p("IS")) >> CharacterSetSpecification));;;COBOLBLOBVariable = !(((str_p("USAGE")) >> !(str_p("IS"))) >>(("SQL")) >>(("TYPE")) >>(("IS")) >>(("BLOB")) >> LeftParen >> LargeObjectLength >> RightParen);;;COBOLUserDefinedTypeVariable = !(((str_p("USAGE")) >> !(str_p("IS"))) >>(("SQL")) >>(("TYPE")) >>(("IS")) >> PathResolvedUserDefinedTypeName >>(("AS")) >> PredefinedType);;;COBOLCLOBLocatorVariable = !(((str_p("USAGE")) >> !(str_p("IS"))) >>(("SQL")) >>(("TYPE")) >>(("IS")) >>(("CLOB")) >>(("AS")) >>(("LOCATOR")));;;COBOLBLOBLocatorVariable = !(((str_p("USAGE")) >> !(str_p("IS"))) >>(("SQL")) >>(("TYPE")) >>(("IS")) >>(("BLOB")) >>(("AS")) >>(("LOCATOR")));;;COBOLArrayLocatorVariable = !(((str_p("USAGE")) >> !(str_p("IS"))) >>(("SQL")) >>(("TYPE")) >>(("IS")) >> ArrayType >>(("AS")) >>(("LOCATOR")));;;COBOLMultisetLocatorVariable = !(((str_p("USAGE")) >> !(str_p("IS"))) >>(("SQL")) >>(("TYPE")) >>(("IS")) >> MultisetType >>(("AS")) >>(("LOCATOR")));;;COBOLUserDefinedTypeLocatorVariable = !(((str_p("USAGE")) >> !(str_p("IS"))) >>(("SQL")) >>(("TYPE")) >>(("IS")) >> PathResolvedUserDefinedTypeName >>(("AS")) >>(("LOCATOR")));;;COBOLREFVariable = !(((str_p("USAGE")) >> !(str_p("IS"))) >>(("SQL")) >>(("TYPE")) >>(("IS")) >> ReferenceType);;;COBOLNumericType = (PIC | PICTURE >> !(str_p("IS")) >> S >> COBOLNinesSpecification >> !((str_p("USAGE")) >> !(str_p("IS"))) >> DISPLAY >> SIGN >>(("LEADING")) >> SEPARATE);;;COBOLNinesSpecification = (COBOLNines >> !(V >> !COBOLNines)) | V >> COBOLNines;;;COBOLIntegerType = COBOLBinaryInteger;;;COBOLBinaryInteger = (PIC | PICTURE >> !(str_p("IS")) >> S >> COBOLNines >> !((str_p("USAGE")) >> !(str_p("IS"))) >>(("BINARY")));;;COBOLNines = +((9 >> !LeftParen >> Length >> RightParen));;;EmbeddedSQLFortranProgram = !!See >> the >> Syntax >> Rules.;;;FortranVariableDefinition = (FortranTypeSpecification >> (FortranHostIdentifier%Comma));;;FortranHostIdentifier = !!See >> the >> Syntax >> Rules.;;;FortranTypeSpecification = ((str_p("CHARACTER")) >> !Asterisk >> Length >> !((str_p("CHARACTER")) >>(("SET")) >> !(str_p("IS")) >> CharacterSetSpecification)) |(("CHARACTER")) >> KIND=(n >> !Asterisk >> Length >> !((str_p("CHARACTER")) >>(("SET")) >> !(str_p("IS")) >> CharacterSetSpecification)) |(("INTEGER")) |(("REAL")) |(("DOUBLE")) >>(("PRECISION")) | LOGICAL | FortranDerivedTypeSpecification;;;FortranDerivedTypeSpecification = FortranCLOBVariable | FortranBLOBVariable | FortranUserDefinedTypeVariable | FortranCLOBLocatorVariable | FortranBLOBLocatorVariable | FortranUserDefinedTypeLocatorVariable | FortranArrayLocatorVariable | FortranMultisetLocatorVariable | FortranREFVariable;;;FortranCLOBVariable = ((str_p("SQL")) >>(("TYPE")) >>(("IS")) >>(("CLOB")) >> LeftParen >> LargeObjectLength >> RightParen >> !((str_p("CHARACTER")) >>(("SET")) >> !(str_p("IS")) >> CharacterSetSpecification));;;FortranBLOBVariable =(str_p("SQL")) >>(("TYPE")) >>(("IS")) >>(("BLOB")) >> LeftParen >> LargeObjectLength >> RightParen;;;FortranUserDefinedTypeVariable =(str_p("SQL")) >>(("TYPE")) >>(("IS")) >> PathResolvedUserDefinedTypeName >>(("AS")) >> PredefinedType;;;FortranCLOBLocatorVariable =(str_p("SQL")) >>(("TYPE")) >>(("IS")) >>(("CLOB")) >>(("AS")) >>(("LOCATOR"));;;FortranBLOBLocatorVariable =(str_p("SQL")) >>(("TYPE")) >>(("IS")) >>(("BLOB")) >>(("AS")) >>(("LOCATOR"));;;FortranUserDefinedTypeLocatorVariable =(str_p("SQL")) >>(("TYPE")) >>(("IS")) >> PathResolvedUserDefinedTypeName >>(("AS")) >>(("LOCATOR"));;;FortranArrayLocatorVariable =(str_p("SQL")) >>(("TYPE")) >>(("IS")) >> ArrayType >>(("AS")) >>(("LOCATOR"));;;FortranMultisetLocatorVariable =(str_p("SQL")) >>(("TYPE")) >>(("IS")) >> MultisetType >>(("AS")) >>(("LOCATOR"));;;FortranREFVariable =(str_p("SQL")) >>(("TYPE")) >>(("IS")) >> ReferenceType;;;EmbeddedSQLMUMPSProgram = !!See >> the >> Syntax >> Rules.;;;MUMPSVariableDefinition = MUMPSNumericVariable >> Semicolon | MUMPSCharacterVariable >> Semicolon | MUMPSDerivedTypeSpecification >> Semicolon;;;MUMPSCharacterVariable = ((str_p("VARCHAR")) >> MUMPSHostIdentifier >> MUMPSLengthSpecification >> *(Comma >> MUMPSHostIdentifier >> MUMPSLengthSpecification));;;MUMPSHostIdentifier = !!See >> The >> Syntax >> Rules.;;;MUMPSLengthSpecification = LeftParen >> Length >> RightParen;;;MUMPSNumericVariable = (MUMPSTypeSpecification >> (MUMPSHostIdentifier%Comma));;;MUMPSTypeSpecification =(str_p("INT")) | ((str_p("DEC")) >> !(LeftParen >> Precision >> !Comma >> Scale >> RightParen)) |(("REAL"));;;MUMPSDerivedTypeSpecification = MUMPSCLOBVariable | MUMPSBLOBVariable | MUMPSUserDefinedTypeVariable | MUMPSCLOBLocatorVariable | MUMPSBLOBLocatorVariable | MUMPSUserDefinedTypeLocatorVariable | MUMPSArrayLocatorVariable | MUMPSMultisetLocatorVariable | MUMPSREFVariable;;;MUMPSCLOBVariable = ((str_p("SQL")) >>(("TYPE")) >>(("IS")) >>(("CLOB")) >> LeftParen >> LargeObjectLength >> RightParen >> !((str_p("CHARACTER")) >>(("SET")) >> !(str_p("IS")) >> CharacterSetSpecification));;;MUMPSBLOBVariable =(str_p("SQL")) >>(("TYPE")) >>(("IS")) >>(("BLOB")) >> LeftParen >> LargeObjectLength >> RightParen;;;MUMPSUserDefinedTypeVariable =(str_p("SQL")) >>(("TYPE")) >>(("IS")) >> PathResolvedUserDefinedTypeName >>(("AS")) >> PredefinedType;;;MUMPSCLOBLocatorVariable =(str_p("SQL")) >>(("TYPE")) >>(("IS")) >>(("CLOB")) >>(("AS")) >>(("LOCATOR"));;;MUMPSBLOBLocatorVariable =(str_p("SQL")) >>(("TYPE")) >>(("IS")) >>(("BLOB")) >>(("AS")) >>(("LOCATOR"));;;MUMPSUserDefinedTypeLocatorVariable =(str_p("SQL")) >>(("TYPE")) >>(("IS")) >> PathResolvedUserDefinedTypeName >>(("AS")) >>(("LOCATOR"));;;MUMPSArrayLocatorVariable =(str_p("SQL")) >>(("TYPE")) >>(("IS")) >> ArrayType >>(("AS")) >>(("LOCATOR"));;;MUMPSMultisetLocatorVariable =(str_p("SQL")) >>(("TYPE")) >>(("IS")) >> MultisetType >>(("AS")) >>(("LOCATOR"));;;MUMPSREFVariable =(str_p("SQL")) >>(("TYPE")) >>(("IS")) >> ReferenceType;;;EmbeddedSQLPascalProgram = !!See >> The >> Syntax >> Rules.;;;PascalVariableDefinition = ((PascalHostIdentifier%Comma) >> Colon >> PascalTypeSpecification >> Semicolon);;;PascalHostIdentifier = !!See >> The >> Syntax >> Rules.;;;PascalTypeSpecification = (PACKED >>(("ARRAY")) >> LeftBracket >> 1 >> DoublePeriod >> Length >> RightBracket >>(("OF")) >>(("CHAR")) >> !((str_p("CHARACTER")) >>(("SET")) >> !(str_p("IS")) >> CharacterSetSpecification)) |(("INTEGER")) |(("REAL")) | ((str_p("CHAR")) >> !((str_p("CHARACTER")) >>(("SET")) >> !(str_p("IS")) >> CharacterSetSpecification)) |(("BOOLEAN")) | PascalDerivedTypeSpecification;;;PascalDerivedTypeSpecification = PascalCLOBVariable | PascalBLOBVariable | PascalUserDefinedTypeVariable | PascalCLOBLocatorVariable | PascalBLOBLocatorVariable | PascalUserDefinedTypeLocatorVariable | PascalArrayLocatorVariable | PascalMultisetLocatorVariable | PascalREFVariable;;;PascalCLOBVariable = ((str_p("SQL")) >>(("TYPE")) >>(("IS")) >>(("CLOB")) >> LeftParen >> LargeObjectLength >> RightParen >> !((str_p("CHARACTER")) >>(("SET")) >> !(str_p("IS")) >> CharacterSetSpecification));;;PascalBLOBVariable =(str_p("SQL")) >>(("TYPE")) >>(("IS")) >>(("BLOB")) >> LeftParen >> LargeObjectLength >> RightParen;;;PascalCLOBLocatorVariable =(str_p("SQL")) >>(("TYPE")) >>(("IS")) >>(("CLOB")) >>(("AS")) >>(("LOCATOR"));;;PascalUserDefinedTypeVariable =(str_p("SQL")) >>(("TYPE")) >>(("IS")) >> PathResolvedUserDefinedTypeName >>(("AS")) >> PredefinedType;;;PascalBLOBLocatorVariable =(str_p("SQL")) >>(("TYPE")) >>(("IS")) >>(("BLOB")) >>(("AS")) >>(("LOCATOR"));;;PascalUserDefinedTypeLocatorVariable =(str_p("SQL")) >>(("TYPE")) >>(("IS")) >> PathResolvedUserDefinedTypeName >>(("AS")) >>(("LOCATOR"));;;PascalArrayLocatorVariable =(str_p("SQL")) >>(("TYPE")) >>(("IS")) >> ArrayType >>(("AS")) >>(("LOCATOR"));;;PascalMultisetLocatorVariable =(str_p("SQL")) >>(("TYPE")) >>(("IS")) >> MultisetType >>(("AS")) >>(("LOCATOR"));;;PascalREFVariable =(str_p("SQL")) >>(("TYPE")) >>(("IS")) >> ReferenceType;;;EmbeddedSQLPLIProgram = !!See >> The >> Syntax >> Rules.;;;PLIVariableDefinition = (DCL |(("DECLARE")) >> PLIHostIdentifier | (LeftParen >> (PLIHostIdentifier%Comma) >> RightParen) >> PLITypeSpecification >> *CharacterRepresentation >> Semicolon);;;PLIHostIdentifier = !!See >> The >> Syntax >> Rules.;;;PLITypeSpecification = ((str_p("CHAR")) |(("CHARACTER")) >> !(str_p("VARYING")) >> LeftParen >> Length >> RightParen >> !((str_p("CHARACTER")) >>(("SET")) >> !(str_p("IS")) >> CharacterSetSpecification)) | (PLITypeFixedDecimal >> LeftParen >> Precision >> !Comma >> Scale >> RightParen) | (PLITypeFixedBinary >> !LeftParen >> Precision >> RightParen) | PLITypeFloatBinary >> LeftParen >> Precision >> RightParen | PLIDerivedTypeSpecification;;;PLIDerivedTypeSpecification = PLICLOBVariable | PLIBLOBVariable | PLIUserDefinedTypeVariable | PLICLOBLocatorVariable | PLIBLOBLocatorVariable | PLIUserDefinedTypeLocatorVariable | PLIArrayLocatorVariable | PLIMultisetLocatorVariable | PLIREFVariable;;;PLICLOBVariable = ((str_p("SQL")) >>(("TYPE")) >>(("IS")) >>(("CLOB")) >> LeftParen >> LargeObjectLength >> RightParen >> !((str_p("CHARACTER")) >>(("SET")) >> !(str_p("IS")) >> CharacterSetSpecification));;;PLIBLOBVariable =(str_p("SQL")) >>(("TYPE")) >>(("IS")) >>(("BLOB")) >> LeftParen >> LargeObjectLength >> RightParen;;;PLIUserDefinedTypeVariable =(str_p("SQL")) >>(("TYPE")) >>(("IS")) >> PathResolvedUserDefinedTypeName >>(("AS")) >> PredefinedType;;;PLICLOBLocatorVariable =(str_p("SQL")) >>(("TYPE")) >>(("IS")) >>(("CLOB")) >>(("AS")) >>(("LOCATOR"));;;PLIBLOBLocatorVariable =(str_p("SQL")) >>(("TYPE")) >>(("IS")) >>(("BLOB")) >>(("AS")) >>(("LOCATOR"));;;PLIUserDefinedTypeLocatorVariable =(str_p("SQL")) >>(("TYPE")) >>(("IS")) >> PathResolvedUserDefinedTypeName >>(("AS")) >>(("LOCATOR"));;;PLIArrayLocatorVariable =(str_p("SQL")) >>(("TYPE")) >>(("IS")) >> ArrayType >>(("AS")) >>(("LOCATOR"));;;PLIMultisetLocatorVariable =(str_p("SQL")) >>(("TYPE")) >>(("IS")) >> MultisetType >>(("AS")) >>(("LOCATOR"));;;PLIREFVariable =(str_p("SQL")) >>(("TYPE")) >>(("IS")) >> ReferenceType;;;PLITypeFixedDecimal = ((str_p("DEC")) |(("DECIMAL")) >> FIXED) | (FIXED >>(("DEC")) |(("DECIMAL")));;;PLITypeFixedBinary = (BIN |(("BINARY")) >> FIXED) | (FIXED >> BIN |(("BINARY")));;;PLITypeFloatBinary = (BIN |(("BINARY")) >>(("FLOAT"))) | ((str_p("FLOAT")) >> BIN |(("BINARY")));;;DirectSQLStatement = DirectlyExecutableStatement >> Semicolon;;;DirectlyExecutableStatement = DirectSQLDataStatement | SQLSchemaStatement | SQLTransactionStatement | SQLConnectionStatement | SQLSessionStatement | DirectImplementationDefinedStatement;;;DirectSQLDataStatement = DeleteStatementSearched | DirectSelectStatementMultipleRows | InsertStatement | UpdateStatementSearched | MergeStatement | TemporaryTableDeclaration;;;DirectImplementationDefinedStatement = !!See >> the >> Syntax >> Rules;;;DirectSelectStatementMultipleRows = CursorSpecification;;;GetDiagnosticsStatement =(str_p("GET")) >>(("DIAGNOSTICS")) >> SQLDiagnosticsInformation;;;SQLDiagnosticsInformation = StatementInformation | ConditionInformation;;;StatementInformation = ((StatementInformationItem%Comma));;;StatementInformationItem = SimpleTargetSpecification >> EqualsOperator >> StatementInformationItemName;;;StatementInformationItemName =(str_p("NUMBER")) |(("MORE")) |(("COMMAND_FUNCTION")) |(("COMMAND_FUNCTION_CODE")) |(("DYNAMIC_FUNCTION")) |(("DYNAMIC_FUNCTION_CODE")) |(("ROW_COUNT")) |(("TRANSACTIONS_COMMITTED")) |(("TRANSACTIONS_ROLLED_BACK")) |(("TRANSACTION_ACTIVE"));;;ConditionInformation = ((str_p("EXCEPTION")) |(("CONDITION")) >> ConditionNumber >> (ConditionInformationItem%Comma));;;ConditionInformationItem = SimpleTargetSpecification >> EqualsOperator >> ConditionInformationItemName;;;ConditionInformationItemName =(str_p("CATALOG_NAME")) |(("CLASS_ORIGIN")) |(("COLUMN_NAME")) |(("CONDITION_NUMBER")) |(("CONNECTION_NAME")) |(("CONSTRAINT_CATALOG")) |(("CONSTRAINT_NAME")) |(("CONSTRAINT_SCHEMA")) |(("CURSOR_NAME")) |(("MESSAGE_LENGTH")) |(("MESSAGE_OCTET_LENGTH")) |(("MESSAGE_TEXT")) |(("PARAMETER_MODE")) |(("PARAMETER_NAME")) |(("PARAMETER_ORDINAL_POSITION")) |(("RETURNED_SQLSTATE")) |(("ROUTINE_CATALOG")) |(("ROUTINE_NAME")) |(("ROUTINE_SCHEMA")) |(("SCHEMA_NAME")) |(("SERVER_NAME")) |(("SPECIFIC_NAME")) |(("SUBCLASS_ORIGIN")) |(("TABLE_NAME")) |(("TRIGGER_CATALOG")) |(("TRIGGER_NAME")) |(("TRIGGER_SCHEMA"));;;#504$5 Thu 08101604:43:03 jim@keyframe:~/work/xSWO: