sig
  type token =
      XOR
    | WITH
    | WHEN
    | VAR
    | UNTIL
    | UNLESS
    | TYPE
    | TRUE
    | THEN
    | TEL
    | SYM of string
    | SUBRANGE
    | STRUCT
    | STRING of string
    | STATE
    | SSBLOCKSTART
    | SSBLOCKEND
    | SSATBLOCK
    | SEMICOLON
    | RSQBRACKET
    | RPAREN
    | RPARAMBRACKET
    | RETURNS
    | RESUME
    | RESTART
    | REQUIRE
    | REAL
    | RCURLYBRACKET
    | QUOTSYM of string
    | PSBLOCKSTART
    | PSBLOCKEND
    | PSATBLOCK
    | PROPERTY
    | PRE
    | PLUS
    | PIPE
    | PERCENTANNOT
    | OR
    | OF
    | NUMERAL of string
    | NOT
    | NODE
    | NEQ
    | MULT
    | MODE
    | MOD
    | MINUS
    | MERGE
    | MAIN
    | LTE
    | LT
    | LSQBRACKET
    | LPAREN
    | LPARAMBRACKET
    | LET
    | LCURLYBRACKET
    | LAST
    | INTDIV
    | INT
    | INITIAL
    | IMPORTED
    | IMPORTCONTRACT
    | IMPL
    | IF
    | HASH
    | GUARANTEE
    | GTE
    | GT
    | FUNCTION
    | FORALL
    | FBY
    | FALSE
    | EXISTS
    | EVERY
    | EQUALS
    | EOF
    | ENUM
    | ENSURE
    | END
    | ELSIF
    | ELSE
    | DOTPERCENT
    | DOTDOT
    | DOT
    | DIV
    | DEFAULT
    | DECIMAL of string
    | CURRENT
    | CONTRACT
    | CONST
    | CONDACT
    | COMMA
    | COLON
    | CHECK
    | CARET
    | BOOL
    | BANGANNOT
    | AUTOMATON
    | ASSUME
    | ASSERT
    | ARROW
    | AND
    | ACTIVATE
  exception Error
  val one_expr :
    (Lexing.lexbuf -> LustreParser.token) -> Lexing.lexbuf -> LustreAst.expr
  val main :
    (Lexing.lexbuf -> LustreParser.token) -> Lexing.lexbuf -> LustreAst.t
end