]> git.saurik.com Git - bison.git/blob - src/lex.h
3e4560f50c568bf25f00c1861228220e66705a2e
[bison.git] / src / lex.h
1 /* Token type definitions for bison's input reader,
2 Copyright 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 TYPENAME 21
45 # define NUMBER 22
46 # define EXPECT 23
47 # define THONG 24
48 # define NOOP 25
49 # define SETOPT 26
50 # define ILLEGAL 27
51
52 # define MAXTOKEN 1024
53
54
55 /* Allocated size of token_buffer, not including space for terminator. */
56 extern int maxtoken;
57 extern char *token_buffer;
58 char *grow_token_buffer PARAMS ((char *));
59
60 void init_lex PARAMS ((void));
61 int skip_white_space PARAMS ((void));
62 void unlex PARAMS ((int));
63 void read_type_name PARAMS ((FILE *fin));
64
65 /* Return one of the token-type codes. When an identifier is seen,
66 the code IDENTIFIER is returned and the name is looked up in the
67 symbol table using symtab.c; symval is set to a pointer to the
68 entry found. */
69
70 int lex PARAMS ((void));
71
72 int parse_percent_token PARAMS ((void));
73
74 extern bucket *symval;
75 extern int numval;
76
77 #endif /* !LEX_H_ */