sig
type token =
PROGRAM
| CONST
| TYPE
| ARRAY
| OF
| RECORD
| END
| VAR
| IF
| THEN
| ELSE
| WHILE
| DO
| BEGIN
| RETURN
| PROCEDURE
| FUNCTION
| NEW
| DELETE
| TRUE
| FALSE
| NOT
| INTEGER
| BOOLEAN
| POINTER
| LBRACK
| RBRACK
| INTERV
| SEMICOL
| COMMA
| COLON
| DOT
| LPAR
| RPAR
| ASSIGN
| ADDRESS_OF
| EQ
| NEQ
| LE
| LT
| GE
| GT
| PLUS
| MINUS
| OR
| MULT
| DIV
| MOD
| AND
| NUMERAL of int
| NAME of string
val program :
(Lexing.lexbuf -> Parser.token) -> Lexing.lexbuf -> Pascal_ir.program
end