]> git.saurik.com Git - bison.git/blob - src/lex.h
Don't use `atexit'.
[bison.git] / src / lex.h
1 /* Token type definitions for bison's input reader,
2 Copyright (C) 1984, 1989, 1992, 2000 Free Software Foundation, Inc.
3
4 This file is part of Bison, the GNU Compiler Compiler.
5
6 Bison is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2, or (at your option)
9 any later version.
10
11 Bison is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with Bison; see the file COPYING. If not, write to
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 Boston, MA 02111-1307, USA. */
20
21 #ifndef LEX_H_
22 # define LEX_H_
23
24 /* Token-type codes. */
25 # define ENDFILE 0
26 # define IDENTIFIER 1
27 # define COMMA 2
28 # define COLON 3
29 # define SEMICOLON 4
30 # define BAR 5
31 # define LEFT_CURLY 6
32 # define TWO_PERCENTS 7
33 # define PERCENT_LEFT_CURLY 8
34 # define TOKEN 9
35 # define NTERM 10
36 # define GUARD 11
37 # define TYPE 12
38 # define UNION 13
39 # define START 14
40 # define LEFT 15
41 # define RIGHT 16
42 # define NONASSOC 17
43 # define PREC 18
44 # define SEMANTIC_PARSER 19
45 # define PURE_PARSER 20
46 # define TYPENAME 21
47 # define NUMBER 22
48 # define EXPECT 23
49 # define THONG 24
50 # define NOOP 25
51 # define SETOPT 26
52 # define ILLEGAL 27
53
54 # define MAXTOKEN 1024
55
56
57 /* Allocated size of token_buffer, not including space for terminator. */
58 extern int maxtoken;
59 extern char *token_buffer;
60 char *grow_token_buffer PARAMS ((char *));
61
62 void init_lex PARAMS ((void));
63 int skip_white_space PARAMS ((void));
64 void unlex PARAMS ((int));
65 void read_type_name PARAMS ((FILE *fin));
66
67 /* Return one of the token-type codes. When an identifier is seen,
68 the code IDENTIFIER is returned and the name is looked up in the
69 symbol table using symtab.c; symval is set to a pointer to the
70 entry found. */
71
72 int lex PARAMS ((void));
73
74 int parse_percent_token PARAMS ((void));
75
76 extern bucket *symval;
77 extern int numval;
78
79 #endif /* !LEX_H_ */