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 ->
# 176 "lexer.mll"
                       (token lexbuf)
# 373 "lexer.ml"

  | 1 ->
# 177 "lexer.mll"
                  (incr Error_handler.lineCounter;
                   Error_handler.offsetCounter := Lexing.lexeme_end lexbuf;
                   token lexbuf)
# 380 "lexer.ml"

  | 2 ->
# 185 "lexer.mll"
                  (token lexbuf)
# 385 "lexer.ml"

  | 3 ->
# 190 "lexer.mll"
                  (NAT_IDENT(Lexing.lexeme lexbuf))
# 390 "lexer.ml"

  | 4 ->
# 191 "lexer.mll"
                  (ACTION_ARROW)
# 395 "lexer.ml"

  | 5 ->
# 192 "lexer.mll"
                  (REACTION_ARROW)
# 400 "lexer.ml"

  | 6 ->
# 193 "lexer.mll"
                  (FUNCTION_ARROW)
# 405 "lexer.ml"

  | 7 ->
# 194 "lexer.mll"
                  (IMPLIES)
# 410 "lexer.ml"

  | 8 ->
# 195 "lexer.mll"
                  (ASSIGN)
# 415 "lexer.ml"

  | 9 ->
# 196 "lexer.mll"
                  (DEF_EQUAL)
# 420 "lexer.ml"

  | 10 ->
# 197 "lexer.mll"
                  (LEQ)
# 425 "lexer.ml"

  | 11 ->
# 198 "lexer.mll"
                  (NEQ)
# 430 "lexer.ml"

  | 12 ->
# 199 "lexer.mll"
                  (AND)
# 435 "lexer.ml"

  | 13 ->
# 200 "lexer.mll"
                  (AND)
# 440 "lexer.ml"

  | 14 ->
# 201 "lexer.mll"
                  (OR)
# 445 "lexer.ml"

  | 15 ->
# 202 "lexer.mll"
                  (LTL_op1)
# 450 "lexer.ml"

  | 16 ->
# 203 "lexer.mll"
                  (LTL_op2)
# 455 "lexer.ml"

  | 17 ->
# 204 "lexer.mll"
                  (LTL_op3)
# 460 "lexer.ml"

  | 18 ->
# 205 "lexer.mll"
                  (LTL_op4)
# 465 "lexer.ml"

  | 19 ->
# 206 "lexer.mll"
                  (LTL_op5)
# 470 "lexer.ml"

  | 20 ->
# 207 "lexer.mll"
                  (L_PAR)
# 475 "lexer.ml"

  | 21 ->
# 208 "lexer.mll"
                  (R_PAR)
# 480 "lexer.ml"

  | 22 ->
# 213 "lexer.mll"
                  (L_BRACE)
# 485 "lexer.ml"

  | 23 ->
# 214 "lexer.mll"
                  (R_BRACE)
# 490 "lexer.ml"

  | 24 ->
# 215 "lexer.mll"
                  (COMMA)
# 495 "lexer.ml"

  | 25 ->
# 216 "lexer.mll"
                  (COLON)
# 500 "lexer.ml"

  | 26 ->
# 217 "lexer.mll"
                  (SEMI_COLON)
# 505 "lexer.ml"

  | 27 ->
# 218 "lexer.mll"
                  (DOT)
# 510 "lexer.ml"

  | 28 ->
# 219 "lexer.mll"
                  (PLUS)
# 515 "lexer.ml"

  | 29 ->
# 220 "lexer.mll"
                  (EQUAL)
# 520 "lexer.ml"

  | 30 ->
# 221 "lexer.mll"
                  (PRIME)
# 525 "lexer.ml"

  | 31 ->
# 222 "lexer.mll"
                  (UNDERSCORE)
# 530 "lexer.ml"

  | 32 ->
# 224 "lexer.mll"
                  (VAR_IDENT (Lexing.lexeme lexbuf))
# 535 "lexer.ml"

  | 33 ->
# 226 "lexer.mll"
                  (handle_string (Lexing.lexeme lexbuf))
# 540 "lexer.ml"

  | 34 ->
# 231 "lexer.mll"
        (raise Eof)
# 545 "lexer.ml"

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