let rec token lexbuf =
    __ocaml_lex_token_rec lexbuf 0
and __ocaml_lex_token_rec lexbuf __ocaml_lex_state =
  match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
      | 0 ->
# 72 "sqml/sqml_lexer.mll"
                        ( let s = Lexing.lexeme lexbuf in
                          try
                            Hashtbl.find keywords (String.uppercase s)
                          with Not_found ->
                            IDENT s )
# 292 "sqml/sqml_lexer.ml"

  | 1 ->
# 78 "sqml/sqml_lexer.mll"
                        ( GOTO )
# 297 "sqml/sqml_lexer.ml"

  | 2 ->
# 81 "sqml/sqml_lexer.mll"
                        ( COMPARISON `eq )
# 302 "sqml/sqml_lexer.ml"

  | 3 ->
# 82 "sqml/sqml_lexer.mll"
                   ( COMPARISON `neq )
# 307 "sqml/sqml_lexer.ml"

  | 4 ->
# 83 "sqml/sqml_lexer.mll"
                        ( COMPARISON `lt )
# 312 "sqml/sqml_lexer.ml"

  | 5 ->
# 84 "sqml/sqml_lexer.mll"
                        ( COMPARISON `gt )
# 317 "sqml/sqml_lexer.ml"

  | 6 ->
# 85 "sqml/sqml_lexer.mll"
                         ( COMPARISON `lte )
# 322 "sqml/sqml_lexer.ml"

  | 7 ->
# 86 "sqml/sqml_lexer.mll"
                  ( COMPARISON `gte )
# 327 "sqml/sqml_lexer.ml"

  | 8 ->
# 89 "sqml/sqml_lexer.mll"
                          ( MINUS )
# 332 "sqml/sqml_lexer.ml"

  | 9 ->
# 90 "sqml/sqml_lexer.mll"
                          ( PLUS )
# 337 "sqml/sqml_lexer.ml"

  | 10 ->
# 91 "sqml/sqml_lexer.mll"
                          ( TIMES )
# 342 "sqml/sqml_lexer.ml"

  | 11 ->
# 92 "sqml/sqml_lexer.mll"
                          ( DIV )
# 347 "sqml/sqml_lexer.ml"

  | 12 ->
# 95 "sqml/sqml_lexer.mll"
                          ( COLON )
# 352 "sqml/sqml_lexer.ml"

  | 13 ->
# 96 "sqml/sqml_lexer.mll"
                          ( LPAREN )
# 357 "sqml/sqml_lexer.ml"

  | 14 ->
# 97 "sqml/sqml_lexer.mll"
                          ( RPAREN )
# 362 "sqml/sqml_lexer.ml"

  | 15 ->
# 98 "sqml/sqml_lexer.mll"
                          ( COMMA )
# 367 "sqml/sqml_lexer.ml"

  | 16 ->
# 99 "sqml/sqml_lexer.mll"
                          ( DOT )
# 372 "sqml/sqml_lexer.ml"

  | 17 ->
# 100 "sqml/sqml_lexer.mll"
                          ( SEMICOLON )
# 377 "sqml/sqml_lexer.ml"

  | 18 ->
# 104 "sqml/sqml_lexer.mll"
                       ( INTNUM (`inttoomuch (Lexing.lexeme lexbuf)) )
# 382 "sqml/sqml_lexer.ml"

  | 19 ->
# 106 "sqml/sqml_lexer.mll"
                          ( FLOATNUM (`floattoomuch (Lexing.lexeme lexbuf)) )
# 387 "sqml/sqml_lexer.ml"

  | 20 ->
# 110 "sqml/sqml_lexer.mll"
    ( FLOATNUM (`floattoomuch (Lexing.lexeme lexbuf)) )
# 392 "sqml/sqml_lexer.ml"

  | 21 ->
# 114 "sqml/sqml_lexer.mll"
                             ( sqlstring lexbuf;
                               let s = Buffer.contents !b in
                               Buffer.reset !b;
                               STRING s )
# 400 "sqml/sqml_lexer.ml"

  | 22 ->
# 120 "sqml/sqml_lexer.mll"
                  ( (err ()) # ack_nl ; token lexbuf )
# 405 "sqml/sqml_lexer.ml"

  | 23 ->
# 124 "sqml/sqml_lexer.mll"
                   ( token lexbuf )
# 410 "sqml/sqml_lexer.ml"

  | 24 ->
# 127 "sqml/sqml_lexer.mll"
                        ( EOF )
# 415 "sqml/sqml_lexer.ml"

  | 25 ->
# 129 "sqml/sqml_lexer.mll"
                        ( (err ())#error "lexical error" )
# 420 "sqml/sqml_lexer.ml"

  | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_token_rec lexbuf __ocaml_lex_state

and sqlstring lexbuf =
    __ocaml_lex_sqlstring_rec lexbuf 39
and __ocaml_lex_sqlstring_rec lexbuf __ocaml_lex_state =
  match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
      | 0 ->
# 132 "sqml/sqml_lexer.mll"
                    ( Buffer.add_string !b (Lexing.lexeme lexbuf); sqlstring lexbuf )
# 431 "sqml/sqml_lexer.ml"

  | 1 ->
# 133 "sqml/sqml_lexer.mll"
              ( Buffer.add_char !b '\''; sqlstring lexbuf)
# 436 "sqml/sqml_lexer.ml"

  | 2 ->
# 134 "sqml/sqml_lexer.mll"
              ( (err ())#ack_nl; Buffer.add_char !b '\n'; sqlstring lexbuf)
# 441 "sqml/sqml_lexer.ml"

  | 3 ->
# 135 "sqml/sqml_lexer.mll"
              ( () )
# 446 "sqml/sqml_lexer.ml"

  | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_sqlstring_rec lexbuf __ocaml_lex_state