]> git.saurik.com Git - bison.git/blobdiff - src/lex.h
* src/gram.h (rule_t): `guard' and `guard_line' are new members.
[bison.git] / src / lex.h
index 997949254f4e76aa703ec0a63c6612fae7a705ff..9f3cfe3ac6b0e74f57b68d495d81af1ae916b0f7 100644 (file)
--- a/src/lex.h
+++ b/src/lex.h
@@ -1,51 +1,81 @@
 /* Token type definitions for bison's input reader,
-   Copyright (C) 1984, 1989, 1992 Free Software Foundation, Inc.
-
-This file is part of Bison, the GNU Compiler Compiler.
-
-Bison is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-Bison is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with Bison; see the file COPYING.  If not, write to
-the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.  */
-
-
-#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 SEMANTIC_PARSER 19
-#define PURE_PARSER            20
-#define TYPENAME       21
-#define NUMBER         22
-#define EXPECT         23
-#define THONG          24
-#define NOOP           25
-#define SETOPT         26
-#define ILLEGAL                27
-
-#define        MAXTOKEN        1024
+   Copyright 1984, 1989, 1992, 2000, 2001 Free Software Foundation, Inc.
+
+   This file is part of Bison, the GNU Compiler Compiler.
+
+   Bison is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   Bison is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with Bison; see the file COPYING.  If not, write to
+   the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#ifndef LEX_H_
+# define LEX_H_
+
+/* Token-type codes. */
+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;
+
+extern const char *token_buffer;
+extern bucket *symval;
+extern int numval;
+
+void lex_init PARAMS ((void));
+void lex_free PARAMS ((void));
+int skip_white_space PARAMS ((void));
+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.  */
+
+token_t lex PARAMS ((void));
+char literalchar PARAMS ((void));
+
+token_t parse_percent_token PARAMS ((void));
+
+#endif /* !LEX_H_ */