allow extrn symbols to be defined by the unit itself (part II)
[xorcyst.git] / parser.h
bloba05c241f0acafdf32202c5340a8d62d9957aac7c
1 /* A Bison parser, made by GNU Bison 2.0. */
3 /* Skeleton parser for Yacc-like parsing with Bison,
4 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
6 This program 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.
11 This program 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.
16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software
18 Foundation, Inc., 59 Temple Place - Suite 330,
19 Boston, MA 02111-1307, USA. */
21 /* As a special exception, when this file is copied by Bison into a
22 Bison output file, you may use that output file without restriction.
23 This special exception was added by the Free Software Foundation
24 in version 1.24 of Bison. */
26 /* Tokens. */
27 #ifndef YYTOKENTYPE
28 # define YYTOKENTYPE
29 /* Put the tokens into the symbol table, so that GDB and other debuggers
30 know about them. */
31 enum yytokentype {
32 INTEGER_LITERAL = 258,
33 STRING_LITERAL = 259,
34 FILE_PATH = 260,
35 IDENTIFIER = 261,
36 LOCAL_ID = 262,
37 FORWARD_BRANCH = 263,
38 BACKWARD_BRANCH = 264,
39 LABEL = 265,
40 LOCAL_LABEL = 266,
41 MNEMONIC = 267,
42 _LABEL_ = 268,
43 BYTE = 269,
44 CHAR = 270,
45 WORD = 271,
46 DWORD = 272,
47 DSB = 273,
48 DSW = 274,
49 DSD = 275,
50 DATASEG = 276,
51 CODESEG = 277,
52 IF = 278,
53 IFDEF = 279,
54 IFNDEF = 280,
55 ELSE = 281,
56 ELIF = 282,
57 ENDIF = 283,
58 INCSRC = 284,
59 INCBIN = 285,
60 MACRO = 286,
61 REPT = 287,
62 WHILE = 288,
63 ENDM = 289,
64 ALIGN = 290,
65 EQU = 291,
66 DEFINE = 292,
67 END = 293,
68 PUBLIC = 294,
69 EXTRN = 295,
70 CHARMAP = 296,
71 STRUC = 297,
72 UNION = 298,
73 ENDS = 299,
74 RECORD = 300,
75 ENUM = 301,
76 ENDE = 302,
77 PROC = 303,
78 ENDP = 304,
79 SIZEOF = 305,
80 MASK = 306,
81 TAG = 307,
82 MESSAGE = 308,
83 WARNING = 309,
84 ERROR = 310,
85 ZEROPAGE = 311,
86 ORG = 312,
87 SCOPE_OP = 313,
88 HI_OP = 314,
89 LO_OP = 315,
90 NE_OP = 316,
91 EQ_OP = 317,
92 GE_OP = 318,
93 LE_OP = 319,
94 SHR_OP = 320,
95 SHL_OP = 321,
96 UMINUS = 322
98 #endif
99 #define INTEGER_LITERAL 258
100 #define STRING_LITERAL 259
101 #define FILE_PATH 260
102 #define IDENTIFIER 261
103 #define LOCAL_ID 262
104 #define FORWARD_BRANCH 263
105 #define BACKWARD_BRANCH 264
106 #define LABEL 265
107 #define LOCAL_LABEL 266
108 #define MNEMONIC 267
109 #define _LABEL_ 268
110 #define BYTE 269
111 #define CHAR 270
112 #define WORD 271
113 #define DWORD 272
114 #define DSB 273
115 #define DSW 274
116 #define DSD 275
117 #define DATASEG 276
118 #define CODESEG 277
119 #define IF 278
120 #define IFDEF 279
121 #define IFNDEF 280
122 #define ELSE 281
123 #define ELIF 282
124 #define ENDIF 283
125 #define INCSRC 284
126 #define INCBIN 285
127 #define MACRO 286
128 #define REPT 287
129 #define WHILE 288
130 #define ENDM 289
131 #define ALIGN 290
132 #define EQU 291
133 #define DEFINE 292
134 #define END 293
135 #define PUBLIC 294
136 #define EXTRN 295
137 #define CHARMAP 296
138 #define STRUC 297
139 #define UNION 298
140 #define ENDS 299
141 #define RECORD 300
142 #define ENUM 301
143 #define ENDE 302
144 #define PROC 303
145 #define ENDP 304
146 #define SIZEOF 305
147 #define MASK 306
148 #define TAG 307
149 #define MESSAGE 308
150 #define WARNING 309
151 #define ERROR 310
152 #define ZEROPAGE 311
153 #define ORG 312
154 #define SCOPE_OP 313
155 #define HI_OP 314
156 #define LO_OP 315
157 #define NE_OP 316
158 #define EQ_OP 317
159 #define GE_OP 318
160 #define LE_OP 319
161 #define SHR_OP 320
162 #define SHL_OP 321
163 #define UMINUS 322
168 #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
169 #line 69 "parser.y"
170 typedef union YYSTYPE {
171 long integer;
172 int mnemonic;
173 const char *string;
174 const char *label;
175 const char *ident;
176 astnode *node;
177 } YYSTYPE;
178 /* Line 1274 of yacc.c. */
179 #line 180 "parser.h"
180 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
181 # define YYSTYPE_IS_DECLARED 1
182 # define YYSTYPE_IS_TRIVIAL 1
183 #endif
185 extern YYSTYPE yylval;
187 #if ! defined (YYLTYPE) && ! defined (YYLTYPE_IS_DECLARED)
188 typedef struct YYLTYPE
190 int first_line;
191 int first_column;
192 int last_line;
193 int last_column;
194 } YYLTYPE;
195 # define yyltype YYLTYPE /* obsolescent; will be withdrawn */
196 # define YYLTYPE_IS_DECLARED 1
197 # define YYLTYPE_IS_TRIVIAL 1
198 #endif
200 extern YYLTYPE yylloc;