type token =
  | IDENT of ( string )
  | STRING of ( string )
  | INTNUM of ( [`int of int | `inttoomuch of string] )
  | FLOATNUM of ( [`float of int * int * float | `floattoomuch of string] )
  | COMPARISON of ( Sqml_sqlstx.comparison )
  | ALL
  | ANY
  | AS
  | ASC
  | AUTHORIZATION
  | BETWEEN
  | BY
  | CHARACTER
  | CHECK
  | CLOSE
  | COMMIT
  | CONTINUE
  | CREATE
  | CURRENT
  | CURSOR
  | DECIMAL
  | DECLARE
  | DEFAULT
  | DELETE
  | DESC
  | DISTINCT
  | DOUBLE
  | ESCAPE
  | EXISTS
  | FETCH
  | FLOAT
  | FOR
  | FOREIGN
  | FOUND
  | FROM
  | GOTO
  | GRANT
  | GROUP
  | HAVING
  | IN
  | INDICATOR
  | INSERT
  | INTEGER
  | INTO
  | IS
  | KEY
  | LANGUAGE
  | LIKE
  | MODULE
  | NULL
  | NUMERIC
  | OF
  | ON
  | OPEN
  | OPTION
  | ORDER
  | PRECISION
  | PRIMARY
  | PRIVILEGES
  | PROCEDURE
  | PUBLIC
  | REAL
  | REFERENCES
  | ROLLBACK
  | SCHEMA
  | SELECT
  | SET
  | SMALLINT
  | SOME
  | SQLCODE
  | SQLERROR
  | TABLE
  | TO
  | UNION
  | UNIQUE
  | UPDATE
  | USER
  | VALUES
  | VIEW
  | WHENEVER
  | WHERE
  | WITH
  | WORK
  | COBOL
  | FORTRAN
  | PASCAL
  | PLI
  | C
  | ADA
  | OCAML
  | AVG
  | MIN
  | MAX
  | SUM
  | COUNT
  | COLON
  | LPAREN
  | RPAREN
  | COMMA
  | DOT
  | SEMICOLON
  | OR
  | AND
  | NOT
  | PLUS
  | MINUS
  | TIMES
  | DIV
  | EOF

open Parsing;;
# 27 "sqml/sqml_parser.mly"
  open Sqml_sqlstx
  open Sqml_helper_lp
  open Printf
  open Parsing

  let parse_error s = (err ())#error s

  let normal_int = function `int i -> i | _ -> parse_error "absurd integer"

(* #load "parser.cmo" #load "lexer.cmo"; open Parser open Lexer;; *)
# 125 "sqml/sqml_parser.ml"
let yytransl_const = [|
  262 (* ALL *);
  263 (* ANY *);
  264 (* AS *);
  265 (* ASC *);
  266 (* AUTHORIZATION *);
  267 (* BETWEEN *);
  268 (* BY *);
  269 (* CHARACTER *);
  270 (* CHECK *);
  271 (* CLOSE *);
  272 (* COMMIT *);
  273 (* CONTINUE *);
  274 (* CREATE *);
  275 (* CURRENT *);
  276 (* CURSOR *);
  277 (* DECIMAL *);
  278 (* DECLARE *);
  279 (* DEFAULT *);
  280 (* DELETE *);
  281 (* DESC *);
  282 (* DISTINCT *);
  283 (* DOUBLE *);
  284 (* ESCAPE *);
  285 (* EXISTS *);
  286 (* FETCH *);
  287 (* FLOAT *);
  288 (* FOR *);
  289 (* FOREIGN *);
  290 (* FOUND *);
  291 (* FROM *);
  292 (* GOTO *);
  293 (* GRANT *);
  294 (* GROUP *);
  295 (* HAVING *);
  296 (* IN *);
  297 (* INDICATOR *);
  298 (* INSERT *);
  299 (* INTEGER *);
  300 (* INTO *);
  301 (* IS *);
  302 (* KEY *);
  303 (* LANGUAGE *);
  304 (* LIKE *);
  305 (* MODULE *);
  306 (* NULL *);
  307 (* NUMERIC *);
  308 (* OF *);
  309 (* ON *);
  310 (* OPEN *);
  311 (* OPTION *);
  312 (* ORDER *);
  313 (* PRECISION *);
  314 (* PRIMARY *);
  315 (* PRIVILEGES *);
  316 (* PROCEDURE *);
  317 (* PUBLIC *);
  318 (* REAL *);
  319 (* REFERENCES *);
  320 (* ROLLBACK *);
  321 (* SCHEMA *);
  322 (* SELECT *);
  323 (* SET *);
  324 (* SMALLINT *);
  325 (* SOME *);
  326 (* SQLCODE *);
  327 (* SQLERROR *);
  328 (* TABLE *);
  329 (* TO *);
  330 (* UNION *);
  331 (* UNIQUE *);
  332 (* UPDATE *);
  333 (* USER *);
  334 (* VALUES *);
  335 (* VIEW *);
  336 (* WHENEVER *);
  337 (* WHERE *);
  338 (* WITH *);
  339 (* WORK *);
  340 (* COBOL *);
  341 (* FORTRAN *);
  342 (* PASCAL *);
  343 (* PLI *);
  344 (* C *);
  345 (* ADA *);
  346 (* OCAML *);
  347 (* AVG *);
  348 (* MIN *);
  349 (* MAX *);
  350 (* SUM *);
  351 (* COUNT *);
  352 (* COLON *);
  353 (* LPAREN *);
  354 (* RPAREN *);
  355 (* COMMA *);
  356 (* DOT *);
  357 (* SEMICOLON *);
  358 (* OR *);
  359 (* AND *);
  360 (* NOT *);
  361 (* PLUS *);
  362 (* MINUS *);
  363 (* TIMES *);
  364 (* DIV *);
    0 (* EOF *);
    0|]

let yytransl_block = [|
  257 (* IDENT *);
  258 (* STRING *);
  259 (* INTNUM *);
  260 (* FLOATNUM *);
  261 (* COMPARISON *);
    0|]

let yylhs = "\255\255\005\000\001\000\004\000\008\000\008\000\006\000\006\000\006\000\n\000\n\000\t\000\012\000\012\000\013\000\015\000\019\000\019\000\020\000\020\000\021\000\022\000\016\000\016\000\011\000\011\000\011\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\014\000\014\000\025\000\025\000\025\000\028\000\028\000\028\000\028\000\027\000\027\000\027\000\027\000\031\000\031\000\031\000\031\000\031\000\031\000\029\000\029\000\017\000\017\000 \000 \000\026\000\026\000\018\000\018\000\023\000\023\000\023\000\023\000\023\000!\000!\000!\000!\000!\000!\000!\000\"\000\"\000#\000#\000$\000$\000)\000)\000%\000%\000&\000&\000&\000&\000*\000*\000'\000+\000+\000+\000(\000\030\000\002\000\002\000,\000.\000.\000/\000/\0000\0000\000\003\0001\0003\0003\0004\0004\0005\0005\0005\000\003\0006\0009\0009\000:\000:\000=\000;\000>\000>\000>\000>\000>\000>\000>\000>\000>\000>\000>\000>\000>\000>\000?\000?\000@\000@\000@\000@\000@\000@\000@\000@\000@\000<\000<\000<\000<\000<\000A\000A\000-\000-\0002\0007\000B\000B\0008\000E\000E\000C\000C\000C\000F\000F\000G\000G\000G\000G\000G\000D\000D\000H\000H\000\003\000I\000J\000J\000N\000K\000K\000K\000K\000K\000K\000K\000L\000L\000O\000O\000P\000Q\000\007\000\007\000R\000R\000S\000S\000T\000T\000T\000M\000M\000U\000V\000X\000X\000W\000W\000Z\000Z\000\003\000Y\000Y\000Y\000Y\000Y\000Y\000Y\000Y\000Y\000Y\000Y\000[\000\\\000]\000^\000_\000`\000a\000b\000c\000f\000f\000g\000g\000d\000e\000e\000h\000\003\000\003\000i\000i\000\000\000\000\000\000\000\000\000\000\000"

let yylen = "\002\000\001\000\003\000\003\000\001\000\001\000\001\000\003\000\004\000\001\000\003\000\004\000\001\000\001\000\004\000\002\000\001\000\003\000\001\000\003\000\001\000\002\000\000\000\001\000\000\000\001\000\001\000\003\000\003\000\003\000\003\000\002\000\002\000\001\000\001\000\001\000\003\000\001\000\003\000\001\000\001\000\001\000\001\000\005\000\002\000\003\000\004\000\005\000\005\000\004\000\001\000\001\000\001\000\001\000\001\000\001\000\001\000\001\000\000\000\003\000\001\000\003\000\001\000\003\000\000\000\002\000\003\000\003\000\002\000\003\000\001\000\001\000\001\000\001\000\001\000\001\000\001\000\001\000\003\000\005\000\006\000\005\000\005\000\004\000\000\000\002\000\004\000\003\000\006\000\005\000\006\000\005\000\001\000\003\000\006\000\001\000\001\000\001\000\004\000\002\000\002\000\003\000\005\000\004\000\001\000\001\000\003\000\001\000\001\000\001\000\005\000\000\000\001\000\001\000\002\000\001\000\001\000\001\000\001\000\006\000\001\000\003\000\001\000\001\000\001\000\003\000\001\000\004\000\001\000\004\000\006\000\001\000\004\000\006\000\001\000\001\000\001\000\004\000\001\000\002\000\000\000\002\000\002\000\003\000\004\000\002\000\002\000\002\000\004\000\002\000\005\000\004\000\005\000\007\000\n\000\004\000\001\000\003\000\000\000\003\000\001\000\007\000\000\000\003\000\007\000\000\000\003\000\002\000\001\000\001\000\001\000\003\000\001\000\001\000\001\000\002\000\002\000\001\000\003\000\001\000\001\000\001\000\008\000\000\000\001\000\001\000\001\000\001\000\001\000\001\000\001\000\001\000\001\000\000\000\001\000\001\000\002\000\006\000\001\000\000\000\003\000\001\000\003\000\002\000\002\000\000\000\001\000\001\000\001\000\002\000\005\000\001\000\001\000\002\000\001\000\002\000\002\000\001\000\001\000\001\000\001\000\001\000\001\000\001\000\001\000\001\000\001\000\001\000\001\000\001\000\002\000\002\000\007\000\004\000\004\000\002\000\002\000\006\000\008\000\001\000\003\000\003\000\003\000\005\000\001\000\003\000\001\000\004\000\003\000\002\000\001\000\002\000\002\000\002\000\002\000\002\000"

let yydefred = "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\251\000\000\000\t\000\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\252\000\000\000\224\000m\000v\000s\000t\000u\000\181\000\218\000\219\000\220\000\221\000\222\000\223\000\225\000\226\000\227\000\228\000\229\000\253\000\254\000\000\000\001\000\255\000\025\000\026\000\000\000\000\000\000\000\000\000\000\000\198\000\230\000\231\000\000\000\000\000\000\000\000\000\000\000\000\000\174\000\173\000\000\000\172\000\000\000\000\000\000\000\170\000\000\000\185\000\000\000\184\000\235\000\236\000\000\000\020\000\000\000\000\000\000\000\000\000\004\000d\000\000\000\000\0008\0009\000)\0002\0003\0004\0005\0006\000\000\000\000\000\000\000\000\000\013\000\000\000\000\000\000\000!\000\"\000#\000'\000(\000\000\000\000\000\n\000\000\000\000\000\007\000\005\000\002\000\000\000\000\000\000\000\000\000\000\000\167\000\000\000\176\000\175\000\000\000\000\000\000\000\000\000\000\000\000\000\250\000\000\000\248\000\000\000e\000\003\000\000\000c\000\000\000\031\000 \000\000\000\011\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000,\000\000\000\000\000\000\000\000\000\000\000\201\000\008\000\160\000\000\000\000\000\000\000\000\000\233\000\023\000\246\000\000\000\244\000|\000\156\000\000\000\000\000\171\000\000\000\186\000\187\000\188\000\189\000\190\000\191\000\192\000\000\000\000\000\000\000\000\000\239\000\249\000\247\000?\000$\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\029\000\030\000-\000\000\000\000\000\000\000\000\000\000\000\206\000\207\000\203\000\204\000\000\000\000\000n\000\000\000q\000\000\000\000\000\000\000\000\000\000\000x\000z\000{\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000F\000G\000H\000I\000J\000K\000L\000M\000\000\000\159\000\000\000\000\000\000\000h\000f\000\000\000\000\000\000\000\000\000\000\000\243\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000.\0001\000\202\000r\000\000\000\000\000\000\000\000\000w\000\000\000\000\000\000\000\000\000\000\000\134\000\000\000\138\000\135\000\140\000\000\000\000\000\000\000\000\000\000\000D\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\245\000\157\000\179\000\180\000\000\000\177\000\000\000\000\000\237\000\242\000\000\000\000\000\240\000\017\000\019\000\000\000\000\000\014\000+\0000\000/\000\000\000\000\000\000\000\000\000y\000\000\000\000\000\139\000\000\000\000\000\000\000\000\000\161\000\232\000\000\000E\000\000\000C\000`\000_\000a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000W\000\000\000\000\000\000\000\164\000l\000k\000\000\000i\000\000\000\000\000\000\000\195\000\000\000<\000\000\000\000\000\155\000\000\000\000\000\151\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\141\000\000\000b\000\000\000\000\000\000\000\000\000\\\000\000\000\000\000S\000\000\000\000\000\000\000V\000\000\000\178\000g\000\000\000\000\000\000\000\000\000\208\000\196\000\238\000\000\000\000\000\152\000\127\000\132\000\000\000\137\000\129\000\000\000\000\000\146\000\147\000\145\000\000\000\000\000\163\000O\000\000\000\000\000Y\000[\000\000\000U\000\000\000\000\000\000\000R\000\166\000j\000\000\000\211\000\000\000\209\000=\000\000\000\000\000\000\000\000\000\000\000\000\000\143\000^\000]\000\000\000X\000Z\000\000\000\217\000\000\000\000\000\214\000\000\000\133\000\130\000\148\000\000\000\144\000\000\000\216\000\000\000\215\000\000\000\150\000\197\000\000\000\212\000\000\000\213\000\154\000"

let yydgoto = "\006\000\t\000\026\000\027\000/\0002\000\n\0009\000X\000\011\000\012\0005\000h\000\147\000i\000\148\000\169\000\006\001<\001\196\000\197\000\198\000\170\000\235\000\236\000k\000l\000m\000n\000o\000p\000q\000m\001\238\000\239\000\240\000\241\000\242\000\243\000\244\000\245\000\133\001\131\001W\001\028\000\127\000\252\000e\001f\001\029\000.\001\218\000\219\000\030\000\031\000 \000!\000\225\000\226\000\227\000\228\000\175\000\028\001J\001{\001\176\000L\001H\000/\001b\001I\000J\0000\001\"\000M\000\187\000h\001\144\001N\000i\001j\001;\000\161\000\162\000\214\000\145\001\179\001\197\001\212\001#\000\198\001$\000%\000&\000'\000(\000)\000*\000+\000,\000-\000\172\000\190\000\191\000\173\000\137\000"

