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 ->
# 51 "src/aorai/yalexer.mll"
                      ( token lexbuf )
# 653 "src/aorai/yalexer.ml"

  | 1 ->
# 52 "src/aorai/yalexer.mll"
                      ( new_line lexbuf; token lexbuf )
# 658 "src/aorai/yalexer.ml"

  | 2 ->
let
# 53 "src/aorai/yalexer.mll"
                  lxm
# 664 "src/aorai/yalexer.ml"
Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos lexbuf.Lexing.lex_curr_pos in
# 53 "src/aorai/yalexer.mll"
                      ( INT(lxm) )
# 668 "src/aorai/yalexer.ml"

  | 3 ->
# 54 "src/aorai/yalexer.mll"
                      ( CALL_OF )
# 673 "src/aorai/yalexer.ml"

  | 4 ->
# 55 "src/aorai/yalexer.mll"
                      ( RETURN_OF )
# 678 "src/aorai/yalexer.ml"

  | 5 ->
# 56 "src/aorai/yalexer.mll"
                      ( CALLORRETURN_OF )
# 683 "src/aorai/yalexer.ml"

  | 6 ->
# 57 "src/aorai/yalexer.mll"
                      ( OTHERWISE )
# 688 "src/aorai/yalexer.ml"

  | 7 ->
# 58 "src/aorai/yalexer.mll"
                      ( TRUE )
# 693 "src/aorai/yalexer.ml"

  | 8 ->
# 59 "src/aorai/yalexer.mll"
                      ( FALSE )
# 698 "src/aorai/yalexer.ml"

  | 9 ->
let
# 60 "src/aorai/yalexer.mll"
                  lxm
# 704 "src/aorai/yalexer.ml"
Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos (lexbuf.Lexing.lex_start_pos + 7) in
# 60 "src/aorai/yalexer.mll"
                      ( IDENTIFIER(lxm) )
# 708 "src/aorai/yalexer.ml"

  | 10 ->
let
# 61 "src/aorai/yalexer.mll"
             lxm
# 714 "src/aorai/yalexer.ml"
Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos lexbuf.Lexing.lex_curr_pos in
# 61 "src/aorai/yalexer.mll"
                      ( IDENTIFIER(lxm) )
# 718 "src/aorai/yalexer.ml"

  | 11 ->
# 62 "src/aorai/yalexer.mll"
                      ( COMMA )
# 723 "src/aorai/yalexer.ml"

  | 12 ->
# 63 "src/aorai/yalexer.mll"
                      ( PLUS )
# 728 "src/aorai/yalexer.ml"

  | 13 ->
# 64 "src/aorai/yalexer.mll"
                      ( MINUS )
# 733 "src/aorai/yalexer.ml"

  | 14 ->
# 65 "src/aorai/yalexer.mll"
                      ( STAR )
# 738 "src/aorai/yalexer.ml"

  | 15 ->
# 66 "src/aorai/yalexer.mll"
                      ( SLASH )
# 743 "src/aorai/yalexer.ml"

  | 16 ->
# 67 "src/aorai/yalexer.mll"
                      ( PERCENT )
# 748 "src/aorai/yalexer.ml"

  | 17 ->
# 68 "src/aorai/yalexer.mll"
                      ( LPAREN )
# 753 "src/aorai/yalexer.ml"

  | 18 ->
# 69 "src/aorai/yalexer.mll"
                      ( RPAREN )
# 758 "src/aorai/yalexer.ml"

  | 19 ->
# 70 "src/aorai/yalexer.mll"
                      ( LSQUARE )
# 763 "src/aorai/yalexer.ml"

  | 20 ->
# 71 "src/aorai/yalexer.mll"
                      ( RSQUARE )
# 768 "src/aorai/yalexer.ml"

  | 21 ->
# 72 "src/aorai/yalexer.mll"
                      ( LCURLY )
# 773 "src/aorai/yalexer.ml"

  | 22 ->
# 73 "src/aorai/yalexer.mll"
                      ( RCURLY )
# 778 "src/aorai/yalexer.ml"

  | 23 ->
# 74 "src/aorai/yalexer.mll"
                      ( LBRACELBRACE )
# 783 "src/aorai/yalexer.ml"

  | 24 ->
# 75 "src/aorai/yalexer.mll"
                      ( RBRACERBRACE )
# 788 "src/aorai/yalexer.ml"

  | 25 ->
# 76 "src/aorai/yalexer.mll"
                      ( DOT )
# 793 "src/aorai/yalexer.ml"

  | 26 ->
# 77 "src/aorai/yalexer.mll"
                      ( RARROW )
# 798 "src/aorai/yalexer.ml"

  | 27 ->
# 78 "src/aorai/yalexer.mll"
                      ( AMP )
# 803 "src/aorai/yalexer.ml"

  | 28 ->
# 79 "src/aorai/yalexer.mll"
                      ( PIPE )
# 808 "src/aorai/yalexer.ml"

  | 29 ->
# 80 "src/aorai/yalexer.mll"
                      ( AND )
# 813 "src/aorai/yalexer.ml"

  | 30 ->
# 81 "src/aorai/yalexer.mll"
                      ( OR )
# 818 "src/aorai/yalexer.ml"

  | 31 ->
# 82 "src/aorai/yalexer.mll"
                      ( NOT )
# 823 "src/aorai/yalexer.ml"

  | 32 ->
# 83 "src/aorai/yalexer.mll"
                      ( LT )
# 828 "src/aorai/yalexer.ml"

  | 33 ->
# 84 "src/aorai/yalexer.mll"
                      ( GT )
# 833 "src/aorai/yalexer.ml"

  | 34 ->
# 85 "src/aorai/yalexer.mll"
                      ( LE )
# 838 "src/aorai/yalexer.ml"

  | 35 ->
# 86 "src/aorai/yalexer.mll"
                      ( GE )
# 843 "src/aorai/yalexer.ml"

  | 36 ->
# 87 "src/aorai/yalexer.mll"
                      ( EQ )
# 848 "src/aorai/yalexer.ml"

  | 37 ->
# 88 "src/aorai/yalexer.mll"
                      ( NEQ )
# 853 "src/aorai/yalexer.ml"

  | 38 ->
# 89 "src/aorai/yalexer.mll"
                      ( SEMI_COLON )
# 858 "src/aorai/yalexer.ml"

  | 39 ->
# 90 "src/aorai/yalexer.mll"
                      ( COLON )
# 863 "src/aorai/yalexer.ml"

  | 40 ->
# 91 "src/aorai/yalexer.mll"
                      ( COLUMNCOLUMN )
# 868 "src/aorai/yalexer.ml"

  | 41 ->
# 92 "src/aorai/yalexer.mll"
                      ( CARET )
# 873 "src/aorai/yalexer.ml"

  | 42 ->
# 93 "src/aorai/yalexer.mll"
                      ( QUESTION )
# 878 "src/aorai/yalexer.ml"

  | 43 ->
# 94 "src/aorai/yalexer.mll"
                      ( EOF )
# 883 "src/aorai/yalexer.ml"

  | 44 ->
# 95 "src/aorai/yalexer.mll"
                      ( raise_located (loc lexbuf) "Unknown token" )
# 888 "src/aorai/yalexer.ml"

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