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 ->
# 55 "src/aorai/promelalexer.mll"
                            ( PROMELA_TRUE )
# 1183 "src/aorai/promelalexer.ml"

  | 1 ->
# 56 "src/aorai/promelalexer.mll"
                            ( PROMELA_NEVER )
# 1188 "src/aorai/promelalexer.ml"

  | 2 ->
# 57 "src/aorai/promelalexer.mll"
                            ( PROMELA_IF )
# 1193 "src/aorai/promelalexer.ml"

  | 3 ->
# 58 "src/aorai/promelalexer.mll"
                            ( PROMELA_FI )
# 1198 "src/aorai/promelalexer.ml"

  | 4 ->
# 59 "src/aorai/promelalexer.mll"
                            ( PROMELA_GOTO )
# 1203 "src/aorai/promelalexer.ml"

  | 5 ->
# 60 "src/aorai/promelalexer.mll"
                            ( PROMELA_SKIP )
# 1208 "src/aorai/promelalexer.ml"

  | 6 ->
# 61 "src/aorai/promelalexer.mll"
                            ( PROMELA_DOUBLE_COLON )
# 1213 "src/aorai/promelalexer.ml"

  | 7 ->
# 62 "src/aorai/promelalexer.mll"
                            ( PROMELA_COLON )
# 1218 "src/aorai/promelalexer.ml"

  | 8 ->
# 63 "src/aorai/promelalexer.mll"
                            ( PROMELA_SEMICOLON )
# 1223 "src/aorai/promelalexer.ml"

  | 9 ->
# 64 "src/aorai/promelalexer.mll"
                            ( PROMELA_LPAREN )
# 1228 "src/aorai/promelalexer.ml"

  | 10 ->
# 65 "src/aorai/promelalexer.mll"
                            ( PROMELA_RPAREN )
# 1233 "src/aorai/promelalexer.ml"

  | 11 ->
# 66 "src/aorai/promelalexer.mll"
                            ( PROMELA_LBRACE )
# 1238 "src/aorai/promelalexer.ml"

  | 12 ->
# 67 "src/aorai/promelalexer.mll"
                            ( PROMELA_RBRACE )
# 1243 "src/aorai/promelalexer.ml"

  | 13 ->
# 68 "src/aorai/promelalexer.mll"
                            ( PROMELA_RIGHT_ARROW )
# 1248 "src/aorai/promelalexer.ml"

  | 14 ->
# 69 "src/aorai/promelalexer.mll"
                            ( PROMELA_FALSE )
# 1253 "src/aorai/promelalexer.ml"

  | 15 ->
# 70 "src/aorai/promelalexer.mll"
                            ( PROMELA_OR )
# 1258 "src/aorai/promelalexer.ml"

  | 16 ->
# 71 "src/aorai/promelalexer.mll"
                            ( PROMELA_AND )
# 1263 "src/aorai/promelalexer.ml"

  | 17 ->
# 72 "src/aorai/promelalexer.mll"
                            ( PROMELA_NOT )
# 1268 "src/aorai/promelalexer.ml"

  | 18 ->
# 73 "src/aorai/promelalexer.mll"
                            ( token lexbuf )
# 1273 "src/aorai/promelalexer.ml"

  | 19 ->
# 74 "src/aorai/promelalexer.mll"
                            ( newline lexbuf; token lexbuf )
# 1278 "src/aorai/promelalexer.ml"

  | 20 ->
# 75 "src/aorai/promelalexer.mll"
                            ( comment lexbuf; token lexbuf )
# 1283 "src/aorai/promelalexer.ml"

  | 21 ->
# 76 "src/aorai/promelalexer.mll"
                            ( newline lexbuf; token lexbuf )
# 1288 "src/aorai/promelalexer.ml"

  | 22 ->
# 79 "src/aorai/promelalexer.mll"
                            ( let s=(lexeme lexbuf) in
                              let s=String.sub s 7 ((String.length s)-7) in
                              PROMELA_CALLOF s )
# 1295 "src/aorai/promelalexer.ml"

  | 23 ->
# 83 "src/aorai/promelalexer.mll"
                            ( let s=(lexeme lexbuf) in
                              let s=String.sub s 9 ((String.length s)-9) in
                              PROMELA_RETURNOF s )
# 1302 "src/aorai/promelalexer.ml"

  | 24 ->
# 87 "src/aorai/promelalexer.mll"
                            ( let s=(lexeme lexbuf) in
                              let s=String.sub s 15 ((String.length s)-15) in
                              PROMELA_CALLORRETURNOF s )
# 1309 "src/aorai/promelalexer.ml"

  | 25 ->
# 92 "src/aorai/promelalexer.mll"
                            ( raise_located (loc lexbuf) "Illegal fonction name in Promela file." )
# 1314 "src/aorai/promelalexer.ml"

  | 26 ->
# 93 "src/aorai/promelalexer.mll"
                            ( raise_located (loc lexbuf) "Illegal fonction name in Promela file." )
# 1319 "src/aorai/promelalexer.ml"

  | 27 ->
# 94 "src/aorai/promelalexer.mll"
                            ( raise_located (loc lexbuf) "Illegal fonction name in Promela file." )
# 1324 "src/aorai/promelalexer.ml"

  | 28 ->
# 98 "src/aorai/promelalexer.mll"
                            ( let s = lexeme lexbuf in
                                PROMELA_LABEL s )
# 1330 "src/aorai/promelalexer.ml"

  | 29 ->
# 100 "src/aorai/promelalexer.mll"
                            ( EOF )
# 1335 "src/aorai/promelalexer.ml"

  | 30 ->
# 102 "src/aorai/promelalexer.mll"
                            ( PROMELA_TRUE )
# 1340 "src/aorai/promelalexer.ml"

  | 31 ->
# 103 "src/aorai/promelalexer.mll"
                            ( Aorai_option.error "Illegal_character : '%s'\n" (lexeme lexbuf);
                              raise Parsing.Parse_error)
# 1346 "src/aorai/promelalexer.ml"

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

and comment lexbuf =
    __ocaml_lex_comment_rec lexbuf 79
and __ocaml_lex_comment_rec lexbuf __ocaml_lex_state =
  match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
      | 0 ->
# 110 "src/aorai/promelalexer.mll"
         ( () )
# 1357 "src/aorai/promelalexer.ml"

  | 1 ->
# 111 "src/aorai/promelalexer.mll"
         (  Aorai_option.error "Unterminated_comment\n"  (*lex_error lexbuf "Unterminated_comment"*) )
# 1362 "src/aorai/promelalexer.ml"

  | 2 ->
# 112 "src/aorai/promelalexer.mll"
         ( newline lexbuf; comment lexbuf )
# 1367 "src/aorai/promelalexer.ml"

  | 3 ->
# 113 "src/aorai/promelalexer.mll"
         ( comment lexbuf )
# 1372 "src/aorai/promelalexer.ml"

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