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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  | 31 ->
# 107 "src/aorai/promelalexer.mll"
                            ( Aorai_option.error "Illegal_character : '%s'\n" (lexeme lexbuf);
                              raise Parsing.Parse_error)
# 1349 "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 ->
# 114 "src/aorai/promelalexer.mll"
         ( () )
# 1360 "src/aorai/promelalexer.ml"

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

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

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

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