sig
  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
  val query :
    (Lexing.lexbuf -> Sqml_parser.token) ->
    Lexing.lexbuf -> Sqml_sqlstx.query
  val sql_cmd_list :
    (Lexing.lexbuf -> Sqml_parser.token) ->
    Lexing.lexbuf -> Sqml_sqlstx.cmd list
  val cmd :
    (Lexing.lexbuf -> Sqml_parser.token) -> Lexing.lexbuf -> Sqml_sqlstx.cmd
  val full_select :
    (Lexing.lexbuf -> Sqml_parser.token) ->
    Lexing.lexbuf -> Sqml_sqlstx.select * Sqml_sqlstx.ordering list
  val ugly_eof :
    (Lexing.lexbuf -> Sqml_parser.token) -> Lexing.lexbuf -> unit
end