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

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

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

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

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

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

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

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

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

  | 9 ->
# 58 "src/aorai/yalexer.mll"
                      ( FUNC )
# 697 "src/aorai/yalexer.ml"

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

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

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

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

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

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

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

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

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

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

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

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

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

  | 23 ->
# 72 "src/aorai/yalexer.mll"
                      ( DOT )
# 772 "src/aorai/yalexer.ml"

  | 24 ->
# 73 "src/aorai/yalexer.mll"
                      ( RARROW )
# 777 "src/aorai/yalexer.ml"

  | 25 ->
# 74 "src/aorai/yalexer.mll"
                      ( AMP )
# 782 "src/aorai/yalexer.ml"

  | 26 ->
# 75 "src/aorai/yalexer.mll"
                      ( PIPE )
# 787 "src/aorai/yalexer.ml"

  | 27 ->
# 76 "src/aorai/yalexer.mll"
                      ( AND )
# 792 "src/aorai/yalexer.ml"

  | 28 ->
# 77 "src/aorai/yalexer.mll"
                      ( OR )
# 797 "src/aorai/yalexer.ml"

  | 29 ->
# 78 "src/aorai/yalexer.mll"
                      ( NOT )
# 802 "src/aorai/yalexer.ml"

  | 30 ->
# 79 "src/aorai/yalexer.mll"
                      ( LT )
# 807 "src/aorai/yalexer.ml"

  | 31 ->
# 80 "src/aorai/yalexer.mll"
                      ( GT )
# 812 "src/aorai/yalexer.ml"

  | 32 ->
# 81 "src/aorai/yalexer.mll"
                      ( LE )
# 817 "src/aorai/yalexer.ml"

  | 33 ->
# 82 "src/aorai/yalexer.mll"
                      ( GE )
# 822 "src/aorai/yalexer.ml"

  | 34 ->
# 83 "src/aorai/yalexer.mll"
                      ( EQ )
# 827 "src/aorai/yalexer.ml"

  | 35 ->
# 84 "src/aorai/yalexer.mll"
                      ( NEQ )
# 832 "src/aorai/yalexer.ml"

  | 36 ->
# 85 "src/aorai/yalexer.mll"
                      ( TRUE )
# 837 "src/aorai/yalexer.ml"

  | 37 ->
# 86 "src/aorai/yalexer.mll"
                      ( FALSE )
# 842 "src/aorai/yalexer.ml"

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

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

  | 40 ->
# 89 "src/aorai/yalexer.mll"
                      ( EOF )
# 857 "src/aorai/yalexer.ml"

  | 41 ->
# 90 "src/aorai/yalexer.mll"
                      ( raise_located (loc lexbuf) "Unknown token" )
# 862 "src/aorai/yalexer.ml"

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