let yysindex = "f\002\217\254\236\005\236\005\247\254X\000\000\000N\255\217\254\000\000^\255\000\000\000\000x\255\018\255\191\255\186\255x\255\227\255\185\255\196\255x\255\148\255N\255\235\255\238\254\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\197\255\000\000\000\000\000\000\000\000\204\255\024\255\245\255\029\255\021\000\000\000\000\000\000\000\252\255\235\255\235\255\235\255\228\255\205\255\000\000\000\000\177\255\000\000\177\255\229\255\190\255\000\000\235\255\000\000\247\255\000\000\000\000\000\000\204\255\000\000\237\255%\255\017\000\236\005\000\000\000\000\021\000\213\255\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000:\000\153\005\153\005\153\005\000\000\029\000\224\255b\000\000\000\000\000\000\000\000\000\000\000\232\254\230\255\000\000\212\255\217\254\000\000\000\000\000\000P\000\003\000\177\255\014\000\251\255\000\000\\\000\000\000\000\000\235\255\151\255\177\255?\000\030\000\\\000\000\000r\000\000\000%\255\000\000\000\000~\000\000\000$\000\000\000\000\000\235\255\000\0000\000\153\005\153\005\153\005\153\005\153\005\251\255\138\000\000\000\153\255\213\255\179\255\179\2559\000\000\000\000\000\000\000\234\255\162\255\150\000\012\005\000\000\000\000\000\000A\000\000\000\000\000\000\000~\255m\000\000\000P\255\000\000\000\000\000\000\000\000\000\000\000\000\000\000\175\000\251\255\184\000H\255\000\000\000\000\000\000\000\000\000\000^\000\000\000\187\000a\005\163\000b\000\184\255\184\255\000\000\000\000\000\000l\000\153\005\198\000s\000\137\000\000\000\000\000\000\000\000\000\212\255\147\255\000\000\234\255\000\000v\000\173\000\177\000\128\000\218\255\000\000\000\000\000\000)\004\247\254\178\000\130\000a\005a\005\238\255\134\255\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\251\255\000\000\\\000*\255\152\000\000\000\000\000P\000\240\254\127\0057\005\\\000\000\000\235\255\246\000\249\000\219\000\t\001\239\000\169\000\000\000\000\000\000\000\000\000a\005\171\000\186\000\\\000\000\000\162\255\188\000\189\000\212\000\191\000\000\000\196\000\000\000\000\000\000\000\190\000x\255\247\254\163\255\027\255\000\000a\005a\005L\005\153\005\199\000Y\255X\255\252\254\000\000\000\000\000\000\000\000U\255\000\000B\255\006\001\000\000\000\000b\000\237\000\000\000\000\000\000\000\198\000a\005\000\000\000\000\000\000\000\000\231\255\\\000\\\000&\000\000\000$\001(\001\000\000*\001+\0018\255!\001\000\000\000\000\207\000\000\000\204\000\000\000\000\000\000\000\000\000x\005b\000\211\000\172\255\031\255\025\001\153\005\213\000Y\255\000\000\011\001\019\001*\255\000\000\000\000\000\0008\000\000\000x\255\003\001\006\001\000\000x\255\000\000\222\000\238\255\000\000K\000]\000\000\000\224\000c\000\229\000w\000\232\000\028\255\235\255\027\001\000\000\023\001\000\000\240\000\247\254\153\005\241\000\000\000{\000Y\255\000\000I\000\031\255\025\001\000\000\030\001\000\000\000\000B\255C\001[\001\003\001\000\000\000\000\000\000\198\000 \001\000\000\000\000\000\000Z\001\000\000\000\000^\001a\005\000\000\000\000\000\000\001\001\160\255\000\000\000\000\002\001b\000\000\000\000\000Y\255\000\000\153\005\n\001\135\000\000\000\000\000\000\000M\001\000\000\215\254\000\000\000\000\235\255\012\001\014\001\250\255\\\0005\001\000\000\000\000\000\000b\000\000\000\000\000\217\254\000\000)\004d\255\000\000\016\001\000\000\000\000\000\000\141\000\000\000^\255\000\000\213\005\000\000\\\000\000\000\000\000\213\005\000\000\153\000\000\000\000\000"

let yyrindex = "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\211\004\000\000\000\000\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\001\000\000\000\000\211\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000=\001\000\000\000\000\228\254\000\000\228\254\000\000?\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000u\002\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\154\2552\255\000\000\000\000\000\000\000\000\000\000\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000y\001\157\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000_\255\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\194\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\003\006\000\006\000\n\000\000\000\000\000\000\000\t\000\000\000\000\000\000\000\000\000\000\000\000\000\235\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\157\001\000\000\000\000\000\000\000\000\000\000\141\003\000\000X\003\000\000\022\0044\255~\001\229\001\000\000\000\000\000\000\020\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\225\003\000\000h\255\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\161\000\227\000\000\000a\001\000\000\180\001\000\000\000\000\000\000\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\013\000\000\000\000\000F\001\000\000\000\000\192\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\157\000\000\000\000\000\000\000\000\000\000\000\238\002\000\000\000\000\000\000\000\000\000\000\026\002\000\000\000\000\000\000O\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000I\001\000\000\000\000\000\000K\004\181\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000O\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\169\255\220\255\000\000\000\000\000\000\132\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\185\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\165\000\000\000\000\000\000\000\000\000\000\000\014\255\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000"

let yygindex = "\000\000\000\0000\002\133\002\000\000\000\000\248\255\211\255\249\255\254\255\024\000p\0029\002\141\001\000\000\000\000\159\255\000\000\000\000\000\000\137\001\233\255\000\000\030\255\217\255\244\254\164\255\000\000\158\255\026\001\149\255\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\001\017\001\000\000\000\000;\000\000\000\000\000\004\001\000\000\140\255\000\000\000\000\139\255\000\000\000\000\000\000\000\000\128\001\000\000\000\000\146\255\209\000\000\000\000\000\250\254\000\000\000\000\000\000\000\000\000\000\021\0028\001\000\000\000\000\000\000\000\000\000\000\000\000\000\0001\001\028\000\000\000\195\001\253\001\015\001\000\000\000\000\000\000\235\254\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\230\001\000\000\168\001\181\001%\002"

let yytablesize = 1852
let yytable = "6\000S\0000\000Y\000\165\000\156\000\205\000 \001\"\001o\000\200\000C\001\162\000\165\000j\000p\000\210\000\154\000\182\000\146\000W\000W\000\199\000\160\000\189\000\158\000\171\000\007\000Z\001\195\001[\000\\\000%\001[\000\\\000t\000\199\000d\001&\001y\000z\000{\000j\000\164\000@\001A\000^\001\206\000\220\000O\000w\000\200\000\131\000T\000\135\000c\000\229\000\007\000\008\000p\001q\001\143\000\144\000\145\000>\000P\001Q\001'\001[\000\\\000w\001\158\000\155\000\136\000\199\000(\001\237\000\130\001\158\001x\001u\000\136\001\140\000\246\0003\000%\000U\000&\0001\000n\001\171\000[\000\\\000\002\001%\000\007\000&\000\007\0008\000[\001_\001<\000\013\001-\0014\000\159\001\177\000\237\000]\000\"\000\201\000\202\000\203\000\204\000\205\000\"\000c\001\t\001\211\000y\001\170\001:\000r\000\130\001\160\000\195\000\008\000c\000\\\001d\001\128\000)\001\150\000\151\000\152\000\153\000]\0012\001,\001%\001\163\000\237\000\237\000]\000\"\000&\001\007\000\189\000\171\000%\0007\000&\000\"\000\000\001Z\000[\000\\\000\190\001\250\000\208\000z\001\158\000c\000\174\000\237\000\229\000]\000`\0018\000\008\001\195\001\001\001*\000\158\000'\001C\000\221\000\251\000\237\000\209\000\203\001\167\000(\001\149\000a\001c\000\213\001\185\001\212\000\012\000\179\000\215\001\149\000D\000!\001\222\000c\000L\000\012\000\237\000\237\000\207\001\"\000\214\001\213\000Z\000[\000\\\000\"\000\"\000\"\000\"\000\"\000\158\000E\000\159\0005\001F\000\187\001>\000\223\000@\000l\001\237\000\247\000\248\000?\000G\000\029\001K\000]\000P\000\149\000B\000\142\000\188\001R\000\224\000)\001\150\000\151\000\152\000\153\000\142\000^\000_\000`\000a\000b\000c\000d\000C\000\217\0007\000V\001X\001=\000s\000e\000f\000\210\000O\001x\000>\000}\000#\001$\001\149\000\149\000D\000?\000\018\000|\000\149\000~\000\128\001c\000\150\000\151\000\152\000\153\000]\000\129\000\142\000\205\000N\001\162\000\165\000\200\000\130\000E\000\152\000\153\000F\000\132\000^\000_\000`\000a\000b\000c\000d\000\143\000G\000\134\000\162\000\165\000\138\000\134\001e\000f\000g\000\181\001\141\000M\001\142\000\018\001\019\001\142\000\142\000\146\000\237\000\205\000\149\000\142\000>\000\200\000\157\000\196\001o\001\188\000>\000\210\000#\001$\001>\000>\000\164\000>\000~\001#\001$\001>\000\129\001>\000\166\001\196\001c\000\202\001\174\000>\000\168\000#\001$\001\161\001>\000\166\000>\000>\000>\000>\000\205\000>\000\205\000>\000>\000o\000\200\000>\000\162\000\165\000\192\000p\000\210\000>\000\182\000>\000V\000v\000\199\000>\000\165\001\027\000\194\000>\000\199\000>\000\142\001\191\001\172\001\195\000\147\001r\001\248\000>\000\207\000>\000\150\000\151\000\152\000\153\000>\000>\000\180\000\181\000\182\000\183\000\184\000\185\000\186\000\140\001\141\001\216\000\022\000\230\000\199\001\211\0017\000>\000>\000\246\000>\000>\000>\000>\000>\000>\000>\000>\000\149\001\248\000~\000\171\001*\000\150\000\151\000\152\000\153\000\249\000*\000~\000\253\000\205\001*\000*\000\255\000*\000\150\001\248\000\003\001*\000\004\001*\000\152\001\153\001\158\000*\000\005\001*\000\150\000\151\000\152\000\153\000*\000\007\001*\000*\000*\000*\000\n\001*\000\014\001*\000\155\001\156\001\015\001*\000\168\001\169\001\016\001~\000\017\001*\000\031\001*\000\028\000\030\001~\000*\000\193\001\169\001\011\001*\000*\001*\000\210\001\248\000\131\000\150\000\151\000\152\000\153\000*\0009\001*\0001\001\131\000\216\001\248\000*\000*\000}\000}\000~\000;\001~\000~\000:\001~\000\153\000\153\000~\000=\001?\001A\001G\001*\000*\000K\001*\000*\000*\000*\000*\000*\000*\000*\000c\000N\000B\001g\001E\001F\001c\000H\001k\001\131\000c\000c\000I\001c\000s\001Y\001\131\000c\000t\001c\000u\001v\001|\001c\000}\001c\000$\001\127\001\132\001\135\001c\000\138\001c\000c\000c\000c\000\137\001c\000\143\001c\000\148\001\151\001\131\000c\000\131\000\131\000\154\001\131\000\157\001c\000\131\000c\000\162\001\163\001T\000c\000>\001\164\001\167\001c\000\175\001c\000\177\001\150\000\151\000\152\000\153\000\178\001\183\001c\000\182\001c\000\184\001\186\001\204\001\189\001c\000c\000\001\000\002\000\003\000\004\000\005\000\192\001\194\001\200\001\136\000\201\001\209\001\168\000\183\000\169\000\005\000c\000c\000\136\000c\000c\000c\000c\000c\000c\000c\000c\000\158\000\193\000\027\000Q\000\194\000\139\000Q\000.\000\027\000\133\0003\0018\001\027\000\027\000\174\001\027\000\176\001\160\001D\001\027\000\206\001\027\000\178\000\173\001\139\001\146\001\012\001\027\000\215\000\208\001\180\001\136\000\027\000\254\000\027\000\027\000\027\000\027\000\136\000\027\0007\001\027\000+\001\022\000\022\000\027\000\193\000\000\000\000\000\000\000\000\000\027\000\022\000\027\000\000\000\000\000P\000\027\000\022\000\000\000\000\000\027\000\000\000\027\000\136\000\128\000\136\000\136\000\000\000\136\000\022\000\027\000\136\000\027\000\128\000\000\000\000\000\000\000\027\000\027\000\000\000\000\000\022\000\000\000\000\000\000\000\000\000\000\000\022\000\000\000\000\000\000\000\022\000\000\000\022\000\027\000\027\000\000\000\027\000\027\000\027\000\027\000\027\000\027\000\022\000\028\000\000\000\000\000\000\000B\000\000\000\028\000\000\000\000\000\128\000\028\000\028\000\000\000\028\000\000\000\000\000\128\000\028\000\000\000\028\000\000\000\000\000\000\000\000\000\022\000\028\000\000\000\000\000\000\000\000\000\028\000\000\000\028\000\028\000\028\000\028\000\000\000\028\000\000\000\028\000\000\000\000\000\128\000\028\000\128\000\128\000\000\000\128\000\000\000\028\000\128\000\028\000\000\000\000\000\000\000\028\000\000\000>\000\000\000\028\000\000\000\028\000\000\000N\000N\000\000\000N\000\000\000\000\000\028\000N\000\028\000N\000\000\000\000\000\000\000\028\000\028\000N\000\000\000\000\000\000\000\000\000\000\000\000\000N\000N\000N\000\000\000\000\000N\000\000\000\000\000\028\000\028\000\000\000\028\000\028\000\028\000\028\000\028\000\028\000N\000\000\000N\000\000\000\000\000\000\000N\000\000\000\018\000\000\000N\000\000\000N\000\000\000T\000T\000\000\000T\000\000\000\000\000N\000T\000N\000T\000\000\000\000\000\000\000\000\000N\000T\000\000\000\000\000\000\000\000\000\000\000\000\000T\000T\000T\000\000\000\000\000T\000\000\000\000\000N\000\000\000\000\000N\000N\000N\000\000\000\000\000\000\000T\000\000\000T\000\000\000\000\000\000\000T\000\000\000\015\000\000\000T\000\000\000T\000\000\000Q\000Q\000\000\000Q\000\000\000\000\000T\000Q\000T\000Q\000\000\000\000\000\000\000\000\000T\000Q\000\000\000\000\000\000\000\000\000\000\000\000\000Q\000Q\000Q\000\000\000\000\000Q\000\000\000\000\000T\000\000\000\000\000T\000T\000T\000\000\000\000\000\000\000Q\000\000\000Q\000\000\000\000\000\000\000Q\000\000\000\022\000\000\000Q\000\000\000Q\000\000\000P\000P\000\000\000P\000\000\000\000\000Q\000P\000Q\000P\000\000\000\000\000\000\000\000\000Q\000P\000\000\000\000\000\000\000\000\000\000\000\000\000P\000P\000P\000\021\000\000\000P\000\000\000\000\000Q\000\000\000\000\000Q\000Q\000Q\000\000\000\000\000\000\000P\000\000\000P\000\000\000\000\000\000\000P\000\000\000\000\000\000\000P\000\000\000P\000\000\000B\000B\000\000\000B\000\000\000\000\000P\000B\000P\000B\000\000\000\000\000\000\000\000\000P\000B\000\000\000\000\000\000\000\000\000\000\000\000\000B\000B\000B\000:\000\000\000B\000\000\000\000\000P\000\000\000\000\000P\000P\000P\000\000\000\000\000\000\000B\000\000\000B\000\000\000\000\000\000\000B\000\000\000>\000\000\000B\000\000\000B\000\000\000>\000>\000\000\000>\000\000\000\000\000B\000>\000B\000>\000>\000\000\000\000\000\000\000B\000>\000\000\000\000\000\000\000\000\000\000\000\000\000>\000\000\000>\000;\000\000\000>\000\000\000\000\000B\000\000\000\000\000B\000B\000\000\000\000\000\000\000\000\000>\000\000\000>\000\000\000\000\000\000\000>\000\000\000\000\000\000\000>\000\000\000>\000\000\000\018\000\018\000\000\000\018\000\000\000\000\000>\000\018\000>\000\018\000\000\000\000\000\000\000\000\000>\000\018\000\000\000\000\000\000\000\000\000\000\000\000\000\018\000\018\000\018\000@\000\000\000\018\000\000\000\000\000>\000>\000\000\000>\000\000\000\000\000\000\000\000\000\000\000\018\000\000\000\018\000\000\000\000\000\000\000\018\000\000\000\000\000\000\000\018\000\000\000\018\000\000\000\015\000\015\000\000\000\015\000\000\000\000\000\018\000\015\000\018\000\015\000\000\000\000\000\000\000\018\000\018\000\015\000\000\000\000\000\000\000\000\000\000\000\000\000\015\000\015\000\015\000A\000\000\000\015\000\000\000\000\000\018\000\018\000\000\000\018\000\000\000\000\000\241\000\000\000\000\000\015\000\000\000\015\000\000\000\000\000\000\000\015\000\000\000\000\000\000\000\015\000\000\000\015\000\000\000\022\000\022\000\000\000\022\000\000\000\000\000\015\000\022\000\015\000\022\000\000\000\000\000\000\000\015\000\015\000\022\000\000\000\000\000\000\000\000\000\000\000\000\000\022\000\022\000\022\000\000\000\234\000\022\000\000\000\000\000\015\000\021\000\021\000\015\000\021\000\000\000\000\000\000\000\021\000\022\000\021\000\022\000\000\000\000\000\000\000\022\000\021\000\000\000\000\000\022\000\000\000\022\000\000\000\021\000\021\000\021\000\000\000\000\000\021\000\022\000\000\000\022\000\000\000\000\000\000\000\000\000\000\000\022\000\000\000\000\000\021\000\000\000\021\000\000\000\000\000\000\000\021\000\000\000\000\000\000\000\021\000\000\000\021\000\022\000:\000:\000\022\000:\000\000\000\000\000\021\000:\000\021\000:\000\000\000\000\000\000\000\000\000\021\000:\000\000\000\020\001\000\000\000\000\000\000\000\000:\000\000\000:\000\021\001\000\000:\000\000\000\000\000\021\000\022\001\000\000\021\000\000\000\023\001\000\000\000\000\000\000:\000\000\000:\000\000\000\000\000\000\000:\000\000\000\024\001\000\000:\000\000\000:\000\000\000;\000;\000\025\001;\000\000\000\000\000:\000;\000:\000;\000\000\000\000\000\000\000\026\001:\000;\000\000\000\000\000\000\000\027\001\000\000\000\000;\000\000\000;\000\000\000\000\000;\000\000\000\000\000:\000\000\000\000\000:\000\000\000\000\000\000\000\000\000\000\000;\000\000\000;\000\000\000\000\000\000\000;\000\000\000\000\000\000\000;\000\000\000;\000\000\000@\000@\000\000\000@\000\000\000\000\000;\000@\000;\000@\000\000\000\000\000\000\000\000\000;\000@\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000@\000\000\000\000\000;\000\000\000\000\000;\000\000\000\000\000\000\000\000\000\000\000@\000\000\000@\000\000\000\000\000\000\000@\000\000\000\000\000\000\000@\000\000\000@\000\000\000A\000A\000\000\000A\000\000\000\000\000@\000A\000@\000A\000\000\000\241\000\241\000\000\000@\000A\000\024\000\024\000\024\000\000\000\241\000\000\000A\000\000\000\000\000\000\000\241\000A\000\000\000\000\000@\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\241\000A\000\000\000A\000\000\000\000\000\000\000A\000\000\000\000\000\000\000A\000\241\000A\000\000\000\000\000\234\000\234\000\241\000\000\000\000\000A\000\241\000A\000\241\000\234\000\000\000\000\000\000\000A\000\000\000\234\000\000\000\000\000\241\000Z\000[\000\\\000\000\000\241\000\000\000\000\000\000\000\234\000\000\000A\000\000\000\000\000A\000\000\000\000\000\000\000\000\000\231\000\024\000\234\000\000\000\241\000\000\000\241\000\000\000\234\000\000\000\232\000\000\000\234\000\000\000\234\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\000\000\000\000\234\000Z\000[\000\\\000\000\000\024\000\024\000\024\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0006\001\000\000\000\000Z\000[\000\\\000\234\000\000\000R\001S\001\232\000\000\000\000\000\000\000\000\000]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000Z\000[\000\\\000\000\000\000\000^\000_\000`\000a\000b\000c\000\233\000\000\000\000\000\000\000\000\000\000\000\000\000\234\000e\000f\000\000\000\000\000Z\000[\000\\\000\000\000\000\000\232\000\000\000Z\000[\000\\\000\000\000]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000T\001^\000_\000`\000a\000b\000c\000\233\000]\000Z\000[\000\\\000\000\000\000\000\234\000e\000f\000\000\000\000\000\000\000\000\000\000\000^\000_\000`\000a\000b\000c\000U\001]\000\000\000\000\0004\001\000\000\000\000\000\000e\000f\000\000\000\000\000\000\000\007\000\000\000^\000_\000`\000a\000b\000c\000\233\000\000\000\000\000]\000\000\000\000\000\000\000\234\000e\000f\000]\000\000\000\000\000\000\000\000\000\000\000\000\000^\000_\000`\000a\000b\000c\000d\000^\000_\000`\000a\000b\000c\000d\000e\000f\000\000\000\013\000\014\000]\000\000\000e\000f\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\017\000^\000_\000`\000a\000b\000c\000d\000\013\000\014\000\000\000\015\000\019\000\000\000\000\000e\000f\000\016\000\000\000\000\000\000\000\000\000\000\000\017\000\021\000\000\000\000\000\000\000\000\000\000\000\018\000\000\000\000\000\000\000\022\000\019\000\023\000\000\000\000\000\000\000\000\000\000\000\020\000\000\000\000\000\000\000\024\000\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022\000\000\000\023\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\000\000\000\000\000\000\000\025\000"

