sig
type token =
COMMA
| SEMICOLON
| COLON
| DOT
| LBRACE
| RBRACE
| LBRACKET
| RBRACKET
| LPAREN
| RPAREN
| AUTO
| REGISTER
| STATIC
| EXTERN
| TYPEDEF
| VOID
| CHAR
| SHORT
| INT
| LONG
| FLOAT
| DOUBLE
| SIGNED
| UNSIGNED
| CONST
| VOLATILE
| INLINE
| STRUCT
| UNION
| ENUM
| DOTDOTDOT
| CASE
| DEFAULT
| IF
| ELSE
| SWITCH
| WHILE
| DO
| FOR
| GOTO
| CONTINUE
| BREAK
| RETURN
| SIZEOF
| EQUAL
| STAREQUAL
| SLASHEQUAL
| PERCENTEQUAL
| PLUSEQUAL
| MINUSEQUAL
| LSHIFTEQUAL
| RSHIFTEQUAL
| AMPERSANDEQUAL
| HATEQUAL
| VBAREQUAL
| QUESTION
| VBARVBAR
| AMPERSANDAMPERSAND
| VBAR
| HAT
| AMPERSAND
| EQUALEQUAL
| EXCLEQUAL
| LANGLE
| RANGLE
| LANGLEEQUAL
| RANGLEEQUAL
| LSHIFT
| RSHIFT
| PLUS
| MINUS
| STAR
| SLASH
| PERCENT
| TILDE
| EXCL
| PLUSPLUS
| MINUSMINUS
| RARROW
| INTEGER_CONSTANT of string
| CHARACTER_CONSTANT of string
| FLOATING_CONSTANT of string
| STRING of string
| IDENTIFIER of C_abstree.identifier
| ENUMERATION_CONSTANT of C_abstree.identifier
| TYPEDEF_NAME of C_abstree.identifier
| EOF
val translation_unit :
(Lexing.lexbuf -> C_parser.token) -> Lexing.lexbuf -> C_abstree.program
end