]> git.saurik.com Git - bison.git/blobdiff - src/lex.h
New experimental feature: if --verbose --trace output all the
[bison.git] / src / lex.h
index 3e4560f50c568bf25f00c1861228220e66705a2e..df825a8b7a17af2329c89cdee25a463a111c3d23 100644 (file)
--- a/src/lex.h
+++ b/src/lex.h
@@ -1,5 +1,5 @@
 /* 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));
 
 /* Return one of the token-type codes.  When an identifier is seen,
@@ -67,11 +72,9 @@ void read_type_name PARAMS ((FILE *fin));
    symbol table using symtab.c; symval is set to a pointer to the
    entry found.  */
 
-int lex PARAMS ((void));
+token_t lex PARAMS ((void));
+int literalchar PARAMS ((struct obstack *out, int *pcode, char term));
 
-int parse_percent_token PARAMS ((void));
-
-extern bucket *symval;
-extern int numval;
+token_t parse_percent_token PARAMS ((void));
 
 #endif /* !LEX_H_ */