let yycheck = "\008\000\024\000\004\0000\000x\000p\000\000\000\233\000\234\000\000\000\000\000\017\001\000\000\000\0005\000\000\000\000\000)\001\000\000#\001\000\000\000\000\000\000s\000\134\0005\001|\000B\001(\001F\001\002\001\003\001\005\001\002\001\003\001\006\001\022\0011\001\011\001>\000?\000@\000Q\000\001\001\014\001\017\0002\001\154\000\165\000\021\0009\000\148\000K\000G\001\017\001`\001\166\000B\001a\001A\001B\001d\000e\000f\000\000\000#\001$\001(\001\002\001\003\001\014\001c\001`\001$\001<\0010\001\168\000Y\0012\001\023\0018\000]\001Y\000c\001\006\001#\001h\001#\001\000\000;\001\188\000\002\001\003\001\190\000,\001B\001,\001B\001J\001\011\001h\001S\001\219\000=\001\026\001M\001\129\000\199\000M\001\005\001\149\000\150\000\151\000\152\000\153\000\011\0012\001\209\000\157\000?\001\132\001\001\001b\001\135\001\216\000b\001a\001`\001(\001\141\001G\000h\001i\001j\001k\001l\0010\001\253\000\248\000\005\001t\000\233\000\234\000M\001(\001\011\001B\001\001\001\246\000c\0018\001c\0010\001Q\001\001\001\002\001\003\001\169\001N\001\006\001h\001B\001`\001\001\001\000\001\019\001M\001R\001J\001\208\000F\001c\001\000\000N\001(\001\024\001\014\001\179\000\014\001\026\001\186\001z\0000\001\014\001c\001`\001\207\001\157\001\t\001#\001\131\000\212\001\023\001*\001\233\000!\001`\001\001\001,\001#\001$\001e\001b\001\209\001\025\001\001\001\002\001\003\001h\001i\001j\001k\001l\001\001\001?\001\003\001\255\000B\001:\001H\001:\001#\001:\001;\001b\001c\001O\001L\001\230\000,\001M\001S\001?\001\006\001\014\001K\001\001\001K\001h\001i\001j\001k\001l\001\023\001[\001\\\001]\001^\001_\001`\001a\001\024\001\018\0018\001%\001&\001A\001\012\001i\001j\001k\001b\001\n\001H\001;\001f\001g\001b\001c\001*\001O\001%\001,\001h\001a\001g\001\000\000i\001j\001k\001l\001M\0015\001?\001\022\001\031\001\018\001\018\001\022\001c\001?\001k\001l\001B\001/\001[\001\\\001]\001^\001_\001`\001a\001U\001L\001C\001%\001%\001\"\001[\001i\001j\001k\001\148\001d\001\030\001\001\001b\001c\001b\001c\001#\001\157\001<\001c\001h\001\005\001<\001a\001\179\001b\001,\001\011\001<\001f\001g\001\015\001\016\001\001\001\018\001U\001f\001g\001\022\001Y\001\024\001\128\001\197\001`\001b\001\001\001\030\001Q\001f\001g\001y\001#\001a\001%\001&\001'\001(\001c\001*\001e\001,\001-\001e\001e\0010\001e\001e\001\001\001e\001e\0016\001e\0018\001e\001e\001e\001<\001\127\001\000\000\001\001@\001Q\001B\001g\001\171\001\135\001b\001k\001b\001c\001J\001\001\001L\001i\001j\001k\001l\001Q\001R\001T\001U\001V\001W\001X\001Y\001Z\001b\001c\001c\001\000\000\008\001\182\001\205\001a\001b\001c\001c\001e\001f\001g\001h\001i\001j\001k\001l\001b\001c\001\014\001g\001\005\001i\001j\001k\001l\001I\001\011\001\023\001\n\001\194\001\015\001\016\001\005\001\018\001b\001c\001c\001\022\001\008\001\024\001b\001c\001\001\001\028\001&\001\030\001i\001j\001k\001l\001#\001d\001%\001&\001'\001(\001b\001*\001a\001,\001b\001c\001.\0010\001b\001c\001.\001?\001a\0016\001a\0018\001\000\0004\001F\001<\001b\001c\001b\001@\001-\001B\001b\001c\001\014\001i\001j\001k\001l\001J\001\001\001L\001a\001\023\001b\001c\001Q\001R\001b\001c\001`\001'\001b\001c\001\012\001e\001b\001c\001h\001\001\001b\001a\0019\001b\001c\001R\001e\001f\001g\001h\001i\001j\001k\001l\001\005\001\000\000a\001\022\001a\001a\001\011\001a\0014\001?\001\015\001\016\001a\001\018\001\003\001a\001F\001\022\001\003\001\024\001\003\001\003\001\014\001\028\001b\001\030\001g\001a\001\028\001a\001#\001%\001%\001&\001'\001(\0012\001*\001<\001,\001c\001b\001`\0010\001b\001c\001b\001e\001a\0016\001h\0018\0012\0017\001\000\000<\001b\001b\001b\001@\0017\001B\001\020\001i\001j\001k\001l\001\001\001\003\001J\001?\001L\001\003\001a\001.\001b\001Q\001R\001\001\000\002\000\003\000\004\000\005\000b\001 \001b\001\014\001b\001a\0015\001/\0015\001\000\000b\001c\001\023\001e\001f\001g\001h\001i\001j\001k\001l\001\008\001<\001\005\001\000\000<\001V\000\023\000\003\000\011\001Q\000\254\000\003\001\015\001\016\001\136\001\018\001\141\001x\001\019\001\022\001\196\001\024\001\130\000\135\001a\001i\001\216\000\030\001\160\000\197\001\144\001?\001#\001\188\000%\001&\001'\001(\001F\001*\001\001\001,\001\246\000\015\001\016\0010\001\138\000\255\255\255\255\255\255\255\2556\001\024\0018\001\255\255\255\255\000\000<\001\030\001\255\255\255\255@\001\255\255B\001`\001\014\001b\001c\001\255\255e\001*\001J\001h\001L\001\023\001\255\255\255\255\255\255Q\001R\001\255\255\255\2556\001\255\255\255\255\255\255\255\255\255\255<\001\255\255\255\255\255\255@\001\255\255B\001b\001c\001\255\255e\001f\001g\001h\001i\001j\001L\001\005\001\255\255\255\255\255\255\000\000\255\255\011\001\255\255\255\255?\001\015\001\016\001\255\255\018\001\255\255\255\255F\001\022\001\255\255\024\001\255\255\255\255\255\255\255\255e\001\030\001\255\255\255\255\255\255\255\255#\001\255\255%\001&\001'\001(\001\255\255*\001\255\255,\001\255\255\255\255`\0010\001b\001c\001\255\255e\001\255\2556\001h\0018\001\255\255\255\255\255\255<\001\255\255\000\000\255\255@\001\255\255B\001\255\255\015\001\016\001\255\255\018\001\255\255\255\255J\001\022\001L\001\024\001\255\255\255\255\255\255Q\001R\001\030\001\255\255\255\255\255\255\255\255\255\255\255\255%\001&\001'\001\255\255\255\255*\001\255\255\255\255b\001c\001\255\255e\001f\001g\001h\001i\001j\0016\001\255\2558\001\255\255\255\255\255\255<\001\255\255\000\000\255\255@\001\255\255B\001\255\255\015\001\016\001\255\255\018\001\255\255\255\255J\001\022\001L\001\024\001\255\255\255\255\255\255\255\255R\001\030\001\255\255\255\255\255\255\255\255\255\255\255\255%\001&\001'\001\255\255\255\255*\001\255\255\255\255b\001\255\255\255\255e\001f\001g\001\255\255\255\255\255\2556\001\255\2558\001\255\255\255\255\255\255<\001\255\255\000\000\255\255@\001\255\255B\001\255\255\015\001\016\001\255\255\018\001\255\255\255\255J\001\022\001L\001\024\001\255\255\255\255\255\255\255\255R\001\030\001\255\255\255\255\255\255\255\255\255\255\255\255%\001&\001'\001\255\255\255\255*\001\255\255\255\255b\001\255\255\255\255e\001f\001g\001\255\255\255\255\255\2556\001\255\2558\001\255\255\255\255\255\255<\001\255\255\000\000\255\255@\001\255\255B\001\255\255\015\001\016\001\255\255\018\001\255\255\255\255J\001\022\001L\001\024\001\255\255\255\255\255\255\255\255R\001\030\001\255\255\255\255\255\255\255\255\255\255\255\255%\001&\001'\001\000\000\255\255*\001\255\255\255\255b\001\255\255\255\255e\001f\001g\001\255\255\255\255\255\2556\001\255\2558\001\255\255\255\255\255\255<\001\255\255\255\255\255\255@\001\255\255B\001\255\255\015\001\016\001\255\255\018\001\255\255\255\255J\001\022\001L\001\024\001\255\255\255\255\255\255\255\255R\001\030\001\255\255\255\255\255\255\255\255\255\255\255\255%\001&\001'\001\000\000\255\255*\001\255\255\255\255b\001\255\255\255\255e\001f\001g\001\255\255\255\255\255\2556\001\255\2558\001\255\255\255\255\255\255<\001\255\255\t\001\255\255@\001\255\255B\001\255\255\015\001\016\001\255\255\018\001\255\255\255\255J\001\022\001L\001\024\001\025\001\255\255\255\255\255\255R\001\030\001\255\255\255\255\255\255\255\255\255\255\255\255%\001\255\255'\001\000\000\255\255*\001\255\255\255\255b\001\255\255\255\255e\001f\001\255\255\255\255\255\255\255\2556\001\255\2558\001\255\255\255\255\255\255<\001\255\255\255\255\255\255@\001\255\255B\001\255\255\015\001\016\001\255\255\018\001\255\255\255\255J\001\022\001L\001\024\001\255\255\255\255\255\255\255\255R\001\030\001\255\255\255\255\255\255\255\255\255\255\255\255%\001&\001'\001\000\000\255\255*\001\255\255\255\255b\001c\001\255\255e\001\255\255\255\255\255\255\255\255\255\2556\001\255\2558\001\255\255\255\255\255\255<\001\255\255\255\255\255\255@\001\255\255B\001\255\255\015\001\016\001\255\255\018\001\255\255\255\255J\001\022\001L\001\024\001\255\255\255\255\255\255Q\001R\001\030\001\255\255\255\255\255\255\255\255\255\255\255\255%\001&\001'\001\000\000\255\255*\001\255\255\255\255b\001c\001\255\255e\001\255\255\255\255\000\000\255\255\255\2556\001\255\2558\001\255\255\255\255\255\255<\001\255\255\255\255\255\255@\001\255\255B\001\255\255\015\001\016\001\255\255\018\001\255\255\255\255J\001\022\001L\001\024\001\255\255\255\255\255\255Q\001R\001\030\001\255\255\255\255\255\255\255\255\255\255\255\255%\001&\001'\001\255\255\000\000*\001\255\255\255\255b\001\015\001\016\001e\001\018\001\255\255\255\255\255\255\022\0016\001\024\0018\001\255\255\255\255\255\255<\001\030\001\255\255\255\255@\001\255\255B\001\255\255%\001&\001'\001\255\255\255\255*\001J\001\255\255L\001\255\255\255\255\255\255\255\255\255\255R\001\255\255\255\2556\001\255\2558\001\255\255\255\255\255\255<\001\255\255\255\255\255\255@\001\255\255B\001b\001\015\001\016\001e\001\018\001\255\255\255\255J\001\022\001L\001\024\001\255\255\255\255\255\255\255\255R\001\030\001\255\255\013\001\255\255\255\255\255\255\255\255%\001\255\255'\001\021\001\255\255*\001\255\255\255\255b\001\027\001\255\255e\001\255\255\031\001\255\255\255\255\255\2556\001\255\2558\001\255\255\255\255\255\255<\001\255\255+\001\255\255@\001\255\255B\001\255\255\015\001\016\0013\001\018\001\255\255\255\255J\001\022\001L\001\024\001\255\255\255\255\255\255>\001R\001\030\001\255\255\255\255\255\255D\001\255\255\255\255%\001\255\255'\001\255\255\255\255*\001\255\255\255\255b\001\255\255\255\255e\001\255\255\255\255\255\255\255\255\255\2556\001\255\2558\001\255\255\255\255\255\255<\001\255\255\255\255\255\255@\001\255\255B\001\255\255\015\001\016\001\255\255\018\001\255\255\255\255J\001\022\001L\001\024\001\255\255\255\255\255\255\255\255R\001\030\001\255\255\255\255\255\255\255\255\255\255\255\255%\001\255\255\255\255\255\255\255\255*\001\255\255\255\255b\001\255\255\255\255e\001\255\255\255\255\255\255\255\255\255\2556\001\255\2558\001\255\255\255\255\255\255<\001\255\255\255\255\255\255@\001\255\255B\001\255\255\015\001\016\001\255\255\018\001\255\255\255\255J\001\022\001L\001\024\001\255\255\015\001\016\001\255\255R\001\030\001\001\001\002\001\003\001\255\255\024\001\255\255%\001\255\255\255\255\255\255\030\001*\001\255\255\255\255b\001\255\255\255\255e\001\255\255\255\255\255\255\255\255*\0016\001\255\2558\001\255\255\255\255\255\255<\001\255\255\255\255\255\255@\0016\001B\001\255\255\255\255\015\001\016\001<\001\255\255\255\255J\001@\001L\001B\001\024\001\255\255\255\255\255\255R\001\255\255\030\001\255\255\255\255L\001\001\001\002\001\003\001\255\255Q\001\255\255\255\255\255\255*\001\255\255b\001\255\255\255\255e\001\255\255\255\255\255\255\255\255\019\001M\0016\001\255\255c\001\255\255e\001\255\255<\001\255\255\029\001\255\255@\001\255\255B\001[\001\\\001]\001^\001_\001`\001a\001\255\255\255\255L\001\001\001\002\001\003\001\255\255i\001j\001k\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\019\001\255\255\255\255\001\001\002\001\003\001e\001\255\255\006\001\007\001\029\001\255\255\255\255\255\255\255\255M\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\001\001\002\001\003\001\255\255\255\255[\001\\\001]\001^\001_\001`\001a\001\255\255\255\255\255\255\255\255\255\255\255\255h\001i\001j\001\255\255\255\255\001\001\002\001\003\001\255\255\255\255\029\001\255\255\001\001\002\001\003\001\255\255M\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255E\001[\001\\\001]\001^\001_\001`\001a\001M\001\001\001\002\001\003\001\255\255\255\255h\001i\001j\001\255\255\255\255\255\255\255\255\255\255[\001\\\001]\001^\001_\001`\001a\001M\001\255\255\255\2552\001\255\255\255\255\255\255i\001j\001\255\255\255\255\255\255B\001\255\255[\001\\\001]\001^\001_\001`\001a\001\255\255\255\255M\001\255\255\255\255\255\255h\001i\001j\001M\001\255\255\255\255\255\255\255\255\255\255\255\255[\001\\\001]\001^\001_\001`\001a\001[\001\\\001]\001^\001_\001`\001a\001i\001j\001\255\255\015\001\016\001M\001\255\255i\001j\001\255\255\255\255\255\255\024\001\255\255\255\255\255\255\255\255\255\255\030\001[\001\\\001]\001^\001_\001`\001a\001\015\001\016\001\255\255\018\001*\001\255\255\255\255i\001j\001\024\001\255\255\255\255\255\255\255\255\255\255\030\0016\001\255\255\255\255\255\255\255\255\255\255%\001\255\255\255\255\255\255@\001*\001B\001\255\255\255\255\255\255\255\255\255\2551\001\255\255\255\255\255\255L\0016\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255@\001\255\255B\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255L\001\255\255\255\255\255\255P\001"

