sig
  type token =
      PROMELA_OR
    | PROMELA_AND
    | PROMELA_NOT
    | PROMELA_TRUE
    | PROMELA_FALSE
    | PROMELA_NEVER
    | PROMELA_IF
    | PROMELA_FI
    | PROMELA_GOTO
    | PROMELA_SKIP
    | PROMELA_LABEL of string
    | PROMELA_INT of string
    | PROMELA_COLON
    | PROMELA_SEMICOLON
    | PROMELA_DOUBLE_COLON
    | PROMELA_LBRACE
    | PROMELA_RBRACE
    | PROMELA_LPAREN
    | PROMELA_RPAREN
    | PROMELA_RIGHT_ARROW
    | PROMELA_EQ
    | PROMELA_LT
    | PROMELA_GT
    | PROMELA_LE
    | PROMELA_GE
    | PROMELA_NEQ
    | PROMELA_PLUS
    | PROMELA_MINUS
    | PROMELA_DIV
    | PROMELA_STAR
    | PROMELA_MODULO
    | PROMELA_DOT
    | PROMELA_LEFT_SQUARE
    | PROMELA_RIGHT_SQUARE
    | PROMELA_CALLOF of string
    | PROMELA_RETURNOF of string
    | PROMELA_CALLORRETURNOF of string
    | EOF
    | PROMELA_FUNC
  val promela :
    (Stdlib.Lexing.lexbuf -> Promelaparser_withexps.token) ->
    Stdlib.Lexing.lexbuf -> Promelaast.parsed_automaton
end