Bug Summary

File:src/gnu/usr.bin/binutils/obj/gdb/jv-exp.c
Warning:line 1903, column 5
1st function call argument is an uninitialized value

Annotated Source Code

Press '?' to see keyboard shortcuts

clang -cc1 -cc1 -triple amd64-unknown-openbsd7.0 -analyze -disable-free -disable-llvm-verifier -discard-value-names -main-file-name jv-exp.c -analyzer-store=region -analyzer-opt-analyze-nested-blocks -analyzer-checker=core -analyzer-checker=apiModeling -analyzer-checker=unix -analyzer-checker=deadcode -analyzer-checker=security.insecureAPI.UncheckedReturn -analyzer-checker=security.insecureAPI.getpw -analyzer-checker=security.insecureAPI.gets -analyzer-checker=security.insecureAPI.mktemp -analyzer-checker=security.insecureAPI.mkstemp -analyzer-checker=security.insecureAPI.vfork -analyzer-checker=nullability.NullPassedToNonnull -analyzer-checker=nullability.NullReturnedFromNonnull -analyzer-output plist -w -setup-static-analyzer -mrelocation-model pic -pic-level 1 -pic-is-pie -mframe-pointer=all -relaxed-aliasing -fno-rounding-math -mconstructor-aliases -munwind-tables -target-cpu x86-64 -target-feature +retpoline-indirect-calls -target-feature +retpoline-indirect-branches -tune-cpu generic -debugger-tuning=gdb -fcoverage-compilation-dir=/usr/src/gnu/usr.bin/binutils/obj/gdb -resource-dir /usr/local/lib/clang/13.0.0 -D PIE_DEFAULT=1 -I . -I /usr/src/gnu/usr.bin/binutils/gdb -I /usr/src/gnu/usr.bin/binutils/gdb/config -D LOCALEDIR="/usr/share/locale" -D HAVE_CONFIG_H -I /usr/src/gnu/usr.bin/binutils/gdb/../include/opcode -I ../bfd -I /usr/src/gnu/usr.bin/binutils/gdb/../bfd -I /usr/src/gnu/usr.bin/binutils/gdb/../include -I ../intl -I /usr/src/gnu/usr.bin/binutils/gdb/../intl -D MI_OUT=1 -D TUI=1 -internal-isystem /usr/local/lib/clang/13.0.0/include -internal-externc-isystem /usr/include -O2 -fdebug-compilation-dir=/usr/src/gnu/usr.bin/binutils/obj/gdb -ferror-limit 19 -fwrapv -D_RET_PROTECTOR -ret-protector -fgnuc-version=4.2.1 -fcommon -vectorize-loops -vectorize-slp -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-valloc -fno-builtin-free -fno-builtin-strdup -fno-builtin-strndup -analyzer-output=html -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /home/ben/Projects/vmm/scan-build/2022-01-12-194120-40624-1 -x c jv-exp.c
1#include <stdlib.h>
2#include <string.h>
3#define YYBYACC1 1
4#define YYMAJOR1 1
5#define YYMINOR9 9
6#define YYLEXjava_lex() yylexjava_lex()
7#define YYEMPTY-1 -1
8#define yyclearin(java_char=(-1)) (yycharjava_char=(YYEMPTY-1))
9#define yyerrok(java_errflag=0) (yyerrflagjava_errflag=0)
10#define YYRECOVERING()(java_errflag!=0) (yyerrflagjava_errflag!=0)
11#define YYPREFIX"yy" "yy"
12#line 39 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
13
14#include "defs.h"
15#include "gdb_string.h"
16#include <ctype.h>
17#include "expression.h"
18#include "value.h"
19#include "parser-defs.h"
20#include "language.h"
21#include "jv-lang.h"
22#include "bfd.h" /* Required by objfiles.h. */
23#include "symfile.h" /* Required by objfiles.h. */
24#include "objfiles.h" /* For have_full_symbols and have_partial_symbols */
25#include "block.h"
26
27/* Remap normal yacc parser interface names (yyparse, yylex, yyerror, etc),
28 as well as gratuitiously global symbol names, so we can have multiple
29 yacc generated parsers in gdb. Note that these are only the variables
30 produced by yacc. If other parser generators (bison, byacc, etc) produce
31 additional global names that conflict at link time, then those parser
32 generators need to be fixed instead of adding those names to this list. */
33
34#define yymaxdepthjava_maxdepth java_maxdepth
35#define yyparsejava_parse java_parse
36#define yylexjava_lex java_lex
37#define yyerrorjava_error java_error
38#define yylvaljava_lval java_lval
39#define yycharjava_char java_char
40#define yydebugjava_debug java_debug
41#define yypactjava_pact java_pact
42#define yyr1java_r1 java_r1
43#define yyr2java_r2 java_r2
44#define yydefjava_def java_def
45#define yychkjava_chk java_chk
46#define yypgojava_pgo java_pgo
47#define yyactjava_act java_act
48#define yyexcajava_exca java_exca
49#define yyerrflagjava_errflag java_errflag
50#define yynerrsjava_nerrs java_nerrs
51#define yypsjava_ps java_ps
52#define yypvjava_pv java_pv
53#define yysjava_s java_s
54#define yy_yysjava_yys java_yys
55#define yystatejava_state java_state
56#define yytmpjava_tmp java_tmp
57#define yyvjava_v java_v
58#define yy_yyvjava_yyv java_yyv
59#define yyvaljava_val java_val
60#define yyllocjava_lloc java_lloc
61#define yyredsjava_reds java_reds /* With YYDEBUG defined */
62#define yytoksjava_toks java_toks /* With YYDEBUG defined */
63#define yynamejava_name java_name /* With YYDEBUG defined */
64#define yyrulejava_rule java_rule /* With YYDEBUG defined */
65#define yylhsjava_yylhs java_yylhs
66#define yylenjava_yylen java_yylen
67#define yydefredjava_yydefred java_yydefred
68#define yydgotojava_yydgoto java_yydgoto
69#define yysindexjava_yysindex java_yysindex
70#define yyrindexjava_yyrindex java_yyrindex
71#define yygindexjava_yygindex java_yygindex
72#define yytablejava_yytable java_yytable
73#define yycheckjava_yycheck java_yycheck
74
75#ifndef YYDEBUG1
76#define YYDEBUG1 1 /* Default to yydebug support */
77#endif
78
79#define YYFPRINTFparser_fprintf parser_fprintf
80
81int yyparsejava_parse (void);
82
83static int yylexjava_lex (void);
84
85void yyerrorjava_error (char *);
86
87static struct type *java_type_from_name (struct stoken);
88static void push_expression_name (struct stoken);
89static void push_fieldnames (struct stoken);
90
91static struct expression *copy_exp (struct expression *, int);
92static void insert_exp (int, struct expression *);
93
94#line 126 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
95#ifndef YYSTYPE_DEFINED
96#define YYSTYPE_DEFINED
97typedef union
98 {
99 LONGESTlong lval;
100 struct {
101 LONGESTlong val;
102 struct type *type;
103 } typed_val_int;
104 struct {
105 DOUBLEST dval;
106 struct type *type;
107 } typed_val_float;
108 struct symbol *sym;
109 struct type *tval;
110 struct stoken sval;
111 struct ttype tsym;
112 struct symtoken ssym;
113 struct block *bval;
114 enum exp_opcode opcode;
115 struct internalvar *ivar;
116 int *ivec;
117 } YYSTYPE;
118#endif /* YYSTYPE_DEFINED */
119#line 149 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
120/* YYSTYPE gets defined by %union */
121static int parse_number (char *, int, int, YYSTYPE *);
122#define INTEGER_LITERAL257 257
123#define FLOATING_POINT_LITERAL258 258
124#define IDENTIFIER259 259
125#define STRING_LITERAL260 260
126#define BOOLEAN_LITERAL261 261
127#define TYPENAME262 262
128#define NAME_OR_INT263 263
129#define ERROR264 264
130#define LONG265 265
131#define SHORT266 266
132#define BYTE267 267
133#define INT268 268
134#define CHAR269 269
135#define BOOLEAN270 270
136#define DOUBLE271 271
137#define FLOAT272 272
138#define VARIABLE273 273
139#define ASSIGN_MODIFY274 274
140#define SUPER275 275
141#define NEW276 276
142#define OROR277 277
143#define ANDAND278 278
144#define EQUAL279 279
145#define NOTEQUAL280 280
146#define LEQ281 281
147#define GEQ282 282
148#define LSH283 283
149#define RSH284 284
150#define INCREMENT285 285
151#define DECREMENT286 286
152#define YYERRCODE256 256
153const short yylhsjava_yylhs[] =
154 { -1,
155 0, 0, 17, 11, 11, 18, 19, 19, 19, 19,
156 19, 9, 9, 8, 8, 6, 6, 6, 6, 6,
157 7, 7, 4, 5, 10, 10, 12, 12, 15, 15,
158 13, 13, 14, 16, 16, 21, 21, 22, 22, 22,
159 22, 22, 22, 22, 28, 1, 24, 29, 29, 30,
160 30, 23, 23, 31, 31, 32, 2, 2, 3, 3,
161 25, 25, 33, 34, 26, 26, 26, 27, 27, 27,
162 35, 35, 35, 35, 35, 36, 37, 38, 38, 38,
163 38, 38, 38, 39, 40, 41, 41, 41, 41, 42,
164 42, 42, 43, 43, 43, 43, 44, 44, 44, 45,
165 45, 45, 46, 46, 46, 46, 46, 47, 47, 47,
166 48, 48, 49, 49, 50, 50, 51, 51, 52, 52,
167 53, 53, 54, 54, 55, 55, 56, 56, 56, 56,
168 20,
169};
170const short yylenjava_yylen[] =
171 { 2,
172 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
173 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
174 1, 1, 1, 1, 2, 2, 1, 1, 1, 1,
175 1, 1, 3, 1, 3, 1, 1, 1, 3, 1,
176 1, 1, 1, 3, 1, 1, 5, 1, 3, 0,
177 1, 4, 4, 1, 2, 3, 2, 3, 1, 0,
178 3, 3, 2, 0, 4, 6, 6, 4, 4, 4,
179 1, 1, 1, 1, 1, 2, 2, 1, 1, 2,
180 2, 2, 1, 2, 2, 1, 2, 2, 1, 5,
181 4, 5, 1, 3, 3, 3, 1, 3, 3, 1,
182 3, 3, 1, 3, 3, 3, 3, 1, 3, 3,
183 1, 3, 1, 3, 1, 3, 1, 3, 1, 3,
184 1, 5, 1, 1, 3, 3, 1, 1, 1, 1,
185 1,
186};
187const short yydefredjava_yydefred[] =
188 { 0,
189 7, 9, 0, 6, 10, 0, 19, 17, 16, 18,
190 20, 13, 22, 21, 0, 0, 0, 0, 0, 0,
191 0, 0, 0, 45, 0, 0, 0, 14, 15, 12,
192 0, 5, 3, 0, 29, 0, 127, 0, 2, 11,
193 38, 34, 0, 0, 37, 40, 0, 42, 0, 0,
194 64, 0, 74, 75, 93, 78, 79, 83, 89, 0,
195 0, 0, 0, 0, 0, 0, 0, 0, 0, 123,
196 131, 124, 0, 0, 0, 0, 27, 0, 0, 0,
197 0, 28, 8, 0, 0, 41, 43, 80, 81, 82,
198 84, 85, 0, 0, 0, 87, 88, 0, 0, 0,
199 0, 63, 0, 0, 0, 0, 48, 0, 0, 76,
200 77, 0, 0, 0, 0, 0, 0, 0, 0, 0,
201 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
202 0, 0, 31, 32, 62, 0, 0, 0, 0, 54,
203 0, 0, 0, 0, 0, 0, 0, 57, 0, 33,
204 0, 35, 0, 0, 0, 46, 44, 0, 0, 94,
205 95, 96, 0, 0, 0, 0, 0, 0, 0, 0,
206 0, 0, 0, 0, 0, 0, 0, 0, 126, 125,
207 69, 0, 0, 0, 53, 55, 0, 52, 0, 0,
208 91, 58, 68, 0, 70, 49, 65, 0, 0, 56,
209 47, 90, 92, 0, 122, 67, 66,
210};
211const short yydgotojava_yydgoto[] =
212 { 27,
213 157, 144, 145, 78, 79, 28, 29, 30, 31, 32,
214 33, 85, 35, 82, 37, 38, 39, 40, 41, 107,
215 43, 44, 45, 46, 86, 48, 87, 50, 158, 159,
216 139, 140, 51, 109, 52, 53, 54, 55, 56, 57,
217 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
218 68, 69, 70, 71, 72, 73,
219};
220const short yysindexjava_yysindex[] =
221 { 1576,
222 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
223 0, 0, 0, 0, -40, -15, -157, 1639, 1639, 1639,
224 1639, 1639, 1576, 0, 1639, 1639, 0, 0, 0, 0,
225 -54, 0, 0, -13, 0, 0, 0, -4, 0, 0,
226 0, 0, 7, -9, 0, 0, 0, 0, 0, 1684,
227 0, -182, 0, 0, 0, 0, 0, 0, 0, 13,
228 40, -154, -58, -144, 78, 24, 3, -158, -55, 0,
229 0, 0, -61, -166, 1684, -166, 0, 41, 104, 41,
230 105, 0, 0, -40, -10, 0, 0, 0, 0, 0,
231 0, 0, -54, -13, 114, 0, 0, 79, 80, -166,
232 1619, 0, 80, 1684, -166, 1684, 0, -41, 1684, 0,
233 0, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639,
234 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1684, 1639,
235 1639, 1639, 0, 0, 0, 82, 133, 1684, 85, 0,
236 1684, 85, 1684, 80, 136, -34, 84, 0, 86, 0,
237 95, 0, 138, 98, 1684, 0, 0, 148, 152, 0,
238 0, 0, 13, 13, 40, 40, -154, -154, -154, -154,
239 -58, -58, -144, 78, 24, 3, 137, -158, 0, 0,
240 0, 1684, 101, 1619, 0, 0, 155, 0, 1639, 84,
241 0, 0, 0, 1684, 0, 0, 0, 1639, 157, 0,
242 0, 0, 0, 158, 0, 0, 0,};
243const short yyrindexjava_yyrindex[] =
244 { 0,
245 0, 0, 1, 0, 0, 96, 0, 0, 0, 0,
246 0, 0, 0, 0, 391, 0, 0, 0, 0, 0,
247 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
248 200, 0, 0, 854, 0, 28, 0, 201, 0, 0,
249 0, 0, 661, 486, 0, 0, 123, 0, 197, 0,
250 0, 865, 0, 0, 0, 0, 0, 0, 0, 919,
251 1063, 565, 1371, 1460, 1506, 87, 1328, 716, 174, 0,
252 0, 0, 0, 0, 0, 0, 0, 162, 0, 0,
253 -35, 0, 0, 688, 756, 0, 0, 0, 0, 0,
254 0, 0, 163, 1714, 0, 0, 0, 0, 203, 0,
255 0, 0, 205, 0, 0, 0, 0, 0, 165, 0,
256 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
257 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
258 0, 0, 0, 0, 0, 0, 0, 0, 554, 0,
259 165, 554, 0, 593, 0, 0, 459, 0, 0, 0,
260 0, 0, 292, 0, 0, 0, 0, 167, 0, 0,
261 0, 0, 956, 1026, 1117, 1168, 1205, 1256, 1295, 1364,
262 1418, 1436, 1469, 1508, 825, 1545, 0, 1595, 0, 0,
263 0, 165, 0, 0, 0, 0, 0, 0, 0, 0,
264 0, 0, 0, 165, 0, 0, 0, 0, 0, 0,
265 0, 0, 0, 0, 0, 0, 0,};
266const short yygindexjava_yygindex[] =
267 { 0,
268 0, -14, -118, 0, 0, 0, 0, 0, -1, 0,
269 0, 35, -51, 1780, 0, 0, 0, 0, 0, 986,
270 0, 0, 0, 0, 1903, 0, 1927, 0, 159, -115,
271 139, -110, 0, 0, 0, 0, 0, -7, 0, 0,
272 -113, 0, 31, 45, -21, 25, 100, 102, 99, 103,
273 97, 0, -122, 0, 0, 0,
274};
275#define YYTABLESIZE2121 2121
276const short yytablejava_yytable[] =
277 { 132,
278 27, 119, 155, 120, 23, 74, 190, 129, 179, 180,
279 88, 89, 90, 91, 92, 80, 99, 96, 97, 103,
280 185, 93, 135, 188, 137, 187, 102, 28, 186, 102,
281 76, 186, 100, 191, 34, 100, 98, 27, 27, 104,
282 27, 27, 27, 27, 27, 27, 27, 27, 150, 114,
283 75, 81, 105, 153, 112, 23, 149, 94, 27, 113,
284 27, 31, 27, 27, 28, 28, 199, 28, 28, 28,
285 28, 28, 28, 28, 28, 205, 203, 101, 204, 146,
286 143, 106, 115, 156, 116, 28, 115, 28, 30, 28,
287 28, 27, 133, 27, 27, 8, 134, 167, 168, 169,
288 170, 77, 110, 111, 160, 161, 162, 7, 8, 9,
289 10, 11, 12, 13, 14, 125, 26, 126, 28, 128,
290 28, 28, 41, 23, 27, 27, 127, 115, 117, 118,
291 115, 138, 8, 8, 123, 124, 8, 8, 8, 8,
292 8, 8, 8, 141, 115, 163, 164, 171, 172, 115,
293 100, 28, 28, 8, 147, 8, 32, 8, 8, 41,
294 41, 165, 166, 41, 41, 41, 41, 41, 41, 41,
295 149, 148, 182, 121, 181, 184, 189, 194, 192, 115,
296 41, 202, 41, 129, 41, 41, 8, 193, 8, 8,
297 195, 155, 197, 200, 198, 201, 43, 206, 207, 4,
298 1, 24, 25, 60, 26, 50, 24, 51, 108, 25,
299 115, 115, 131, 41, 121, 41, 41, 121, 142, 8,
300 8, 130, 121, 122, 173, 175, 178, 174, 0, 0,
301 176, 121, 0, 43, 43, 0, 0, 43, 43, 43,
302 43, 43, 43, 43, 0, 0, 41, 41, 0, 0,
303 0, 0, 0, 0, 43, 0, 43, 130, 43, 43,
304 0, 0, 0, 0, 0, 0, 121, 0, 0, 0,
305 0, 0, 0, 0, 31, 0, 0, 27, 27, 27,
306 27, 27, 27, 27, 27, 27, 27, 43, 0, 43,
307 43, 61, 0, 0, 0, 0, 0, 0, 121, 0,
308 0, 30, 0, 0, 28, 28, 28, 28, 28, 28,
309 28, 28, 28, 28, 0, 0, 0, 0, 0, 0,
310 43, 43, 0, 0, 0, 0, 0, 0, 61, 61,
311 0, 0, 61, 61, 61, 61, 61, 61, 61, 0,
312 1, 2, 77, 4, 5, 0, 83, 0, 0, 61,
313 0, 61, 61, 61, 61, 0, 84, 0, 16, 17,
314 0, 0, 0, 115, 115, 0, 0, 0, 0, 32,
315 0, 0, 8, 8, 8, 8, 8, 8, 8, 8,
316 8, 8, 61, 0, 61, 61, 0, 0, 0, 0,
317 73, 0, 0, 0, 0, 0, 129, 0, 0, 41,
318 41, 41, 41, 41, 41, 41, 41, 41, 41, 0,
319 0, 0, 0, 0, 0, 61, 61, 0, 0, 0,
320 0, 0, 0, 0, 0, 0, 0, 73, 73, 0,
321 0, 73, 73, 73, 73, 73, 0, 73, 0, 0,
322 0, 0, 0, 0, 0, 0, 0, 0, 73, 0,
323 73, 128, 73, 73, 0, 0, 0, 0, 39, 0,
324 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
325 130, 0, 0, 43, 43, 43, 43, 43, 43, 43,
326 43, 43, 43, 73, 73, 36, 0, 0, 0, 0,
327 0, 0, 0, 0, 0, 39, 39, 0, 0, 39,
328 39, 39, 39, 39, 39, 39, 0, 0, 0, 0,
329 0, 0, 0, 0, 73, 73, 39, 0, 39, 0,
330 39, 39, 36, 36, 0, 0, 36, 36, 36, 36,
331 36, 36, 36, 0, 0, 0, 0, 0, 0, 0,
332 0, 0, 0, 36, 0, 36, 0, 36, 36, 39,
333 0, 39, 39, 60, 0, 0, 0, 0, 0, 0,
334 0, 0, 0, 0, 103, 61, 0, 0, 61, 61,
335 61, 61, 61, 61, 61, 61, 61, 61, 36, 36,
336 0, 0, 39, 39, 0, 0, 0, 0, 0, 0,
337 60, 60, 59, 0, 60, 60, 60, 60, 60, 60,
338 60, 0, 103, 0, 0, 103, 0, 0, 103, 36,
339 36, 60, 0, 60, 0, 60, 60, 0, 0, 0,
340 0, 0, 103, 0, 103, 0, 103, 103, 0, 59,
341 59, 0, 0, 59, 59, 59, 59, 59, 59, 59,
342 0, 0, 0, 0, 0, 0, 60, 60, 0, 0,
343 59, 0, 59, 0, 59, 59, 0, 103, 103, 0,
344 71, 0, 0, 0, 128, 0, 0, 73, 73, 73,
345 73, 73, 73, 73, 73, 73, 73, 60, 60, 0,
346 0, 0, 0, 0, 0, 59, 59, 73, 103, 103,
347 0, 0, 0, 0, 0, 0, 0, 71, 71, 0,
348 0, 71, 71, 71, 71, 71, 0, 71, 0, 0,
349 0, 0, 0, 0, 0, 119, 59, 59, 71, 0,
350 71, 0, 71, 71, 73, 73, 0, 0, 73, 73,
351 73, 73, 73, 0, 73, 39, 39, 39, 39, 39,
352 39, 39, 39, 39, 39, 73, 0, 73, 0, 73,
353 73, 0, 0, 71, 71, 72, 119, 0, 0, 119,
354 0, 0, 36, 36, 36, 36, 36, 36, 36, 36,
355 36, 36, 0, 119, 0, 0, 0, 0, 119, 0,
356 73, 73, 0, 0, 71, 71, 0, 0, 0, 0,
357 0, 0, 72, 72, 0, 0, 72, 72, 72, 72,
358 72, 0, 72, 0, 0, 0, 0, 0, 119, 0,
359 0, 73, 73, 72, 0, 72, 0, 72, 72, 0,
360 0, 0, 0, 0, 116, 0, 0, 0, 0, 0,
361 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
362 119, 103, 103, 103, 103, 103, 103, 0, 72, 72,
363 0, 0, 0, 72, 0, 0, 0, 0, 0, 0,
364 0, 0, 0, 0, 86, 116, 0, 0, 116, 59,
365 59, 59, 59, 59, 59, 59, 59, 59, 59, 72,
366 72, 0, 116, 0, 0, 0, 0, 116, 0, 0,
367 72, 72, 0, 0, 0, 72, 72, 72, 72, 0,
368 72, 86, 86, 0, 0, 86, 86, 86, 86, 86,
369 0, 86, 0, 72, 0, 72, 72, 116, 97, 0,
370 0, 0, 86, 0, 86, 0, 86, 86, 0, 0,
371 0, 0, 0, 0, 0, 0, 0, 71, 71, 71,
372 71, 71, 71, 71, 71, 71, 71, 72, 116, 116,
373 0, 0, 0, 0, 0, 98, 97, 86, 86, 97,
374 0, 97, 97, 97, 73, 73, 73, 73, 73, 73,
375 73, 73, 73, 73, 0, 0, 97, 72, 97, 0,
376 97, 97, 0, 0, 0, 42, 0, 0, 86, 86,
377 0, 0, 119, 98, 0, 0, 98, 0, 98, 98,
378 98, 0, 0, 0, 0, 0, 0, 0, 95, 0,
379 0, 97, 97, 98, 0, 98, 0, 98, 98, 0,
380 0, 0, 0, 0, 0, 99, 0, 0, 0, 0,
381 0, 0, 72, 72, 72, 72, 72, 72, 72, 72,
382 72, 72, 97, 97, 0, 0, 0, 0, 98, 98,
383 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
384 136, 0, 100, 99, 0, 0, 99, 0, 99, 99,
385 99, 0, 0, 0, 0, 0, 0, 0, 0, 98,
386 98, 0, 0, 99, 0, 99, 151, 99, 99, 152,
387 0, 154, 0, 0, 0, 0, 0, 0, 0, 0,
388 100, 116, 116, 100, 0, 0, 100, 0, 0, 0,
389 0, 0, 0, 0, 177, 0, 101, 0, 99, 99,
390 100, 0, 100, 183, 100, 100, 0, 0, 151, 0,
391 72, 72, 72, 72, 72, 72, 72, 72, 72, 72,
392 196, 86, 86, 86, 86, 86, 86, 86, 86, 99,
393 99, 0, 0, 0, 101, 100, 100, 101, 0, 0,
394 101, 0, 0, 0, 0, 0, 0, 102, 0, 183,
395 0, 0, 0, 0, 101, 0, 101, 0, 101, 101,
396 0, 0, 0, 0, 0, 0, 100, 100, 0, 0,
397 0, 0, 0, 0, 0, 97, 97, 97, 97, 97,
398 97, 97, 97, 0, 104, 102, 0, 0, 102, 101,
399 101, 102, 0, 0, 0, 0, 0, 0, 0, 0,
400 0, 0, 0, 0, 0, 102, 0, 102, 0, 102,
401 102, 0, 98, 98, 98, 98, 98, 98, 98, 98,
402 101, 101, 104, 0, 0, 104, 0, 0, 104, 0,
403 0, 0, 0, 0, 0, 105, 0, 0, 0, 0,
404 102, 102, 104, 0, 104, 0, 104, 104, 0, 0,
405 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
406 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
407 0, 102, 102, 105, 106, 0, 105, 104, 104, 105,
408 0, 0, 99, 99, 99, 99, 99, 99, 99, 99,
409 0, 0, 0, 105, 0, 105, 0, 105, 105, 0,
410 0, 0, 0, 0, 0, 0, 0, 117, 104, 104,
411 0, 0, 106, 0, 0, 106, 0, 0, 106, 100,
412 100, 100, 100, 100, 100, 100, 100, 0, 105, 105,
413 0, 0, 106, 0, 106, 0, 106, 106, 0, 0,
414 0, 0, 0, 107, 0, 0, 0, 0, 117, 0,
415 108, 117, 0, 0, 0, 0, 0, 0, 0, 105,
416 105, 0, 0, 0, 0, 117, 0, 106, 106, 0,
417 117, 0, 0, 101, 101, 101, 101, 101, 101, 101,
418 101, 107, 0, 0, 107, 0, 0, 107, 108, 0,
419 0, 108, 0, 0, 108, 0, 0, 109, 106, 106,
420 117, 107, 0, 107, 0, 107, 107, 0, 108, 0,
421 0, 0, 0, 108, 0, 110, 0, 0, 0, 0,
422 0, 0, 0, 0, 102, 102, 102, 102, 102, 102,
423 102, 102, 117, 0, 0, 109, 107, 107, 109, 111,
424 0, 109, 0, 108, 108, 0, 0, 0, 112, 0,
425 0, 0, 0, 110, 0, 109, 110, 0, 0, 110,
426 109, 104, 104, 104, 104, 104, 104, 107, 107, 0,
427 0, 0, 0, 110, 108, 108, 0, 111, 110, 0,
428 111, 0, 0, 111, 0, 113, 112, 114, 0, 112,
429 109, 109, 112, 0, 0, 0, 0, 111, 0, 0,
430 0, 0, 111, 0, 0, 0, 112, 0, 110, 110,
431 0, 112, 105, 105, 105, 105, 105, 105, 0, 0,
432 0, 109, 109, 0, 118, 0, 113, 0, 114, 113,
433 0, 114, 111, 111, 0, 0, 0, 0, 0, 110,
434 110, 112, 112, 113, 0, 114, 0, 0, 113, 0,
435 114, 106, 106, 106, 106, 106, 106, 0, 0, 0,
436 0, 0, 0, 111, 111, 118, 0, 0, 118, 0,
437 0, 0, 112, 112, 120, 0, 0, 0, 113, 113,
438 114, 114, 118, 0, 117, 117, 0, 118, 26, 0,
439 0, 0, 0, 0, 0, 23, 0, 20, 18, 0,
440 19, 0, 0, 0, 0, 0, 0, 0, 0, 113,
441 113, 114, 114, 0, 0, 120, 0, 118, 120, 0,
442 107, 107, 107, 107, 107, 107, 0, 108, 108, 108,
443 108, 26, 120, 0, 0, 0, 0, 120, 23, 0,
444 20, 18, 0, 19, 0, 0, 0, 0, 0, 118,
445 0, 26, 0, 0, 0, 0, 0, 0, 23, 0,
446 20, 18, 0, 19, 0, 0, 0, 120, 0, 0,
447 0, 0, 0, 0, 109, 109, 109, 109, 24, 0,
448 0, 25, 0, 0, 0, 0, 0, 0, 0, 0,
449 0, 148, 110, 110, 110, 110, 26, 0, 0, 120,
450 0, 0, 0, 23, 0, 20, 18, 0, 19, 0,
451 0, 0, 0, 0, 0, 0, 111, 111, 0, 0,
452 0, 24, 0, 0, 25, 112, 112, 0, 0, 0,
453 72, 72, 0, 0, 72, 72, 72, 0, 72, 0,
454 72, 24, 0, 0, 25, 0, 0, 0, 0, 0,
455 0, 0, 0, 72, 0, 72, 72, 0, 0, 36,
456 0, 0, 113, 113, 114, 114, 0, 0, 0, 0,
457 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
458 0, 0, 36, 0, 0, 0, 24, 72, 0, 25,
459 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
460 0, 118, 118, 0, 0, 0, 0, 0, 0, 36,
461 0, 0, 1, 2, 3, 4, 5, 72, 6, 0,
462 7, 8, 9, 10, 11, 12, 13, 14, 15, 0,
463 16, 17, 0, 0, 36, 0, 0, 0, 0, 0,
464 21, 22, 0, 0, 0, 0, 0, 0, 0, 0,
465 0, 120, 0, 0, 0, 1, 2, 3, 4, 5,
466 36, 6, 0, 36, 0, 36, 0, 0, 36, 0,
467 0, 15, 0, 16, 17, 1, 2, 77, 4, 5,
468 0, 83, 47, 21, 22, 0, 0, 0, 36, 0,
469 0, 84, 0, 16, 17, 0, 0, 36, 0, 0,
470 36, 0, 36, 21, 22, 47, 49, 0, 0, 0,
471 0, 0, 0, 0, 36, 0, 0, 0, 0, 0,
472 1, 2, 3, 4, 5, 0, 6, 0, 0, 49,
473 0, 0, 47, 0, 0, 0, 15, 0, 16, 17,
474 0, 36, 0, 36, 0, 0, 0, 0, 21, 22,
475 0, 0, 0, 36, 0, 0, 49, 47, 0, 0,
476 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
477 72, 72, 72, 72, 72, 72, 72, 72, 72, 72,
478 0, 49, 0, 47, 0, 0, 47, 0, 47, 0,
479 0, 47, 0, 0, 0, 0, 0, 0, 0, 0,
480 0, 0, 0, 0, 0, 0, 0, 49, 0, 0,
481 49, 47, 49, 0, 0, 49, 0, 0, 0, 0,
482 47, 0, 0, 47, 0, 47, 0, 0, 0, 0,
483 0, 0, 0, 0, 0, 49, 0, 47, 0, 0,
484 0, 0, 0, 0, 49, 0, 0, 49, 0, 49,
485 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
486 0, 49, 0, 0, 47, 0, 47, 0, 0, 0,
487 0, 0, 0, 0, 0, 0, 47, 0, 0, 0,
488 0, 0, 0, 0, 0, 0, 0, 0, 49, 0,
489 49, 0, 0, 0, 0, 0, 0, 0, 0, 0,
490 49,
491};
492const short yycheckjava_yycheck[] =
493 { 61,
494 0, 60, 44, 62, 40, 46, 41, 63, 131, 132,
495 18, 19, 20, 21, 22, 17, 31, 25, 26, 34,
496 139, 23, 74, 142, 76, 141, 40, 0, 139, 40,
497 46, 142, 46, 147, 0, 46, 91, 37, 38, 44,
498 40, 41, 42, 43, 44, 45, 46, 47, 100, 37,
499 91, 17, 46, 105, 42, 91, 91, 23, 58, 47,
500 60, 61, 62, 63, 37, 38, 182, 40, 41, 42,
501 43, 44, 45, 46, 47, 198, 190, 91, 194, 94,
502 91, 91, 43, 125, 45, 58, 0, 60, 61, 62,
503 63, 91, 259, 93, 94, 0, 263, 119, 120, 121,
504 122, 259, 285, 286, 112, 113, 114, 265, 266, 267,
505 268, 269, 270, 271, 272, 38, 33, 94, 91, 278,
506 93, 94, 0, 40, 124, 125, 124, 41, 283, 284,
507 44, 91, 37, 38, 279, 280, 41, 42, 43, 44,
508 45, 46, 47, 40, 58, 115, 116, 123, 124, 63,
509 46, 124, 125, 58, 41, 60, 61, 62, 63, 37,
510 38, 117, 118, 41, 42, 43, 44, 45, 46, 47,
511 91, 93, 40, 0, 93, 91, 41, 40, 93, 93,
512 58, 189, 60, 61, 62, 63, 91, 93, 93, 94,
513 93, 44, 41, 93, 58, 41, 0, 41, 41, 0,
514 0, 40, 0, 41, 0, 41, 123, 41, 50, 126,
515 124, 125, 274, 91, 41, 93, 94, 44, 80, 124,
516 125, 277, 281, 282, 125, 127, 130, 126, -1, -1,
517 128, 58, -1, 37, 38, -1, -1, 41, 42, 43,
518 44, 45, 46, 47, -1, -1, 124, 125, -1, -1,
519 -1, -1, -1, -1, 58, -1, 60, 61, 62, 63,
520 -1, -1, -1, -1, -1, -1, 93, -1, -1, -1,
521 -1, -1, -1, -1, 274, -1, -1, 277, 278, 279,
522 280, 281, 282, 283, 284, 285, 286, 91, -1, 93,
523 94, 0, -1, -1, -1, -1, -1, -1, 125, -1,
524 -1, 274, -1, -1, 277, 278, 279, 280, 281, 282,
525 283, 284, 285, 286, -1, -1, -1, -1, -1, -1,
526 124, 125, -1, -1, -1, -1, -1, -1, 37, 38,
527 -1, -1, 41, 42, 43, 44, 45, 46, 47, -1,
528 257, 258, 259, 260, 261, -1, 263, -1, -1, 58,
529 -1, 60, 61, 62, 63, -1, 273, -1, 275, 276,
530 -1, -1, -1, 277, 278, -1, -1, -1, -1, 274,
531 -1, -1, 277, 278, 279, 280, 281, 282, 283, 284,
532 285, 286, 91, -1, 93, 94, -1, -1, -1, -1,
533 0, -1, -1, -1, -1, -1, 274, -1, -1, 277,
534 278, 279, 280, 281, 282, 283, 284, 285, 286, -1,
535 -1, -1, -1, -1, -1, 124, 125, -1, -1, -1,
536 -1, -1, -1, -1, -1, -1, -1, 37, 38, -1,
537 -1, 41, 42, 43, 44, 45, -1, 47, -1, -1,
538 -1, -1, -1, -1, -1, -1, -1, -1, 58, -1,
539 60, 61, 62, 63, -1, -1, -1, -1, 0, -1,
540 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
541 274, -1, -1, 277, 278, 279, 280, 281, 282, 283,
542 284, 285, 286, 93, 94, 0, -1, -1, -1, -1,
543 -1, -1, -1, -1, -1, 37, 38, -1, -1, 41,
544 42, 43, 44, 45, 46, 47, -1, -1, -1, -1,
545 -1, -1, -1, -1, 124, 125, 58, -1, 60, -1,
546 62, 63, 37, 38, -1, -1, 41, 42, 43, 44,
547 45, 46, 47, -1, -1, -1, -1, -1, -1, -1,
548 -1, -1, -1, 58, -1, 60, -1, 62, 63, 91,
549 -1, 93, 94, 0, -1, -1, -1, -1, -1, -1,
550 -1, -1, -1, -1, 0, 274, -1, -1, 277, 278,
551 279, 280, 281, 282, 283, 284, 285, 286, 93, 94,
552 -1, -1, 124, 125, -1, -1, -1, -1, -1, -1,
553 37, 38, 0, -1, 41, 42, 43, 44, 45, 46,
554 47, -1, 38, -1, -1, 41, -1, -1, 44, 124,
555 125, 58, -1, 60, -1, 62, 63, -1, -1, -1,
556 -1, -1, 58, -1, 60, -1, 62, 63, -1, 37,
557 38, -1, -1, 41, 42, 43, 44, 45, 46, 47,
558 -1, -1, -1, -1, -1, -1, 93, 94, -1, -1,
559 58, -1, 60, -1, 62, 63, -1, 93, 94, -1,
560 0, -1, -1, -1, 274, -1, -1, 277, 278, 279,
561 280, 281, 282, 283, 284, 285, 286, 124, 125, -1,
562 -1, -1, -1, -1, -1, 93, 94, 0, 124, 125,
563 -1, -1, -1, -1, -1, -1, -1, 37, 38, -1,
564 -1, 41, 42, 43, 44, 45, -1, 47, -1, -1,
565 -1, -1, -1, -1, -1, 0, 124, 125, 58, -1,
566 60, -1, 62, 63, 37, 38, -1, -1, 41, 42,
567 43, 44, 45, -1, 47, 277, 278, 279, 280, 281,
568 282, 283, 284, 285, 286, 58, -1, 60, -1, 62,
569 63, -1, -1, 93, 94, 0, 41, -1, -1, 44,
570 -1, -1, 277, 278, 279, 280, 281, 282, 283, 284,
571 285, 286, -1, 58, -1, -1, -1, -1, 63, -1,
572 93, 94, -1, -1, 124, 125, -1, -1, -1, -1,
573 -1, -1, 37, 38, -1, -1, 41, 42, 43, 44,
574 45, -1, 47, -1, -1, -1, -1, -1, 93, -1,
575 -1, 124, 125, 58, -1, 60, -1, 62, 63, -1,
576 -1, -1, -1, -1, 0, -1, -1, -1, -1, -1,
577 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
578 125, 277, 278, 279, 280, 281, 282, -1, 93, 94,
579 -1, -1, -1, 0, -1, -1, -1, -1, -1, -1,
580 -1, -1, -1, -1, 0, 41, -1, -1, 44, 277,
581 278, 279, 280, 281, 282, 283, 284, 285, 286, 124,
582 125, -1, 58, -1, -1, -1, -1, 63, -1, -1,
583 37, 38, -1, -1, -1, 42, 43, 44, 45, -1,
584 47, 37, 38, -1, -1, 41, 42, 43, 44, 45,
585 -1, 47, -1, 60, -1, 62, 63, 93, 0, -1,
586 -1, -1, 58, -1, 60, -1, 62, 63, -1, -1,
587 -1, -1, -1, -1, -1, -1, -1, 277, 278, 279,
588 280, 281, 282, 283, 284, 285, 286, 94, 124, 125,
589 -1, -1, -1, -1, -1, 0, 38, 93, 94, 41,
590 -1, 43, 44, 45, 277, 278, 279, 280, 281, 282,
591 283, 284, 285, 286, -1, -1, 58, 124, 60, -1,
592 62, 63, -1, -1, -1, 0, -1, -1, 124, 125,
593 -1, -1, 277, 38, -1, -1, 41, -1, 43, 44,
594 45, -1, -1, -1, -1, -1, -1, -1, 23, -1,
595 -1, 93, 94, 58, -1, 60, -1, 62, 63, -1,
596 -1, -1, -1, -1, -1, 0, -1, -1, -1, -1,
597 -1, -1, 277, 278, 279, 280, 281, 282, 283, 284,
598 285, 286, 124, 125, -1, -1, -1, -1, 93, 94,
599 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
600 75, -1, 0, 38, -1, -1, 41, -1, 43, 44,
601 45, -1, -1, -1, -1, -1, -1, -1, -1, 124,
602 125, -1, -1, 58, -1, 60, 101, 62, 63, 104,
603 -1, 106, -1, -1, -1, -1, -1, -1, -1, -1,
604 38, 277, 278, 41, -1, -1, 44, -1, -1, -1,
605 -1, -1, -1, -1, 129, -1, 0, -1, 93, 94,
606 58, -1, 60, 138, 62, 63, -1, -1, 143, -1,
607 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
608 155, 277, 278, 279, 280, 281, 282, 283, 284, 124,
609 125, -1, -1, -1, 38, 93, 94, 41, -1, -1,
610 44, -1, -1, -1, -1, -1, -1, 0, -1, 184,
611 -1, -1, -1, -1, 58, -1, 60, -1, 62, 63,
612 -1, -1, -1, -1, -1, -1, 124, 125, -1, -1,
613 -1, -1, -1, -1, -1, 277, 278, 279, 280, 281,
614 282, 283, 284, -1, 0, 38, -1, -1, 41, 93,
615 94, 44, -1, -1, -1, -1, -1, -1, -1, -1,
616 -1, -1, -1, -1, -1, 58, -1, 60, -1, 62,
617 63, -1, 277, 278, 279, 280, 281, 282, 283, 284,
618 124, 125, 38, -1, -1, 41, -1, -1, 44, -1,
619 -1, -1, -1, -1, -1, 0, -1, -1, -1, -1,
620 93, 94, 58, -1, 60, -1, 62, 63, -1, -1,
621 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
622 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
623 -1, 124, 125, 38, 0, -1, 41, 93, 94, 44,
624 -1, -1, 277, 278, 279, 280, 281, 282, 283, 284,
625 -1, -1, -1, 58, -1, 60, -1, 62, 63, -1,
626 -1, -1, -1, -1, -1, -1, -1, 0, 124, 125,
627 -1, -1, 38, -1, -1, 41, -1, -1, 44, 277,
628 278, 279, 280, 281, 282, 283, 284, -1, 93, 94,
629 -1, -1, 58, -1, 60, -1, 62, 63, -1, -1,
630 -1, -1, -1, 0, -1, -1, -1, -1, 41, -1,
631 0, 44, -1, -1, -1, -1, -1, -1, -1, 124,
632 125, -1, -1, -1, -1, 58, -1, 93, 94, -1,
633 63, -1, -1, 277, 278, 279, 280, 281, 282, 283,
634 284, 38, -1, -1, 41, -1, -1, 44, 38, -1,
635 -1, 41, -1, -1, 44, -1, -1, 0, 124, 125,
636 93, 58, -1, 60, -1, 62, 63, -1, 58, -1,
637 -1, -1, -1, 63, -1, 0, -1, -1, -1, -1,
638 -1, -1, -1, -1, 277, 278, 279, 280, 281, 282,
639 283, 284, 125, -1, -1, 38, 93, 94, 41, 0,
640 -1, 44, -1, 93, 94, -1, -1, -1, 0, -1,
641 -1, -1, -1, 38, -1, 58, 41, -1, -1, 44,
642 63, 277, 278, 279, 280, 281, 282, 124, 125, -1,
643 -1, -1, -1, 58, 124, 125, -1, 38, 63, -1,
644 41, -1, -1, 44, -1, 0, 38, 0, -1, 41,
645 93, 94, 44, -1, -1, -1, -1, 58, -1, -1,
646 -1, -1, 63, -1, -1, -1, 58, -1, 93, 94,
647 -1, 63, 277, 278, 279, 280, 281, 282, -1, -1,
648 -1, 124, 125, -1, 0, -1, 41, -1, 41, 44,
649 -1, 44, 93, 94, -1, -1, -1, -1, -1, 124,
650 125, 93, 94, 58, -1, 58, -1, -1, 63, -1,
651 63, 277, 278, 279, 280, 281, 282, -1, -1, -1,
652 -1, -1, -1, 124, 125, 41, -1, -1, 44, -1,
653 -1, -1, 124, 125, 0, -1, -1, -1, 93, 94,
654 93, 94, 58, -1, 277, 278, -1, 63, 33, -1,
655 -1, -1, -1, -1, -1, 40, -1, 42, 43, -1,
656 45, -1, -1, -1, -1, -1, -1, -1, -1, 124,
657 125, 124, 125, -1, -1, 41, -1, 93, 44, -1,
658 277, 278, 279, 280, 281, 282, -1, 277, 278, 279,
659 280, 33, 58, -1, -1, -1, -1, 63, 40, -1,
660 42, 43, -1, 45, -1, -1, -1, -1, -1, 125,
661 -1, 33, -1, -1, -1, -1, -1, -1, 40, -1,
662 42, 43, -1, 45, -1, -1, -1, 93, -1, -1,
663 -1, -1, -1, -1, 277, 278, 279, 280, 123, -1,
664 -1, 126, -1, -1, -1, -1, -1, -1, -1, -1,
665 -1, 93, 277, 278, 279, 280, 33, -1, -1, 125,
666 -1, -1, -1, 40, -1, 42, 43, -1, 45, -1,
667 -1, -1, -1, -1, -1, -1, 277, 278, -1, -1,
668 -1, 123, -1, -1, 126, 277, 278, -1, -1, -1,
669 37, 38, -1, -1, 41, 42, 43, -1, 45, -1,
670 47, 123, -1, -1, 126, -1, -1, -1, -1, -1,
671 -1, -1, -1, 60, -1, 62, 63, -1, -1, 0,
672 -1, -1, 277, 278, 277, 278, -1, -1, -1, -1,
673 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
674 -1, -1, 23, -1, -1, -1, 123, 94, -1, 126,
675 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
676 -1, 277, 278, -1, -1, -1, -1, -1, -1, 50,
677 -1, -1, 257, 258, 259, 260, 261, 124, 263, -1,
678 265, 266, 267, 268, 269, 270, 271, 272, 273, -1,
679 275, 276, -1, -1, 75, -1, -1, -1, -1, -1,
680 285, 286, -1, -1, -1, -1, -1, -1, -1, -1,
681 -1, 277, -1, -1, -1, 257, 258, 259, 260, 261,
682 101, 263, -1, 104, -1, 106, -1, -1, 109, -1,
683 -1, 273, -1, 275, 276, 257, 258, 259, 260, 261,
684 -1, 263, 0, 285, 286, -1, -1, -1, 129, -1,
685 -1, 273, -1, 275, 276, -1, -1, 138, -1, -1,
686 141, -1, 143, 285, 286, 23, 0, -1, -1, -1,
687 -1, -1, -1, -1, 155, -1, -1, -1, -1, -1,
688 257, 258, 259, 260, 261, -1, 263, -1, -1, 23,
689 -1, -1, 50, -1, -1, -1, 273, -1, 275, 276,
690 -1, 182, -1, 184, -1, -1, -1, -1, 285, 286,
691 -1, -1, -1, 194, -1, -1, 50, 75, -1, -1,
692 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
693 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
694 -1, 75, -1, 101, -1, -1, 104, -1, 106, -1,
695 -1, 109, -1, -1, -1, -1, -1, -1, -1, -1,
696 -1, -1, -1, -1, -1, -1, -1, 101, -1, -1,
697 104, 129, 106, -1, -1, 109, -1, -1, -1, -1,
698 138, -1, -1, 141, -1, 143, -1, -1, -1, -1,
699 -1, -1, -1, -1, -1, 129, -1, 155, -1, -1,
700 -1, -1, -1, -1, 138, -1, -1, 141, -1, 143,
701 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
702 -1, 155, -1, -1, 182, -1, 184, -1, -1, -1,
703 -1, -1, -1, -1, -1, -1, 194, -1, -1, -1,
704 -1, -1, -1, -1, -1, -1, -1, -1, 182, -1,
705 184, -1, -1, -1, -1, -1, -1, -1, -1, -1,
706 194,
707};
708#define YYFINAL27 27
709#ifndef YYDEBUG1
710#define YYDEBUG1 0
711#endif
712#define YYMAXTOKEN286 286
713#if YYDEBUG1
714const char * const yynamejava_name[] =
715 {
716"end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
717"'!'",0,0,0,"'%'","'&'",0,"'('","')'","'*'","'+'","','","'-'","'.'","'/'",0,0,0,
7180,0,0,0,0,0,0,"':'",0,"'<'","'='","'>'","'?'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
7190,0,0,0,0,0,0,0,0,0,"'['",0,"']'","'^'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
7200,0,0,0,0,0,0,0,"'{'","'|'","'}'","'~'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
7210,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
7220,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
7230,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"INTEGER_LITERAL",
724"FLOATING_POINT_LITERAL","IDENTIFIER","STRING_LITERAL","BOOLEAN_LITERAL",
725"TYPENAME","NAME_OR_INT","ERROR","LONG","SHORT","BYTE","INT","CHAR","BOOLEAN",
726"DOUBLE","FLOAT","VARIABLE","ASSIGN_MODIFY","SUPER","NEW","OROR","ANDAND",
727"EQUAL","NOTEQUAL","LEQ","GEQ","LSH","RSH","INCREMENT","DECREMENT",
728};
729const char * const yyrulejava_rule[] =
730 {"$accept : start",
731"start : exp1",
732"start : type_exp",
733"type_exp : PrimitiveOrArrayType",
734"PrimitiveOrArrayType : PrimitiveType",
735"PrimitiveOrArrayType : ArrayType",
736"StringLiteral : STRING_LITERAL",
737"Literal : INTEGER_LITERAL",
738"Literal : NAME_OR_INT",
739"Literal : FLOATING_POINT_LITERAL",
740"Literal : BOOLEAN_LITERAL",
741"Literal : StringLiteral",
742"PrimitiveType : NumericType",
743"PrimitiveType : BOOLEAN",
744"NumericType : IntegralType",
745"NumericType : FloatingPointType",
746"IntegralType : BYTE",
747"IntegralType : SHORT",
748"IntegralType : INT",
749"IntegralType : LONG",
750"IntegralType : CHAR",
751"FloatingPointType : FLOAT",
752"FloatingPointType : DOUBLE",
753"ClassOrInterfaceType : Name",
754"ClassType : ClassOrInterfaceType",
755"ArrayType : PrimitiveType Dims",
756"ArrayType : Name Dims",
757"Name : IDENTIFIER",
758"Name : QualifiedName",
759"ForcedName : SimpleName",
760"ForcedName : QualifiedName",
761"SimpleName : IDENTIFIER",
762"SimpleName : NAME_OR_INT",
763"QualifiedName : Name '.' SimpleName",
764"exp1 : Expression",
765"exp1 : exp1 ',' Expression",
766"Primary : PrimaryNoNewArray",
767"Primary : ArrayCreationExpression",
768"PrimaryNoNewArray : Literal",
769"PrimaryNoNewArray : '(' Expression ')'",
770"PrimaryNoNewArray : ClassInstanceCreationExpression",
771"PrimaryNoNewArray : FieldAccess",
772"PrimaryNoNewArray : MethodInvocation",
773"PrimaryNoNewArray : ArrayAccess",
774"PrimaryNoNewArray : lcurly ArgumentList rcurly",
775"lcurly : '{'",
776"rcurly : '}'",
777"ClassInstanceCreationExpression : NEW ClassType '(' ArgumentList_opt ')'",
778"ArgumentList : Expression",
779"ArgumentList : ArgumentList ',' Expression",
780"ArgumentList_opt :",
781"ArgumentList_opt : ArgumentList",
782"ArrayCreationExpression : NEW PrimitiveType DimExprs Dims_opt",
783"ArrayCreationExpression : NEW ClassOrInterfaceType DimExprs Dims_opt",
784"DimExprs : DimExpr",
785"DimExprs : DimExprs DimExpr",
786"DimExpr : '[' Expression ']'",
787"Dims : '[' ']'",
788"Dims : Dims '[' ']'",
789"Dims_opt : Dims",
790"Dims_opt :",
791"FieldAccess : Primary '.' SimpleName",
792"FieldAccess : VARIABLE '.' SimpleName",
793"FuncStart : Name '('",
794"$$1 :",
795"MethodInvocation : FuncStart $$1 ArgumentList_opt ')'",
796"MethodInvocation : Primary '.' SimpleName '(' ArgumentList_opt ')'",
797"MethodInvocation : SUPER '.' SimpleName '(' ArgumentList_opt ')'",
798"ArrayAccess : Name '[' Expression ']'",
799"ArrayAccess : VARIABLE '[' Expression ']'",
800"ArrayAccess : PrimaryNoNewArray '[' Expression ']'",
801"PostfixExpression : Primary",
802"PostfixExpression : Name",
803"PostfixExpression : VARIABLE",
804"PostfixExpression : PostIncrementExpression",
805"PostfixExpression : PostDecrementExpression",
806"PostIncrementExpression : PostfixExpression INCREMENT",
807"PostDecrementExpression : PostfixExpression DECREMENT",
808"UnaryExpression : PreIncrementExpression",
809"UnaryExpression : PreDecrementExpression",
810"UnaryExpression : '+' UnaryExpression",
811"UnaryExpression : '-' UnaryExpression",
812"UnaryExpression : '*' UnaryExpression",
813"UnaryExpression : UnaryExpressionNotPlusMinus",
814"PreIncrementExpression : INCREMENT UnaryExpression",
815"PreDecrementExpression : DECREMENT UnaryExpression",
816"UnaryExpressionNotPlusMinus : PostfixExpression",
817"UnaryExpressionNotPlusMinus : '~' UnaryExpression",
818"UnaryExpressionNotPlusMinus : '!' UnaryExpression",
819"UnaryExpressionNotPlusMinus : CastExpression",
820"CastExpression : '(' PrimitiveType Dims_opt ')' UnaryExpression",
821"CastExpression : '(' Expression ')' UnaryExpressionNotPlusMinus",
822"CastExpression : '(' Name Dims ')' UnaryExpressionNotPlusMinus",
823"MultiplicativeExpression : UnaryExpression",
824"MultiplicativeExpression : MultiplicativeExpression '*' UnaryExpression",
825"MultiplicativeExpression : MultiplicativeExpression '/' UnaryExpression",
826"MultiplicativeExpression : MultiplicativeExpression '%' UnaryExpression",
827"AdditiveExpression : MultiplicativeExpression",
828"AdditiveExpression : AdditiveExpression '+' MultiplicativeExpression",
829"AdditiveExpression : AdditiveExpression '-' MultiplicativeExpression",
830"ShiftExpression : AdditiveExpression",
831"ShiftExpression : ShiftExpression LSH AdditiveExpression",
832"ShiftExpression : ShiftExpression RSH AdditiveExpression",
833"RelationalExpression : ShiftExpression",
834"RelationalExpression : RelationalExpression '<' ShiftExpression",
835"RelationalExpression : RelationalExpression '>' ShiftExpression",
836"RelationalExpression : RelationalExpression LEQ ShiftExpression",
837"RelationalExpression : RelationalExpression GEQ ShiftExpression",
838"EqualityExpression : RelationalExpression",
839"EqualityExpression : EqualityExpression EQUAL RelationalExpression",
840"EqualityExpression : EqualityExpression NOTEQUAL RelationalExpression",
841"AndExpression : EqualityExpression",
842"AndExpression : AndExpression '&' EqualityExpression",
843"ExclusiveOrExpression : AndExpression",
844"ExclusiveOrExpression : ExclusiveOrExpression '^' AndExpression",
845"InclusiveOrExpression : ExclusiveOrExpression",
846"InclusiveOrExpression : InclusiveOrExpression '|' ExclusiveOrExpression",
847"ConditionalAndExpression : InclusiveOrExpression",
848"ConditionalAndExpression : ConditionalAndExpression ANDAND InclusiveOrExpression",
849"ConditionalOrExpression : ConditionalAndExpression",
850"ConditionalOrExpression : ConditionalOrExpression OROR ConditionalAndExpression",
851"ConditionalExpression : ConditionalOrExpression",
852"ConditionalExpression : ConditionalOrExpression '?' Expression ':' ConditionalExpression",
853"AssignmentExpression : ConditionalExpression",
854"AssignmentExpression : Assignment",
855"Assignment : LeftHandSide '=' ConditionalExpression",
856"Assignment : LeftHandSide ASSIGN_MODIFY ConditionalExpression",
857"LeftHandSide : ForcedName",
858"LeftHandSide : VARIABLE",
859"LeftHandSide : FieldAccess",
860"LeftHandSide : ArrayAccess",
861"Expression : AssignmentExpression",
862};
863#endif
864#ifdef YYSTACKSIZE10000
865#undef YYMAXDEPTH10000
866#define YYMAXDEPTH10000 YYSTACKSIZE10000
867#else
868#ifdef YYMAXDEPTH10000
869#define YYSTACKSIZE10000 YYMAXDEPTH10000
870#else
871#define YYSTACKSIZE10000 10000
872#define YYMAXDEPTH10000 10000
873#endif
874#endif
875#define YYINITSTACKSIZE200 200
876/* LINTUSED */
877int yydebugjava_debug;
878int yynerrsjava_nerrs;
879int yyerrflagjava_errflag;
880int yycharjava_char;
881short *yyssp;
882YYSTYPE *yyvsp;
883YYSTYPE yyvaljava_val;
884YYSTYPE yylvaljava_lval;
885short *yyss;
886short *yysslim;
887YYSTYPE *yyvs;
888unsigned int yystacksize;
889int yyparsejava_parse(void);
890#line 686 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
891/* Take care of parsing a number (anything that starts with a digit).
892 Set yylval and return the token type; update lexptr.
893 LEN is the number of characters in it. */
894
895/*** Needs some error checking for the float case ***/
896
897static int
898parse_number (p, len, parsed_float, putithere)
899 char *p;
900 int len;
901 int parsed_float;
902 YYSTYPE *putithere;
903{
904 ULONGESTunsigned long n = 0;
905 ULONGESTunsigned long limit, limit_div_base;
906
907 int c;
908 int base = input_radix;
909
910 struct type *type;
911
912 if (parsed_float
34.1
'parsed_float' is 0
)
35
Taking false branch
913 {
914 /* It's a float since it contains a point or an exponent. */
915 char c;
916 int num = 0; /* number of tokens scanned by scanf */
917 char saved_char = p[len];
918
919 p[len] = 0; /* null-terminate the token */
920 if (sizeof (putithere->typed_val_float.dval) <= sizeof (float))
921 num = sscanf (p, "%g%c", (float *) &putithere->typed_val_float.dval, &c);
922 else if (sizeof (putithere->typed_val_float.dval) <= sizeof (double))
923 num = sscanf (p, "%lg%c", (double *) &putithere->typed_val_float.dval, &c);
924 else
925 {
926#ifdef SCANF_HAS_LONG_DOUBLE1
927 num = sscanf (p, "%Lg%c", &putithere->typed_val_float.dval, &c);
928#else
929 /* Scan it into a double, then assign it to the long double.
930 This at least wins with values representable in the range
931 of doubles. */
932 double temp;
933 num = sscanf (p, "%lg%c", &temp, &c);
934 putithere->typed_val_float.dval = temp;
935#endif
936 }
937 p[len] = saved_char; /* restore the input stream */
938 if (num != 1) /* check scanf found ONLY a float ... */
939 return ERROR264;
940 /* See if it has `f' or `d' suffix (float or double). */
941
942 c = tolower (p[len - 1]);
943
944 if (c == 'f' || c == 'F')
945 putithere->typed_val_float.type = builtin_type_float;
946 else if (isdigit (c) || c == '.' || c == 'd' || c == 'D')
947 putithere->typed_val_float.type = builtin_type_double;
948 else
949 return ERROR264;
950
951 return FLOATING_POINT_LITERAL258;
952 }
953
954 /* Handle base-switching prefixes 0x, 0t, 0d, 0 */
955 if (p[0] == '0')
36
Assuming the condition is false
37
Taking false branch
956 switch (p[1])
957 {
958 case 'x':
959 case 'X':
960 if (len >= 3)
961 {
962 p += 2;
963 base = 16;
964 len -= 2;
965 }
966 break;
967
968 case 't':
969 case 'T':
970 case 'd':
971 case 'D':
972 if (len >= 3)
973 {
974 p += 2;
975 base = 10;
976 len -= 2;
977 }
978 break;
979
980 default:
981 base = 8;
982 break;
983 }
984
985 c = p[len-1];
986 /* A paranoid calculation of (1<<64)-1. */
987 limit = (ULONGESTunsigned long)0xffffffff;
988 limit = ((limit << 16) << 16) | limit;
989 if (c == 'l' || c == 'L')
38
Assuming the condition is false
39
Assuming the condition is false
40
Taking false branch
990 {
991 type = java_long_type;
992 len--;
993 }
994 else
995 {
996 type = java_int_type;
997 }
998 limit_div_base = limit / (ULONGESTunsigned long) base;
999
1000 while (--len >= 0)
41
Assuming the condition is true
42
Loop condition is true. Entering loop body
1001 {
1002 c = *p++;
1003 if (c >= '0' && c <= '9')
43
Assuming the condition is false
1004 c -= '0';
1005 else if (c >= 'A' && c <= 'Z')
1006 c -= 'A' - 10;
1007 else if (c >= 'a' && c <= 'z')
1008 c -= 'a' - 10;
1009 else
1010 return ERROR264; /* Char not a digit */
44
Returning without writing to 'putithere->typed_val_int.type'
1011 if (c >= base)
1012 return ERROR264;
1013 if (n > limit_div_base
1014 || (n *= base) > limit - c)
1015 error (_("Numeric constant too large")("Numeric constant too large"));
1016 n += c;
1017 }
1018
1019 /* If the type is bigger than a 32-bit signed integer can be, implicitly
1020 promote to long. Java does not do this, so mark it as builtin_type_uint64
1021 rather than java_long_type. 0x80000000 will become -0x80000000 instead
1022 of 0x80000000L, because we don't know the sign at this point.
1023 */
1024 if (type == java_int_type && n > (ULONGESTunsigned long)0x80000000)
1025 type = builtin_type_uint64;
1026
1027 putithere->typed_val_int.val = n;
1028 putithere->typed_val_int.type = type;
1029
1030 return INTEGER_LITERAL257;
1031}
1032
1033struct token
1034{
1035 char *operator;
1036 int token;
1037 enum exp_opcode opcode;
1038};
1039
1040static const struct token tokentab3[] =
1041 {
1042 {">>=", ASSIGN_MODIFY274, BINOP_RSH},
1043 {"<<=", ASSIGN_MODIFY274, BINOP_LSH}
1044 };
1045
1046static const struct token tokentab2[] =
1047 {
1048 {"+=", ASSIGN_MODIFY274, BINOP_ADD},
1049 {"-=", ASSIGN_MODIFY274, BINOP_SUB},
1050 {"*=", ASSIGN_MODIFY274, BINOP_MUL},
1051 {"/=", ASSIGN_MODIFY274, BINOP_DIV},
1052 {"%=", ASSIGN_MODIFY274, BINOP_REM},
1053 {"|=", ASSIGN_MODIFY274, BINOP_BITWISE_IOR},
1054 {"&=", ASSIGN_MODIFY274, BINOP_BITWISE_AND},
1055 {"^=", ASSIGN_MODIFY274, BINOP_BITWISE_XOR},
1056 {"++", INCREMENT285, BINOP_END},
1057 {"--", DECREMENT286, BINOP_END},
1058 {"&&", ANDAND278, BINOP_END},
1059 {"||", OROR277, BINOP_END},
1060 {"<<", LSH283, BINOP_END},
1061 {">>", RSH284, BINOP_END},
1062 {"==", EQUAL279, BINOP_END},
1063 {"!=", NOTEQUAL280, BINOP_END},
1064 {"<=", LEQ281, BINOP_END},
1065 {">=", GEQ282, BINOP_END}
1066 };
1067
1068/* Read one token, getting characters through lexptr. */
1069
1070static int
1071yylexjava_lex ()
1072{
1073 int c;
1074 int namelen;
1075 unsigned int i;
1076 char *tokstart;
1077 char *tokptr;
1078 int tempbufindex;
1079 static char *tempbuf;
1080 static int tempbufsize;
1081
1082 retry:
1083
1084 prev_lexptr = lexptr;
1085
1086 tokstart = lexptr;
1087 /* See if it is a special token of length 3. */
1088 for (i = 0; i < sizeof tokentab3 / sizeof tokentab3[0]; i++)
1089 if (strncmp (tokstart, tokentab3[i].operator, 3) == 0)
1090 {
1091 lexptr += 3;
1092 yylvaljava_lval.opcode = tokentab3[i].opcode;
1093 return tokentab3[i].token;
1094 }
1095
1096 /* See if it is a special token of length 2. */
1097 for (i = 0; i < sizeof tokentab2 / sizeof tokentab2[0]; i++)
1098 if (strncmp (tokstart, tokentab2[i].operator, 2) == 0)
1099 {
1100 lexptr += 2;
1101 yylvaljava_lval.opcode = tokentab2[i].opcode;
1102 return tokentab2[i].token;
1103 }
1104
1105 switch (c = *tokstart)
1106 {
1107 case 0:
1108 return 0;
1109
1110 case ' ':
1111 case '\t':
1112 case '\n':
1113 lexptr++;
1114 goto retry;
1115
1116 case '\'':
1117 /* We either have a character constant ('0' or '\177' for example)
1118 or we have a quoted symbol reference ('foo(int,int)' in C++
1119 for example). */
1120 lexptr++;
1121 c = *lexptr++;
1122 if (c == '\\')
1123 c = parse_escape (&lexptr);
1124 else if (c == '\'')
1125 error (_("Empty character constant")("Empty character constant"));
1126
1127 yylvaljava_lval.typed_val_int.val = c;
1128 yylvaljava_lval.typed_val_int.type = java_char_type;
1129
1130 c = *lexptr++;
1131 if (c != '\'')
1132 {
1133 namelen = skip_quoted (tokstart) - tokstart;
1134 if (namelen > 2)
1135 {
1136 lexptr = tokstart + namelen;
1137 if (lexptr[-1] != '\'')
1138 error (_("Unmatched single quote")("Unmatched single quote"));
1139 namelen -= 2;
1140 tokstart++;
1141 goto tryname;
1142 }
1143 error (_("Invalid character constant")("Invalid character constant"));
1144 }
1145 return INTEGER_LITERAL257;
1146
1147 case '(':
1148 paren_depth++;
1149 lexptr++;
1150 return c;
1151
1152 case ')':
1153 if (paren_depth == 0)
1154 return 0;
1155 paren_depth--;
1156 lexptr++;
1157 return c;
1158
1159 case ',':
1160 if (comma_terminates && paren_depth == 0)
1161 return 0;
1162 lexptr++;
1163 return c;
1164
1165 case '.':
1166 /* Might be a floating point number. */
1167 if (lexptr[1] < '0' || lexptr[1] > '9')
1168 goto symbol; /* Nope, must be a symbol. */
1169 /* FALL THRU into number case. */
1170
1171 case '0':
1172 case '1':
1173 case '2':
1174 case '3':
1175 case '4':
1176 case '5':
1177 case '6':
1178 case '7':
1179 case '8':
1180 case '9':
1181 {
1182 /* It's a number. */
1183 int got_dot = 0, got_e = 0, toktype;
1184 char *p = tokstart;
1185 int hex = input_radix > 10;
1186
1187 if (c == '0' && (p[1] == 'x' || p[1] == 'X'))
1188 {
1189 p += 2;
1190 hex = 1;
1191 }
1192 else if (c == '0' && (p[1]=='t' || p[1]=='T' || p[1]=='d' || p[1]=='D'))
1193 {
1194 p += 2;
1195 hex = 0;
1196 }
1197
1198 for (;; ++p)
1199 {
1200 /* This test includes !hex because 'e' is a valid hex digit
1201 and thus does not indicate a floating point number when
1202 the radix is hex. */
1203 if (!hex && !got_e && (*p == 'e' || *p == 'E'))
1204 got_dot = got_e = 1;
1205 /* This test does not include !hex, because a '.' always indicates
1206 a decimal floating point number regardless of the radix. */
1207 else if (!got_dot && *p == '.')
1208 got_dot = 1;
1209 else if (got_e && (p[-1] == 'e' || p[-1] == 'E')
1210 && (*p == '-' || *p == '+'))
1211 /* This is the sign of the exponent, not the end of the
1212 number. */
1213 continue;
1214 /* We will take any letters or digits. parse_number will
1215 complain if past the radix, or if L or U are not final. */
1216 else if ((*p < '0' || *p > '9')
1217 && ((*p < 'a' || *p > 'z')
1218 && (*p < 'A' || *p > 'Z')))
1219 break;
1220 }
1221 toktype = parse_number (tokstart, p - tokstart, got_dot|got_e, &yylvaljava_lval);
1222 if (toktype == ERROR264)
1223 {
1224 char *err_copy = (char *) alloca (p - tokstart + 1)__builtin_alloca(p - tokstart + 1);
1225
1226 memcpy (err_copy, tokstart, p - tokstart);
1227 err_copy[p - tokstart] = 0;
1228 error (_("Invalid number \"%s\"")("Invalid number \"%s\""), err_copy);
1229 }
1230 lexptr = p;
1231 return toktype;
1232 }
1233
1234 case '+':
1235 case '-':
1236 case '*':
1237 case '/':
1238 case '%':
1239 case '|':
1240 case '&':
1241 case '^':
1242 case '~':
1243 case '!':
1244 case '<':
1245 case '>':
1246 case '[':
1247 case ']':
1248 case '?':
1249 case ':':
1250 case '=':
1251 case '{':
1252 case '}':
1253 symbol:
1254 lexptr++;
1255 return c;
1256
1257 case '"':
1258
1259 /* Build the gdb internal form of the input string in tempbuf,
1260 translating any standard C escape forms seen. Note that the
1261 buffer is null byte terminated *only* for the convenience of
1262 debugging gdb itself and printing the buffer contents when
1263 the buffer contains no embedded nulls. Gdb does not depend
1264 upon the buffer being null byte terminated, it uses the length
1265 string instead. This allows gdb to handle C strings (as well
1266 as strings in other languages) with embedded null bytes */
1267
1268 tokptr = ++tokstart;
1269 tempbufindex = 0;
1270
1271 do {
1272 /* Grow the static temp buffer if necessary, including allocating
1273 the first one on demand. */
1274 if (tempbufindex + 1 >= tempbufsize)
1275 {
1276 tempbuf = (char *) xrealloc (tempbuf, tempbufsize += 64);
1277 }
1278 switch (*tokptr)
1279 {
1280 case '\0':
1281 case '"':
1282 /* Do nothing, loop will terminate. */
1283 break;
1284 case '\\':
1285 tokptr++;
1286 c = parse_escape (&tokptr);
1287 if (c == -1)
1288 {
1289 continue;
1290 }
1291 tempbuf[tempbufindex++] = c;
1292 break;
1293 default:
1294 tempbuf[tempbufindex++] = *tokptr++;
1295 break;
1296 }
1297 } while ((*tokptr != '"') && (*tokptr != '\0'));
1298 if (*tokptr++ != '"')
1299 {
1300 error (_("Unterminated string in expression")("Unterminated string in expression"));
1301 }
1302 tempbuf[tempbufindex] = '\0'; /* See note above */
1303 yylvaljava_lval.sval.ptr = tempbuf;
1304 yylvaljava_lval.sval.length = tempbufindex;
1305 lexptr = tokptr;
1306 return (STRING_LITERAL260);
1307 }
1308
1309 if (!(c == '_' || c == '$'
1310 || (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')))
1311 /* We must have come across a bad character (e.g. ';'). */
1312 error (_("Invalid character '%c' in expression")("Invalid character '%c' in expression"), c);
1313
1314 /* It's a name. See how long it is. */
1315 namelen = 0;
1316 for (c = tokstart[namelen];
1317 (c == '_'
1318 || c == '$'
1319 || (c >= '0' && c <= '9')
1320 || (c >= 'a' && c <= 'z')
1321 || (c >= 'A' && c <= 'Z')
1322 || c == '<');
1323 )
1324 {
1325 if (c == '<')
1326 {
1327 int i = namelen;
1328 while (tokstart[++i] && tokstart[i] != '>');
1329 if (tokstart[i] == '>')
1330 namelen = i;
1331 }
1332 c = tokstart[++namelen];
1333 }
1334
1335 /* The token "if" terminates the expression and is NOT
1336 removed from the input stream. */
1337 if (namelen == 2 && tokstart[0] == 'i' && tokstart[1] == 'f')
1338 {
1339 return 0;
1340 }
1341
1342 lexptr += namelen;
1343
1344 tryname:
1345
1346 /* Catch specific keywords. Should be done with a data structure. */
1347 switch (namelen)
1348 {
1349 case 7:
1350 if (DEPRECATED_STREQN (tokstart, "boolean", 7)(strncmp ((tokstart), ("boolean"), (7)) == 0))
1351 return BOOLEAN270;
1352 break;
1353 case 6:
1354 if (DEPRECATED_STREQN (tokstart, "double", 6)(strncmp ((tokstart), ("double"), (6)) == 0))
1355 return DOUBLE271;
1356 break;
1357 case 5:
1358 if (DEPRECATED_STREQN (tokstart, "short", 5)(strncmp ((tokstart), ("short"), (5)) == 0))
1359 return SHORT266;
1360 if (DEPRECATED_STREQN (tokstart, "false", 5)(strncmp ((tokstart), ("false"), (5)) == 0))
1361 {
1362 yylvaljava_lval.lval = 0;
1363 return BOOLEAN_LITERAL261;
1364 }
1365 if (DEPRECATED_STREQN (tokstart, "super", 5)(strncmp ((tokstart), ("super"), (5)) == 0))
1366 return SUPER275;
1367 if (DEPRECATED_STREQN (tokstart, "float", 5)(strncmp ((tokstart), ("float"), (5)) == 0))
1368 return FLOAT272;
1369 break;
1370 case 4:
1371 if (DEPRECATED_STREQN (tokstart, "long", 4)(strncmp ((tokstart), ("long"), (4)) == 0))
1372 return LONG265;
1373 if (DEPRECATED_STREQN (tokstart, "byte", 4)(strncmp ((tokstart), ("byte"), (4)) == 0))
1374 return BYTE267;
1375 if (DEPRECATED_STREQN (tokstart, "char", 4)(strncmp ((tokstart), ("char"), (4)) == 0))
1376 return CHAR269;
1377 if (DEPRECATED_STREQN (tokstart, "true", 4)(strncmp ((tokstart), ("true"), (4)) == 0))
1378 {
1379 yylvaljava_lval.lval = 1;
1380 return BOOLEAN_LITERAL261;
1381 }
1382 break;
1383 case 3:
1384 if (strncmp (tokstart, "int", 3) == 0)
1385 return INT268;
1386 if (strncmp (tokstart, "new", 3) == 0)
1387 return NEW276;
1388 break;
1389 default:
1390 break;
1391 }
1392
1393 yylvaljava_lval.sval.ptr = tokstart;
1394 yylvaljava_lval.sval.length = namelen;
1395
1396 if (*tokstart == '$')
1397 {
1398 write_dollar_variable (yylvaljava_lval.sval);
1399 return VARIABLE273;
1400 }
1401
1402 /* Input names that aren't symbols but ARE valid hex numbers,
1403 when the input radix permits them, can be names or numbers
1404 depending on the parse. Note we support radixes > 16 here. */
1405 if (((tokstart[0] >= 'a' && tokstart[0] < 'a' + input_radix - 10) ||
1406 (tokstart[0] >= 'A' && tokstart[0] < 'A' + input_radix - 10)))
1407 {
1408 YYSTYPE newlval; /* Its value is ignored. */
1409 int hextype = parse_number (tokstart, namelen, 0, &newlval);
1410 if (hextype == INTEGER_LITERAL257)
1411 return NAME_OR_INT263;
1412 }
1413 return IDENTIFIER259;
1414}
1415
1416void
1417yyerrorjava_error (msg)
1418 char *msg;
1419{
1420 if (prev_lexptr)
1421 lexptr = prev_lexptr;
1422
1423 if (msg)
1424 error (_("%s: near `%s'")("%s: near `%s'"), msg, lexptr);
1425 else
1426 error (_("error in expression, near `%s'")("error in expression, near `%s'"), lexptr);
1427}
1428
1429static struct type *
1430java_type_from_name (name)
1431 struct stoken name;
1432
1433{
1434 char *tmp = copy_name (name);
1435 struct type *typ = java_lookup_class (tmp);
1436 if (typ == NULL((void*)0) || TYPE_CODE (typ)(typ)->main_type->code != TYPE_CODE_STRUCT)
1437 error (_("No class named `%s'")("No class named `%s'"), tmp);
1438 return typ;
1439}
1440
1441/* If NAME is a valid variable name in this scope, push it and return 1.
1442 Otherwise, return 0. */
1443
1444static int
1445push_variable (struct stoken name)
1446{
1447 char *tmp = copy_name (name);
1448 int is_a_field_of_this = 0;
1449 struct symbol *sym;
1450 sym = lookup_symbol (tmp, expression_context_block, VAR_DOMAIN,
1451 &is_a_field_of_this, (struct symtab **) NULL((void*)0));
1452 if (sym && SYMBOL_CLASS (sym)(sym)->aclass != LOC_TYPEDEF)
1453 {
1454 if (symbol_read_needs_frame (sym))
1455 {
1456 if (innermost_block == 0 ||
1457 contained_in (block_found, innermost_block))
1458 innermost_block = block_found;
1459 }
1460
1461 write_exp_elt_opcode (OP_VAR_VALUE);
1462 /* We want to use the selected frame, not another more inner frame
1463 which happens to be in the same block. */
1464 write_exp_elt_block (NULL((void*)0));
1465 write_exp_elt_sym (sym);
1466 write_exp_elt_opcode (OP_VAR_VALUE);
1467 return 1;
1468 }
1469 if (is_a_field_of_this)
1470 {
1471 /* it hangs off of `this'. Must not inadvertently convert from a
1472 method call to data ref. */
1473 if (innermost_block == 0 ||
1474 contained_in (block_found, innermost_block))
1475 innermost_block = block_found;
1476 write_exp_elt_opcode (OP_THIS);
1477 write_exp_elt_opcode (OP_THIS);
1478 write_exp_elt_opcode (STRUCTOP_PTR);
1479 write_exp_string (name);
1480 write_exp_elt_opcode (STRUCTOP_PTR);
1481 return 1;
1482 }
1483 return 0;
1484}
1485
1486/* Assuming a reference expression has been pushed, emit the
1487 STRUCTOP_STRUCT ops to access the field named NAME. If NAME is a
1488 qualified name (has '.'), generate a field access for each part. */
1489
1490static void
1491push_fieldnames (name)
1492 struct stoken name;
1493{
1494 int i;
1495 struct stoken token;
1496 token.ptr = name.ptr;
1497 for (i = 0; ; i++)
1498 {
1499 if (i == name.length || name.ptr[i] == '.')
1500 {
1501 /* token.ptr is start of current field name. */
1502 token.length = &name.ptr[i] - token.ptr;
1503 write_exp_elt_opcode (STRUCTOP_STRUCT);
1504 write_exp_string (token);
1505 write_exp_elt_opcode (STRUCTOP_STRUCT);
1506 token.ptr += token.length + 1;
1507 }
1508 if (i >= name.length)
1509 break;
1510 }
1511}
1512
1513/* Helper routine for push_expression_name.
1514 Handle a qualified name, where DOT_INDEX is the index of the first '.' */
1515
1516static void
1517push_qualified_expression_name (struct stoken name, int dot_index)
1518{
1519 struct stoken token;
1520 char *tmp;
1521 struct type *typ;
1522
1523 token.ptr = name.ptr;
1524 token.length = dot_index;
1525
1526 if (push_variable (token))
1527 {
1528 token.ptr = name.ptr + dot_index + 1;
1529 token.length = name.length - dot_index - 1;
1530 push_fieldnames (token);
1531 return;
1532 }
1533
1534 token.ptr = name.ptr;
1535 for (;;)
1536 {
1537 token.length = dot_index;
1538 tmp = copy_name (token);
1539 typ = java_lookup_class (tmp);
1540 if (typ != NULL((void*)0))
1541 {
1542 if (dot_index == name.length)
1543 {
1544 write_exp_elt_opcode(OP_TYPE);
1545 write_exp_elt_type(typ);
1546 write_exp_elt_opcode(OP_TYPE);
1547 return;
1548 }
1549 dot_index++; /* Skip '.' */
1550 name.ptr += dot_index;
1551 name.length -= dot_index;
1552 dot_index = 0;
1553 while (dot_index < name.length && name.ptr[dot_index] != '.')
1554 dot_index++;
1555 token.ptr = name.ptr;
1556 token.length = dot_index;
1557 write_exp_elt_opcode (OP_SCOPE);
1558 write_exp_elt_type (typ);
1559 write_exp_string (token);
1560 write_exp_elt_opcode (OP_SCOPE);
1561 if (dot_index < name.length)
1562 {
1563 dot_index++;
1564 name.ptr += dot_index;
1565 name.length -= dot_index;
1566 push_fieldnames (name);
1567 }
1568 return;
1569 }
1570 else if (dot_index >= name.length)
1571 break;
1572 dot_index++; /* Skip '.' */
1573 while (dot_index < name.length && name.ptr[dot_index] != '.')
1574 dot_index++;
1575 }
1576 error (_("unknown type `%.*s'")("unknown type `%.*s'"), name.length, name.ptr);
1577}
1578
1579/* Handle Name in an expression (or LHS).
1580 Handle VAR, TYPE, TYPE.FIELD1....FIELDN and VAR.FIELD1....FIELDN. */
1581
1582static void
1583push_expression_name (name)
1584 struct stoken name;
1585{
1586 char *tmp;
1587 struct type *typ;
1588 char *ptr;
1589 int i;
1590
1591 for (i = 0; i < name.length; i++)
1592 {
1593 if (name.ptr[i] == '.')
1594 {
1595 /* It's a Qualified Expression Name. */
1596 push_qualified_expression_name (name, i);
1597 return;
1598 }
1599 }
1600
1601 /* It's a Simple Expression Name. */
1602
1603 if (push_variable (name))
1604 return;
1605 tmp = copy_name (name);
1606 typ = java_lookup_class (tmp);
1607 if (typ != NULL((void*)0))
1608 {
1609 write_exp_elt_opcode(OP_TYPE);
1610 write_exp_elt_type(typ);
1611 write_exp_elt_opcode(OP_TYPE);
1612 }
1613 else
1614 {
1615 struct minimal_symbol *msymbol;
1616
1617 msymbol = lookup_minimal_symbol (tmp, NULL((void*)0), NULL((void*)0));
1618 if (msymbol != NULL((void*)0))
1619 {
1620 write_exp_msymbol (msymbol,
1621 lookup_function_type (builtin_type_int),
1622 builtin_type_int);
1623 }
1624 else if (!have_full_symbols () && !have_partial_symbols ())
1625 error (_("No symbol table is loaded. Use the \"file\" command")("No symbol table is loaded. Use the \"file\" command"));
1626 else
1627 error (_("No symbol \"%s\" in current context")("No symbol \"%s\" in current context"), tmp);
1628 }
1629
1630}
1631
1632
1633/* The following two routines, copy_exp and insert_exp, aren't specific to
1634 Java, so they could go in parse.c, but their only purpose is to support
1635 the parsing kludges we use in this file, so maybe it's best to isolate
1636 them here. */
1637
1638/* Copy the expression whose last element is at index ENDPOS - 1 in EXPR
1639 into a freshly xmalloc'ed struct expression. Its language_defn is set
1640 to null. */
1641static struct expression *
1642copy_exp (expr, endpos)
1643 struct expression *expr;
1644 int endpos;
1645{
1646 int len = length_of_subexp (expr, endpos);
1647 struct expression *new
1648 = (struct expression *) xmalloc (sizeof (*new) + EXP_ELEM_TO_BYTES (len)((len) * sizeof (union exp_element)));
1649 new->nelts = len;
1650 memcpy (new->elts, expr->elts + endpos - len, EXP_ELEM_TO_BYTES (len)((len) * sizeof (union exp_element)));
1651 new->language_defn = 0;
1652
1653 return new;
1654}
1655
1656/* Insert the expression NEW into the current expression (expout) at POS. */
1657static void
1658insert_exp (pos, new)
1659 int pos;
1660 struct expression *new;
1661{
1662 int newlen = new->nelts;
1663
1664 /* Grow expout if necessary. In this function's only use at present,
1665 this should never be necessary. */
1666 if (expout_ptr + newlen > expout_size)
1667 {
1668 expout_size = max (expout_size * 2, expout_ptr + newlen + 10)((expout_size * 2) > (expout_ptr + newlen + 10) ? (expout_size
* 2) : (expout_ptr + newlen + 10))
;
1669 expout = (struct expression *)
1670 xrealloc ((char *) expout, (sizeof (struct expression)
1671 + EXP_ELEM_TO_BYTES (expout_size)((expout_size) * sizeof (union exp_element))));
1672 }
1673
1674 {
1675 int i;
1676
1677 for (i = expout_ptr - 1; i >= pos; i--)
1678 expout->elts[i + newlen] = expout->elts[i];
1679 }
1680
1681 memcpy (expout->elts + pos, new->elts, EXP_ELEM_TO_BYTES (newlen)((newlen) * sizeof (union exp_element)));
1682 expout_ptr += newlen;
1683}
1684/* allocate initial stack or double stack size, up to YYMAXDEPTH */
1685static int yygrowstack(void)
1686{
1687 unsigned int newsize;
1688 long sslen;
1689 short *newss;
1690 YYSTYPE *newvs;
1691
1692 if ((newsize = yystacksize) == 0)
1693 newsize = YYINITSTACKSIZE200;
1694 else if (newsize >= YYMAXDEPTH10000)
1695 return -1;
1696 else if ((newsize *= 2) > YYMAXDEPTH10000)
1697 newsize = YYMAXDEPTH10000;
1698 sslen = yyssp - yyss;
1699#ifdef SIZE_MAX
1700#define YY_SIZE_MAX0xffffffffU SIZE_MAX
1701#else
1702#define YY_SIZE_MAX0xffffffffU 0xffffffffU
1703#endif
1704 if (newsize && YY_SIZE_MAX0xffffffffU / newsize < sizeof *newss)
1705 goto bail;
1706 newss = (short *)xrealloc(yyss, newsize * sizeof *newss);
1707 if (newss == NULL((void*)0))
1708 goto bail;
1709 yyss = newss;
1710 yyssp = newss + sslen;
1711 if (newsize && YY_SIZE_MAX0xffffffffU / newsize < sizeof *newvs)
1712 goto bail;
1713 newvs = (YYSTYPE *)xrealloc(yyvs, newsize * sizeof *newvs);
1714 if (newvs == NULL((void*)0))
1715 goto bail;
1716 yyvs = newvs;
1717 yyvsp = newvs + sslen;
1718 yystacksize = newsize;
1719 yysslim = yyss + newsize - 1;
1720 return 0;
1721bail:
1722 if (yyss)
1723 free(yyss);
1724 if (yyvs)
1725 free(yyvs);
1726 yyss = yyssp = NULL((void*)0);
1727 yyvs = yyvsp = NULL((void*)0);
1728 yystacksize = 0;
1729 return -1;
1730}
1731
1732#define YYABORTgoto yyabort goto yyabort
1733#define YYREJECTgoto yyabort goto yyabort
1734#define YYACCEPTgoto yyaccept goto yyaccept
1735#define YYERRORgoto yyerrlab goto yyerrlab
1736int
1737yyparsejava_parse(void)
1738{
1739 int yym, yyn, yystatejava_state;
1740#if YYDEBUG1
1741 const char *yysjava_s;
1742
1743 if ((yysjava_s = getenv("YYDEBUG")))
1
Assuming 'java_s' is null
2
Taking false branch
1744 {
1745 yyn = *yysjava_s;
1746 if (yyn >= '0' && yyn <= '9')
1747 yydebugjava_debug = yyn - '0';
1748 }
1749#endif /* YYDEBUG */
1750
1751 yynerrsjava_nerrs = 0;
1752 yyerrflagjava_errflag = 0;
1753 yycharjava_char = (-1);
1754
1755 if (yyss == NULL((void*)0) && yygrowstack()) goto yyoverflow;
3
Assuming 'yyss' is not equal to NULL
1756 yyssp = yyss;
1757 yyvsp = yyvs;
1758 *yyssp = yystatejava_state = 0;
1759
1760yyloop:
1761 if ((yyn = yydefredjava_yydefred[yystatejava_state]) != 0) goto yyreduce;
4
Taking false branch
27
Assuming the condition is true
28
Taking true branch
29
Control jumps to line 1864
1762 if (yycharjava_char < 0)
5
Taking true branch
1763 {
1764 if ((yycharjava_char = yylexjava_lex()) < 0) yycharjava_char = 0;
6
Assuming the condition is false
7
Taking false branch
1765#if YYDEBUG1
1766 if (yydebugjava_debug)
8
Assuming 'java_debug' is 0
9
Taking false branch
1767 {
1768 yysjava_s = 0;
1769 if (yycharjava_char <= YYMAXTOKEN286) yysjava_s = yynamejava_name[yycharjava_char];
1770 if (!yysjava_s) yysjava_s = "illegal-symbol";
1771 printf("%sdebug: state %d, reading %d (%s)\n",
1772 YYPREFIX"yy", yystatejava_state, yycharjava_char, yysjava_s);
1773 }
1774#endif
1775 }
1776 if ((yyn = yysindexjava_yysindex[yystatejava_state]) && (yyn += yycharjava_char) >= 0 &&
10
Assuming 'yyn' is not equal to 0
11
Assuming the condition is false
1777 yyn <= YYTABLESIZE2121 && yycheckjava_yycheck[yyn] == yycharjava_char)
1778 {
1779#if YYDEBUG1
1780 if (yydebugjava_debug)
1781 printf("%sdebug: state %d, shifting to state %d\n",
1782 YYPREFIX"yy", yystatejava_state, yytablejava_yytable[yyn]);
1783#endif
1784 if (yyssp >= yysslim && yygrowstack())
1785 {
1786 goto yyoverflow;
1787 }
1788 *++yyssp = yystatejava_state = yytablejava_yytable[yyn];
1789 *++yyvsp = yylvaljava_lval;
1790 yycharjava_char = (-1);
1791 if (yyerrflagjava_errflag > 0) --yyerrflagjava_errflag;
1792 goto yyloop;
1793 }
1794 if ((yyn = yyrindexjava_yyrindex[yystatejava_state]) && (yyn += yycharjava_char) >= 0 &&
12
Assuming 'yyn' is 0
1795 yyn <= YYTABLESIZE2121 && yycheckjava_yycheck[yyn] == yycharjava_char)
1796 {
1797 yyn = yytablejava_yytable[yyn];
1798 goto yyreduce;
1799 }
1800 if (yyerrflagjava_errflag) goto yyinrecovery;
13
Assuming 'java_errflag' is not equal to 0
14
Taking true branch
15
Control jumps to line 1812
1801#if defined(__GNUC__4)
1802 goto yynewerror;
1803#endif
1804yynewerror:
1805 yyerrorjava_error("syntax error");
1806#if defined(__GNUC__4)
1807 goto yyerrlab;
1808#endif
1809yyerrlab:
1810 ++yynerrsjava_nerrs;
1811yyinrecovery:
1812 if (yyerrflagjava_errflag < 3)
16
Assuming 'java_errflag' is < 3
17
Taking true branch
1813 {
1814 yyerrflagjava_errflag = 3;
1815 for (;;)
18
Loop condition is true. Entering loop body
1816 {
1817 if ((yyn = yysindexjava_yysindex[*yyssp]) && (yyn += YYERRCODE256) >= 0 &&
19
Assuming 'yyn' is not equal to 0
20
Assuming the condition is true
23
Taking true branch
1818 yyn <= YYTABLESIZE2121 && yycheckjava_yycheck[yyn] == YYERRCODE256)
21
Assuming 'yyn' is <= YYTABLESIZE
22
Assuming the condition is true
1819 {
1820#if YYDEBUG1
1821 if (yydebugjava_debug)
24
Taking false branch
1822 printf("%sdebug: state %d, error recovery shifting\
1823 to state %d\n", YYPREFIX"yy", *yyssp, yytablejava_yytable[yyn]);
1824#endif
1825 if (yyssp >= yysslim && yygrowstack())
25
Assuming 'yyssp' is < 'yysslim'
1826 {
1827 goto yyoverflow;
1828 }
1829 *++yyssp = yystatejava_state = yytablejava_yytable[yyn];
1830 *++yyvsp = yylvaljava_lval;
1831 goto yyloop;
26
Control jumps to line 1761
1832 }
1833 else
1834 {
1835#if YYDEBUG1
1836 if (yydebugjava_debug)
1837 printf("%sdebug: error recovery discarding state %d\n",
1838 YYPREFIX"yy", *yyssp);
1839#endif
1840 if (yyssp <= yyss) goto yyabort;
1841 --yyssp;
1842 --yyvsp;
1843 }
1844 }
1845 }
1846 else
1847 {
1848 if (yycharjava_char == 0) goto yyabort;
1849#if YYDEBUG1
1850 if (yydebugjava_debug)
1851 {
1852 yysjava_s = 0;
1853 if (yycharjava_char <= YYMAXTOKEN286) yysjava_s = yynamejava_name[yycharjava_char];
1854 if (!yysjava_s) yysjava_s = "illegal-symbol";
1855 printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
1856 YYPREFIX"yy", yystatejava_state, yycharjava_char, yysjava_s);
1857 }
1858#endif
1859 yycharjava_char = (-1);
1860 goto yyloop;
1861 }
1862yyreduce:
1863#if YYDEBUG1
1864 if (yydebugjava_debug)
30
Taking false branch
1865 printf("%sdebug: state %d, reducing by rule %d (%s)\n",
1866 YYPREFIX"yy", yystatejava_state, yyn, yyrulejava_rule[yyn]);
1867#endif
1868 yym = yylenjava_yylen[yyn];
1869 if (yym)
31
Assuming 'yym' is 0
32
Taking false branch
1870 yyvaljava_val = yyvsp[1-yym];
1871 else
1872 memset(&yyvaljava_val, 0, sizeof yyvaljava_val);
1873 switch (yyn)
33
Control jumps to 'case 8:' at line 1898
1874 {
1875case 3:
1876#line 209 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
1877{
1878 write_exp_elt_opcode(OP_TYPE);
1879 write_exp_elt_type(yyvsp[0].tval);
1880 write_exp_elt_opcode(OP_TYPE);
1881 }
1882break;
1883case 6:
1884#line 223 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
1885{
1886 write_exp_elt_opcode (OP_STRING);
1887 write_exp_string (yyvsp[0].sval);
1888 write_exp_elt_opcode (OP_STRING);
1889 }
1890break;
1891case 7:
1892#line 232 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
1893{ write_exp_elt_opcode (OP_LONG);
1894 write_exp_elt_type (yyvsp[0].typed_val_int.type);
1895 write_exp_elt_longcst ((LONGESTlong)(yyvsp[0].typed_val_int.val));
1896 write_exp_elt_opcode (OP_LONG); }
1897break;
1898case 8:
1899#line 237 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
1900{ YYSTYPE val;
1901 parse_number (yyvsp[0].sval.ptr, yyvsp[0].sval.length, 0, &val);
34
Calling 'parse_number'
45
Returning from 'parse_number'
1902 write_exp_elt_opcode (OP_LONG);
1903 write_exp_elt_type (val.typed_val_int.type);
46
1st function call argument is an uninitialized value
1904 write_exp_elt_longcst ((LONGESTlong)val.typed_val_int.val);
1905 write_exp_elt_opcode (OP_LONG);
1906 }
1907break;
1908case 9:
1909#line 245 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
1910{ write_exp_elt_opcode (OP_DOUBLE);
1911 write_exp_elt_type (yyvsp[0].typed_val_float.type);
1912 write_exp_elt_dblcst (yyvsp[0].typed_val_float.dval);
1913 write_exp_elt_opcode (OP_DOUBLE); }
1914break;
1915case 10:
1916#line 250 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
1917{ write_exp_elt_opcode (OP_LONG);
1918 write_exp_elt_type (java_boolean_type);
1919 write_exp_elt_longcst ((LONGESTlong)yyvsp[0].lval);
1920 write_exp_elt_opcode (OP_LONG); }
1921break;
1922case 13:
1923#line 267 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
1924{ yyvaljava_val.tval = java_boolean_type; }
1925break;
1926case 16:
1927#line 277 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
1928{ yyvaljava_val.tval = java_byte_type; }
1929break;
1930case 17:
1931#line 279 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
1932{ yyvaljava_val.tval = java_short_type; }
1933break;
1934case 18:
1935#line 281 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
1936{ yyvaljava_val.tval = java_int_type; }
1937break;
1938case 19:
1939#line 283 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
1940{ yyvaljava_val.tval = java_long_type; }
1941break;
1942case 20:
1943#line 285 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
1944{ yyvaljava_val.tval = java_char_type; }
1945break;
1946case 21:
1947#line 290 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
1948{ yyvaljava_val.tval = java_float_type; }
1949break;
1950case 22:
1951#line 292 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
1952{ yyvaljava_val.tval = java_double_type; }
1953break;
1954case 23:
1955#line 304 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
1956{ yyvaljava_val.tval = java_type_from_name (yyvsp[0].sval); }
1957break;
1958case 25:
1959#line 313 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
1960{ yyvaljava_val.tval = java_array_type (yyvsp[-1].tval, yyvsp[0].lval); }
1961break;
1962case 26:
1963#line 315 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
1964{ yyvaljava_val.tval = java_array_type (java_type_from_name (yyvsp[-1].sval), yyvsp[0].lval); }
1965break;
1966case 33:
1967#line 335 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
1968{ yyvaljava_val.sval.length = yyvsp[-2].sval.length + yyvsp[0].sval.length + 1;
1969 if (yyvsp[-2].sval.ptr + yyvsp[-2].sval.length + 1 == yyvsp[0].sval.ptr
1970 && yyvsp[-2].sval.ptr[yyvsp[-2].sval.length] == '.')
1971 yyvaljava_val.sval.ptr = yyvsp[-2].sval.ptr; /* Optimization. */
1972 else
1973 {
1974 yyvaljava_val.sval.ptr = (char *) xmalloc (yyvaljava_val.sval.length + 1);
1975 make_cleanup (free, yyvaljava_val.sval.ptr);
1976 sprintf (yyvaljava_val.sval.ptr, "%.*s.%.*s",
1977 yyvsp[-2].sval.length, yyvsp[-2].sval.ptr, yyvsp[0].sval.length, yyvsp[0].sval.ptr);
1978 } }
1979break;
1980case 35:
1981#line 359 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
1982{ write_exp_elt_opcode (BINOP_COMMA); }
1983break;
1984case 44:
1985#line 375 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
1986{ write_exp_elt_opcode (OP_ARRAY);
1987 write_exp_elt_longcst ((LONGESTlong) 0);
1988 write_exp_elt_longcst ((LONGESTlong) yyvsp[0].lval);
1989 write_exp_elt_opcode (OP_ARRAY); }
1990break;
1991case 45:
1992#line 383 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
1993{ start_arglist (); }
1994break;
1995case 46:
1996#line 388 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
1997{ yyvaljava_val.lval = end_arglist () - 1; }
1998break;
1999case 47:
2000#line 393 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2001{ internal_error (__FILE__"/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y", __LINE__393,
2002 _("FIXME - ClassInstanceCreationExpression")("FIXME - ClassInstanceCreationExpression")); }
2003break;
2004case 48:
2005#line 399 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2006{ arglist_len = 1; }
2007break;
2008case 49:
2009#line 401 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2010{ arglist_len++; }
2011break;
2012case 50:
2013#line 406 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2014{ arglist_len = 0; }
2015break;
2016case 52:
2017#line 412 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2018{ internal_error (__FILE__"/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y", __LINE__412,
2019 _("FIXME - ArrayCreationExpression")("FIXME - ArrayCreationExpression")); }
2020break;
2021case 53:
2022#line 415 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2023{ internal_error (__FILE__"/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y", __LINE__415,
2024 _("FIXME - ArrayCreationExpression")("FIXME - ArrayCreationExpression")); }
2025break;
2026case 57:
2027#line 430 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2028{ yyvaljava_val.lval = 1; }
2029break;
2030case 58:
2031#line 432 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2032{ yyvaljava_val.lval = yyvsp[-2].lval + 1; }
2033break;
2034case 60:
2035#line 438 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2036{ yyvaljava_val.lval = 0; }
2037break;
2038case 61:
2039#line 443 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2040{ push_fieldnames (yyvsp[0].sval); }
2041break;
2042case 62:
2043#line 445 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2044{ push_fieldnames (yyvsp[0].sval); }
2045break;
2046case 63:
2047#line 451 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2048{ push_expression_name (yyvsp[-1].sval); }
2049break;
2050case 64:
2051#line 456 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2052{ start_arglist(); }
2053break;
2054case 65:
2055#line 458 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2056{ write_exp_elt_opcode (OP_FUNCALL);
2057 write_exp_elt_longcst ((LONGESTlong) end_arglist ());
2058 write_exp_elt_opcode (OP_FUNCALL); }
2059break;
2060case 66:
2061#line 462 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2062{ error (_("Form of method invocation not implemented")("Form of method invocation not implemented")); }
2063break;
2064case 67:
2065#line 464 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2066{ error (_("Form of method invocation not implemented")("Form of method invocation not implemented")); }
2067break;
2068case 68:
2069#line 469 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2070{
2071 /* Emit code for the Name now, then exchange it in the
2072 expout array with the Expression's code. We could
2073 introduce a OP_SWAP code or a reversed version of
2074 BINOP_SUBSCRIPT, but that makes the rest of GDB pay
2075 for our parsing kludges. */
2076 struct expression *name_expr;
2077
2078 push_expression_name (yyvsp[-3].sval);
2079 name_expr = copy_exp (expout, expout_ptr);
2080 expout_ptr -= name_expr->nelts;
2081 insert_exp (expout_ptr-length_of_subexp (expout, expout_ptr),
2082 name_expr);
2083 free (name_expr);
2084 write_exp_elt_opcode (BINOP_SUBSCRIPT);
2085 }
2086break;
2087case 69:
2088#line 486 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2089{ write_exp_elt_opcode (BINOP_SUBSCRIPT); }
2090break;
2091case 70:
2092#line 488 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2093{ write_exp_elt_opcode (BINOP_SUBSCRIPT); }
2094break;
2095case 72:
2096#line 494 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2097{ push_expression_name (yyvsp[0].sval); }
2098break;
2099case 76:
2100#line 503 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2101{ write_exp_elt_opcode (UNOP_POSTINCREMENT); }
2102break;
2103case 77:
2104#line 508 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2105{ write_exp_elt_opcode (UNOP_POSTDECREMENT); }
2106break;
2107case 81:
2108#line 516 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2109{ write_exp_elt_opcode (UNOP_NEG); }
2110break;
2111case 82:
2112#line 518 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2113{ write_exp_elt_opcode (UNOP_IND); }
2114break;
2115case 84:
2116#line 524 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2117{ write_exp_elt_opcode (UNOP_PREINCREMENT); }
2118break;
2119case 85:
2120#line 529 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2121{ write_exp_elt_opcode (UNOP_PREDECREMENT); }
2122break;
2123case 87:
2124#line 535 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2125{ write_exp_elt_opcode (UNOP_COMPLEMENT); }
2126break;
2127case 88:
2128#line 537 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2129{ write_exp_elt_opcode (UNOP_LOGICAL_NOT); }
2130break;
2131case 90:
2132#line 543 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2133{ write_exp_elt_opcode (UNOP_CAST);
2134 write_exp_elt_type (java_array_type (yyvsp[-3].tval, yyvsp[-2].lval));
2135 write_exp_elt_opcode (UNOP_CAST); }
2136break;
2137case 91:
2138#line 547 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2139{
2140 int exp_size = expout_ptr;
2141 int last_exp_size = length_of_subexp(expout, expout_ptr);
2142 struct type *type;
2143 int i;
2144 int base = expout_ptr - last_exp_size - 3;
2145 if (base < 0 || expout->elts[base+2].opcode != OP_TYPE)
2146 error (_("Invalid cast expression")("Invalid cast expression"));
2147 type = expout->elts[base+1].type;
2148 /* Remove the 'Expression' and slide the
2149 UnaryExpressionNotPlusMinus down to replace it. */
2150 for (i = 0; i < last_exp_size; i++)
2151 expout->elts[base + i] = expout->elts[base + i + 3];
2152 expout_ptr -= 3;
2153 if (TYPE_CODE (type)(type)->main_type->code == TYPE_CODE_STRUCT)
2154 type = lookup_pointer_type (type);
2155 write_exp_elt_opcode (UNOP_CAST);
2156 write_exp_elt_type (type);
2157 write_exp_elt_opcode (UNOP_CAST);
2158 }
2159break;
2160case 92:
2161#line 568 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2162{ write_exp_elt_opcode (UNOP_CAST);
2163 write_exp_elt_type (java_array_type (java_type_from_name (yyvsp[-3].sval), yyvsp[-2].lval));
2164 write_exp_elt_opcode (UNOP_CAST); }
2165break;
2166case 94:
2167#line 577 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2168{ write_exp_elt_opcode (BINOP_MUL); }
2169break;
2170case 95:
2171#line 579 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2172{ write_exp_elt_opcode (BINOP_DIV); }
2173break;
2174case 96:
2175#line 581 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2176{ write_exp_elt_opcode (BINOP_REM); }
2177break;
2178case 98:
2179#line 587 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2180{ write_exp_elt_opcode (BINOP_ADD); }
2181break;
2182case 99:
2183#line 589 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2184{ write_exp_elt_opcode (BINOP_SUB); }
2185break;
2186case 101:
2187#line 595 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2188{ write_exp_elt_opcode (BINOP_LSH); }
2189break;
2190case 102:
2191#line 597 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2192{ write_exp_elt_opcode (BINOP_RSH); }
2193break;
2194case 104:
2195#line 604 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2196{ write_exp_elt_opcode (BINOP_LESS); }
2197break;
2198case 105:
2199#line 606 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2200{ write_exp_elt_opcode (BINOP_GTR); }
2201break;
2202case 106:
2203#line 608 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2204{ write_exp_elt_opcode (BINOP_LEQ); }
2205break;
2206case 107:
2207#line 610 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2208{ write_exp_elt_opcode (BINOP_GEQ); }
2209break;
2210case 109:
2211#line 617 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2212{ write_exp_elt_opcode (BINOP_EQUAL); }
2213break;
2214case 110:
2215#line 619 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2216{ write_exp_elt_opcode (BINOP_NOTEQUAL); }
2217break;
2218case 112:
2219#line 625 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2220{ write_exp_elt_opcode (BINOP_BITWISE_AND); }
2221break;
2222case 114:
2223#line 631 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2224{ write_exp_elt_opcode (BINOP_BITWISE_XOR); }
2225break;
2226case 116:
2227#line 636 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2228{ write_exp_elt_opcode (BINOP_BITWISE_IOR); }
2229break;
2230case 118:
2231#line 642 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2232{ write_exp_elt_opcode (BINOP_LOGICAL_AND); }
2233break;
2234case 120:
2235#line 648 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2236{ write_exp_elt_opcode (BINOP_LOGICAL_OR); }
2237break;
2238case 122:
2239#line 654 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2240{ write_exp_elt_opcode (TERNOP_COND); }
2241break;
2242case 125:
2243#line 664 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2244{ write_exp_elt_opcode (BINOP_ASSIGN); }
2245break;
2246case 126:
2247#line 666 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2248{ write_exp_elt_opcode (BINOP_ASSIGN_MODIFY);
2249 write_exp_elt_opcode (yyvsp[-1].opcode);
2250 write_exp_elt_opcode (BINOP_ASSIGN_MODIFY); }
2251break;
2252case 127:
2253#line 673 "/usr/src/gnu/usr.bin/binutils/gdb/jv-exp.y"
2254{ push_expression_name (yyvsp[0].sval); }
2255break;
2256 }
2257 yyssp -= yym;
2258 yystatejava_state = *yyssp;
2259 yyvsp -= yym;
2260 yym = yylhsjava_yylhs[yyn];
2261 if (yystatejava_state == 0 && yym == 0)
2262 {
2263#if YYDEBUG1
2264 if (yydebugjava_debug)
2265 printf("%sdebug: after reduction, shifting from state 0 to\
2266 state %d\n", YYPREFIX"yy", YYFINAL27);
2267#endif
2268 yystatejava_state = YYFINAL27;
2269 *++yyssp = YYFINAL27;
2270 *++yyvsp = yyvaljava_val;
2271 if (yycharjava_char < 0)
2272 {
2273 if ((yycharjava_char = yylexjava_lex()) < 0) yycharjava_char = 0;
2274#if YYDEBUG1
2275 if (yydebugjava_debug)
2276 {
2277 yysjava_s = 0;
2278 if (yycharjava_char <= YYMAXTOKEN286) yysjava_s = yynamejava_name[yycharjava_char];
2279 if (!yysjava_s) yysjava_s = "illegal-symbol";
2280 printf("%sdebug: state %d, reading %d (%s)\n",
2281 YYPREFIX"yy", YYFINAL27, yycharjava_char, yysjava_s);
2282 }
2283#endif
2284 }
2285 if (yycharjava_char == 0) goto yyaccept;
2286 goto yyloop;
2287 }
2288 if ((yyn = yygindexjava_yygindex[yym]) && (yyn += yystatejava_state) >= 0 &&
2289 yyn <= YYTABLESIZE2121 && yycheckjava_yycheck[yyn] == yystatejava_state)
2290 yystatejava_state = yytablejava_yytable[yyn];
2291 else
2292 yystatejava_state = yydgotojava_yydgoto[yym];
2293#if YYDEBUG1
2294 if (yydebugjava_debug)
2295 printf("%sdebug: after reduction, shifting from state %d \
2296to state %d\n", YYPREFIX"yy", *yyssp, yystatejava_state);
2297#endif
2298 if (yyssp >= yysslim && yygrowstack())
2299 {
2300 goto yyoverflow;
2301 }
2302 *++yyssp = yystatejava_state;
2303 *++yyvsp = yyvaljava_val;
2304 goto yyloop;
2305yyoverflow:
2306 yyerrorjava_error("yacc stack overflow");
2307yyabort:
2308 if (yyss)
2309 free(yyss);
2310 if (yyvs)
2311 free(yyvs);
2312 yyss = yyssp = NULL((void*)0);
2313 yyvs = yyvsp = NULL((void*)0);
2314 yystacksize = 0;
2315 return (1);
2316yyaccept:
2317 if (yyss)
2318 free(yyss);
2319 if (yyvs)
2320 free(yyvs);
2321 yyss = yyssp = NULL((void*)0);
2322 yyvs = yyvsp = NULL((void*)0);
2323 yystacksize = 0;
2324 return (0);
2325}