let yynames_const = "ALL\000ANY\000AS\000ASC\000AUTHORIZATION\000BETWEEN\000BY\000CHARACTER\000CHECK\000CLOSE\000COMMIT\000CONTINUE\000CREATE\000CURRENT\000CURSOR\000DECIMAL\000DECLARE\000DEFAULT\000DELETE\000DESC\000DISTINCT\000DOUBLE\000ESCAPE\000EXISTS\000FETCH\000FLOAT\000FOR\000FOREIGN\000FOUND\000FROM\000GOTO\000GRANT\000GROUP\000HAVING\000IN\000INDICATOR\000INSERT\000INTEGER\000INTO\000IS\000KEY\000LANGUAGE\000LIKE\000MODULE\000NULL\000NUMERIC\000OF\000ON\000OPEN\000OPTION\000ORDER\000PRECISION\000PRIMARY\000PRIVILEGES\000PROCEDURE\000PUBLIC\000REAL\000REFERENCES\000ROLLBACK\000SCHEMA\000SELECT\000SET\000SMALLINT\000SOME\000SQLCODE\000SQLERROR\000TABLE\000TO\000UNION\000UNIQUE\000UPDATE\000USER\000VALUES\000VIEW\000WHENEVER\000WHERE\000WITH\000WORK\000COBOL\000FORTRAN\000PASCAL\000PLI\000C\000ADA\000OCAML\000AVG\000MIN\000MAX\000SUM\000COUNT\000COLON\000LPAREN\000RPAREN\000COMMA\000DOT\000SEMICOLON\000OR\000AND\000NOT\000PLUS\000MINUS\000TIMES\000DIV\000EOF\000"

let yynames_block = "IDENT\000STRING\000INTNUM\000FLOATNUM\000COMPARISON\000"

let yyact = [|
  (fun _ -> failwith "parser")
; (fun __caml_parser_env ->
    Obj.repr(
# 97 "sqml/sqml_parser.mly"
               ( () )
# 1114 "sqml/sqml_parser.ml"
               :  unit ))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'query_exp) in
    let _2 = (Parsing.peek_val __caml_parser_env 1 : 'opt_order_by_clause) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'endsql) in
    Obj.repr(
# 99 "sqml/sqml_parser.mly"
                                                    ( _1, _2 )
# 1123 "sqml/sqml_parser.ml"
               :  Sqml_sqlstx.query ))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'select_exp) in
    let _2 = (Parsing.peek_val __caml_parser_env 1 : 'opt_order_by_clause) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'endsql) in
    Obj.repr(
# 101 "sqml/sqml_parser.mly"
                                                         ( _1, _2 )
# 1132 "sqml/sqml_parser.ml"
               :  Sqml_sqlstx.select * Sqml_sqlstx.ordering list ))
