/* Token type definitions for bison's input reader,
- Copyright 1984, 1989, 1992, 2000 Free Software Foundation, Inc.
+ Copyright 1984, 1989, 1992, 2000, 2001 Free Software Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler.
# define LEX_H_
/* Token-type codes. */
-# define ENDFILE 0
-# define IDENTIFIER 1
-# define COMMA 2
-# define COLON 3
-# define SEMICOLON 4
-# define BAR 5
-# define LEFT_CURLY 6
-# define TWO_PERCENTS 7
-# define PERCENT_LEFT_CURLY 8
-# define TOKEN 9
-# define NTERM 10
-# define GUARD 11
-# define TYPE 12
-# define UNION 13
-# define START 14
-# define LEFT 15
-# define RIGHT 16
-# define NONASSOC 17
-# define PREC 18
-# define TYPENAME 21
-# define NUMBER 22
-# define EXPECT 23
-# define THONG 24
-# define NOOP 25
-# define SETOPT 26
-# define ILLEGAL 27
+typedef enum token_e
+ {
+ tok_undef, /* Not defined. Used to initial token_t vars. */
+ tok_eof,
+ tok_identifier,
+ tok_comma,
+ tok_colon,
+ tok_semicolon,
+ tok_bar,
+ tok_left_curly,
+ tok_two_percents,
+ tok_percent_left_curly,
+ tok_token,
+ tok_nterm,
+ tok_guard,
+ tok_type,
+ tok_union,
+ tok_start,
+ tok_left,
+ tok_right,
+ tok_nonassoc,
+ tok_prec,
+ tok_typename,
+ tok_number,
+ tok_expect,
+ tok_thong,
+ tok_define,
+ tok_skel,
+ tok_noop,
+ tok_intopt,
+ tok_stropt,
+ tok_illegal,
+ tok_obsolete
+ } token_t;
-# define MAXTOKEN 1024
-
-
-/* Allocated size of token_buffer, not including space for terminator. */
-extern int maxtoken;
-extern char *token_buffer;
-char *grow_token_buffer PARAMS ((char *));
+extern const char *token_buffer;
+extern bucket *symval;
+extern int numval;
-void init_lex PARAMS ((void));
+void lex_init PARAMS ((void));
+void lex_free PARAMS ((void));
int skip_white_space PARAMS ((void));
-void unlex PARAMS ((int));
+void unlex PARAMS ((token_t));
void read_type_name PARAMS ((FILE *fin));
+int xgetc PARAMS ((FILE *fin));
/* Return one of the token-type codes. When an identifier is seen,
the code IDENTIFIER is returned and the name is looked up in the
symbol table using symtab.c; symval is set to a pointer to the
entry found. */
-int lex PARAMS ((void));
+token_t lex PARAMS ((void));
+char literalchar PARAMS ((void));
-int parse_percent_token PARAMS ((void));
-
-extern bucket *symval;
-extern int numval;
+token_t parse_percent_token PARAMS ((void));
#endif /* !LEX_H_ */