; (fun __caml_parser_env ->
    Obj.repr(
# 104 "sqml/sqml_parser.mly"
                                                    ( )
# 1138 "sqml/sqml_parser.ml"
               : 'endsql))
; (fun __caml_parser_env ->
    Obj.repr(
# 105 "sqml/sqml_parser.mly"
                                                    ( )
# 1144 "sqml/sqml_parser.ml"
               : 'endsql))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'query_term) in
    Obj.repr(
# 112 "sqml/sqml_parser.mly"
                                      ( _1 )
# 1151 "sqml/sqml_parser.ml"
               : 'query_exp))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'query_exp) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'query_term) in
    Obj.repr(
# 113 "sqml/sqml_parser.mly"
                                       ( `union (_1, _3) )
# 1159 "sqml/sqml_parser.ml"
               : 'query_exp))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 3 : 'query_exp) in
    let _4 = (Parsing.peek_val __caml_parser_env 0 : 'query_term) in
    Obj.repr(
# 114 "sqml/sqml_parser.mly"
                                       ( `unionall (_1, _4) )
# 1167 "sqml/sqml_parser.ml"
               : 'query_exp))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'select_exp) in
    Obj.repr(
# 118 "sqml/sqml_parser.mly"
                                      ( `select _1 )
# 1174 "sqml/sqml_parser.ml"
               : 'query_term))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 1 : 'query_exp) in
    Obj.repr(
# 119 "sqml/sqml_parser.mly"
                                       ( _2 )
# 1181 "sqml/sqml_parser.ml"
               : 'query_term))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 2 : 'opt_all_distinct) in
    let _3 = (Parsing.peek_val __caml_parser_env 1 : 'selection) in
    let _4 = (Parsing.peek_val __caml_parser_env 0 : 'table_exp) in
    Obj.repr(
# 123 "sqml/sqml_parser.mly"
                                                 ( let a, b, c, d = _4 in _2, _3, a, b, c, d )
# 1190 "sqml/sqml_parser.ml"
               : 'select_exp))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'rev_scalar_exp_commalist) in
    Obj.repr(
# 127 "sqml/sqml_parser.mly"
                                          ( `list (List.rev _1) )
# 1197 "sqml/sqml_parser.ml"
               : 'selection))
; (fun __caml_parser_env ->
    Obj.repr(
# 128 "sqml/sqml_parser.mly"
                                       ( `star )
# 1203 "sqml/sqml_parser.ml"
               : 'selection))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 3 : 'from_clause) in
    let _2 = (Parsing.peek_val __caml_parser_env 2 : 'opt_where_clause) in
    let _3 = (Parsing.peek_val __caml_parser_env 1 : 'opt_group_by_clause) in
    let _4 = (Parsing.peek_val __caml_parser_env 0 : 'opt_having_clause) in
    Obj.repr(
# 136 "sqml/sqml_parser.mly"
                                                       ( _1, _2, _3, _4 )
# 1213 "sqml/sqml_parser.ml"
               : 'table_exp))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'rev_table_ref_commalist) in
    Obj.repr(
# 140 "sqml/sqml_parser.mly"
                                          ( List.rev _2 )
# 1220 "sqml/sqml_parser.ml"
               : 'from_clause))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'table_ref) in
    Obj.repr(
# 144 "sqml/sqml_parser.mly"
                                      ( [_1] )
# 1227 "sqml/sqml_parser.ml"
               : 'rev_table_ref_commalist))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'rev_table_ref_commalist) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'table_ref) in
    Obj.repr(
# 145 "sqml/sqml_parser.mly"
                                           ( _3 :: _1 )
# 1235 "sqml/sqml_parser.ml"
               : 'rev_table_ref_commalist))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'table) in
    Obj.repr(
# 149 "sqml/sqml_parser.mly"
                                      ( `table _1 )
# 1242 "sqml/sqml_parser.ml"
               : 'table_ref))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'table) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 :  string ) in
    Obj.repr(
# 150 "sqml/sqml_parser.mly"
                                        ( `tableas (_1, _3) )
# 1250 "sqml/sqml_parser.ml"
               : 'table_ref))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 :  string ) in
    Obj.repr(
# 154 "sqml/sqml_parser.mly"
                                       ( _1 )
# 1257 "sqml/sqml_parser.ml"
               : 'table))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'search_condition) in
    Obj.repr(
# 159 "sqml/sqml_parser.mly"
                                      ( _2 )
# 1264 "sqml/sqml_parser.ml"
               : 'where_clause))
; (fun __caml_parser_env ->
    Obj.repr(
# 163 "sqml/sqml_parser.mly"
                                      ( None )
# 1270 "sqml/sqml_parser.ml"
               : 'opt_where_clause))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'where_clause) in
    Obj.repr(
# 164 "sqml/sqml_parser.mly"
                                       ( Some _1 )
# 1277 "sqml/sqml_parser.ml"
               : 'opt_where_clause))
; (fun __caml_parser_env ->
    Obj.repr(
# 168 "sqml/sqml_parser.mly"
                                      ( `nomod )
# 1283 "sqml/sqml_parser.ml"
               : 'opt_all_distinct))
; (fun __caml_parser_env ->
    Obj.repr(
# 169 "sqml/sqml_parser.mly"
                                       ( `all )
# 1289 "sqml/sqml_parser.ml"
               : 'opt_all_distinct))
; (fun __caml_parser_env ->
    Obj.repr(
# 170 "sqml/sqml_parser.mly"
                                       ( `distinct )
# 1295 "sqml/sqml_parser.ml"
               : 'opt_all_distinct))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'scalar_exp) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'scalar_exp) in
    Obj.repr(
# 176 "sqml/sqml_parser.mly"
                                        ( `binop (`plus, _1, _3) )
# 1303 "sqml/sqml_parser.ml"
               : 'scalar_exp))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'scalar_exp) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'scalar_exp) in
    Obj.repr(
# 177 "sqml/sqml_parser.mly"
                                         ( `binop (`minus, _1, _3) )
# 1311 "sqml/sqml_parser.ml"
               : 'scalar_exp))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'scalar_exp) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'scalar_exp) in
    Obj.repr(
# 178 "sqml/sqml_parser.mly"
                                         ( `binop (`times, _1, _3) )
# 1319 "sqml/sqml_parser.ml"
               : 'scalar_exp))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'scalar_exp) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'scalar_exp) in
    Obj.repr(
# 179 "sqml/sqml_parser.mly"
                                         ( `binop (`div, _1, _3) )
# 1327 "sqml/sqml_parser.ml"
               : 'scalar_exp))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'scalar_exp) in
    Obj.repr(
# 180 "sqml/sqml_parser.mly"
                                         ( _2 )
# 1334 "sqml/sqml_parser.ml"
               : 'scalar_exp))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'scalar_exp) in
    Obj.repr(
# 181 "sqml/sqml_parser.mly"
                                         ( `uminus _2 )
# 1341 "sqml/sqml_parser.ml"
               : 'scalar_exp))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'atom) in
    Obj.repr(
# 182 "sqml/sqml_parser.mly"
                                         ( `atom _1 )
# 1348 "sqml/sqml_parser.ml"
               : 'scalar_exp))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'column_ref) in
    Obj.repr(
# 183 "sqml/sqml_parser.mly"
                                         ( `column _1 )
# 1355 "sqml/sqml_parser.ml"
               : 'scalar_exp))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'function_ref) in
    Obj.repr(
# 184 "sqml/sqml_parser.mly"
                                         ( `functioncall _1 )
# 1362 "sqml/sqml_parser.ml"
               : 'scalar_exp))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 1 : 'scalar_exp) in
    Obj.repr(
# 185 "sqml/sqml_parser.mly"
                                         ( _2 )
# 1369 "sqml/sqml_parser.ml"
               : 'scalar_exp))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'scalar_exp) in
    Obj.repr(
# 189 "sqml/sqml_parser.mly"
                                        ( [_1] )
# 1376 "sqml/sqml_parser.ml"
               : 'rev_scalar_exp_commalist))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'rev_scalar_exp_commalist) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'scalar_exp) in
    Obj.repr(
# 190 "sqml/sqml_parser.mly"
                                             ( _3 :: _1 )
# 1384 "sqml/sqml_parser.ml"
               : 'rev_scalar_exp_commalist))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'parameter_ref) in
    Obj.repr(
# 194 "sqml/sqml_parser.mly"
                                        ( `parameter _1 )
# 1391 "sqml/sqml_parser.ml"
               : 'atom))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'literal) in
    Obj.repr(
# 195 "sqml/sqml_parser.mly"
                                         ( (_1 :> atom) )
# 1398 "sqml/sqml_parser.ml"
               : 'atom))
; (fun __caml_parser_env ->
    Obj.repr(
# 196 "sqml/sqml_parser.mly"
                                         ( `user )
# 1404 "sqml/sqml_parser.ml"
               : 'atom))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'parameter) in
    Obj.repr(
# 200 "sqml/sqml_parser.mly"
                                        ( `single _1 )
# 1411 "sqml/sqml_parser.ml"
               : 'parameter_ref))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 4 : 'parameter) in
    let _3 = (Parsing.peek_val __caml_parser_env 2 :  string ) in
    let _5 = (Parsing.peek_val __caml_parser_env 0 :  string ) in
    Obj.repr(
# 201 "sqml/sqml_parser.mly"
                                               ( `single_annotated (_1, _3, _5) )
# 1420 "sqml/sqml_parser.ml"
               : 'parameter_ref))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : 'parameter) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'parameter) in
    Obj.repr(
# 202 "sqml/sqml_parser.mly"
                                         ( `couple (_1, _2) )
# 1428 "sqml/sqml_parser.ml"
               : 'parameter_ref))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'parameter) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'parameter) in
    Obj.repr(
# 203 "sqml/sqml_parser.mly"
                                         ( `indicator (_1, _3) )
# 1436 "sqml/sqml_parser.ml"
               : 'parameter_ref))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 3 : 'ammsc) in
    Obj.repr(
# 207 "sqml/sqml_parser.mly"
                                            ( _1, `star )
# 1443 "sqml/sqml_parser.ml"
               : 'function_ref))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 4 : 'ammsc) in
    let _4 = (Parsing.peek_val __caml_parser_env 1 : 'column_ref) in
    Obj.repr(
# 208 "sqml/sqml_parser.mly"
                                             ( _1, `distinct _4 )
# 1451 "sqml/sqml_parser.ml"
               : 'function_ref))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 4 : 'ammsc) in
    let _4 = (Parsing.peek_val __caml_parser_env 1 : 'scalar_exp) in
    Obj.repr(
# 209 "sqml/sqml_parser.mly"
                                             ( _1, `exp (`all, _4) )
# 1459 "sqml/sqml_parser.ml"
               : 'function_ref))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 3 : 'ammsc) in
    let _3 = (Parsing.peek_val __caml_parser_env 1 : 'scalar_exp) in
    Obj.repr(
# 210 "sqml/sqml_parser.mly"
                                             ( _1, `exp (`nomod, _3) )
# 1467 "sqml/sqml_parser.ml"
               : 'function_ref))
; (fun __caml_parser_env ->
    Obj.repr(
# 214 "sqml/sqml_parser.mly"
                       ( `avg )
# 1473 "sqml/sqml_parser.ml"
               : 'ammsc))
; (fun __caml_parser_env ->
    Obj.repr(
# 215 "sqml/sqml_parser.mly"
                ( `min )
# 1479 "sqml/sqml_parser.ml"
               : 'ammsc))
; (fun __caml_parser_env ->
    Obj.repr(
# 216 "sqml/sqml_parser.mly"
                ( `max )
# 1485 "sqml/sqml_parser.ml"
               : 'ammsc))
; (fun __caml_parser_env ->
    Obj.repr(
# 217 "sqml/sqml_parser.mly"
                ( `sum )
# 1491 "sqml/sqml_parser.ml"
               : 'ammsc))
; (fun __caml_parser_env ->
    Obj.repr(
# 218 "sqml/sqml_parser.mly"
                ( `count )
# 1497 "sqml/sqml_parser.ml"
               : 'ammsc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 :  string ) in
    Obj.repr(
# 219 "sqml/sqml_parser.mly"
                ( `other _1 )
# 1504 "sqml/sqml_parser.ml"
               : 'ammsc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 :  string ) in
    Obj.repr(
# 222 "sqml/sqml_parser.mly"
                  ( `string _1 )
# 1511 "sqml/sqml_parser.ml"
               : 'literal))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 :  [`int of int | `inttoomuch of string] ) in
    Obj.repr(
# 223 "sqml/sqml_parser.mly"
                   ( _1 :> literal )
# 1518 "sqml/sqml_parser.ml"
               : 'literal))
; (fun __caml_parser_env ->
    Obj.repr(
# 228 "sqml/sqml_parser.mly"
                                   ( None )
# 1524 "sqml/sqml_parser.ml"
               : 'opt_group_by_clause))
; (fun __caml_parser_env ->
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'rev_column_ref_commalist) in
    Obj.repr(
# 229 "sqml/sqml_parser.mly"
                                        ( Some (List.rev _3) )
# 1531 "sqml/sqml_parser.ml"
               : 'opt_group_by_clause))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'column_ref) in
    Obj.repr(
# 233 "sqml/sqml_parser.mly"
                                         ( [_1] )
# 1538 "sqml/sqml_parser.ml"
               : 'rev_column_ref_commalist))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'rev_column_ref_commalist) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'column_ref) in
    Obj.repr(
# 234 "sqml/sqml_parser.mly"
                                              ( _3 :: _1 )
# 1546 "sqml/sqml_parser.ml"
               : 'rev_column_ref_commalist))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 :  string ) in
    Obj.repr(
# 238 "sqml/sqml_parser.mly"
                      ( `ref _1 )
# 1553 "sqml/sqml_parser.ml"
               : 'column_ref))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 :  string ) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 :  string ) in
    Obj.repr(
# 239 "sqml/sqml_parser.mly"
                      ( `refdotref (_1, _3) )
# 1561 "sqml/sqml_parser.ml"
               : 'column_ref))
; (fun __caml_parser_env ->
    Obj.repr(
# 245 "sqml/sqml_parser.mly"
                            ( None )
# 1567 "sqml/sqml_parser.ml"
               : 'opt_having_clause))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'search_condition) in
    Obj.repr(
# 246 "sqml/sqml_parser.mly"
                             ( Some _2 )
# 1574 "sqml/sqml_parser.ml"
               : 'opt_having_clause))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'search_condition) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'search_condition) in
    Obj.repr(
# 253 "sqml/sqml_parser.mly"
                                          ( `cor (_1, _3) )
# 1582 "sqml/sqml_parser.ml"
               : 'search_condition))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'search_condition) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'search_condition) in
    Obj.repr(
# 254 "sqml/sqml_parser.mly"
                                          ( `cand (_1, _3) )
# 1590 "sqml/sqml_parser.ml"
               : 'search_condition))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'search_condition) in
    Obj.repr(
# 255 "sqml/sqml_parser.mly"
                                          ( `cnot _2 )
# 1597 "sqml/sqml_parser.ml"
               : 'search_condition))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 1 : 'search_condition) in
    Obj.repr(
# 256 "sqml/sqml_parser.mly"
                                          ( _2 )
# 1604 "sqml/sqml_parser.ml"
               : 'search_condition))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'predicate) in
    Obj.repr(
# 257 "sqml/sqml_parser.mly"
                                          ( `p _1 )
# 1611 "sqml/sqml_parser.ml"
               : 'search_condition))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'comparison_predicate) in
    Obj.repr(
# 261 "sqml/sqml_parser.mly"
                                         ( _1 )
# 1618 "sqml/sqml_parser.ml"
               : 'predicate))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'between_predicate) in
    Obj.repr(
# 262 "sqml/sqml_parser.mly"
                                          ( _1 )
# 1625 "sqml/sqml_parser.ml"
               : 'predicate))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'like_predicate) in
    Obj.repr(
# 263 "sqml/sqml_parser.mly"
                                          ( _1 )
# 1632 "sqml/sqml_parser.ml"
               : 'predicate))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'test_for_null) in
    Obj.repr(
# 264 "sqml/sqml_parser.mly"
                                          ( _1 )
# 1639 "sqml/sqml_parser.ml"
               : 'predicate))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'in_predicate) in
    Obj.repr(
# 265 "sqml/sqml_parser.mly"
                                          ( _1 )
# 1646 "sqml/sqml_parser.ml"
               : 'predicate))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'all_or_any_predicate) in
    Obj.repr(
# 266 "sqml/sqml_parser.mly"
                                          ( _1 )
# 1653 "sqml/sqml_parser.ml"
               : 'predicate))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'existence_test) in
    Obj.repr(
# 267 "sqml/sqml_parser.mly"
                                          ( _1 )
# 1660 "sqml/sqml_parser.ml"
               : 'predicate))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'scalar_exp) in
    let _2 = (Parsing.peek_val __caml_parser_env 1 :  Sqml_sqlstx.comparison ) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'scalar_exp) in
    Obj.repr(
# 271 "sqml/sqml_parser.mly"
                                                         ( `comparisonexp (_1, _2, _3) )
# 1669 "sqml/sqml_parser.ml"
               : 'comparison_predicate))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 4 : 'scalar_exp) in
    let _2 = (Parsing.peek_val __caml_parser_env 3 :  Sqml_sqlstx.comparison ) in
    let _4 = (Parsing.peek_val __caml_parser_env 1 : 'select_exp) in
    Obj.repr(
# 272 "sqml/sqml_parser.mly"
                                                              ( `comparisonselect (_1, _2, _4) )
# 1678 "sqml/sqml_parser.ml"
               : 'comparison_predicate))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 5 : 'scalar_exp) in
    let _4 = (Parsing.peek_val __caml_parser_env 2 : 'scalar_exp) in
    let _6 = (Parsing.peek_val __caml_parser_env 0 : 'scalar_exp) in
    Obj.repr(
# 276 "sqml/sqml_parser.mly"
                                                         ( `between (true, _1, _4, _6) )
# 1687 "sqml/sqml_parser.ml"
               : 'between_predicate))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 4 : 'scalar_exp) in
    let _3 = (Parsing.peek_val __caml_parser_env 2 : 'scalar_exp) in
    let _5 = (Parsing.peek_val __caml_parser_env 0 : 'scalar_exp) in
    Obj.repr(
# 277 "sqml/sqml_parser.mly"
                                                          ( `between (false, _1, _3, _5) )
# 1696 "sqml/sqml_parser.ml"
               : 'between_predicate))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 4 : 'scalar_exp) in
    let _4 = (Parsing.peek_val __caml_parser_env 1 : 'atom) in
    let _5 = (Parsing.peek_val __caml_parser_env 0 : 'opt_escape) in
    Obj.repr(
# 281 "sqml/sqml_parser.mly"
                                                         ( `like (true, _1, _4, _5) )
# 1705 "sqml/sqml_parser.ml"
               : 'like_predicate))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 3 : 'scalar_exp) in
    let _3 = (Parsing.peek_val __caml_parser_env 1 : 'atom) in
    let _4 = (Parsing.peek_val __caml_parser_env 0 : 'opt_escape) in
    Obj.repr(
# 282 "sqml/sqml_parser.mly"
                                                          ( `like (false, _1, _3, _4) )
# 1714 "sqml/sqml_parser.ml"
               : 'like_predicate))
; (fun __caml_parser_env ->
    Obj.repr(
# 286 "sqml/sqml_parser.mly"
                                                         ( None )
# 1720 "sqml/sqml_parser.ml"
               : 'opt_escape))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'atom) in
    Obj.repr(
# 287 "sqml/sqml_parser.mly"
                                                          ( Some _2 )
# 1727 "sqml/sqml_parser.ml"
               : 'opt_escape))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 3 : 'column_ref) in
    Obj.repr(
# 291 "sqml/sqml_parser.mly"
                                                         ( `iscolnull (true, _1) )
# 1734 "sqml/sqml_parser.ml"
               : 'test_for_null))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'column_ref) in
    Obj.repr(
# 292 "sqml/sqml_parser.mly"
                                                          ( `iscolnull (false, _1) )
# 1741 "sqml/sqml_parser.ml"
               : 'test_for_null))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 5 : 'scalar_exp) in
    let _5 = (Parsing.peek_val __caml_parser_env 1 : 'select_exp) in
    Obj.repr(
# 296 "sqml/sqml_parser.mly"
                                                             ( `in_select (true, _1, _5) )
# 1749 "sqml/sqml_parser.ml"
               : 'in_predicate))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 4 : 'scalar_exp) in
    let _4 = (Parsing.peek_val __caml_parser_env 1 : 'select_exp) in
    Obj.repr(
# 297 "sqml/sqml_parser.mly"
                                                              ( `in_select (false, _1, _4) )
# 1757 "sqml/sqml_parser.ml"
               : 'in_predicate))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 5 : 'scalar_exp) in
    let _5 = (Parsing.peek_val __caml_parser_env 1 : 'rev_atom_commalist) in
    Obj.repr(
# 298 "sqml/sqml_parser.mly"
                                                          ( `in_atom_list (true, _1, List.rev _5) )
# 1765 "sqml/sqml_parser.ml"
               : 'in_predicate))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 4 : 'scalar_exp) in
    let _4 = (Parsing.peek_val __caml_parser_env 1 : 'rev_atom_commalist) in
    Obj.repr(
# 299 "sqml/sqml_parser.mly"
                                                          ( `in_atom_list (false, _1, List.rev _4) )
# 1773 "sqml/sqml_parser.ml"
               : 'in_predicate))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'atom) in
    Obj.repr(
# 303 "sqml/sqml_parser.mly"
                                                         ( [_1] )
# 1780 "sqml/sqml_parser.ml"
               : 'rev_atom_commalist))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'rev_atom_commalist) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'atom) in
    Obj.repr(
# 304 "sqml/sqml_parser.mly"
                                                          ( _3 :: _1 )
# 1788 "sqml/sqml_parser.ml"
               : 'rev_atom_commalist))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 5 : 'scalar_exp) in
    let _2 = (Parsing.peek_val __caml_parser_env 4 :  Sqml_sqlstx.comparison ) in
    let _3 = (Parsing.peek_val __caml_parser_env 3 : 'any_all_some) in
    let _5 = (Parsing.peek_val __caml_parser_env 1 : 'select_exp) in
    Obj.repr(
# 308 "sqml/sqml_parser.mly"
                                                              ( `allorany (_1, _2, _3, _5) )
# 1798 "sqml/sqml_parser.ml"
               : 'all_or_any_predicate))
; (fun __caml_parser_env ->
    Obj.repr(
# 312 "sqml/sqml_parser.mly"
              ( `some )
# 1804 "sqml/sqml_parser.ml"
               : 'any_all_some))
; (fun __caml_parser_env ->
    Obj.repr(
# 313 "sqml/sqml_parser.mly"
               ( `all )
# 1810 "sqml/sqml_parser.ml"
               : 'any_all_some))
; (fun __caml_parser_env ->
    Obj.repr(
# 314 "sqml/sqml_parser.mly"
               ( `some )
# 1816 "sqml/sqml_parser.ml"
               : 'any_all_some))
; (fun __caml_parser_env ->
    let _3 = (Parsing.peek_val __caml_parser_env 1 : 'select_exp) in
    Obj.repr(
# 318 "sqml/sqml_parser.mly"
                                                           ( `exists _3 )
# 1823 "sqml/sqml_parser.ml"
               : 'existence_test))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 0 :  string ) in
    Obj.repr(
# 322 "sqml/sqml_parser.mly"
                                                           ( _2 )
# 1830 "sqml/sqml_parser.ml"
               : 'parameter))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 :  Sqml_sqlstx.cmd ) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'endsql) in
    Obj.repr(
# 328 "sqml/sqml_parser.mly"
                                  ( [_1] )
# 1838 "sqml/sqml_parser.ml"
               :  Sqml_sqlstx.cmd list ))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 :  Sqml_sqlstx.cmd ) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 :  Sqml_sqlstx.cmd list ) in
    Obj.repr(
# 329 "sqml/sqml_parser.mly"
                                   ( _1 :: _3 )
# 1846 "sqml/sqml_parser.ml"
               :  Sqml_sqlstx.cmd list ))
; (fun __caml_parser_env ->
    let _3 = (Parsing.peek_val __caml_parser_env 2 : 'table) in
    let _4 = (Parsing.peek_val __caml_parser_env 1 : 'opt_column_commalist) in
    let _5 = (Parsing.peek_val __caml_parser_env 0 : 'values_or_select_exp) in
    Obj.repr(
# 334 "sqml/sqml_parser.mly"
                                                                  ( _3, _4, _5 )
# 1855 "sqml/sqml_parser.ml"
               : 'insert_statement))
; (fun __caml_parser_env ->
    let _3 = (Parsing.peek_val __caml_parser_env 1 : 'rev_insert_atom_commalist) in
    Obj.repr(
# 338 "sqml/sqml_parser.mly"
                                                                  ( `values (List.rev _3) )
# 1862 "sqml/sqml_parser.ml"
               : 'values_or_select_exp))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'select_exp) in
    Obj.repr(
# 339 "sqml/sqml_parser.mly"
                                                                   ( `select _1 )
# 1869 "sqml/sqml_parser.ml"
               : 'values_or_select_exp))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'insert_atom) in
    Obj.repr(
# 343 "sqml/sqml_parser.mly"
                                                                  ( [ _1 ] )
# 1876 "sqml/sqml_parser.ml"
               : 'rev_insert_atom_commalist))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'rev_insert_atom_commalist) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'insert_atom) in
    Obj.repr(
# 344 "sqml/sqml_parser.mly"
                                                                   ( _3 :: _1 )
# 1884 "sqml/sqml_parser.ml"
               : 'rev_insert_atom_commalist))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'atom) in
    Obj.repr(
# 348 "sqml/sqml_parser.mly"
                                                                  ( `atom _1 )
# 1891 "sqml/sqml_parser.ml"
               : 'insert_atom))
; (fun __caml_parser_env ->
    Obj.repr(
# 349 "sqml/sqml_parser.mly"
                                                                   ( `null )
# 1897 "sqml/sqml_parser.ml"
               : 'insert_atom))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'schema) in
    Obj.repr(
# 355 "sqml/sqml_parser.mly"
             ( `schemadef _1 )
# 1904 "sqml/sqml_parser.ml"
               :  Sqml_sqlstx.cmd ))
; (fun __caml_parser_env ->
    let _4 = (Parsing.peek_val __caml_parser_env 1 : 'user) in
    let _5 = (Parsing.peek_val __caml_parser_env 0 : 'opt_schema_element_list) in
    Obj.repr(
# 360 "sqml/sqml_parser.mly"
                                                           ( _4, _5 )
# 1912 "sqml/sqml_parser.ml"
               : 'schema))
; (fun __caml_parser_env ->
    Obj.repr(
# 364 "sqml/sqml_parser.mly"
              ( [] )
# 1918 "sqml/sqml_parser.ml"
               : 'opt_schema_element_list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'rev_schema_element_list) in
    Obj.repr(
# 365 "sqml/sqml_parser.mly"
                           ( List.rev _1 )
# 1925 "sqml/sqml_parser.ml"
               : 'opt_schema_element_list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'schema_element) in
    Obj.repr(
# 369 "sqml/sqml_parser.mly"
                                         ( [ _1 ] )
# 1932 "sqml/sqml_parser.ml"
               : 'rev_schema_element_list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : 'rev_schema_element_list) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'schema_element) in
    Obj.repr(
# 370 "sqml/sqml_parser.mly"
                                          ( _2 :: _1 )
# 1940 "sqml/sqml_parser.ml"
               : 'rev_schema_element_list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'base_table_def) in
    Obj.repr(
# 374 "sqml/sqml_parser.mly"
                        ( `tabledef _1 )
# 1947 "sqml/sqml_parser.ml"
               : 'schema_element))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'view_def) in
    Obj.repr(
# 375 "sqml/sqml_parser.mly"
                         ( `viewdef _1 )
# 1954 "sqml/sqml_parser.ml"
               : 'schema_element))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'privilege_def) in
    Obj.repr(
# 376 "sqml/sqml_parser.mly"
                         ( `privdef _1 )
# 1961 "sqml/sqml_parser.ml"
               : 'schema_element))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'schema_element) in
    Obj.repr(
# 379 "sqml/sqml_parser.mly"
                               ( _1 :> cmd )
# 1968 "sqml/sqml_parser.ml"
               :  Sqml_sqlstx.cmd ))
; (fun __caml_parser_env ->
    let _3 = (Parsing.peek_val __caml_parser_env 3 : 'table) in
    let _5 = (Parsing.peek_val __caml_parser_env 1 : 'base_table_element_commalist) in
    Obj.repr(
# 383 "sqml/sqml_parser.mly"
                                                                ( _3, _5 )
# 1976 "sqml/sqml_parser.ml"
               : 'base_table_def))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'base_table_element) in
    Obj.repr(
# 387 "sqml/sqml_parser.mly"
                     ( [ _1 ] )
# 1983 "sqml/sqml_parser.ml"
               : 'base_table_element_commalist))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'base_table_element_commalist) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'base_table_element) in
    Obj.repr(
# 388 "sqml/sqml_parser.mly"
                                                         ( _1 @ [ _3 ] )
# 1991 "sqml/sqml_parser.ml"
               : 'base_table_element_commalist))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'column_def) in
    Obj.repr(
# 392 "sqml/sqml_parser.mly"
                            ( `columndef _1 )
# 1998 "sqml/sqml_parser.ml"
               : 'base_table_element))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'table_constraint_def) in
    Obj.repr(
# 393 "sqml/sqml_parser.mly"
                             ( `tblcnstr _1 )
# 2005 "sqml/sqml_parser.ml"
               : 'base_table_element))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 :  string ) in
    Obj.repr(
# 396 "sqml/sqml_parser.mly"
               ( _1 )
# 2012 "sqml/sqml_parser.ml"
               : 'column))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'column) in
    let _2 = (Parsing.peek_val __caml_parser_env 1 : 'data_type) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'column_def_opt_list) in
    Obj.repr(
# 400 "sqml/sqml_parser.mly"
                                       ( _1, _2, _3 )
# 2021 "sqml/sqml_parser.ml"
               : 'column_def))
; (fun __caml_parser_env ->
    Obj.repr(
# 405 "sqml/sqml_parser.mly"
                                                              ( `char None)
# 2027 "sqml/sqml_parser.ml"
               : 'data_type))
; (fun __caml_parser_env ->
    let _3 = (Parsing.peek_val __caml_parser_env 1 :  [`int of int | `inttoomuch of string] ) in
    Obj.repr(
# 406 "sqml/sqml_parser.mly"
                                                               ( `char (Some (normal_int _3)) )
# 2034 "sqml/sqml_parser.ml"
               : 'data_type))
; (fun __caml_parser_env ->
    Obj.repr(
# 407 "sqml/sqml_parser.mly"
                                                               ( `numeric `default )
# 2040 "sqml/sqml_parser.ml"
               : 'data_type))
; (fun __caml_parser_env ->
    let _3 = (Parsing.peek_val __caml_parser_env 1 :  [`int of int | `inttoomuch of string] ) in
    Obj.repr(
# 408 "sqml/sqml_parser.mly"
                                                               ( `numeric (`length (normal_int _3)) )
# 2047 "sqml/sqml_parser.ml"
               : 'data_type))
; (fun __caml_parser_env ->
    let _3 = (Parsing.peek_val __caml_parser_env 3 :  [`int of int | `inttoomuch of string] ) in
    let _5 = (Parsing.peek_val __caml_parser_env 1 :  [`int of int | `inttoomuch of string] ) in
    Obj.repr(
# 409 "sqml/sqml_parser.mly"
                                                               ( `numeric (`lengthdec (normal_int _3, normal_int _5)) )
# 2055 "sqml/sqml_parser.ml"
               : 'data_type))
; (fun __caml_parser_env ->
    Obj.repr(
# 410 "sqml/sqml_parser.mly"
                                                               ( `decimal `default )
# 2061 "sqml/sqml_parser.ml"
               : 'data_type))
; (fun __caml_parser_env ->
    let _3 = (Parsing.peek_val __caml_parser_env 1 :  [`int of int | `inttoomuch of string] ) in
    Obj.repr(
# 411 "sqml/sqml_parser.mly"
                                                               ( `decimal (`length (normal_int _3)) )
# 2068 "sqml/sqml_parser.ml"
               : 'data_type))
; (fun __caml_parser_env ->
    let _3 = (Parsing.peek_val __caml_parser_env 3 :  [`int of int | `inttoomuch of string] ) in
    let _5 = (Parsing.peek_val __caml_parser_env 1 :  [`int of int | `inttoomuch of string] ) in
    Obj.repr(
# 412 "sqml/sqml_parser.mly"
                                                               ( `decimal (`lengthdec (normal_int _3, normal_int _5)) )
# 2076 "sqml/sqml_parser.ml"
               : 'data_type))
; (fun __caml_parser_env ->
    Obj.repr(
# 413 "sqml/sqml_parser.mly"
                                                               ( `int )
# 2082 "sqml/sqml_parser.ml"
               : 'data_type))
; (fun __caml_parser_env ->
    Obj.repr(
# 414 "sqml/sqml_parser.mly"
                                                               ( `smallint )
# 2088 "sqml/sqml_parser.ml"
               : 'data_type))
; (fun __caml_parser_env ->
    Obj.repr(
# 415 "sqml/sqml_parser.mly"
                                                               ( `float None )
# 2094 "sqml/sqml_parser.ml"
               : 'data_type))
; (fun __caml_parser_env ->
    let _3 = (Parsing.peek_val __caml_parser_env 1 :  [`int of int | `inttoomuch of string] ) in
    Obj.repr(
# 416 "sqml/sqml_parser.mly"
                                                               ( `float (Some (normal_int _3)) )
# 2101 "sqml/sqml_parser.ml"
               : 'data_type))
; (fun __caml_parser_env ->
    Obj.repr(
# 417 "sqml/sqml_parser.mly"
                                                               ( `real )
# 2107 "sqml/sqml_parser.ml"
               : 'data_type))
; (fun __caml_parser_env ->
    Obj.repr(
# 418 "sqml/sqml_parser.mly"
                                                               ( `doubleprecision )
# 2113 "sqml/sqml_parser.ml"
               : 'data_type))
; (fun __caml_parser_env ->
    Obj.repr(
# 422 "sqml/sqml_parser.mly"
              ( [] )
# 2119 "sqml/sqml_parser.ml"
               : 'column_def_opt_list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : 'column_def_opt_list) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'column_def_opt) in
    Obj.repr(
# 423 "sqml/sqml_parser.mly"
                                      ( _1 @ [_2] )
# 2127 "sqml/sqml_parser.ml"
               : 'column_def_opt_list))
; (fun __caml_parser_env ->
    Obj.repr(
# 427 "sqml/sqml_parser.mly"
                                                              ( `not_null )
# 2133 "sqml/sqml_parser.ml"
               : 'column_def_opt))
; (fun __caml_parser_env ->
    Obj.repr(
# 428 "sqml/sqml_parser.mly"
                                                               ( `not_null_unique )
# 2139 "sqml/sqml_parser.ml"
               : 'column_def_opt))
; (fun __caml_parser_env ->
    Obj.repr(
# 429 "sqml/sqml_parser.mly"
                                                               ( `not_null_primary_key )
# 2145 "sqml/sqml_parser.ml"
               : 'column_def_opt))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'literal) in
    Obj.repr(
# 430 "sqml/sqml_parser.mly"
                                                               ( `default _2 )
# 2152 "sqml/sqml_parser.ml"
               : 'column_def_opt))
; (fun __caml_parser_env ->
    Obj.repr(
# 431 "sqml/sqml_parser.mly"
                                                               ( `default_null )
# 2158 "sqml/sqml_parser.ml"
               : 'column_def_opt))
; (fun __caml_parser_env ->
    Obj.repr(
# 432 "sqml/sqml_parser.mly"
                                                               ( `default_user )
# 2164 "sqml/sqml_parser.ml"
               : 'column_def_opt))
; (fun __caml_parser_env ->
    let _3 = (Parsing.peek_val __caml_parser_env 1 : 'search_condition) in
    Obj.repr(
# 433 "sqml/sqml_parser.mly"
                                                               ( `check _3 )
# 2171 "sqml/sqml_parser.ml"
               : 'column_def_opt))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'table) in
    Obj.repr(
# 434 "sqml/sqml_parser.mly"
                                                               ( `references (_2, []) )
# 2178 "sqml/sqml_parser.ml"
               : 'column_def_opt))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 3 : 'table) in
    let _4 = (Parsing.peek_val __caml_parser_env 1 : 'column_commalist) in
    Obj.repr(
# 435 "sqml/sqml_parser.mly"
                                                               ( `references (_2, _4) )
# 2186 "sqml/sqml_parser.ml"
               : 'column_def_opt))
; (fun __caml_parser_env ->
    let _3 = (Parsing.peek_val __caml_parser_env 1 : 'column_commalist) in
    Obj.repr(
# 439 "sqml/sqml_parser.mly"
                                                              ( `unique _3 )
# 2193 "sqml/sqml_parser.ml"
               : 'table_constraint_def))
; (fun __caml_parser_env ->
    let _4 = (Parsing.peek_val __caml_parser_env 1 : 'column_commalist) in
    Obj.repr(
# 440 "sqml/sqml_parser.mly"
                                                               ( `primkey _4 )
# 2200 "sqml/sqml_parser.ml"
               : 'table_constraint_def))
; (fun __caml_parser_env ->
    let _4 = (Parsing.peek_val __caml_parser_env 3 : 'column_commalist) in
    let _7 = (Parsing.peek_val __caml_parser_env 0 : 'table) in
    Obj.repr(
# 442 "sqml/sqml_parser.mly"
                                                       ( `foreignkey (_4, _7, []) )
# 2208 "sqml/sqml_parser.ml"
               : 'table_constraint_def))
; (fun __caml_parser_env ->
    let _4 = (Parsing.peek_val __caml_parser_env 6 : 'column_commalist) in
    let _7 = (Parsing.peek_val __caml_parser_env 3 : 'table) in
    let _9 = (Parsing.peek_val __caml_parser_env 1 : 'column_commalist) in
    Obj.repr(
# 444 "sqml/sqml_parser.mly"
                                                       ( `foreignkey (_4, _7, _9) )
# 2217 "sqml/sqml_parser.ml"
               : 'table_constraint_def))
; (fun __caml_parser_env ->
    let _3 = (Parsing.peek_val __caml_parser_env 1 : 'search_condition) in
    Obj.repr(
# 445 "sqml/sqml_parser.mly"
                                                               ( `check _3 )
# 2224 "sqml/sqml_parser.ml"
               : 'table_constraint_def))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'column) in
    Obj.repr(
# 450 "sqml/sqml_parser.mly"
                                                              ( [_1] )
# 2231 "sqml/sqml_parser.ml"
               : 'column_commalist))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'column_commalist) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'column) in
    Obj.repr(
# 451 "sqml/sqml_parser.mly"
                                                               ( _1 @ [_3] )
# 2239 "sqml/sqml_parser.ml"
               : 'column_commalist))
; (fun __caml_parser_env ->
    Obj.repr(
# 455 "sqml/sqml_parser.mly"
                                                              ( [] )
# 2245 "sqml/sqml_parser.ml"
               : 'opt_column_commalist))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 1 : 'column_commalist) in
    Obj.repr(
# 456 "sqml/sqml_parser.mly"
                                                               ( _2 )
# 2252 "sqml/sqml_parser.ml"
               : 'opt_column_commalist))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 :  string ) in
    Obj.repr(
# 459 "sqml/sqml_parser.mly"
                          ( _1 )
# 2259 "sqml/sqml_parser.ml"
               : 'user))
; (fun __caml_parser_env ->
    let _3 = (Parsing.peek_val __caml_parser_env 4 : 'table) in
    let _4 = (Parsing.peek_val __caml_parser_env 3 : 'opt_column_commalist) in
    let _6 = (Parsing.peek_val __caml_parser_env 1 : 'select_exp) in
    let _7 = (Parsing.peek_val __caml_parser_env 0 : 'opt_with_check_option) in
    Obj.repr(
# 464 "sqml/sqml_parser.mly"
                                                              ( _3, _4, _6, _7 )
# 2269 "sqml/sqml_parser.ml"
               : 'view_def))
; (fun __caml_parser_env ->
    Obj.repr(
# 468 "sqml/sqml_parser.mly"
                                                              ( `nocheck )
# 2275 "sqml/sqml_parser.ml"
               : 'opt_with_check_option))
; (fun __caml_parser_env ->
    Obj.repr(
# 469 "sqml/sqml_parser.mly"
                                                               ( `check )
# 2281 "sqml/sqml_parser.ml"
               : 'opt_with_check_option))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 5 : 'privileges) in
    let _4 = (Parsing.peek_val __caml_parser_env 3 : 'table) in
    let _6 = (Parsing.peek_val __caml_parser_env 1 : 'grantee_commalist) in
    let _7 = (Parsing.peek_val __caml_parser_env 0 : 'opt_with_grant_option) in
    Obj.repr(
# 475 "sqml/sqml_parser.mly"
                                                              ( _2, _4, _6, _7 )
# 2291 "sqml/sqml_parser.ml"
               : 'privilege_def))
; (fun __caml_parser_env ->
    Obj.repr(
# 479 "sqml/sqml_parser.mly"
                                                              ( `nograntoption )
# 2297 "sqml/sqml_parser.ml"
               : 'opt_with_grant_option))
; (fun __caml_parser_env ->
    Obj.repr(
# 480 "sqml/sqml_parser.mly"
                                                               ( `grantoption )
# 2303 "sqml/sqml_parser.ml"
               : 'opt_with_grant_option))
; (fun __caml_parser_env ->
    Obj.repr(
# 484 "sqml/sqml_parser.mly"
                                                              ( `all )
# 2309 "sqml/sqml_parser.ml"
               : 'privileges))
; (fun __caml_parser_env ->
    Obj.repr(
# 485 "sqml/sqml_parser.mly"
                                                               ( `all )
# 2315 "sqml/sqml_parser.ml"
               : 'privileges))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'operation_commalist) in
    Obj.repr(
# 486 "sqml/sqml_parser.mly"
                                                               ( `some _1 )
# 2322 "sqml/sqml_parser.ml"
               : 'privileges))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'operation) in
    Obj.repr(
# 490 "sqml/sqml_parser.mly"
                                                              ( [_1] )
# 2329 "sqml/sqml_parser.ml"
               : 'operation_commalist))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'operation_commalist) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'operation) in
    Obj.repr(
# 491 "sqml/sqml_parser.mly"
                                                               ( _1 @ [_3] )
# 2337 "sqml/sqml_parser.ml"
               : 'operation_commalist))
; (fun __caml_parser_env ->
    Obj.repr(
# 495 "sqml/sqml_parser.mly"
                                                              ( `select )
# 2343 "sqml/sqml_parser.ml"
               : 'operation))
; (fun __caml_parser_env ->
    Obj.repr(
# 496 "sqml/sqml_parser.mly"
                                                               ( `insert )
# 2349 "sqml/sqml_parser.ml"
               : 'operation))
; (fun __caml_parser_env ->
    Obj.repr(
# 497 "sqml/sqml_parser.mly"
                                                               ( `delete )
# 2355 "sqml/sqml_parser.ml"
               : 'operation))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'opt_column_commalist) in
    Obj.repr(
# 498 "sqml/sqml_parser.mly"
                                                               ( `update _2 )
# 2362 "sqml/sqml_parser.ml"
               : 'operation))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'opt_column_commalist) in
    Obj.repr(
# 499 "sqml/sqml_parser.mly"
                                                               ( `references _2 )
# 2369 "sqml/sqml_parser.ml"
               : 'operation))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'grantee) in
    Obj.repr(
# 504 "sqml/sqml_parser.mly"
                                                              ( [_1] )
# 2376 "sqml/sqml_parser.ml"
               : 'grantee_commalist))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'grantee_commalist) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'grantee) in
    Obj.repr(
# 505 "sqml/sqml_parser.mly"
                                                               ( _1 @ [_3] )
# 2384 "sqml/sqml_parser.ml"
               : 'grantee_commalist))
; (fun __caml_parser_env ->
    Obj.repr(
# 509 "sqml/sqml_parser.mly"
                                                              ( `public )
# 2390 "sqml/sqml_parser.ml"
               : 'grantee))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'user) in
    Obj.repr(
# 510 "sqml/sqml_parser.mly"
                                                               ( `user _1 )
# 2397 "sqml/sqml_parser.ml"
               : 'grantee))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'module_def) in
    Obj.repr(
# 514 "sqml/sqml_parser.mly"
                                                                  ( `moduledef _1 )
# 2404 "sqml/sqml_parser.ml"
               :  Sqml_sqlstx.cmd ))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 6 : 'opt_module) in
    let _4 = (Parsing.peek_val __caml_parser_env 4 : 'lang) in
    let _6 = (Parsing.peek_val __caml_parser_env 2 : 'user) in
    let _7 = (Parsing.peek_val __caml_parser_env 1 : 'opt_cursor_def_list) in
    let _8 = (Parsing.peek_val __caml_parser_env 0 : 'procedure_def_list) in
    Obj.repr(
# 522 "sqml/sqml_parser.mly"
                                                              ( _2, _4, _6, _7, _8 )
# 2415 "sqml/sqml_parser.ml"
               : 'module_def))
; (fun __caml_parser_env ->
    Obj.repr(
# 526 "sqml/sqml_parser.mly"
                                                              ( None )
# 2421 "sqml/sqml_parser.ml"
               : 'opt_module))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'sqlmodule) in
    Obj.repr(
# 527 "sqml/sqml_parser.mly"
                                                               ( Some _1 )
# 2428 "sqml/sqml_parser.ml"
               : 'opt_module))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 :  string ) in
    Obj.repr(
# 530 "sqml/sqml_parser.mly"
                  ( _1 )
# 2435 "sqml/sqml_parser.ml"
               : 'sqlmodule))
; (fun __caml_parser_env ->
    Obj.repr(
# 534 "sqml/sqml_parser.mly"
                                                              ( `cobol )
# 2441 "sqml/sqml_parser.ml"
               : 'lang))
; (fun __caml_parser_env ->
    Obj.repr(
# 535 "sqml/sqml_parser.mly"
                                                               ( `fortran )
# 2447 "sqml/sqml_parser.ml"
               : 'lang))
; (fun __caml_parser_env ->
    Obj.repr(
# 536 "sqml/sqml_parser.mly"
                                                               ( `pascal )
# 2453 "sqml/sqml_parser.ml"
               : 'lang))
; (fun __caml_parser_env ->
    Obj.repr(
# 537 "sqml/sqml_parser.mly"
                                                               ( `pli )
# 2459 "sqml/sqml_parser.ml"
               : 'lang))
; (fun __caml_parser_env ->
    Obj.repr(
# 538 "sqml/sqml_parser.mly"
                                                               ( `c )
# 2465 "sqml/sqml_parser.ml"
               : 'lang))
; (fun __caml_parser_env ->
    Obj.repr(
# 539 "sqml/sqml_parser.mly"
                                                               ( `ada )
# 2471 "sqml/sqml_parser.ml"
               : 'lang))
; (fun __caml_parser_env ->
    Obj.repr(
# 540 "sqml/sqml_parser.mly"
                                                                     ( `ocaml )
# 2477 "sqml/sqml_parser.ml"
               : 'lang))
; (fun __caml_parser_env ->
    Obj.repr(
# 544 "sqml/sqml_parser.mly"
                                                              ( [] )
# 2483 "sqml/sqml_parser.ml"
               : 'opt_cursor_def_list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'cursor_def_list) in
    Obj.repr(
# 545 "sqml/sqml_parser.mly"
                                                               ( _1 )
# 2490 "sqml/sqml_parser.ml"
               : 'opt_cursor_def_list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'cursor_def) in
    Obj.repr(
# 549 "sqml/sqml_parser.mly"
                                                              ( [_1] )
# 2497 "sqml/sqml_parser.ml"
               : 'cursor_def_list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : 'cursor_def_list) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'cursor_def) in
    Obj.repr(
# 550 "sqml/sqml_parser.mly"
                                                               ( _1 @ [_2] )
# 2505 "sqml/sqml_parser.ml"
               : 'cursor_def_list))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 4 : 'cursor) in
    let _5 = (Parsing.peek_val __caml_parser_env 1 : 'query_exp) in
    let _6 = (Parsing.peek_val __caml_parser_env 0 : 'opt_order_by_clause) in
    Obj.repr(
# 554 "sqml/sqml_parser.mly"
                                                              ( _2, _5, _6 )
# 2514 "sqml/sqml_parser.ml"
               : 'cursor_def))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 :  string ) in
    Obj.repr(
# 557 "sqml/sqml_parser.mly"
               ( _1 )
# 2521 "sqml/sqml_parser.ml"
               : 'cursor))
; (fun __caml_parser_env ->
    Obj.repr(
# 562 "sqml/sqml_parser.mly"
                                                              ( [] )
# 2527 "sqml/sqml_parser.ml"
               : 'opt_order_by_clause))
; (fun __caml_parser_env ->
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'ordering_spec_commalist) in
    Obj.repr(
# 563 "sqml/sqml_parser.mly"
                                                               ( _3 )
# 2534 "sqml/sqml_parser.ml"
               : 'opt_order_by_clause))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'ordering_spec) in
    Obj.repr(
# 567 "sqml/sqml_parser.mly"
                                                              ( [_1] )
# 2541 "sqml/sqml_parser.ml"
               : 'ordering_spec_commalist))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'ordering_spec_commalist) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'ordering_spec) in
    Obj.repr(
# 568 "sqml/sqml_parser.mly"
                                                               ( _1 @ [_3] )
# 2549 "sqml/sqml_parser.ml"
               : 'ordering_spec_commalist))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 :  [`int of int | `inttoomuch of string] ) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'opt_asc_desc) in
    Obj.repr(
# 572 "sqml/sqml_parser.mly"
                                                              ( `numcolumn (normal_int _1), _2 )
# 2557 "sqml/sqml_parser.ml"
               : 'ordering_spec))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : 'column_ref) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'opt_asc_desc) in
    Obj.repr(
# 573 "sqml/sqml_parser.mly"
                                                               ( `column _1, _2 )
# 2565 "sqml/sqml_parser.ml"
               : 'ordering_spec))
; (fun __caml_parser_env ->
    Obj.repr(
# 577 "sqml/sqml_parser.mly"
                                                              ( None )
# 2571 "sqml/sqml_parser.ml"
               : 'opt_asc_desc))
; (fun __caml_parser_env ->
    Obj.repr(
# 578 "sqml/sqml_parser.mly"
                                                               ( Some `asc )
# 2577 "sqml/sqml_parser.ml"
               : 'opt_asc_desc))
; (fun __caml_parser_env ->
    Obj.repr(
# 579 "sqml/sqml_parser.mly"
                                                               ( Some `desc )
# 2583 "sqml/sqml_parser.ml"
               : 'opt_asc_desc))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'procedure_def) in
    Obj.repr(
# 583 "sqml/sqml_parser.mly"
                                                              ( [_1] )
# 2590 "sqml/sqml_parser.ml"
               : 'procedure_def_list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : 'procedure_def_list) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'procedure_def) in
    Obj.repr(
# 584 "sqml/sqml_parser.mly"
                                                               ( _1 @ [_2] )
# 2598 "sqml/sqml_parser.ml"
               : 'procedure_def_list))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 3 : 'procedure) in
    let _3 = (Parsing.peek_val __caml_parser_env 2 : 'parameter_def_list) in
    let _5 = (Parsing.peek_val __caml_parser_env 0 : 'manipulative_statement_list) in
    Obj.repr(
# 589 "sqml/sqml_parser.mly"
                                                              ( _2, _3, _5 )
# 2607 "sqml/sqml_parser.ml"
               : 'procedure_def))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 :  string ) in
    Obj.repr(
# 592 "sqml/sqml_parser.mly"
                 ( _1 )
# 2614 "sqml/sqml_parser.ml"
               : 'procedure))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'manipulative_statement) in
    Obj.repr(
# 596 "sqml/sqml_parser.mly"
                                                              ( [_1] )
# 2621 "sqml/sqml_parser.ml"
               : 'manipulative_statement_list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : 'manipulative_statement_list) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'manipulative_statement) in
    Obj.repr(
# 597 "sqml/sqml_parser.mly"
                                                               ( _1 @ [_2] )
# 2629 "sqml/sqml_parser.ml"
               : 'manipulative_statement_list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'parameter_def) in
    Obj.repr(
# 601 "sqml/sqml_parser.mly"
                                                              ( [_1] )
# 2636 "sqml/sqml_parser.ml"
               : 'parameter_def_list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : 'parameter_def_list) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'parameter_def) in
    Obj.repr(
# 602 "sqml/sqml_parser.mly"
                                                               ( _1 @ [_2] )
# 2644 "sqml/sqml_parser.ml"
               : 'parameter_def_list))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 1 : 'parameter) in
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'data_type) in
    Obj.repr(
# 606 "sqml/sqml_parser.mly"
                                                              ( `par (_1, _2) )
# 2652 "sqml/sqml_parser.ml"
               : 'parameter_def))
; (fun __caml_parser_env ->
    Obj.repr(
# 607 "sqml/sqml_parser.mly"
                                                               ( `sqlcode )
# 2658 "sqml/sqml_parser.ml"
               : 'parameter_def))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'manipulative_statement) in
    Obj.repr(
# 612 "sqml/sqml_parser.mly"
                                                                  ( `manip _1 )
# 2665 "sqml/sqml_parser.ml"
               :  Sqml_sqlstx.cmd ))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'close_statement) in
    Obj.repr(
# 616 "sqml/sqml_parser.mly"
                                                              ( `close _1 )
# 2672 "sqml/sqml_parser.ml"
               : 'manipulative_statement))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'commit_statement) in
    Obj.repr(
# 617 "sqml/sqml_parser.mly"
                                                               ( `commit )
# 2679 "sqml/sqml_parser.ml"
               : 'manipulative_statement))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'delete_statement_positioned) in
    Obj.repr(
# 618 "sqml/sqml_parser.mly"
                                                               ( `delete_pos _1 )
# 2686 "sqml/sqml_parser.ml"
               : 'manipulative_statement))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'delete_statement_searched) in
    Obj.repr(
# 619 "sqml/sqml_parser.mly"
                                                               ( `delete_where _1 )
# 2693 "sqml/sqml_parser.ml"
               : 'manipulative_statement))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'fetch_statement) in
    Obj.repr(
# 620 "sqml/sqml_parser.mly"
                                                               ( `fetch _1 )
# 2700 "sqml/sqml_parser.ml"
               : 'manipulative_statement))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'insert_statement) in
    Obj.repr(
# 621 "sqml/sqml_parser.mly"
                                                               ( `insert _1 )
# 2707 "sqml/sqml_parser.ml"
               : 'manipulative_statement))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'open_statement) in
    Obj.repr(
# 622 "sqml/sqml_parser.mly"
                                                               ( `opencursor _1 )
# 2714 "sqml/sqml_parser.ml"
               : 'manipulative_statement))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'rollback_statement) in
    Obj.repr(
# 623 "sqml/sqml_parser.mly"
                                                               ( `rollback )
# 2721 "sqml/sqml_parser.ml"
               : 'manipulative_statement))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'select_statement) in
    Obj.repr(
# 624 "sqml/sqml_parser.mly"
                                                               ( `select _1 )
# 2728 "sqml/sqml_parser.ml"
               : 'manipulative_statement))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'update_statement_positioned) in
    Obj.repr(
# 625 "sqml/sqml_parser.mly"
                                                               ( `update_pos _1 )
# 2735 "sqml/sqml_parser.ml"
               : 'manipulative_statement))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'update_statement_searched) in
    Obj.repr(
# 626 "sqml/sqml_parser.mly"
                                                               ( `update_where _1 )
# 2742 "sqml/sqml_parser.ml"
               : 'manipulative_statement))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'cursor) in
    Obj.repr(
# 630 "sqml/sqml_parser.mly"
                                                              ( _2 )
# 2749 "sqml/sqml_parser.ml"
               : 'close_statement))
; (fun __caml_parser_env ->
    Obj.repr(
# 634 "sqml/sqml_parser.mly"
                                                              ( () )
# 2755 "sqml/sqml_parser.ml"
               : 'commit_statement))
; (fun __caml_parser_env ->
    let _3 = (Parsing.peek_val __caml_parser_env 4 : 'table) in
    let _7 = (Parsing.peek_val __caml_parser_env 0 : 'cursor) in
    Obj.repr(
# 638 "sqml/sqml_parser.mly"
                                                              ( _3, _7 )
# 2763 "sqml/sqml_parser.ml"
               : 'delete_statement_positioned))
; (fun __caml_parser_env ->
    let _3 = (Parsing.peek_val __caml_parser_env 1 : 'table) in
    let _4 = (Parsing.peek_val __caml_parser_env 0 : 'opt_where_clause) in
    Obj.repr(
# 642 "sqml/sqml_parser.mly"
                                                              ( _3, _4 )
# 2771 "sqml/sqml_parser.ml"
               : 'delete_statement_searched))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 2 : 'cursor) in
    let _4 = (Parsing.peek_val __caml_parser_env 0 : 'target_commalist) in
    Obj.repr(
# 646 "sqml/sqml_parser.mly"
                                                              ( _2, _4 )
# 2779 "sqml/sqml_parser.ml"
               : 'fetch_statement))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 0 : 'cursor) in
    Obj.repr(
# 650 "sqml/sqml_parser.mly"
                                                              ( _2 )
# 2786 "sqml/sqml_parser.ml"
               : 'open_statement))
; (fun __caml_parser_env ->
    Obj.repr(
# 654 "sqml/sqml_parser.mly"
                                                              ( () )
# 2792 "sqml/sqml_parser.ml"
               : 'rollback_statement))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 4 : 'opt_all_distinct) in
    let _3 = (Parsing.peek_val __caml_parser_env 3 : 'selection) in
    let _5 = (Parsing.peek_val __caml_parser_env 1 : 'target_commalist) in
    let _6 = (Parsing.peek_val __caml_parser_env 0 : 'table_exp) in
    Obj.repr(
# 660 "sqml/sqml_parser.mly"
                                                              ( let a, b, c, d = _6 in (_2, _3, a, b, c, d), _5 )
# 2802 "sqml/sqml_parser.ml"
               : 'select_statement))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 6 : 'table) in
    let _4 = (Parsing.peek_val __caml_parser_env 4 : 'assignment_commalist) in
    let _8 = (Parsing.peek_val __caml_parser_env 0 : 'cursor) in
    Obj.repr(
# 665 "sqml/sqml_parser.mly"
                                                              ( _2, _4, _8 )
# 2811 "sqml/sqml_parser.ml"
               : 'update_statement_positioned))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'assignment) in
    Obj.repr(
# 669 "sqml/sqml_parser.mly"
                                                               ( [_1] )
# 2818 "sqml/sqml_parser.ml"
               : 'assignment_commalist))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'assignment_commalist) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'assignment) in
    Obj.repr(
# 670 "sqml/sqml_parser.mly"
                                                               ( _1 @ [_3] )
# 2826 "sqml/sqml_parser.ml"
               : 'assignment_commalist))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'column) in
    let _2 = (Parsing.peek_val __caml_parser_env 1 :  Sqml_sqlstx.comparison ) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'scalar_exp) in
    Obj.repr(
# 674 "sqml/sqml_parser.mly"
                                                              ( if _2 <> `eq
                                                                              then parse_error "assignment expected"
                                                                              else `column_exp (_1, _3) )
# 2837 "sqml/sqml_parser.ml"
               : 'assignment))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'column) in
    let _2 = (Parsing.peek_val __caml_parser_env 1 :  Sqml_sqlstx.comparison ) in
    Obj.repr(
# 677 "sqml/sqml_parser.mly"
                                                               ( if _2 <> `eq
                                                                              then parse_error "assignment expected"
                                                                              else `column_null _1 )
# 2847 "sqml/sqml_parser.ml"
               : 'assignment))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 3 : 'table) in
    let _4 = (Parsing.peek_val __caml_parser_env 1 : 'assignment_commalist) in
    let _5 = (Parsing.peek_val __caml_parser_env 0 : 'opt_where_clause) in
    Obj.repr(
# 683 "sqml/sqml_parser.mly"
                                                              ( _2, _4, _5 )
# 2856 "sqml/sqml_parser.ml"
               : 'update_statement_searched))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'target) in
    Obj.repr(
# 687 "sqml/sqml_parser.mly"
                                                              ( [_1] )
# 2863 "sqml/sqml_parser.ml"
               : 'target_commalist))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 2 : 'target_commalist) in
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'target) in
    Obj.repr(
# 688 "sqml/sqml_parser.mly"
                                                               ( _1 @ [_3] )
# 2871 "sqml/sqml_parser.ml"
               : 'target_commalist))
; (fun __caml_parser_env ->
    let _1 = (Parsing.peek_val __caml_parser_env 0 : 'parameter_ref) in
    Obj.repr(
# 692 "sqml/sqml_parser.mly"
                                                              ( _1 )
# 2878 "sqml/sqml_parser.ml"
               : 'target))
; (fun __caml_parser_env ->
    let _4 = (Parsing.peek_val __caml_parser_env 0 : 'when_action) in
    Obj.repr(
# 697 "sqml/sqml_parser.mly"
                                                                  ( `when_not_found _4 )
# 2885 "sqml/sqml_parser.ml"
               :  Sqml_sqlstx.cmd ))
; (fun __caml_parser_env ->
    let _3 = (Parsing.peek_val __caml_parser_env 0 : 'when_action) in
    Obj.repr(
# 698 "sqml/sqml_parser.mly"
                                                               ( `whenever_sqlerror _3 )
# 2892 "sqml/sqml_parser.ml"
               :  Sqml_sqlstx.cmd ))
; (fun __caml_parser_env ->
    let _2 = (Parsing.peek_val __caml_parser_env 0 :  string ) in
    Obj.repr(
# 701 "sqml/sqml_parser.mly"
                                                                         ( `goto _2 )
# 2899 "sqml/sqml_parser.ml"
               : 'when_action))
; (fun __caml_parser_env ->
    Obj.repr(
# 702 "sqml/sqml_parser.mly"
                                                               ( `continue )
# 2905 "sqml/sqml_parser.ml"
               : 'when_action))
(* Entry query *)
; (fun __caml_parser_env -> raise (Parsing.YYexit (Parsing.peek_val __caml_parser_env 0)))
(* Entry sql_cmd_list *)
; (fun __caml_parser_env -> raise (Parsing.YYexit (Parsing.peek_val __caml_parser_env 0)))
(* Entry cmd *)
; (fun __caml_parser_env -> raise (Parsing.YYexit (Parsing.peek_val __caml_parser_env 0)))
(* Entry full_select *)
; (fun __caml_parser_env -> raise (Parsing.YYexit (Parsing.peek_val __caml_parser_env 0)))
(* Entry ugly_eof *)
; (fun __caml_parser_env -> raise (Parsing.YYexit (Parsing.peek_val __caml_parser_env 0)))
|]
let yytables =
  { Parsing.actions=yyact;
    Parsing.transl_const=yytransl_const;
    Parsing.transl_block=yytransl_block;
    Parsing.lhs=yylhs;
    Parsing.len=yylen;
    Parsing.defred=yydefred;
    Parsing.dgoto=yydgoto;
    Parsing.sindex=yysindex;
    Parsing.rindex=yyrindex;
    Parsing.gindex=yygindex;
    Parsing.tablesize=yytablesize;
    Parsing.table=yytable;
    Parsing.check=yycheck;
    Parsing.error_function=parse_error;
    Parsing.names_const=yynames_const;
    Parsing.names_block=yynames_block }
let query (lexfun : Lexing.lexbuf -> token) (lexbuf : Lexing.lexbuf) =
   (Parsing.yyparse yytables 1 lexfun lexbuf :  Sqml_sqlstx.query )
let sql_cmd_list (lexfun : Lexing.lexbuf -> token) (lexbuf : Lexing.lexbuf) =
   (Parsing.yyparse yytables 2 lexfun lexbuf :  Sqml_sqlstx.cmd list )
let cmd (lexfun : Lexing.lexbuf -> token) (lexbuf : Lexing.lexbuf) =
   (Parsing.yyparse yytables 3 lexfun lexbuf :  Sqml_sqlstx.cmd )
let full_select (lexfun : Lexing.lexbuf -> token) (lexbuf : Lexing.lexbuf) =
   (Parsing.yyparse yytables 4 lexfun lexbuf :  Sqml_sqlstx.select * Sqml_sqlstx.ordering list )
let ugly_eof (lexfun : Lexing.lexbuf -> token) (lexbuf : Lexing.lexbuf) =
   (Parsing.yyparse yytables 5 lexfun lexbuf :  unit )
;;
# 706 "sqml/sqml_parser.mly"
(*


*)

# 2951 "sqml/sqml_parser.ml"