xref: /openbsd-src/gnu/usr.bin/binutils/gdb/ada-exp.c (revision 11efff7f3ac2b3cfeff0c0cddc14294d9b3aca4f)
1*11efff7fSkettenis /* A Bison parser, made by GNU Bison 1.875c.  */
2b725ae77Skettenis 
3*11efff7fSkettenis /* Skeleton parser for Yacc-like parsing with Bison,
4*11efff7fSkettenis    Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
5b725ae77Skettenis 
6*11efff7fSkettenis    This program is free software; you can redistribute it and/or modify
7*11efff7fSkettenis    it under the terms of the GNU General Public License as published by
8*11efff7fSkettenis    the Free Software Foundation; either version 2, or (at your option)
9*11efff7fSkettenis    any later version.
10*11efff7fSkettenis 
11*11efff7fSkettenis    This program is distributed in the hope that it will be useful,
12*11efff7fSkettenis    but WITHOUT ANY WARRANTY; without even the implied warranty of
13*11efff7fSkettenis    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14*11efff7fSkettenis    GNU General Public License for more details.
15*11efff7fSkettenis 
16*11efff7fSkettenis    You should have received a copy of the GNU General Public License
17*11efff7fSkettenis    along with this program; if not, write to the Free Software
18*11efff7fSkettenis    Foundation, Inc., 59 Temple Place - Suite 330,
19*11efff7fSkettenis    Boston, MA 02111-1307, USA.  */
20*11efff7fSkettenis 
21*11efff7fSkettenis /* As a special exception, when this file is copied by Bison into a
22*11efff7fSkettenis    Bison output file, you may use that output file without restriction.
23*11efff7fSkettenis    This special exception was added by the Free Software Foundation
24*11efff7fSkettenis    in version 1.24 of Bison.  */
25*11efff7fSkettenis 
26*11efff7fSkettenis /* Written by Richard Stallman by simplifying the original so called
27*11efff7fSkettenis    ``semantic'' parser.  */
28*11efff7fSkettenis 
29*11efff7fSkettenis /* All symbols defined below should begin with yy or YY, to avoid
30*11efff7fSkettenis    infringing on user name space.  This should be done even for local
31*11efff7fSkettenis    variables, as they might otherwise be expanded by user macros.
32*11efff7fSkettenis    There are some unavoidable exceptions within include files to
33*11efff7fSkettenis    define necessary library symbols; they are noted "INFRINGES ON
34*11efff7fSkettenis    USER NAME SPACE" below.  */
35*11efff7fSkettenis 
36*11efff7fSkettenis /* Identify Bison output.  */
37*11efff7fSkettenis #define YYBISON 1
38*11efff7fSkettenis 
39*11efff7fSkettenis /* Skeleton name.  */
40*11efff7fSkettenis #define YYSKELETON_NAME "yacc.c"
41*11efff7fSkettenis 
42*11efff7fSkettenis /* Pure parsers.  */
43*11efff7fSkettenis #define YYPURE 0
44*11efff7fSkettenis 
45*11efff7fSkettenis /* Using locations.  */
46*11efff7fSkettenis #define YYLSP_NEEDED 0
47*11efff7fSkettenis 
48*11efff7fSkettenis 
49*11efff7fSkettenis 
50*11efff7fSkettenis /* Tokens.  */
51*11efff7fSkettenis #ifndef YYTOKENTYPE
52*11efff7fSkettenis # define YYTOKENTYPE
53*11efff7fSkettenis    /* Put the tokens into the symbol table, so that GDB and other debuggers
54*11efff7fSkettenis       know about them.  */
55*11efff7fSkettenis    enum yytokentype {
56*11efff7fSkettenis      INT = 258,
57*11efff7fSkettenis      NULL_PTR = 259,
58*11efff7fSkettenis      CHARLIT = 260,
59*11efff7fSkettenis      FLOAT = 261,
60*11efff7fSkettenis      TYPENAME = 262,
61*11efff7fSkettenis      BLOCKNAME = 263,
62*11efff7fSkettenis      STRING = 264,
63*11efff7fSkettenis      NAME = 265,
64*11efff7fSkettenis      DOT_ID = 266,
65*11efff7fSkettenis      OBJECT_RENAMING = 267,
66*11efff7fSkettenis      DOT_ALL = 268,
67*11efff7fSkettenis      SPECIAL_VARIABLE = 269,
68*11efff7fSkettenis      ASSIGN = 270,
69*11efff7fSkettenis      ELSE = 271,
70*11efff7fSkettenis      THEN = 272,
71*11efff7fSkettenis      XOR = 273,
72*11efff7fSkettenis      OR = 274,
73*11efff7fSkettenis      _AND_ = 275,
74*11efff7fSkettenis      DOTDOT = 276,
75*11efff7fSkettenis      IN = 277,
76*11efff7fSkettenis      GEQ = 278,
77*11efff7fSkettenis      LEQ = 279,
78*11efff7fSkettenis      NOTEQUAL = 280,
79*11efff7fSkettenis      UNARY = 281,
80*11efff7fSkettenis      REM = 282,
81*11efff7fSkettenis      MOD = 283,
82*11efff7fSkettenis      NOT = 284,
83*11efff7fSkettenis      ABS = 285,
84*11efff7fSkettenis      STARSTAR = 286,
85*11efff7fSkettenis      TICK_LENGTH = 287,
86*11efff7fSkettenis      TICK_LAST = 288,
87*11efff7fSkettenis      TICK_FIRST = 289,
88*11efff7fSkettenis      TICK_ADDRESS = 290,
89*11efff7fSkettenis      TICK_ACCESS = 291,
90*11efff7fSkettenis      TICK_MODULUS = 292,
91*11efff7fSkettenis      TICK_MIN = 293,
92*11efff7fSkettenis      TICK_MAX = 294,
93*11efff7fSkettenis      TICK_VAL = 295,
94*11efff7fSkettenis      TICK_TAG = 296,
95*11efff7fSkettenis      TICK_SIZE = 297,
96*11efff7fSkettenis      TICK_RANGE = 298,
97*11efff7fSkettenis      TICK_POS = 299,
98*11efff7fSkettenis      ARROW = 300,
99*11efff7fSkettenis      NEW = 301
100*11efff7fSkettenis    };
101*11efff7fSkettenis #endif
102*11efff7fSkettenis #define INT 258
103*11efff7fSkettenis #define NULL_PTR 259
104*11efff7fSkettenis #define CHARLIT 260
105*11efff7fSkettenis #define FLOAT 261
106*11efff7fSkettenis #define TYPENAME 262
107*11efff7fSkettenis #define BLOCKNAME 263
108*11efff7fSkettenis #define STRING 264
109*11efff7fSkettenis #define NAME 265
110*11efff7fSkettenis #define DOT_ID 266
111*11efff7fSkettenis #define OBJECT_RENAMING 267
112*11efff7fSkettenis #define DOT_ALL 268
113*11efff7fSkettenis #define SPECIAL_VARIABLE 269
114*11efff7fSkettenis #define ASSIGN 270
115*11efff7fSkettenis #define ELSE 271
116*11efff7fSkettenis #define THEN 272
117*11efff7fSkettenis #define XOR 273
118*11efff7fSkettenis #define OR 274
119*11efff7fSkettenis #define _AND_ 275
120*11efff7fSkettenis #define DOTDOT 276
121*11efff7fSkettenis #define IN 277
122*11efff7fSkettenis #define GEQ 278
123*11efff7fSkettenis #define LEQ 279
124*11efff7fSkettenis #define NOTEQUAL 280
125*11efff7fSkettenis #define UNARY 281
126*11efff7fSkettenis #define REM 282
127b725ae77Skettenis #define MOD 283
128*11efff7fSkettenis #define NOT 284
129*11efff7fSkettenis #define ABS 285
130*11efff7fSkettenis #define STARSTAR 286
131*11efff7fSkettenis #define TICK_LENGTH 287
132*11efff7fSkettenis #define TICK_LAST 288
133*11efff7fSkettenis #define TICK_FIRST 289
134*11efff7fSkettenis #define TICK_ADDRESS 290
135*11efff7fSkettenis #define TICK_ACCESS 291
136*11efff7fSkettenis #define TICK_MODULUS 292
137*11efff7fSkettenis #define TICK_MIN 293
138*11efff7fSkettenis #define TICK_MAX 294
139*11efff7fSkettenis #define TICK_VAL 295
140*11efff7fSkettenis #define TICK_TAG 296
141*11efff7fSkettenis #define TICK_SIZE 297
142*11efff7fSkettenis #define TICK_RANGE 298
143*11efff7fSkettenis #define TICK_POS 299
144*11efff7fSkettenis #define ARROW 300
145*11efff7fSkettenis #define NEW 301
146b725ae77Skettenis 
147*11efff7fSkettenis 
148*11efff7fSkettenis 
149*11efff7fSkettenis 
150*11efff7fSkettenis /* Copy the first part of user declarations.  */
151b725ae77Skettenis #line 38 "ada-exp.y"
152b725ae77Skettenis 
153b725ae77Skettenis 
154b725ae77Skettenis #include "defs.h"
155*11efff7fSkettenis #include "gdb_string.h"
156b725ae77Skettenis #include <ctype.h>
157b725ae77Skettenis #include "expression.h"
158b725ae77Skettenis #include "value.h"
159b725ae77Skettenis #include "parser-defs.h"
160b725ae77Skettenis #include "language.h"
161b725ae77Skettenis #include "ada-lang.h"
162b725ae77Skettenis #include "bfd.h" /* Required by objfiles.h.  */
163b725ae77Skettenis #include "symfile.h" /* Required by objfiles.h.  */
164b725ae77Skettenis #include "objfiles.h" /* For have_full_symbols and have_partial_symbols */
165b725ae77Skettenis #include "frame.h"
166b725ae77Skettenis #include "block.h"
167b725ae77Skettenis 
168b725ae77Skettenis /* Remap normal yacc parser interface names (yyparse, yylex, yyerror, etc),
169b725ae77Skettenis    as well as gratuitiously global symbol names, so we can have multiple
170b725ae77Skettenis    yacc generated parsers in gdb.  These are only the variables
171b725ae77Skettenis    produced by yacc.  If other parser generators (bison, byacc, etc) produce
172b725ae77Skettenis    additional global names that conflict at link time, then those parser
173b725ae77Skettenis    generators need to be fixed instead of adding those names to this list.  */
174b725ae77Skettenis 
175b725ae77Skettenis /* NOTE: This is clumsy, especially since BISON and FLEX provide --prefix
176b725ae77Skettenis    options.  I presume we are maintaining it to accommodate systems
177b725ae77Skettenis    without BISON?  (PNH) */
178b725ae77Skettenis 
179b725ae77Skettenis #define	yymaxdepth ada_maxdepth
180b725ae77Skettenis #define	yyparse	_ada_parse	/* ada_parse calls this after  initialization */
181b725ae77Skettenis #define	yylex	ada_lex
182b725ae77Skettenis #define	yyerror	ada_error
183b725ae77Skettenis #define	yylval	ada_lval
184b725ae77Skettenis #define	yychar	ada_char
185b725ae77Skettenis #define	yydebug	ada_debug
186b725ae77Skettenis #define	yypact	ada_pact
187b725ae77Skettenis #define	yyr1	ada_r1
188b725ae77Skettenis #define	yyr2	ada_r2
189b725ae77Skettenis #define	yydef	ada_def
190b725ae77Skettenis #define	yychk	ada_chk
191b725ae77Skettenis #define	yypgo	ada_pgo
192b725ae77Skettenis #define	yyact	ada_act
193b725ae77Skettenis #define	yyexca	ada_exca
194b725ae77Skettenis #define yyerrflag ada_errflag
195b725ae77Skettenis #define yynerrs	ada_nerrs
196b725ae77Skettenis #define	yyps	ada_ps
197b725ae77Skettenis #define	yypv	ada_pv
198b725ae77Skettenis #define	yys	ada_s
199b725ae77Skettenis #define	yy_yys	ada_yys
200b725ae77Skettenis #define	yystate	ada_state
201b725ae77Skettenis #define	yytmp	ada_tmp
202b725ae77Skettenis #define	yyv	ada_v
203b725ae77Skettenis #define	yy_yyv	ada_yyv
204b725ae77Skettenis #define	yyval	ada_val
205b725ae77Skettenis #define	yylloc	ada_lloc
206b725ae77Skettenis #define yyreds	ada_reds		/* With YYDEBUG defined */
207b725ae77Skettenis #define yytoks	ada_toks		/* With YYDEBUG defined */
208b725ae77Skettenis #define yyname	ada_name		/* With YYDEBUG defined */
209b725ae77Skettenis #define yyrule	ada_rule		/* With YYDEBUG defined */
210b725ae77Skettenis 
211b725ae77Skettenis #ifndef YYDEBUG
212b725ae77Skettenis #define	YYDEBUG	1		/* Default to yydebug support */
213b725ae77Skettenis #endif
214b725ae77Skettenis 
215b725ae77Skettenis #define YYFPRINTF parser_fprintf
216b725ae77Skettenis 
217b725ae77Skettenis struct name_info {
218b725ae77Skettenis   struct symbol *sym;
219b725ae77Skettenis   struct minimal_symbol *msym;
220b725ae77Skettenis   struct block *block;
221b725ae77Skettenis   struct stoken stoken;
222b725ae77Skettenis };
223b725ae77Skettenis 
224b725ae77Skettenis /* If expression is in the context of TYPE'(...), then TYPE, else
225b725ae77Skettenis  * NULL.  */
226b725ae77Skettenis static struct type *type_qualifier;
227b725ae77Skettenis 
228b725ae77Skettenis int yyparse (void);
229b725ae77Skettenis 
230b725ae77Skettenis static int yylex (void);
231b725ae77Skettenis 
232b725ae77Skettenis void yyerror (char *);
233b725ae77Skettenis 
234b725ae77Skettenis static struct stoken string_to_operator (struct stoken);
235b725ae77Skettenis 
236*11efff7fSkettenis static void write_int (LONGEST, struct type *);
237b725ae77Skettenis 
238*11efff7fSkettenis static void write_object_renaming (struct block *, struct symbol *, int);
239b725ae77Skettenis 
240b725ae77Skettenis static void write_var_from_name (struct block *, struct name_info);
241b725ae77Skettenis 
242*11efff7fSkettenis static LONGEST convert_char_literal (struct type *, LONGEST);
243b725ae77Skettenis 
244*11efff7fSkettenis static struct type *type_int (void);
245*11efff7fSkettenis 
246*11efff7fSkettenis static struct type *type_long (void);
247*11efff7fSkettenis 
248*11efff7fSkettenis static struct type *type_long_long (void);
249*11efff7fSkettenis 
250*11efff7fSkettenis static struct type *type_float (void);
251*11efff7fSkettenis 
252*11efff7fSkettenis static struct type *type_double (void);
253*11efff7fSkettenis 
254*11efff7fSkettenis static struct type *type_long_double (void);
255*11efff7fSkettenis 
256*11efff7fSkettenis static struct type *type_char (void);
257*11efff7fSkettenis 
258*11efff7fSkettenis static struct type *type_system_address (void);
259*11efff7fSkettenis 
260*11efff7fSkettenis 
261*11efff7fSkettenis /* Enabling traces.  */
262*11efff7fSkettenis #ifndef YYDEBUG
263*11efff7fSkettenis # define YYDEBUG 0
264*11efff7fSkettenis #endif
265*11efff7fSkettenis 
266*11efff7fSkettenis /* Enabling verbose error messages.  */
267*11efff7fSkettenis #ifdef YYERROR_VERBOSE
268*11efff7fSkettenis # undef YYERROR_VERBOSE
269*11efff7fSkettenis # define YYERROR_VERBOSE 1
270*11efff7fSkettenis #else
271*11efff7fSkettenis # define YYERROR_VERBOSE 0
272*11efff7fSkettenis #endif
273*11efff7fSkettenis 
274*11efff7fSkettenis #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
275*11efff7fSkettenis #line 148 "ada-exp.y"
276*11efff7fSkettenis typedef union YYSTYPE {
277b725ae77Skettenis     LONGEST lval;
278b725ae77Skettenis     struct {
279b725ae77Skettenis       LONGEST val;
280b725ae77Skettenis       struct type *type;
281b725ae77Skettenis     } typed_val;
282b725ae77Skettenis     struct {
283b725ae77Skettenis       DOUBLEST dval;
284b725ae77Skettenis       struct type *type;
285b725ae77Skettenis     } typed_val_float;
286b725ae77Skettenis     struct type *tval;
287b725ae77Skettenis     struct stoken sval;
288b725ae77Skettenis     struct name_info ssym;
289b725ae77Skettenis     int voidval;
290b725ae77Skettenis     struct block *bval;
291b725ae77Skettenis     struct internalvar *ivar;
292b725ae77Skettenis 
293*11efff7fSkettenis   } YYSTYPE;
294*11efff7fSkettenis /* Line 191 of yacc.c.  */
295*11efff7fSkettenis # define yystype YYSTYPE /* obsolescent; will be withdrawn */
296*11efff7fSkettenis # define YYSTYPE_IS_DECLARED 1
297b725ae77Skettenis # define YYSTYPE_IS_TRIVIAL 1
298b725ae77Skettenis #endif
299*11efff7fSkettenis 
300*11efff7fSkettenis 
301*11efff7fSkettenis 
302*11efff7fSkettenis /* Copy the second part of user declarations.  */
303*11efff7fSkettenis 
304*11efff7fSkettenis 
305*11efff7fSkettenis /* Line 214 of yacc.c.  */
306*11efff7fSkettenis 
307*11efff7fSkettenis #if ! defined (yyoverflow) || YYERROR_VERBOSE
308*11efff7fSkettenis 
309*11efff7fSkettenis # ifndef YYFREE
310*11efff7fSkettenis #  define YYFREE free
311b725ae77Skettenis # endif
312*11efff7fSkettenis # ifndef YYMALLOC
313*11efff7fSkettenis #  define YYMALLOC xmalloc
314b725ae77Skettenis # endif
315b725ae77Skettenis 
316b725ae77Skettenis /* The parser invokes alloca or xmalloc; define the necessary symbols.  */
317b725ae77Skettenis 
318*11efff7fSkettenis # ifdef YYSTACK_USE_ALLOCA
319b725ae77Skettenis #  if YYSTACK_USE_ALLOCA
320b725ae77Skettenis #   define YYSTACK_ALLOC alloca
321*11efff7fSkettenis #  endif
322b725ae77Skettenis # else
323b725ae77Skettenis #  if defined (alloca) || defined (_ALLOCA_H)
324b725ae77Skettenis #   define YYSTACK_ALLOC alloca
325b725ae77Skettenis #  else
326b725ae77Skettenis #   ifdef __GNUC__
327b725ae77Skettenis #    define YYSTACK_ALLOC __builtin_alloca
328b725ae77Skettenis #   endif
329b725ae77Skettenis #  endif
330b725ae77Skettenis # endif
331b725ae77Skettenis 
332b725ae77Skettenis # ifdef YYSTACK_ALLOC
333b725ae77Skettenis    /* Pacify GCC's `empty if-body' warning. */
334b725ae77Skettenis #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
335b725ae77Skettenis # else
336b725ae77Skettenis #  if defined (__STDC__) || defined (__cplusplus)
337b725ae77Skettenis #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
338b725ae77Skettenis #   define YYSIZE_T size_t
339b725ae77Skettenis #  endif
340*11efff7fSkettenis #  define YYSTACK_ALLOC YYMALLOC
341*11efff7fSkettenis #  define YYSTACK_FREE YYFREE
342b725ae77Skettenis # endif
343*11efff7fSkettenis #endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
344b725ae77Skettenis 
345b725ae77Skettenis 
346b725ae77Skettenis #if (! defined (yyoverflow) \
347b725ae77Skettenis      && (! defined (__cplusplus) \
348*11efff7fSkettenis 	 || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
349b725ae77Skettenis 
350b725ae77Skettenis /* A type that is properly aligned for any stack member.  */
351b725ae77Skettenis union yyalloc
352b725ae77Skettenis {
353b725ae77Skettenis   short yyss;
354b725ae77Skettenis   YYSTYPE yyvs;
355b725ae77Skettenis   };
356b725ae77Skettenis 
357b725ae77Skettenis /* The size of the maximum gap between one aligned stack and the next.  */
358*11efff7fSkettenis # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
359b725ae77Skettenis 
360b725ae77Skettenis /* The size of an array large to enough to hold all stacks, each with
361b725ae77Skettenis    N elements.  */
362b725ae77Skettenis # define YYSTACK_BYTES(N) \
363b725ae77Skettenis      ((N) * (sizeof (short) + sizeof (YYSTYPE))				\
364*11efff7fSkettenis       + YYSTACK_GAP_MAXIMUM)
365b725ae77Skettenis 
366b725ae77Skettenis /* Copy COUNT objects from FROM to TO.  The source and destination do
367b725ae77Skettenis    not overlap.  */
368b725ae77Skettenis # ifndef YYCOPY
369*11efff7fSkettenis #  if defined (__GNUC__) && 1 < __GNUC__
370b725ae77Skettenis #   define YYCOPY(To, From, Count) \
371b725ae77Skettenis       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
372b725ae77Skettenis #  else
373b725ae77Skettenis #   define YYCOPY(To, From, Count)		\
374b725ae77Skettenis       do					\
375b725ae77Skettenis 	{					\
376b725ae77Skettenis 	  register YYSIZE_T yyi;		\
377b725ae77Skettenis 	  for (yyi = 0; yyi < (Count); yyi++)	\
378b725ae77Skettenis 	    (To)[yyi] = (From)[yyi];		\
379b725ae77Skettenis 	}					\
380b725ae77Skettenis       while (0)
381b725ae77Skettenis #  endif
382b725ae77Skettenis # endif
383b725ae77Skettenis 
384b725ae77Skettenis /* Relocate STACK from its old location to the new one.  The
385b725ae77Skettenis    local variables YYSIZE and YYSTACKSIZE give the old and new number of
386b725ae77Skettenis    elements in the stack, and YYPTR gives the new location of the
387b725ae77Skettenis    stack.  Advance YYPTR to a properly aligned location for the next
388b725ae77Skettenis    stack.  */
389b725ae77Skettenis # define YYSTACK_RELOCATE(Stack)					\
390b725ae77Skettenis     do									\
391b725ae77Skettenis       {									\
392b725ae77Skettenis 	YYSIZE_T yynewbytes;						\
393b725ae77Skettenis 	YYCOPY (&yyptr->Stack, Stack, yysize);				\
394b725ae77Skettenis 	Stack = &yyptr->Stack;						\
395*11efff7fSkettenis 	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
396b725ae77Skettenis 	yyptr += yynewbytes / sizeof (*yyptr);				\
397b725ae77Skettenis       }									\
398b725ae77Skettenis     while (0)
399b725ae77Skettenis 
400b725ae77Skettenis #endif
401b725ae77Skettenis 
402*11efff7fSkettenis #if defined (__STDC__) || defined (__cplusplus)
403*11efff7fSkettenis    typedef signed char yysigned_char;
404*11efff7fSkettenis #else
405*11efff7fSkettenis    typedef short yysigned_char;
406*11efff7fSkettenis #endif
407*11efff7fSkettenis 
408*11efff7fSkettenis /* YYFINAL -- State number of the termination state. */
409*11efff7fSkettenis #define YYFINAL  42
410*11efff7fSkettenis /* YYLAST -- Last index in YYTABLE.  */
411*11efff7fSkettenis #define YYLAST   1041
412*11efff7fSkettenis 
413*11efff7fSkettenis /* YYNTOKENS -- Number of terminals. */
414*11efff7fSkettenis #define YYNTOKENS  66
415*11efff7fSkettenis /* YYNNTS -- Number of nonterminals. */
416*11efff7fSkettenis #define YYNNTS  15
417*11efff7fSkettenis /* YYNRULES -- Number of rules. */
418*11efff7fSkettenis #define YYNRULES  96
419*11efff7fSkettenis /* YYNRULES -- Number of states. */
420*11efff7fSkettenis #define YYNSTATES  182
421*11efff7fSkettenis 
422*11efff7fSkettenis /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
423*11efff7fSkettenis #define YYUNDEFTOK  2
424*11efff7fSkettenis #define YYMAXUTOK   301
425*11efff7fSkettenis 
426*11efff7fSkettenis #define YYTRANSLATE(YYX) 						\
427*11efff7fSkettenis   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
428*11efff7fSkettenis 
429*11efff7fSkettenis /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
430*11efff7fSkettenis static const unsigned char yytranslate[] =
431*11efff7fSkettenis {
432*11efff7fSkettenis        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
433*11efff7fSkettenis        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
434*11efff7fSkettenis        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
435*11efff7fSkettenis        2,     2,     2,     2,     2,     2,     2,     2,    32,    61,
436*11efff7fSkettenis       55,    60,    34,    30,    62,    31,    54,    35,     2,     2,
437*11efff7fSkettenis        2,     2,     2,     2,     2,     2,     2,     2,     2,    59,
438*11efff7fSkettenis       22,    21,    23,     2,    29,     2,     2,     2,     2,     2,
439*11efff7fSkettenis        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
440*11efff7fSkettenis        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
441*11efff7fSkettenis        2,    56,     2,    65,     2,     2,     2,     2,     2,     2,
442*11efff7fSkettenis        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
443*11efff7fSkettenis        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
444*11efff7fSkettenis        2,     2,     2,    63,     2,    64,     2,     2,     2,     2,
445*11efff7fSkettenis        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
446*11efff7fSkettenis        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
447*11efff7fSkettenis        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
448*11efff7fSkettenis        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
449*11efff7fSkettenis        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
450*11efff7fSkettenis        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
451*11efff7fSkettenis        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
452*11efff7fSkettenis        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
453*11efff7fSkettenis        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
454*11efff7fSkettenis        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
455*11efff7fSkettenis        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
456*11efff7fSkettenis        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
457*11efff7fSkettenis        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
458*11efff7fSkettenis        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
459*11efff7fSkettenis       15,    16,    17,    18,    19,    20,    24,    25,    26,    27,
460*11efff7fSkettenis       28,    33,    36,    37,    38,    39,    40,    41,    42,    43,
461*11efff7fSkettenis       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
462*11efff7fSkettenis       57,    58
463*11efff7fSkettenis };
464*11efff7fSkettenis 
465*11efff7fSkettenis #if YYDEBUG
466*11efff7fSkettenis /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
467*11efff7fSkettenis    YYRHS.  */
468*11efff7fSkettenis static const unsigned short yyprhs[] =
469*11efff7fSkettenis {
470*11efff7fSkettenis        0,     0,     3,     5,     7,     9,    13,    16,    19,    24,
471*11efff7fSkettenis       29,    30,    38,    39,    46,    50,    52,    54,    56,    60,
472*11efff7fSkettenis       63,    66,    69,    72,    73,    75,    79,    83,    89,    94,
473*11efff7fSkettenis       98,   102,   106,   110,   114,   118,   122,   126,   130,   134,
474*11efff7fSkettenis      138,   142,   148,   154,   158,   165,   172,   177,   181,   185,
475*11efff7fSkettenis      189,   193,   198,   202,   207,   211,   214,   217,   221,   225,
476*11efff7fSkettenis      229,   232,   235,   243,   251,   257,   261,   265,   269,   275,
477*11efff7fSkettenis      278,   279,   283,   285,   287,   288,   290,   292,   294,   296,
478*11efff7fSkettenis      298,   301,   303,   306,   308,   311,   313,   315,   317,   319,
479*11efff7fSkettenis      322,   324,   327,   330,   334,   337,   340
480*11efff7fSkettenis };
481*11efff7fSkettenis 
482*11efff7fSkettenis /* YYRHS -- A `-1'-separated list of the rules' RHS. */
483*11efff7fSkettenis static const yysigned_char yyrhs[] =
484*11efff7fSkettenis {
485*11efff7fSkettenis       67,     0,    -1,    68,    -1,    80,    -1,    72,    -1,    68,
486*11efff7fSkettenis       59,    72,    -1,    69,    13,    -1,    69,    11,    -1,    69,
487*11efff7fSkettenis       55,    73,    60,    -1,    80,    55,    72,    60,    -1,    -1,
488*11efff7fSkettenis       80,    61,    71,    70,    55,    72,    60,    -1,    -1,    69,
489*11efff7fSkettenis       55,    72,    24,    72,    60,    -1,    55,    68,    60,    -1,
490*11efff7fSkettenis       77,    -1,    14,    -1,    69,    -1,    72,    15,    72,    -1,
491*11efff7fSkettenis       31,    72,    -1,    30,    72,    -1,    38,    72,    -1,    39,
492*11efff7fSkettenis       72,    -1,    -1,    72,    -1,    78,    57,    72,    -1,    73,
493*11efff7fSkettenis       62,    72,    -1,    73,    62,    78,    57,    72,    -1,    63,
494*11efff7fSkettenis       80,    64,    72,    -1,    72,    40,    72,    -1,    72,    34,
495*11efff7fSkettenis       72,    -1,    72,    35,    72,    -1,    72,    36,    72,    -1,
496*11efff7fSkettenis       72,    37,    72,    -1,    72,    29,    72,    -1,    72,    30,
497*11efff7fSkettenis       72,    -1,    72,    32,    72,    -1,    72,    31,    72,    -1,
498*11efff7fSkettenis       72,    21,    72,    -1,    72,    28,    72,    -1,    72,    27,
499*11efff7fSkettenis       72,    -1,    72,    25,    72,    24,    72,    -1,    72,    25,
500*11efff7fSkettenis       72,    52,    74,    -1,    72,    25,     7,    -1,    72,    38,
501*11efff7fSkettenis       25,    72,    24,    72,    -1,    72,    38,    25,    72,    52,
502*11efff7fSkettenis       74,    -1,    72,    38,    25,     7,    -1,    72,    26,    72,
503*11efff7fSkettenis       -1,    72,    22,    72,    -1,    72,    23,    72,    -1,    72,
504*11efff7fSkettenis       20,    72,    -1,    72,    20,    17,    72,    -1,    72,    19,
505*11efff7fSkettenis       72,    -1,    72,    19,    16,    72,    -1,    72,    18,    72,
506*11efff7fSkettenis       -1,    69,    45,    -1,    69,    44,    -1,    69,    43,    74,
507*11efff7fSkettenis       -1,    69,    42,    74,    -1,    69,    41,    74,    -1,    69,
508*11efff7fSkettenis       51,    -1,    69,    50,    -1,    76,    47,    55,    72,    62,
509*11efff7fSkettenis       72,    60,    -1,    76,    48,    55,    72,    62,    72,    60,
510*11efff7fSkettenis       -1,    76,    53,    55,    72,    60,    -1,    75,    43,    74,
511*11efff7fSkettenis       -1,    75,    42,    74,    -1,    75,    41,    74,    -1,    75,
512*11efff7fSkettenis       49,    55,    72,    60,    -1,    75,    46,    -1,    -1,    55,
513*11efff7fSkettenis        3,    60,    -1,     7,    -1,    75,    -1,    -1,     3,    -1,
514*11efff7fSkettenis        5,    -1,     6,    -1,     4,    -1,     9,    -1,    58,     7,
515*11efff7fSkettenis       -1,    10,    -1,    79,    10,    -1,    12,    -1,    79,    12,
516*11efff7fSkettenis       -1,    10,    -1,     7,    -1,    12,    -1,     8,    -1,    79,
517*11efff7fSkettenis        8,    -1,     7,    -1,    79,     7,    -1,     7,    45,    -1,
518*11efff7fSkettenis       79,     7,    45,    -1,    34,    72,    -1,    32,    72,    -1,
519*11efff7fSkettenis       72,    56,    72,    65,    -1
520*11efff7fSkettenis };
521*11efff7fSkettenis 
522*11efff7fSkettenis /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
523*11efff7fSkettenis static const unsigned short yyrline[] =
524*11efff7fSkettenis {
525*11efff7fSkettenis        0,   217,   217,   218,   224,   225,   230,   234,   241,   249,
526*11efff7fSkettenis      257,   257,   266,   270,   274,   277,   280,   284,   287,   291,
527*11efff7fSkettenis      295,   299,   303,   307,   310,   312,   314,   316,   320,   330,
528*11efff7fSkettenis      334,   338,   342,   346,   350,   354,   358,   362,   366,   370,
529*11efff7fSkettenis      374,   378,   380,   385,   390,   394,   400,   408,   412,   416,
530*11efff7fSkettenis      420,   424,   428,   432,   436,   440,   442,   448,   451,   454,
531*11efff7fSkettenis      457,   459,   461,   463,   465,   467,   470,   473,   476,   478,
532*11efff7fSkettenis      482,   484,   489,   496,   498,   504,   508,   515,   523,   527,
533*11efff7fSkettenis      535,   539,   540,   542,   545,   550,   551,   552,   555,   557,
534*11efff7fSkettenis      562,   563,   564,   566,   573,   575,   577
535*11efff7fSkettenis };
536*11efff7fSkettenis #endif
537*11efff7fSkettenis 
538*11efff7fSkettenis #if YYDEBUG || YYERROR_VERBOSE
539*11efff7fSkettenis /* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
540*11efff7fSkettenis    First, the terminals, then, starting at YYNTOKENS, nonterminals. */
541*11efff7fSkettenis static const char *const yytname[] =
542*11efff7fSkettenis {
543*11efff7fSkettenis   "$end", "error", "$undefined", "INT", "NULL_PTR", "CHARLIT", "FLOAT",
544*11efff7fSkettenis   "TYPENAME", "BLOCKNAME", "STRING", "NAME", "DOT_ID", "OBJECT_RENAMING",
545*11efff7fSkettenis   "DOT_ALL", "SPECIAL_VARIABLE", "ASSIGN", "ELSE", "THEN", "XOR", "OR",
546*11efff7fSkettenis   "_AND_", "'='", "'<'", "'>'", "DOTDOT", "IN", "GEQ", "LEQ", "NOTEQUAL",
547*11efff7fSkettenis   "'@'", "'+'", "'-'", "'&'", "UNARY", "'*'", "'/'", "REM", "MOD", "NOT",
548*11efff7fSkettenis   "ABS", "STARSTAR", "TICK_LENGTH", "TICK_LAST", "TICK_FIRST",
549*11efff7fSkettenis   "TICK_ADDRESS", "TICK_ACCESS", "TICK_MODULUS", "TICK_MIN", "TICK_MAX",
550*11efff7fSkettenis   "TICK_VAL", "TICK_TAG", "TICK_SIZE", "TICK_RANGE", "TICK_POS", "'.'",
551*11efff7fSkettenis   "'('", "'['", "ARROW", "NEW", "';'", "')'", "'''", "','", "'{'", "'}'",
552*11efff7fSkettenis   "']'", "$accept", "start", "exp1", "simple_exp", "@1", "save_qualifier",
553*11efff7fSkettenis   "exp", "arglist", "tick_arglist", "type_prefix", "opt_type_prefix",
554*11efff7fSkettenis   "variable", "any_name", "block", "type", 0
555*11efff7fSkettenis };
556*11efff7fSkettenis #endif
557*11efff7fSkettenis 
558*11efff7fSkettenis # ifdef YYPRINT
559*11efff7fSkettenis /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
560*11efff7fSkettenis    token YYLEX-NUM.  */
561*11efff7fSkettenis static const unsigned short yytoknum[] =
562*11efff7fSkettenis {
563*11efff7fSkettenis        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
564*11efff7fSkettenis      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
565*11efff7fSkettenis      275,    61,    60,    62,   276,   277,   278,   279,   280,    64,
566*11efff7fSkettenis       43,    45,    38,   281,    42,    47,   282,   283,   284,   285,
567*11efff7fSkettenis      286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
568*11efff7fSkettenis      296,   297,   298,   299,    46,    40,    91,   300,   301,    59,
569*11efff7fSkettenis       41,    39,    44,   123,   125,    93
570*11efff7fSkettenis };
571*11efff7fSkettenis # endif
572*11efff7fSkettenis 
573*11efff7fSkettenis /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
574*11efff7fSkettenis static const unsigned char yyr1[] =
575*11efff7fSkettenis {
576*11efff7fSkettenis        0,    66,    67,    67,    68,    68,    69,    69,    69,    69,
577*11efff7fSkettenis       70,    69,    71,    69,    69,    69,    69,    72,    72,    72,
578*11efff7fSkettenis       72,    72,    72,    73,    73,    73,    73,    73,    72,    72,
579*11efff7fSkettenis       72,    72,    72,    72,    72,    72,    72,    72,    72,    72,
580*11efff7fSkettenis       72,    72,    72,    72,    72,    72,    72,    72,    72,    72,
581*11efff7fSkettenis       72,    72,    72,    72,    72,    69,    69,    69,    69,    69,
582*11efff7fSkettenis       69,    69,    69,    69,    69,    69,    69,    69,    69,    69,
583*11efff7fSkettenis       74,    74,    75,    76,    76,    72,    72,    72,    72,    72,
584*11efff7fSkettenis       72,    77,    77,    77,    77,    78,    78,    78,    79,    79,
585*11efff7fSkettenis       80,    80,    80,    80,    72,    72,    72
586*11efff7fSkettenis };
587*11efff7fSkettenis 
588*11efff7fSkettenis /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
589*11efff7fSkettenis static const unsigned char yyr2[] =
590*11efff7fSkettenis {
591*11efff7fSkettenis        0,     2,     1,     1,     1,     3,     2,     2,     4,     4,
592*11efff7fSkettenis        0,     7,     0,     6,     3,     1,     1,     1,     3,     2,
593*11efff7fSkettenis        2,     2,     2,     0,     1,     3,     3,     5,     4,     3,
594*11efff7fSkettenis        3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
595*11efff7fSkettenis        3,     5,     5,     3,     6,     6,     4,     3,     3,     3,
596*11efff7fSkettenis        3,     4,     3,     4,     3,     2,     2,     3,     3,     3,
597*11efff7fSkettenis        2,     2,     7,     7,     5,     3,     3,     3,     5,     2,
598*11efff7fSkettenis        0,     3,     1,     1,     0,     1,     1,     1,     1,     1,
599*11efff7fSkettenis        2,     1,     2,     1,     2,     1,     1,     1,     1,     2,
600*11efff7fSkettenis        1,     2,     2,     3,     2,     2,     4
601*11efff7fSkettenis };
602*11efff7fSkettenis 
603*11efff7fSkettenis /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
604*11efff7fSkettenis    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
605*11efff7fSkettenis    means the default is an error.  */
606*11efff7fSkettenis static const unsigned char yydefact[] =
607*11efff7fSkettenis {
608*11efff7fSkettenis       74,    75,    78,    76,    77,    72,    88,    79,    81,    83,
609*11efff7fSkettenis       16,    74,    74,    74,    74,    74,    74,    74,     0,     0,
610*11efff7fSkettenis        0,     2,    17,     4,    73,     0,    15,     0,     3,    92,
611*11efff7fSkettenis       20,     0,    19,    95,    94,    21,    22,     0,    80,    90,
612*11efff7fSkettenis        0,     0,     1,    74,     7,     6,    70,    70,    70,    56,
613*11efff7fSkettenis       55,    61,    60,    74,    74,    74,    74,    74,    74,    74,
614*11efff7fSkettenis       74,    74,    74,    74,    74,    74,    74,    74,    74,    74,
615*11efff7fSkettenis       74,    74,    74,     0,    74,    74,    70,    70,    70,    69,
616*11efff7fSkettenis        0,     0,     0,     0,    91,    89,    82,    84,    74,    12,
617*11efff7fSkettenis       14,    74,     5,     0,    59,    58,    57,    72,    81,    83,
618*11efff7fSkettenis       24,     0,     0,    18,    54,    74,    52,    74,    50,    38,
619*11efff7fSkettenis       48,    49,    43,     0,    47,    40,    39,    34,    35,    37,
620*11efff7fSkettenis       36,    30,    31,    32,    33,    74,    29,     0,    67,    66,
621*11efff7fSkettenis       65,    74,    74,    74,    74,    93,     0,    10,    28,     0,
622*11efff7fSkettenis       74,     8,    74,    74,    53,    51,    74,    70,    46,     0,
623*11efff7fSkettenis       96,     0,     0,     0,     0,     9,     0,    71,     0,    26,
624*11efff7fSkettenis        0,    25,    41,    42,    74,    70,    68,    74,    74,    64,
625*11efff7fSkettenis       74,    13,    74,    44,    45,     0,     0,     0,    27,    62,
626*11efff7fSkettenis       63,    11
627*11efff7fSkettenis };
628*11efff7fSkettenis 
629*11efff7fSkettenis /* YYDEFGOTO[NTERM-NUM]. */
630*11efff7fSkettenis static const short yydefgoto[] =
631*11efff7fSkettenis {
632*11efff7fSkettenis       -1,    20,    21,    22,   156,   137,    23,   101,    94,    24,
633*11efff7fSkettenis       25,    26,   102,    27,    31
634*11efff7fSkettenis };
635*11efff7fSkettenis 
636*11efff7fSkettenis /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
637*11efff7fSkettenis    STATE-NUM.  */
638*11efff7fSkettenis #define YYPACT_NINF -52
639*11efff7fSkettenis static const short yypact[] =
640*11efff7fSkettenis {
641*11efff7fSkettenis      233,   -52,   -52,   -52,   -52,    17,   -52,   -52,   -52,   -52,
642*11efff7fSkettenis      -52,   233,   233,   233,   233,   233,   233,   233,    23,    26,
643*11efff7fSkettenis       41,    15,   137,   923,    56,   -22,   -52,   118,   -32,   -52,
644*11efff7fSkettenis       33,   -32,    33,    19,    19,    33,    33,   -21,   -52,    31,
645*11efff7fSkettenis       58,    29,   -52,   233,   -52,   -52,    24,    24,    24,   -52,
646*11efff7fSkettenis      -52,   -52,   -52,    78,   233,   233,   159,   196,   233,   233,
647*11efff7fSkettenis      233,   270,   233,   233,   233,   233,   233,   233,   233,   233,
648*11efff7fSkettenis      233,   233,   233,    70,   233,   233,    24,    24,    24,   -52,
649*11efff7fSkettenis       45,    49,    60,    63,    66,   -52,   -52,   -52,   233,   -52,
650*11efff7fSkettenis      -52,   233,   923,   110,   -52,   -52,   -52,    46,    62,    77,
651*11efff7fSkettenis      891,   -51,    80,   955,   978,   233,   978,   233,   978,   -16,
652*11efff7fSkettenis      -16,   -16,   980,   813,   -16,   -16,   -16,   358,    33,    33,
653*11efff7fSkettenis       33,   -28,   -28,   -28,   -28,   307,   -28,   390,   -52,   -52,
654*11efff7fSkettenis      -52,   233,   233,   233,   233,   -52,   512,   -52,    19,    67,
655*11efff7fSkettenis      233,   -52,   344,   233,   978,   978,   233,    24,   980,   852,
656*11efff7fSkettenis      -52,   555,   422,   467,   598,   -52,    84,   -52,   641,   923,
657*11efff7fSkettenis       85,   923,   -16,   -52,   233,    24,   -52,   233,   233,   -52,
658*11efff7fSkettenis      233,   -52,   233,   -16,   -52,   684,   727,   770,   923,   -52,
659*11efff7fSkettenis      -52,   -52
660*11efff7fSkettenis };
661*11efff7fSkettenis 
662*11efff7fSkettenis /* YYPGOTO[NTERM-NUM].  */
663*11efff7fSkettenis static const yysigned_char yypgoto[] =
664*11efff7fSkettenis {
665*11efff7fSkettenis      -52,   -52,   126,   -52,   -52,   -52,   -11,   -52,   -41,   -52,
666*11efff7fSkettenis      -52,   -52,     2,   127,     8
667*11efff7fSkettenis };
668*11efff7fSkettenis 
669*11efff7fSkettenis /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
670*11efff7fSkettenis    positive, shift that token.  If negative, reduce the rule which
671*11efff7fSkettenis    number is the opposite.  If zero, do what YYDEFACT says.
672*11efff7fSkettenis    If YYTABLE_NINF, syntax error.  */
673*11efff7fSkettenis #define YYTABLE_NINF -91
674*11efff7fSkettenis static const short yytable[] =
675*11efff7fSkettenis {
676*11efff7fSkettenis       30,    32,    33,    34,    35,    36,    95,    96,    28,   141,
677*11efff7fSkettenis       73,   142,    74,    65,    66,    67,    68,   -90,    69,    70,
678*11efff7fSkettenis       71,    72,    73,    88,    74,    81,    82,    41,    75,    89,
679*11efff7fSkettenis       38,    83,    92,    39,     6,   128,   129,   130,    43,    90,
680*11efff7fSkettenis       75,    42,   100,   103,   104,   106,   108,   109,   110,   111,
681*11efff7fSkettenis      113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
682*11efff7fSkettenis      123,   124,    29,   126,   127,    84,    85,    69,    70,    71,
683*11efff7fSkettenis       72,    73,   -90,    74,    43,    75,    29,   136,   -90,    93,
684*11efff7fSkettenis      138,     1,     2,     3,     4,    97,     6,     7,    98,    75,
685*11efff7fSkettenis       99,    29,    10,    91,   144,   125,   145,    76,    77,    78,
686*11efff7fSkettenis      131,   -90,    79,   -86,   132,    80,   163,   -90,    11,    12,
687*11efff7fSkettenis       13,   135,    14,   139,   149,   133,    15,    16,   134,   -85,
688*11efff7fSkettenis      151,   152,   153,   154,   174,    84,    85,   157,    86,   158,
689*11efff7fSkettenis       87,   159,   161,    17,   -87,   162,    18,   143,   -23,   170,
690*11efff7fSkettenis      -23,    19,   172,    37,   160,     0,    40,     0,    44,     0,
691*11efff7fSkettenis       45,     0,     0,   173,     0,     0,   175,   176,     0,   177,
692*11efff7fSkettenis        0,   178,     1,     2,     3,     4,     5,     6,     7,     8,
693*11efff7fSkettenis        0,     9,     0,    10,     0,   105,     0,     0,    46,    47,
694*11efff7fSkettenis       48,    49,    50,     0,     0,     0,     0,    51,    52,    11,
695*11efff7fSkettenis       12,    13,    53,    14,     0,     0,     0,    15,    16,     1,
696*11efff7fSkettenis        2,     3,     4,     5,     6,     7,     8,     0,     9,     0,
697*11efff7fSkettenis       10,     0,     0,   107,    17,     0,     0,    18,     0,     0,
698*11efff7fSkettenis        0,     0,    19,     0,     0,     0,    11,    12,    13,     0,
699*11efff7fSkettenis       14,     0,     0,     0,    15,    16,     1,     2,     3,     4,
700*11efff7fSkettenis        5,     6,     7,     8,     0,     9,     0,    10,     0,     0,
701*11efff7fSkettenis        0,    17,     0,     0,    18,     0,     0,     0,     0,    19,
702*11efff7fSkettenis        0,     0,     0,    11,    12,    13,     0,    14,     0,     0,
703*11efff7fSkettenis        0,    15,    16,     1,     2,     3,     4,   112,     6,     7,
704*11efff7fSkettenis        8,     0,     9,     0,    10,     0,     0,     0,    17,     0,
705*11efff7fSkettenis        0,    18,     0,     0,     0,     0,    19,     0,     0,     0,
706*11efff7fSkettenis       11,    12,    13,     0,    14,     0,     0,     0,    15,    16,
707*11efff7fSkettenis        1,     2,     3,     4,   148,     6,     7,     8,     0,     9,
708*11efff7fSkettenis        0,    10,     0,     0,     0,    17,     0,     0,    18,     0,
709*11efff7fSkettenis        0,     0,     0,    19,     0,     0,     0,    11,    12,    13,
710*11efff7fSkettenis        0,    14,     0,     0,     0,    15,    16,     1,     2,     3,
711*11efff7fSkettenis        4,    97,     6,     7,    98,     0,    99,     0,    10,     0,
712*11efff7fSkettenis        0,     0,    17,     0,     0,    18,     0,     0,     0,     0,
713*11efff7fSkettenis       19,     0,     0,     0,    11,    12,    13,     0,    14,     0,
714*11efff7fSkettenis        0,     0,    15,    16,     0,     0,     0,     0,    66,    67,
715*11efff7fSkettenis       68,     0,    69,    70,    71,    72,    73,     0,    74,    17,
716*11efff7fSkettenis        0,     0,    18,     0,     0,    54,     0,    19,    55,    56,
717*11efff7fSkettenis       57,    58,    59,    60,    75,    61,    62,    63,    64,    65,
718*11efff7fSkettenis       66,    67,    68,     0,    69,    70,    71,    72,    73,     0,
719*11efff7fSkettenis       74,     0,     0,     0,     0,     0,     0,    54,     0,     0,
720*11efff7fSkettenis       55,    56,    57,    58,    59,    60,    75,    61,    62,    63,
721*11efff7fSkettenis       64,    65,    66,    67,    68,   150,    69,    70,    71,    72,
722*11efff7fSkettenis       73,     0,    74,     0,     0,     0,     0,     0,     0,     0,
723*11efff7fSkettenis        0,     0,     0,     0,     0,     0,     0,     0,    75,     0,
724*11efff7fSkettenis        0,     0,    54,     0,   167,    55,    56,    57,    58,    59,
725*11efff7fSkettenis       60,     0,    61,    62,    63,    64,    65,    66,    67,    68,
726*11efff7fSkettenis        0,    69,    70,    71,    72,    73,     0,    74,     0,     0,
727*11efff7fSkettenis        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
728*11efff7fSkettenis        0,     0,     0,    75,     0,     0,     0,    54,     0,   168,
729*11efff7fSkettenis       55,    56,    57,    58,    59,    60,     0,    61,    62,    63,
730*11efff7fSkettenis       64,    65,    66,    67,    68,     0,    69,    70,    71,    72,
731*11efff7fSkettenis       73,     0,    74,     0,     0,     0,     0,     0,     0,     0,
732*11efff7fSkettenis        0,     0,     0,     0,     0,     0,     0,     0,    75,     0,
733*11efff7fSkettenis       54,     0,   155,    55,    56,    57,    58,    59,    60,     0,
734*11efff7fSkettenis       61,    62,    63,    64,    65,    66,    67,    68,     0,    69,
735*11efff7fSkettenis       70,    71,    72,    73,     0,    74,     0,     0,     0,     0,
736*11efff7fSkettenis        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
737*11efff7fSkettenis        0,    75,     0,    54,     0,   166,    55,    56,    57,    58,
738*11efff7fSkettenis       59,    60,     0,    61,    62,    63,    64,    65,    66,    67,
739*11efff7fSkettenis       68,     0,    69,    70,    71,    72,    73,     0,    74,     0,
740*11efff7fSkettenis        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
741*11efff7fSkettenis        0,     0,     0,     0,    75,     0,    54,     0,   169,    55,
742*11efff7fSkettenis       56,    57,    58,    59,    60,     0,    61,    62,    63,    64,
743*11efff7fSkettenis       65,    66,    67,    68,     0,    69,    70,    71,    72,    73,
744*11efff7fSkettenis        0,    74,     0,     0,     0,     0,     0,     0,     0,     0,
745*11efff7fSkettenis        0,     0,     0,     0,     0,     0,     0,    75,     0,    54,
746*11efff7fSkettenis        0,   171,    55,    56,    57,    58,    59,    60,     0,    61,
747*11efff7fSkettenis       62,    63,    64,    65,    66,    67,    68,     0,    69,    70,
748*11efff7fSkettenis       71,    72,    73,     0,    74,     0,     0,     0,     0,     0,
749*11efff7fSkettenis        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
750*11efff7fSkettenis       75,     0,    54,     0,   179,    55,    56,    57,    58,    59,
751*11efff7fSkettenis       60,     0,    61,    62,    63,    64,    65,    66,    67,    68,
752*11efff7fSkettenis        0,    69,    70,    71,    72,    73,     0,    74,     0,     0,
753*11efff7fSkettenis        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
754*11efff7fSkettenis        0,     0,     0,    75,     0,    54,     0,   180,    55,    56,
755*11efff7fSkettenis       57,    58,    59,    60,     0,    61,    62,    63,    64,    65,
756*11efff7fSkettenis       66,    67,    68,     0,    69,    70,    71,    72,    73,     0,
757*11efff7fSkettenis       74,     0,     0,     0,     0,     0,     0,     0,     0,     0,
758*11efff7fSkettenis        0,     0,     0,     0,     0,     0,    75,     0,    54,     0,
759*11efff7fSkettenis      181,    55,    56,    57,    58,    59,    60,   146,    61,    62,
760*11efff7fSkettenis       63,    64,    65,    66,    67,    68,     0,    69,    70,    71,
761*11efff7fSkettenis       72,    73,     0,    74,     0,     0,     0,     0,     0,     0,
762*11efff7fSkettenis        0,     0,     0,     0,     0,   147,     0,    54,     0,    75,
763*11efff7fSkettenis       55,    56,    57,    58,    59,    60,   164,    61,    62,    63,
764*11efff7fSkettenis       64,    65,    66,    67,    68,     0,    69,    70,    71,    72,
765*11efff7fSkettenis       73,     0,    74,     0,     0,     0,     0,     0,     0,     0,
766*11efff7fSkettenis        0,     0,     0,     0,   165,     0,    54,     0,    75,    55,
767*11efff7fSkettenis       56,    57,    58,    59,    60,   140,    61,    62,    63,    64,
768*11efff7fSkettenis       65,    66,    67,    68,     0,    69,    70,    71,    72,    73,
769*11efff7fSkettenis        0,    74,     0,     0,     0,     0,     0,     0,    54,     0,
770*11efff7fSkettenis        0,    55,    56,    57,    58,    59,    60,    75,    61,    62,
771*11efff7fSkettenis       63,    64,    65,    66,    67,    68,     0,    69,    70,    71,
772*11efff7fSkettenis       72,    73,     0,    74,     0,     0,     0,     0,     0,     0,
773*11efff7fSkettenis      -91,     0,     0,    55,    56,    57,    58,    59,    60,    75,
774*11efff7fSkettenis       61,    62,    63,    64,    65,    66,    67,    68,     0,    69,
775*11efff7fSkettenis       70,    71,    72,    73,     0,    74,     0,     0,     0,    58,
776*11efff7fSkettenis       59,    60,     0,    61,    62,    63,    64,    65,    66,    67,
777*11efff7fSkettenis       68,    75,    69,    70,    71,    72,    73,     0,    74,     0,
778*11efff7fSkettenis        0,   -72,   -72,   -72,     0,    29,   -72,   -72,   -72,   -72,
779*11efff7fSkettenis        0,     0,     0,   -72,    75,   -90,     0,     0,     0,     0,
780*11efff7fSkettenis        0,   -90
781*11efff7fSkettenis };
782*11efff7fSkettenis 
783*11efff7fSkettenis static const short yycheck[] =
784*11efff7fSkettenis {
785*11efff7fSkettenis       11,    12,    13,    14,    15,    16,    47,    48,     0,    60,
786*11efff7fSkettenis       38,    62,    40,    29,    30,    31,    32,     0,    34,    35,
787*11efff7fSkettenis       36,    37,    38,    55,    40,    47,    48,    19,    56,    61,
788*11efff7fSkettenis        7,    53,    43,     7,     8,    76,    77,    78,    59,    60,
789*11efff7fSkettenis       56,     0,    53,    54,    55,    56,    57,    58,    59,    60,
790*11efff7fSkettenis       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
791*11efff7fSkettenis       71,    72,    45,    74,    75,     7,     8,    34,    35,    36,
792*11efff7fSkettenis       37,    38,    55,    40,    59,    56,    45,    88,    61,    55,
793*11efff7fSkettenis       91,     3,     4,     5,     6,     7,     8,     9,    10,    56,
794*11efff7fSkettenis       12,    45,    14,    64,   105,    25,   107,    41,    42,    43,
795*11efff7fSkettenis       55,    55,    46,    57,    55,    49,   147,    61,    30,    31,
796*11efff7fSkettenis       32,    45,    34,     3,   125,    55,    38,    39,    55,    57,
797*11efff7fSkettenis      131,   132,   133,   134,   165,     7,     8,    60,    10,   140,
798*11efff7fSkettenis       12,   142,   143,    55,    57,   146,    58,    57,    60,    55,
799*11efff7fSkettenis       62,    63,    57,    17,   142,    -1,    19,    -1,    11,    -1,
800*11efff7fSkettenis       13,    -1,    -1,   164,    -1,    -1,   167,   168,    -1,   170,
801*11efff7fSkettenis       -1,   172,     3,     4,     5,     6,     7,     8,     9,    10,
802*11efff7fSkettenis       -1,    12,    -1,    14,    -1,    16,    -1,    -1,    41,    42,
803*11efff7fSkettenis       43,    44,    45,    -1,    -1,    -1,    -1,    50,    51,    30,
804*11efff7fSkettenis       31,    32,    55,    34,    -1,    -1,    -1,    38,    39,     3,
805*11efff7fSkettenis        4,     5,     6,     7,     8,     9,    10,    -1,    12,    -1,
806*11efff7fSkettenis       14,    -1,    -1,    17,    55,    -1,    -1,    58,    -1,    -1,
807*11efff7fSkettenis       -1,    -1,    63,    -1,    -1,    -1,    30,    31,    32,    -1,
808*11efff7fSkettenis       34,    -1,    -1,    -1,    38,    39,     3,     4,     5,     6,
809*11efff7fSkettenis        7,     8,     9,    10,    -1,    12,    -1,    14,    -1,    -1,
810*11efff7fSkettenis       -1,    55,    -1,    -1,    58,    -1,    -1,    -1,    -1,    63,
811*11efff7fSkettenis       -1,    -1,    -1,    30,    31,    32,    -1,    34,    -1,    -1,
812*11efff7fSkettenis       -1,    38,    39,     3,     4,     5,     6,     7,     8,     9,
813*11efff7fSkettenis       10,    -1,    12,    -1,    14,    -1,    -1,    -1,    55,    -1,
814*11efff7fSkettenis       -1,    58,    -1,    -1,    -1,    -1,    63,    -1,    -1,    -1,
815*11efff7fSkettenis       30,    31,    32,    -1,    34,    -1,    -1,    -1,    38,    39,
816*11efff7fSkettenis        3,     4,     5,     6,     7,     8,     9,    10,    -1,    12,
817*11efff7fSkettenis       -1,    14,    -1,    -1,    -1,    55,    -1,    -1,    58,    -1,
818*11efff7fSkettenis       -1,    -1,    -1,    63,    -1,    -1,    -1,    30,    31,    32,
819*11efff7fSkettenis       -1,    34,    -1,    -1,    -1,    38,    39,     3,     4,     5,
820*11efff7fSkettenis        6,     7,     8,     9,    10,    -1,    12,    -1,    14,    -1,
821*11efff7fSkettenis       -1,    -1,    55,    -1,    -1,    58,    -1,    -1,    -1,    -1,
822*11efff7fSkettenis       63,    -1,    -1,    -1,    30,    31,    32,    -1,    34,    -1,
823*11efff7fSkettenis       -1,    -1,    38,    39,    -1,    -1,    -1,    -1,    30,    31,
824*11efff7fSkettenis       32,    -1,    34,    35,    36,    37,    38,    -1,    40,    55,
825*11efff7fSkettenis       -1,    -1,    58,    -1,    -1,    15,    -1,    63,    18,    19,
826*11efff7fSkettenis       20,    21,    22,    23,    56,    25,    26,    27,    28,    29,
827*11efff7fSkettenis       30,    31,    32,    -1,    34,    35,    36,    37,    38,    -1,
828*11efff7fSkettenis       40,    -1,    -1,    -1,    -1,    -1,    -1,    15,    -1,    -1,
829*11efff7fSkettenis       18,    19,    20,    21,    22,    23,    56,    25,    26,    27,
830*11efff7fSkettenis       28,    29,    30,    31,    32,    65,    34,    35,    36,    37,
831*11efff7fSkettenis       38,    -1,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
832*11efff7fSkettenis       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    56,    -1,
833*11efff7fSkettenis       -1,    -1,    15,    -1,    62,    18,    19,    20,    21,    22,
834*11efff7fSkettenis       23,    -1,    25,    26,    27,    28,    29,    30,    31,    32,
835*11efff7fSkettenis       -1,    34,    35,    36,    37,    38,    -1,    40,    -1,    -1,
836*11efff7fSkettenis       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
837*11efff7fSkettenis       -1,    -1,    -1,    56,    -1,    -1,    -1,    15,    -1,    62,
838*11efff7fSkettenis       18,    19,    20,    21,    22,    23,    -1,    25,    26,    27,
839*11efff7fSkettenis       28,    29,    30,    31,    32,    -1,    34,    35,    36,    37,
840*11efff7fSkettenis       38,    -1,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
841*11efff7fSkettenis       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    56,    -1,
842*11efff7fSkettenis       15,    -1,    60,    18,    19,    20,    21,    22,    23,    -1,
843*11efff7fSkettenis       25,    26,    27,    28,    29,    30,    31,    32,    -1,    34,
844*11efff7fSkettenis       35,    36,    37,    38,    -1,    40,    -1,    -1,    -1,    -1,
845*11efff7fSkettenis       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
846*11efff7fSkettenis       -1,    56,    -1,    15,    -1,    60,    18,    19,    20,    21,
847*11efff7fSkettenis       22,    23,    -1,    25,    26,    27,    28,    29,    30,    31,
848*11efff7fSkettenis       32,    -1,    34,    35,    36,    37,    38,    -1,    40,    -1,
849*11efff7fSkettenis       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
850*11efff7fSkettenis       -1,    -1,    -1,    -1,    56,    -1,    15,    -1,    60,    18,
851*11efff7fSkettenis       19,    20,    21,    22,    23,    -1,    25,    26,    27,    28,
852*11efff7fSkettenis       29,    30,    31,    32,    -1,    34,    35,    36,    37,    38,
853*11efff7fSkettenis       -1,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
854*11efff7fSkettenis       -1,    -1,    -1,    -1,    -1,    -1,    -1,    56,    -1,    15,
855*11efff7fSkettenis       -1,    60,    18,    19,    20,    21,    22,    23,    -1,    25,
856*11efff7fSkettenis       26,    27,    28,    29,    30,    31,    32,    -1,    34,    35,
857*11efff7fSkettenis       36,    37,    38,    -1,    40,    -1,    -1,    -1,    -1,    -1,
858*11efff7fSkettenis       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
859*11efff7fSkettenis       56,    -1,    15,    -1,    60,    18,    19,    20,    21,    22,
860*11efff7fSkettenis       23,    -1,    25,    26,    27,    28,    29,    30,    31,    32,
861*11efff7fSkettenis       -1,    34,    35,    36,    37,    38,    -1,    40,    -1,    -1,
862*11efff7fSkettenis       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
863*11efff7fSkettenis       -1,    -1,    -1,    56,    -1,    15,    -1,    60,    18,    19,
864*11efff7fSkettenis       20,    21,    22,    23,    -1,    25,    26,    27,    28,    29,
865*11efff7fSkettenis       30,    31,    32,    -1,    34,    35,    36,    37,    38,    -1,
866*11efff7fSkettenis       40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
867*11efff7fSkettenis       -1,    -1,    -1,    -1,    -1,    -1,    56,    -1,    15,    -1,
868*11efff7fSkettenis       60,    18,    19,    20,    21,    22,    23,    24,    25,    26,
869*11efff7fSkettenis       27,    28,    29,    30,    31,    32,    -1,    34,    35,    36,
870*11efff7fSkettenis       37,    38,    -1,    40,    -1,    -1,    -1,    -1,    -1,    -1,
871*11efff7fSkettenis       -1,    -1,    -1,    -1,    -1,    52,    -1,    15,    -1,    56,
872*11efff7fSkettenis       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
873*11efff7fSkettenis       28,    29,    30,    31,    32,    -1,    34,    35,    36,    37,
874*11efff7fSkettenis       38,    -1,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
875*11efff7fSkettenis       -1,    -1,    -1,    -1,    52,    -1,    15,    -1,    56,    18,
876*11efff7fSkettenis       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
877*11efff7fSkettenis       29,    30,    31,    32,    -1,    34,    35,    36,    37,    38,
878*11efff7fSkettenis       -1,    40,    -1,    -1,    -1,    -1,    -1,    -1,    15,    -1,
879*11efff7fSkettenis       -1,    18,    19,    20,    21,    22,    23,    56,    25,    26,
880*11efff7fSkettenis       27,    28,    29,    30,    31,    32,    -1,    34,    35,    36,
881*11efff7fSkettenis       37,    38,    -1,    40,    -1,    -1,    -1,    -1,    -1,    -1,
882*11efff7fSkettenis       15,    -1,    -1,    18,    19,    20,    21,    22,    23,    56,
883*11efff7fSkettenis       25,    26,    27,    28,    29,    30,    31,    32,    -1,    34,
884*11efff7fSkettenis       35,    36,    37,    38,    -1,    40,    -1,    -1,    -1,    21,
885*11efff7fSkettenis       22,    23,    -1,    25,    26,    27,    28,    29,    30,    31,
886*11efff7fSkettenis       32,    56,    34,    35,    36,    37,    38,    -1,    40,    -1,
887*11efff7fSkettenis       -1,    41,    42,    43,    -1,    45,    46,    47,    48,    49,
888*11efff7fSkettenis       -1,    -1,    -1,    53,    56,    55,    -1,    -1,    -1,    -1,
889*11efff7fSkettenis       -1,    61
890*11efff7fSkettenis };
891*11efff7fSkettenis 
892*11efff7fSkettenis /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
893*11efff7fSkettenis    symbol of state STATE-NUM.  */
894*11efff7fSkettenis static const unsigned char yystos[] =
895*11efff7fSkettenis {
896*11efff7fSkettenis        0,     3,     4,     5,     6,     7,     8,     9,    10,    12,
897*11efff7fSkettenis       14,    30,    31,    32,    34,    38,    39,    55,    58,    63,
898*11efff7fSkettenis       67,    68,    69,    72,    75,    76,    77,    79,    80,    45,
899*11efff7fSkettenis       72,    80,    72,    72,    72,    72,    72,    68,     7,     7,
900*11efff7fSkettenis       79,    80,     0,    59,    11,    13,    41,    42,    43,    44,
901*11efff7fSkettenis       45,    50,    51,    55,    15,    18,    19,    20,    21,    22,
902*11efff7fSkettenis       23,    25,    26,    27,    28,    29,    30,    31,    32,    34,
903*11efff7fSkettenis       35,    36,    37,    38,    40,    56,    41,    42,    43,    46,
904*11efff7fSkettenis       49,    47,    48,    53,     7,     8,    10,    12,    55,    61,
905*11efff7fSkettenis       60,    64,    72,    55,    74,    74,    74,     7,    10,    12,
906*11efff7fSkettenis       72,    73,    78,    72,    72,    16,    72,    17,    72,    72,
907*11efff7fSkettenis       72,    72,     7,    72,    72,    72,    72,    72,    72,    72,
908*11efff7fSkettenis       72,    72,    72,    72,    72,    25,    72,    72,    74,    74,
909*11efff7fSkettenis       74,    55,    55,    55,    55,    45,    72,    71,    72,     3,
910*11efff7fSkettenis       24,    60,    62,    57,    72,    72,    24,    52,     7,    72,
911*11efff7fSkettenis       65,    72,    72,    72,    72,    60,    70,    60,    72,    72,
912*11efff7fSkettenis       78,    72,    72,    74,    24,    52,    60,    62,    62,    60,
913*11efff7fSkettenis       55,    60,    57,    72,    74,    72,    72,    72,    72,    60,
914*11efff7fSkettenis       60,    60
915*11efff7fSkettenis };
916b725ae77Skettenis 
917b725ae77Skettenis #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
918b725ae77Skettenis # define YYSIZE_T __SIZE_TYPE__
919b725ae77Skettenis #endif
920b725ae77Skettenis #if ! defined (YYSIZE_T) && defined (size_t)
921b725ae77Skettenis # define YYSIZE_T size_t
922b725ae77Skettenis #endif
923b725ae77Skettenis #if ! defined (YYSIZE_T)
924b725ae77Skettenis # if defined (__STDC__) || defined (__cplusplus)
925b725ae77Skettenis #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
926b725ae77Skettenis #  define YYSIZE_T size_t
927b725ae77Skettenis # endif
928b725ae77Skettenis #endif
929b725ae77Skettenis #if ! defined (YYSIZE_T)
930b725ae77Skettenis # define YYSIZE_T unsigned int
931b725ae77Skettenis #endif
932b725ae77Skettenis 
933b725ae77Skettenis #define yyerrok		(yyerrstatus = 0)
934b725ae77Skettenis #define yyclearin	(yychar = YYEMPTY)
935*11efff7fSkettenis #define YYEMPTY		(-2)
936b725ae77Skettenis #define YYEOF		0
937*11efff7fSkettenis 
938b725ae77Skettenis #define YYACCEPT	goto yyacceptlab
939b725ae77Skettenis #define YYABORT		goto yyabortlab
940*11efff7fSkettenis #define YYERROR		goto yyerrorlab
941*11efff7fSkettenis 
942*11efff7fSkettenis 
943b725ae77Skettenis /* Like YYERROR except do call yyerror.  This remains here temporarily
944b725ae77Skettenis    to ease the transition to the new meaning of YYERROR, for GCC.
945b725ae77Skettenis    Once GCC version 2 has supplanted version 1, this can go.  */
946*11efff7fSkettenis 
947b725ae77Skettenis #define YYFAIL		goto yyerrlab
948*11efff7fSkettenis 
949b725ae77Skettenis #define YYRECOVERING()  (!!yyerrstatus)
950*11efff7fSkettenis 
951b725ae77Skettenis #define YYBACKUP(Token, Value)					\
952b725ae77Skettenis do								\
953b725ae77Skettenis   if (yychar == YYEMPTY && yylen == 1)				\
954b725ae77Skettenis     {								\
955b725ae77Skettenis       yychar = (Token);						\
956b725ae77Skettenis       yylval = (Value);						\
957*11efff7fSkettenis       yytoken = YYTRANSLATE (yychar);				\
958b725ae77Skettenis       YYPOPSTACK;						\
959b725ae77Skettenis       goto yybackup;						\
960b725ae77Skettenis     }								\
961b725ae77Skettenis   else								\
962b725ae77Skettenis     { 								\
963b725ae77Skettenis       yyerror ("syntax error: cannot back up");\
964b725ae77Skettenis       YYERROR;							\
965b725ae77Skettenis     }								\
966b725ae77Skettenis while (0)
967b725ae77Skettenis 
968b725ae77Skettenis #define YYTERROR	1
969b725ae77Skettenis #define YYERRCODE	256
970b725ae77Skettenis 
971b725ae77Skettenis /* YYLLOC_DEFAULT -- Compute the default location (before the actions
972*11efff7fSkettenis    are run).  */
973b725ae77Skettenis 
974b725ae77Skettenis #ifndef YYLLOC_DEFAULT
975b725ae77Skettenis # define YYLLOC_DEFAULT(Current, Rhs, N)		\
976*11efff7fSkettenis    ((Current).first_line   = (Rhs)[1].first_line,	\
977*11efff7fSkettenis     (Current).first_column = (Rhs)[1].first_column,	\
978*11efff7fSkettenis     (Current).last_line    = (Rhs)[N].last_line,	\
979*11efff7fSkettenis     (Current).last_column  = (Rhs)[N].last_column)
980b725ae77Skettenis #endif
981b725ae77Skettenis 
982b725ae77Skettenis /* YYLEX -- calling `yylex' with the right arguments.  */
983b725ae77Skettenis 
984b725ae77Skettenis #ifdef YYLEX_PARAM
985*11efff7fSkettenis # define YYLEX yylex (YYLEX_PARAM)
986b725ae77Skettenis #else
987b725ae77Skettenis # define YYLEX yylex ()
988*11efff7fSkettenis #endif
989b725ae77Skettenis 
990b725ae77Skettenis /* Enable debugging if requested.  */
991b725ae77Skettenis #if YYDEBUG
992b725ae77Skettenis 
993b725ae77Skettenis # ifndef YYFPRINTF
994b725ae77Skettenis #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
995b725ae77Skettenis #  define YYFPRINTF fprintf
996b725ae77Skettenis # endif
997b725ae77Skettenis 
998b725ae77Skettenis # define YYDPRINTF(Args)			\
999b725ae77Skettenis do {						\
1000b725ae77Skettenis   if (yydebug)					\
1001b725ae77Skettenis     YYFPRINTF Args;				\
1002b725ae77Skettenis } while (0)
1003*11efff7fSkettenis 
1004*11efff7fSkettenis # define YYDSYMPRINT(Args)			\
1005*11efff7fSkettenis do {						\
1006*11efff7fSkettenis   if (yydebug)					\
1007*11efff7fSkettenis     yysymprint Args;				\
1008*11efff7fSkettenis } while (0)
1009*11efff7fSkettenis 
1010*11efff7fSkettenis # define YYDSYMPRINTF(Title, Token, Value, Location)		\
1011*11efff7fSkettenis do {								\
1012*11efff7fSkettenis   if (yydebug)							\
1013*11efff7fSkettenis     {								\
1014*11efff7fSkettenis       YYFPRINTF (stderr, "%s ", Title);				\
1015*11efff7fSkettenis       yysymprint (stderr, 					\
1016*11efff7fSkettenis                   Token, Value);	\
1017*11efff7fSkettenis       YYFPRINTF (stderr, "\n");					\
1018*11efff7fSkettenis     }								\
1019*11efff7fSkettenis } while (0)
1020*11efff7fSkettenis 
1021*11efff7fSkettenis /*------------------------------------------------------------------.
1022*11efff7fSkettenis | yy_stack_print -- Print the state stack from its BOTTOM up to its |
1023*11efff7fSkettenis | TOP (included).                                                   |
1024*11efff7fSkettenis `------------------------------------------------------------------*/
1025*11efff7fSkettenis 
1026*11efff7fSkettenis #if defined (__STDC__) || defined (__cplusplus)
1027*11efff7fSkettenis static void
yy_stack_print(short * bottom,short * top)1028*11efff7fSkettenis yy_stack_print (short *bottom, short *top)
1029*11efff7fSkettenis #else
1030*11efff7fSkettenis static void
1031*11efff7fSkettenis yy_stack_print (bottom, top)
1032*11efff7fSkettenis     short *bottom;
1033*11efff7fSkettenis     short *top;
1034*11efff7fSkettenis #endif
1035*11efff7fSkettenis {
1036*11efff7fSkettenis   YYFPRINTF (stderr, "Stack now");
1037*11efff7fSkettenis   for (/* Nothing. */; bottom <= top; ++bottom)
1038*11efff7fSkettenis     YYFPRINTF (stderr, " %d", *bottom);
1039*11efff7fSkettenis   YYFPRINTF (stderr, "\n");
1040*11efff7fSkettenis }
1041*11efff7fSkettenis 
1042*11efff7fSkettenis # define YY_STACK_PRINT(Bottom, Top)				\
1043*11efff7fSkettenis do {								\
1044*11efff7fSkettenis   if (yydebug)							\
1045*11efff7fSkettenis     yy_stack_print ((Bottom), (Top));				\
1046*11efff7fSkettenis } while (0)
1047*11efff7fSkettenis 
1048*11efff7fSkettenis 
1049*11efff7fSkettenis /*------------------------------------------------.
1050*11efff7fSkettenis | Report that the YYRULE is going to be reduced.  |
1051*11efff7fSkettenis `------------------------------------------------*/
1052*11efff7fSkettenis 
1053*11efff7fSkettenis #if defined (__STDC__) || defined (__cplusplus)
1054*11efff7fSkettenis static void
yy_reduce_print(int yyrule)1055*11efff7fSkettenis yy_reduce_print (int yyrule)
1056*11efff7fSkettenis #else
1057*11efff7fSkettenis static void
1058*11efff7fSkettenis yy_reduce_print (yyrule)
1059*11efff7fSkettenis     int yyrule;
1060*11efff7fSkettenis #endif
1061*11efff7fSkettenis {
1062*11efff7fSkettenis   int yyi;
1063*11efff7fSkettenis   unsigned int yylno = yyrline[yyrule];
1064*11efff7fSkettenis   YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
1065*11efff7fSkettenis              yyrule - 1, yylno);
1066*11efff7fSkettenis   /* Print the symbols being reduced, and their result.  */
1067*11efff7fSkettenis   for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
1068*11efff7fSkettenis     YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
1069*11efff7fSkettenis   YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
1070*11efff7fSkettenis }
1071*11efff7fSkettenis 
1072*11efff7fSkettenis # define YY_REDUCE_PRINT(Rule)		\
1073*11efff7fSkettenis do {					\
1074*11efff7fSkettenis   if (yydebug)				\
1075*11efff7fSkettenis     yy_reduce_print (Rule);		\
1076*11efff7fSkettenis } while (0)
1077*11efff7fSkettenis 
1078b725ae77Skettenis /* Nonzero means print parse trace.  It is left uninitialized so that
1079b725ae77Skettenis    multiple parsers can coexist.  */
1080b725ae77Skettenis int yydebug;
1081b725ae77Skettenis #else /* !YYDEBUG */
1082b725ae77Skettenis # define YYDPRINTF(Args)
1083*11efff7fSkettenis # define YYDSYMPRINT(Args)
1084*11efff7fSkettenis # define YYDSYMPRINTF(Title, Token, Value, Location)
1085*11efff7fSkettenis # define YY_STACK_PRINT(Bottom, Top)
1086*11efff7fSkettenis # define YY_REDUCE_PRINT(Rule)
1087b725ae77Skettenis #endif /* !YYDEBUG */
1088b725ae77Skettenis 
1089*11efff7fSkettenis 
1090b725ae77Skettenis /* YYINITDEPTH -- initial size of the parser's stacks.  */
1091b725ae77Skettenis #ifndef	YYINITDEPTH
1092b725ae77Skettenis # define YYINITDEPTH 200
1093b725ae77Skettenis #endif
1094b725ae77Skettenis 
1095b725ae77Skettenis /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1096b725ae77Skettenis    if the built-in stack extension method is used).
1097b725ae77Skettenis 
1098b725ae77Skettenis    Do not make this value too large; the results are undefined if
1099b725ae77Skettenis    SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
1100b725ae77Skettenis    evaluated with infinite-precision integer arithmetic.  */
1101b725ae77Skettenis 
1102*11efff7fSkettenis #if defined (YYMAXDEPTH) && YYMAXDEPTH == 0
1103b725ae77Skettenis # undef YYMAXDEPTH
1104b725ae77Skettenis #endif
1105b725ae77Skettenis 
1106b725ae77Skettenis #ifndef YYMAXDEPTH
1107b725ae77Skettenis # define YYMAXDEPTH 10000
1108b725ae77Skettenis #endif
1109*11efff7fSkettenis 
1110b725ae77Skettenis 
1111*11efff7fSkettenis 
1112*11efff7fSkettenis #if YYERROR_VERBOSE
1113b725ae77Skettenis 
1114b725ae77Skettenis # ifndef yystrlen
1115b725ae77Skettenis #  if defined (__GLIBC__) && defined (_STRING_H)
1116b725ae77Skettenis #   define yystrlen strlen
1117b725ae77Skettenis #  else
1118b725ae77Skettenis /* Return the length of YYSTR.  */
1119b725ae77Skettenis static YYSIZE_T
1120b725ae77Skettenis #   if defined (__STDC__) || defined (__cplusplus)
yystrlen(const char * yystr)1121b725ae77Skettenis yystrlen (const char *yystr)
1122b725ae77Skettenis #   else
1123b725ae77Skettenis yystrlen (yystr)
1124b725ae77Skettenis      const char *yystr;
1125b725ae77Skettenis #   endif
1126b725ae77Skettenis {
1127b725ae77Skettenis   register const char *yys = yystr;
1128b725ae77Skettenis 
1129b725ae77Skettenis   while (*yys++ != '\0')
1130b725ae77Skettenis     continue;
1131b725ae77Skettenis 
1132b725ae77Skettenis   return yys - yystr - 1;
1133b725ae77Skettenis }
1134b725ae77Skettenis #  endif
1135b725ae77Skettenis # endif
1136b725ae77Skettenis 
1137b725ae77Skettenis # ifndef yystpcpy
1138b725ae77Skettenis #  if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
1139b725ae77Skettenis #   define yystpcpy stpcpy
1140b725ae77Skettenis #  else
1141b725ae77Skettenis /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1142b725ae77Skettenis    YYDEST.  */
1143b725ae77Skettenis static char *
1144b725ae77Skettenis #   if defined (__STDC__) || defined (__cplusplus)
yystpcpy(char * yydest,const char * yysrc)1145b725ae77Skettenis yystpcpy (char *yydest, const char *yysrc)
1146b725ae77Skettenis #   else
1147b725ae77Skettenis yystpcpy (yydest, yysrc)
1148b725ae77Skettenis      char *yydest;
1149b725ae77Skettenis      const char *yysrc;
1150b725ae77Skettenis #   endif
1151b725ae77Skettenis {
1152b725ae77Skettenis   register char *yyd = yydest;
1153b725ae77Skettenis   register const char *yys = yysrc;
1154b725ae77Skettenis 
1155b725ae77Skettenis   while ((*yyd++ = *yys++) != '\0')
1156b725ae77Skettenis     continue;
1157b725ae77Skettenis 
1158b725ae77Skettenis   return yyd - 1;
1159b725ae77Skettenis }
1160b725ae77Skettenis #  endif
1161b725ae77Skettenis # endif
1162*11efff7fSkettenis 
1163*11efff7fSkettenis #endif /* !YYERROR_VERBOSE */
1164*11efff7fSkettenis 
1165b725ae77Skettenis 
1166b725ae77Skettenis 
1167*11efff7fSkettenis #if YYDEBUG
1168*11efff7fSkettenis /*--------------------------------.
1169*11efff7fSkettenis | Print this symbol on YYOUTPUT.  |
1170*11efff7fSkettenis `--------------------------------*/
1171b725ae77Skettenis 
1172*11efff7fSkettenis #if defined (__STDC__) || defined (__cplusplus)
1173*11efff7fSkettenis static void
yysymprint(FILE * yyoutput,int yytype,YYSTYPE * yyvaluep)1174*11efff7fSkettenis yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
1175*11efff7fSkettenis #else
1176*11efff7fSkettenis static void
1177*11efff7fSkettenis yysymprint (yyoutput, yytype, yyvaluep)
1178*11efff7fSkettenis     FILE *yyoutput;
1179*11efff7fSkettenis     int yytype;
1180*11efff7fSkettenis     YYSTYPE *yyvaluep;
1181*11efff7fSkettenis #endif
1182*11efff7fSkettenis {
1183*11efff7fSkettenis   /* Pacify ``unused variable'' warnings.  */
1184*11efff7fSkettenis   (void) yyvaluep;
1185*11efff7fSkettenis 
1186*11efff7fSkettenis   if (yytype < YYNTOKENS)
1187*11efff7fSkettenis     {
1188*11efff7fSkettenis       YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
1189*11efff7fSkettenis # ifdef YYPRINT
1190*11efff7fSkettenis       YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
1191*11efff7fSkettenis # endif
1192*11efff7fSkettenis     }
1193*11efff7fSkettenis   else
1194*11efff7fSkettenis     YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
1195*11efff7fSkettenis 
1196*11efff7fSkettenis   switch (yytype)
1197*11efff7fSkettenis     {
1198*11efff7fSkettenis       default:
1199*11efff7fSkettenis         break;
1200*11efff7fSkettenis     }
1201*11efff7fSkettenis   YYFPRINTF (yyoutput, ")");
1202*11efff7fSkettenis }
1203*11efff7fSkettenis 
1204*11efff7fSkettenis #endif /* ! YYDEBUG */
1205*11efff7fSkettenis /*-----------------------------------------------.
1206*11efff7fSkettenis | Release the memory associated to this symbol.  |
1207*11efff7fSkettenis `-----------------------------------------------*/
1208*11efff7fSkettenis 
1209*11efff7fSkettenis #if defined (__STDC__) || defined (__cplusplus)
1210*11efff7fSkettenis static void
yydestruct(int yytype,YYSTYPE * yyvaluep)1211*11efff7fSkettenis yydestruct (int yytype, YYSTYPE *yyvaluep)
1212*11efff7fSkettenis #else
1213*11efff7fSkettenis static void
1214*11efff7fSkettenis yydestruct (yytype, yyvaluep)
1215*11efff7fSkettenis     int yytype;
1216*11efff7fSkettenis     YYSTYPE *yyvaluep;
1217*11efff7fSkettenis #endif
1218*11efff7fSkettenis {
1219*11efff7fSkettenis   /* Pacify ``unused variable'' warnings.  */
1220*11efff7fSkettenis   (void) yyvaluep;
1221*11efff7fSkettenis 
1222*11efff7fSkettenis   switch (yytype)
1223*11efff7fSkettenis     {
1224*11efff7fSkettenis 
1225*11efff7fSkettenis       default:
1226*11efff7fSkettenis         break;
1227*11efff7fSkettenis     }
1228*11efff7fSkettenis }
1229*11efff7fSkettenis 
1230*11efff7fSkettenis 
1231*11efff7fSkettenis /* Prevent warnings from -Wmissing-prototypes.  */
1232b725ae77Skettenis 
1233b725ae77Skettenis #ifdef YYPARSE_PARAM
1234b725ae77Skettenis # if defined (__STDC__) || defined (__cplusplus)
1235*11efff7fSkettenis int yyparse (void *YYPARSE_PARAM);
1236b725ae77Skettenis # else
1237*11efff7fSkettenis int yyparse ();
1238b725ae77Skettenis # endif
1239b725ae77Skettenis #else /* ! YYPARSE_PARAM */
1240*11efff7fSkettenis #if defined (__STDC__) || defined (__cplusplus)
1241*11efff7fSkettenis int yyparse (void);
1242*11efff7fSkettenis #else
1243*11efff7fSkettenis int yyparse ();
1244*11efff7fSkettenis #endif
1245b725ae77Skettenis #endif /* ! YYPARSE_PARAM */
1246b725ae77Skettenis 
1247b725ae77Skettenis 
1248b725ae77Skettenis 
1249*11efff7fSkettenis /* The lookahead symbol.  */
1250*11efff7fSkettenis int yychar;
1251*11efff7fSkettenis 
1252*11efff7fSkettenis /* The semantic value of the lookahead symbol.  */
1253*11efff7fSkettenis YYSTYPE yylval;
1254*11efff7fSkettenis 
1255*11efff7fSkettenis /* Number of syntax errors so far.  */
1256b725ae77Skettenis int yynerrs;
1257b725ae77Skettenis 
1258*11efff7fSkettenis 
1259*11efff7fSkettenis 
1260*11efff7fSkettenis /*----------.
1261*11efff7fSkettenis | yyparse.  |
1262*11efff7fSkettenis `----------*/
1263*11efff7fSkettenis 
1264*11efff7fSkettenis #ifdef YYPARSE_PARAM
1265*11efff7fSkettenis # if defined (__STDC__) || defined (__cplusplus)
yyparse(void * YYPARSE_PARAM)1266*11efff7fSkettenis int yyparse (void *YYPARSE_PARAM)
1267b725ae77Skettenis # else
1268*11efff7fSkettenis int yyparse (YYPARSE_PARAM)
1269*11efff7fSkettenis   void *YYPARSE_PARAM;
1270b725ae77Skettenis # endif
1271*11efff7fSkettenis #else /* ! YYPARSE_PARAM */
1272*11efff7fSkettenis #if defined (__STDC__) || defined (__cplusplus)
1273b725ae77Skettenis int
1274*11efff7fSkettenis yyparse (void)
1275*11efff7fSkettenis #else
1276*11efff7fSkettenis int
1277*11efff7fSkettenis yyparse ()
1278*11efff7fSkettenis 
1279*11efff7fSkettenis #endif
1280*11efff7fSkettenis #endif
1281b725ae77Skettenis {
1282b725ae77Skettenis 
1283b725ae77Skettenis   register int yystate;
1284b725ae77Skettenis   register int yyn;
1285b725ae77Skettenis   int yyresult;
1286b725ae77Skettenis   /* Number of tokens to shift before error messages enabled.  */
1287b725ae77Skettenis   int yyerrstatus;
1288b725ae77Skettenis   /* Lookahead token as an internal (translated) token number.  */
1289*11efff7fSkettenis   int yytoken = 0;
1290b725ae77Skettenis 
1291b725ae77Skettenis   /* Three stacks and their tools:
1292b725ae77Skettenis      `yyss': related to states,
1293b725ae77Skettenis      `yyvs': related to semantic values,
1294b725ae77Skettenis      `yyls': related to locations.
1295b725ae77Skettenis 
1296b725ae77Skettenis      Refer to the stacks thru separate pointers, to allow yyoverflow
1297b725ae77Skettenis      to xreallocate them elsewhere.  */
1298b725ae77Skettenis 
1299b725ae77Skettenis   /* The state stack.  */
1300b725ae77Skettenis   short	yyssa[YYINITDEPTH];
1301b725ae77Skettenis   short *yyss = yyssa;
1302b725ae77Skettenis   register short *yyssp;
1303b725ae77Skettenis 
1304b725ae77Skettenis   /* The semantic value stack.  */
1305b725ae77Skettenis   YYSTYPE yyvsa[YYINITDEPTH];
1306b725ae77Skettenis   YYSTYPE *yyvs = yyvsa;
1307b725ae77Skettenis   register YYSTYPE *yyvsp;
1308b725ae77Skettenis 
1309b725ae77Skettenis 
1310*11efff7fSkettenis 
1311b725ae77Skettenis #define YYPOPSTACK   (yyvsp--, yyssp--)
1312b725ae77Skettenis 
1313b725ae77Skettenis   YYSIZE_T yystacksize = YYINITDEPTH;
1314b725ae77Skettenis 
1315b725ae77Skettenis   /* The variables used to return semantic value and location from the
1316b725ae77Skettenis      action routines.  */
1317b725ae77Skettenis   YYSTYPE yyval;
1318*11efff7fSkettenis 
1319b725ae77Skettenis 
1320b725ae77Skettenis   /* When reducing, the number of symbols on the RHS of the reduced
1321b725ae77Skettenis      rule.  */
1322b725ae77Skettenis   int yylen;
1323b725ae77Skettenis 
1324b725ae77Skettenis   YYDPRINTF ((stderr, "Starting parse\n"));
1325b725ae77Skettenis 
1326b725ae77Skettenis   yystate = 0;
1327b725ae77Skettenis   yyerrstatus = 0;
1328b725ae77Skettenis   yynerrs = 0;
1329b725ae77Skettenis   yychar = YYEMPTY;		/* Cause a token to be read.  */
1330b725ae77Skettenis 
1331b725ae77Skettenis   /* Initialize stack pointers.
1332b725ae77Skettenis      Waste one element of value and location stack
1333b725ae77Skettenis      so that they stay on the same level as the state stack.
1334b725ae77Skettenis      The wasted elements are never initialized.  */
1335b725ae77Skettenis 
1336b725ae77Skettenis   yyssp = yyss;
1337b725ae77Skettenis   yyvsp = yyvs;
1338*11efff7fSkettenis 
1339b725ae77Skettenis   goto yysetstate;
1340b725ae77Skettenis 
1341b725ae77Skettenis /*------------------------------------------------------------.
1342b725ae77Skettenis | yynewstate -- Push a new state, which is found in yystate.  |
1343b725ae77Skettenis `------------------------------------------------------------*/
1344b725ae77Skettenis  yynewstate:
1345b725ae77Skettenis   /* In all cases, when you get here, the value and location stacks
1346b725ae77Skettenis      have just been pushed. so pushing a state here evens the stacks.
1347b725ae77Skettenis      */
1348b725ae77Skettenis   yyssp++;
1349b725ae77Skettenis 
1350b725ae77Skettenis  yysetstate:
1351b725ae77Skettenis   *yyssp = yystate;
1352b725ae77Skettenis 
1353*11efff7fSkettenis   if (yyss + yystacksize - 1 <= yyssp)
1354b725ae77Skettenis     {
1355b725ae77Skettenis       /* Get the current used size of the three stacks, in elements.  */
1356b725ae77Skettenis       YYSIZE_T yysize = yyssp - yyss + 1;
1357b725ae77Skettenis 
1358b725ae77Skettenis #ifdef yyoverflow
1359b725ae77Skettenis       {
1360b725ae77Skettenis 	/* Give user a chance to xreallocate the stack. Use copies of
1361b725ae77Skettenis 	   these so that the &'s don't force the real ones into
1362b725ae77Skettenis 	   memory.  */
1363b725ae77Skettenis 	YYSTYPE *yyvs1 = yyvs;
1364b725ae77Skettenis 	short *yyss1 = yyss;
1365b725ae77Skettenis 
1366*11efff7fSkettenis 
1367b725ae77Skettenis 	/* Each stack pointer address is followed by the size of the
1368*11efff7fSkettenis 	   data in use in that stack, in bytes.  This used to be a
1369*11efff7fSkettenis 	   conditional around just the two extra args, but that might
1370*11efff7fSkettenis 	   be undefined if yyoverflow is a macro.  */
1371b725ae77Skettenis 	yyoverflow ("parser stack overflow",
1372b725ae77Skettenis 		    &yyss1, yysize * sizeof (*yyssp),
1373b725ae77Skettenis 		    &yyvs1, yysize * sizeof (*yyvsp),
1374*11efff7fSkettenis 
1375b725ae77Skettenis 		    &yystacksize);
1376*11efff7fSkettenis 
1377b725ae77Skettenis 	yyss = yyss1;
1378b725ae77Skettenis 	yyvs = yyvs1;
1379b725ae77Skettenis       }
1380b725ae77Skettenis #else /* no yyoverflow */
1381b725ae77Skettenis # ifndef YYSTACK_RELOCATE
1382b725ae77Skettenis       goto yyoverflowlab;
1383b725ae77Skettenis # else
1384b725ae77Skettenis       /* Extend the stack our own way.  */
1385*11efff7fSkettenis       if (YYMAXDEPTH <= yystacksize)
1386b725ae77Skettenis 	goto yyoverflowlab;
1387b725ae77Skettenis       yystacksize *= 2;
1388*11efff7fSkettenis       if (YYMAXDEPTH < yystacksize)
1389b725ae77Skettenis 	yystacksize = YYMAXDEPTH;
1390b725ae77Skettenis 
1391b725ae77Skettenis       {
1392b725ae77Skettenis 	short *yyss1 = yyss;
1393b725ae77Skettenis 	union yyalloc *yyptr =
1394b725ae77Skettenis 	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
1395b725ae77Skettenis 	if (! yyptr)
1396b725ae77Skettenis 	  goto yyoverflowlab;
1397b725ae77Skettenis 	YYSTACK_RELOCATE (yyss);
1398b725ae77Skettenis 	YYSTACK_RELOCATE (yyvs);
1399*11efff7fSkettenis 
1400b725ae77Skettenis #  undef YYSTACK_RELOCATE
1401b725ae77Skettenis 	if (yyss1 != yyssa)
1402b725ae77Skettenis 	  YYSTACK_FREE (yyss1);
1403b725ae77Skettenis       }
1404b725ae77Skettenis # endif
1405b725ae77Skettenis #endif /* no yyoverflow */
1406b725ae77Skettenis 
1407b725ae77Skettenis       yyssp = yyss + yysize - 1;
1408b725ae77Skettenis       yyvsp = yyvs + yysize - 1;
1409*11efff7fSkettenis 
1410b725ae77Skettenis 
1411b725ae77Skettenis       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
1412b725ae77Skettenis 		  (unsigned long int) yystacksize));
1413b725ae77Skettenis 
1414*11efff7fSkettenis       if (yyss + yystacksize - 1 <= yyssp)
1415b725ae77Skettenis 	YYABORT;
1416b725ae77Skettenis     }
1417b725ae77Skettenis 
1418b725ae77Skettenis   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1419b725ae77Skettenis 
1420b725ae77Skettenis   goto yybackup;
1421b725ae77Skettenis 
1422b725ae77Skettenis /*-----------.
1423b725ae77Skettenis | yybackup.  |
1424b725ae77Skettenis `-----------*/
1425b725ae77Skettenis yybackup:
1426b725ae77Skettenis 
1427b725ae77Skettenis /* Do appropriate processing given the current state.  */
1428b725ae77Skettenis /* Read a lookahead token if we need one and don't already have one.  */
1429b725ae77Skettenis /* yyresume: */
1430b725ae77Skettenis 
1431b725ae77Skettenis   /* First try to decide what to do without reference to lookahead token.  */
1432b725ae77Skettenis 
1433b725ae77Skettenis   yyn = yypact[yystate];
1434*11efff7fSkettenis   if (yyn == YYPACT_NINF)
1435b725ae77Skettenis     goto yydefault;
1436b725ae77Skettenis 
1437b725ae77Skettenis   /* Not known => get a lookahead token if don't already have one.  */
1438b725ae77Skettenis 
1439*11efff7fSkettenis   /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
1440b725ae77Skettenis   if (yychar == YYEMPTY)
1441b725ae77Skettenis     {
1442b725ae77Skettenis       YYDPRINTF ((stderr, "Reading a token: "));
1443b725ae77Skettenis       yychar = YYLEX;
1444b725ae77Skettenis     }
1445b725ae77Skettenis 
1446*11efff7fSkettenis   if (yychar <= YYEOF)
1447b725ae77Skettenis     {
1448*11efff7fSkettenis       yychar = yytoken = YYEOF;
1449b725ae77Skettenis       YYDPRINTF ((stderr, "Now at end of input.\n"));
1450b725ae77Skettenis     }
1451b725ae77Skettenis   else
1452b725ae77Skettenis     {
1453*11efff7fSkettenis       yytoken = YYTRANSLATE (yychar);
1454*11efff7fSkettenis       YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
1455b725ae77Skettenis     }
1456b725ae77Skettenis 
1457*11efff7fSkettenis   /* If the proper action on seeing token YYTOKEN is to reduce or to
1458*11efff7fSkettenis      detect an error, take that action.  */
1459*11efff7fSkettenis   yyn += yytoken;
1460*11efff7fSkettenis   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
1461b725ae77Skettenis     goto yydefault;
1462b725ae77Skettenis   yyn = yytable[yyn];
1463*11efff7fSkettenis   if (yyn <= 0)
1464b725ae77Skettenis     {
1465*11efff7fSkettenis       if (yyn == 0 || yyn == YYTABLE_NINF)
1466b725ae77Skettenis 	goto yyerrlab;
1467b725ae77Skettenis       yyn = -yyn;
1468b725ae77Skettenis       goto yyreduce;
1469b725ae77Skettenis     }
1470b725ae77Skettenis 
1471b725ae77Skettenis   if (yyn == YYFINAL)
1472b725ae77Skettenis     YYACCEPT;
1473b725ae77Skettenis 
1474b725ae77Skettenis   /* Shift the lookahead token.  */
1475*11efff7fSkettenis   YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
1476b725ae77Skettenis 
1477b725ae77Skettenis   /* Discard the token being shifted unless it is eof.  */
1478b725ae77Skettenis   if (yychar != YYEOF)
1479b725ae77Skettenis     yychar = YYEMPTY;
1480b725ae77Skettenis 
1481b725ae77Skettenis   *++yyvsp = yylval;
1482*11efff7fSkettenis 
1483b725ae77Skettenis 
1484b725ae77Skettenis   /* Count tokens shifted since error; after three, turn off error
1485b725ae77Skettenis      status.  */
1486b725ae77Skettenis   if (yyerrstatus)
1487b725ae77Skettenis     yyerrstatus--;
1488b725ae77Skettenis 
1489b725ae77Skettenis   yystate = yyn;
1490b725ae77Skettenis   goto yynewstate;
1491b725ae77Skettenis 
1492b725ae77Skettenis 
1493b725ae77Skettenis /*-----------------------------------------------------------.
1494b725ae77Skettenis | yydefault -- do the default action for the current state.  |
1495b725ae77Skettenis `-----------------------------------------------------------*/
1496b725ae77Skettenis yydefault:
1497b725ae77Skettenis   yyn = yydefact[yystate];
1498b725ae77Skettenis   if (yyn == 0)
1499b725ae77Skettenis     goto yyerrlab;
1500b725ae77Skettenis   goto yyreduce;
1501b725ae77Skettenis 
1502b725ae77Skettenis 
1503b725ae77Skettenis /*-----------------------------.
1504b725ae77Skettenis | yyreduce -- Do a reduction.  |
1505b725ae77Skettenis `-----------------------------*/
1506b725ae77Skettenis yyreduce:
1507b725ae77Skettenis   /* yyn is the number of a rule to reduce with.  */
1508b725ae77Skettenis   yylen = yyr2[yyn];
1509b725ae77Skettenis 
1510b725ae77Skettenis   /* If YYLEN is nonzero, implement the default value of the action:
1511b725ae77Skettenis      `$$ = $1'.
1512b725ae77Skettenis 
1513*11efff7fSkettenis      Otherwise, the following line sets YYVAL to garbage.
1514*11efff7fSkettenis      This behavior is undocumented and Bison
1515b725ae77Skettenis      users should not rely upon it.  Assigning to YYVAL
1516b725ae77Skettenis      unconditionally makes the parser a bit smaller, and it avoids a
1517b725ae77Skettenis      GCC warning that YYVAL may be used uninitialized.  */
1518b725ae77Skettenis   yyval = yyvsp[1-yylen];
1519b725ae77Skettenis 
1520b725ae77Skettenis 
1521*11efff7fSkettenis   YY_REDUCE_PRINT (yyn);
1522*11efff7fSkettenis   switch (yyn)
1523b725ae77Skettenis     {
1524*11efff7fSkettenis         case 3:
1525*11efff7fSkettenis #line 218 "ada-exp.y"
1526b725ae77Skettenis     { write_exp_elt_opcode (OP_TYPE);
1527b725ae77Skettenis 			  write_exp_elt_type (yyvsp[0].tval);
1528b725ae77Skettenis  			  write_exp_elt_opcode (OP_TYPE); }
1529b725ae77Skettenis     break;
1530*11efff7fSkettenis 
1531*11efff7fSkettenis   case 5:
1532*11efff7fSkettenis #line 226 "ada-exp.y"
1533b725ae77Skettenis     { write_exp_elt_opcode (BINOP_COMMA); }
1534b725ae77Skettenis     break;
1535*11efff7fSkettenis 
1536*11efff7fSkettenis   case 6:
1537*11efff7fSkettenis #line 231 "ada-exp.y"
1538b725ae77Skettenis     { write_exp_elt_opcode (UNOP_IND); }
1539b725ae77Skettenis     break;
1540*11efff7fSkettenis 
1541*11efff7fSkettenis   case 7:
1542*11efff7fSkettenis #line 235 "ada-exp.y"
1543b725ae77Skettenis     { write_exp_elt_opcode (STRUCTOP_STRUCT);
1544b725ae77Skettenis 			  write_exp_string (yyvsp[0].ssym.stoken);
1545b725ae77Skettenis 			  write_exp_elt_opcode (STRUCTOP_STRUCT);
1546b725ae77Skettenis 			  }
1547b725ae77Skettenis     break;
1548*11efff7fSkettenis 
1549*11efff7fSkettenis   case 8:
1550*11efff7fSkettenis #line 242 "ada-exp.y"
1551b725ae77Skettenis     {
1552b725ae77Skettenis 			  write_exp_elt_opcode (OP_FUNCALL);
1553b725ae77Skettenis 			  write_exp_elt_longcst (yyvsp[-1].lval);
1554b725ae77Skettenis 			  write_exp_elt_opcode (OP_FUNCALL);
1555b725ae77Skettenis 		        }
1556b725ae77Skettenis     break;
1557*11efff7fSkettenis 
1558*11efff7fSkettenis   case 9:
1559*11efff7fSkettenis #line 250 "ada-exp.y"
1560b725ae77Skettenis     {
1561b725ae77Skettenis 			  write_exp_elt_opcode (UNOP_CAST);
1562b725ae77Skettenis 			  write_exp_elt_type (yyvsp[-3].tval);
1563b725ae77Skettenis 			  write_exp_elt_opcode (UNOP_CAST);
1564b725ae77Skettenis 			}
1565b725ae77Skettenis     break;
1566*11efff7fSkettenis 
1567*11efff7fSkettenis   case 10:
1568*11efff7fSkettenis #line 257 "ada-exp.y"
1569b725ae77Skettenis     { type_qualifier = yyvsp[-2].tval; }
1570b725ae77Skettenis     break;
1571*11efff7fSkettenis 
1572*11efff7fSkettenis   case 11:
1573*11efff7fSkettenis #line 258 "ada-exp.y"
1574b725ae77Skettenis     {
1575*11efff7fSkettenis 			  write_exp_elt_opcode (UNOP_QUAL);
1576b725ae77Skettenis 			  write_exp_elt_type (yyvsp[-6].tval);
1577*11efff7fSkettenis 			  write_exp_elt_opcode (UNOP_QUAL);
1578b725ae77Skettenis 			  type_qualifier = yyvsp[-4].tval;
1579b725ae77Skettenis 			}
1580b725ae77Skettenis     break;
1581*11efff7fSkettenis 
1582*11efff7fSkettenis   case 12:
1583*11efff7fSkettenis #line 266 "ada-exp.y"
1584b725ae77Skettenis     { yyval.tval = type_qualifier; }
1585b725ae77Skettenis     break;
1586*11efff7fSkettenis 
1587*11efff7fSkettenis   case 13:
1588*11efff7fSkettenis #line 271 "ada-exp.y"
1589b725ae77Skettenis     { write_exp_elt_opcode (TERNOP_SLICE); }
1590b725ae77Skettenis     break;
1591*11efff7fSkettenis 
1592*11efff7fSkettenis   case 14:
1593*11efff7fSkettenis #line 274 "ada-exp.y"
1594b725ae77Skettenis     { }
1595b725ae77Skettenis     break;
1596*11efff7fSkettenis 
1597b725ae77Skettenis   case 16:
1598b725ae77Skettenis #line 281 "ada-exp.y"
1599*11efff7fSkettenis     { write_dollar_variable (yyvsp[0].sval); }
1600b725ae77Skettenis     break;
1601*11efff7fSkettenis 
1602b725ae77Skettenis   case 18:
1603*11efff7fSkettenis #line 288 "ada-exp.y"
1604b725ae77Skettenis     { write_exp_elt_opcode (BINOP_ASSIGN); }
1605b725ae77Skettenis     break;
1606*11efff7fSkettenis 
1607*11efff7fSkettenis   case 19:
1608*11efff7fSkettenis #line 292 "ada-exp.y"
1609b725ae77Skettenis     { write_exp_elt_opcode (UNOP_NEG); }
1610b725ae77Skettenis     break;
1611*11efff7fSkettenis 
1612*11efff7fSkettenis   case 20:
1613*11efff7fSkettenis #line 296 "ada-exp.y"
1614b725ae77Skettenis     { write_exp_elt_opcode (UNOP_PLUS); }
1615b725ae77Skettenis     break;
1616*11efff7fSkettenis 
1617*11efff7fSkettenis   case 21:
1618*11efff7fSkettenis #line 300 "ada-exp.y"
1619b725ae77Skettenis     { write_exp_elt_opcode (UNOP_LOGICAL_NOT); }
1620b725ae77Skettenis     break;
1621*11efff7fSkettenis 
1622*11efff7fSkettenis   case 22:
1623*11efff7fSkettenis #line 304 "ada-exp.y"
1624b725ae77Skettenis     { write_exp_elt_opcode (UNOP_ABS); }
1625b725ae77Skettenis     break;
1626*11efff7fSkettenis 
1627*11efff7fSkettenis   case 23:
1628*11efff7fSkettenis #line 307 "ada-exp.y"
1629b725ae77Skettenis     { yyval.lval = 0; }
1630b725ae77Skettenis     break;
1631*11efff7fSkettenis 
1632*11efff7fSkettenis   case 24:
1633*11efff7fSkettenis #line 311 "ada-exp.y"
1634*11efff7fSkettenis     { yyval.lval = 1; }
1635*11efff7fSkettenis     break;
1636*11efff7fSkettenis 
1637b725ae77Skettenis   case 25:
1638*11efff7fSkettenis #line 313 "ada-exp.y"
1639b725ae77Skettenis     { yyval.lval = 1; }
1640b725ae77Skettenis     break;
1641*11efff7fSkettenis 
1642b725ae77Skettenis   case 26:
1643*11efff7fSkettenis #line 315 "ada-exp.y"
1644b725ae77Skettenis     { yyval.lval = yyvsp[-2].lval + 1; }
1645b725ae77Skettenis     break;
1646*11efff7fSkettenis 
1647*11efff7fSkettenis   case 27:
1648*11efff7fSkettenis #line 317 "ada-exp.y"
1649b725ae77Skettenis     { yyval.lval = yyvsp[-4].lval + 1; }
1650b725ae77Skettenis     break;
1651*11efff7fSkettenis 
1652*11efff7fSkettenis   case 28:
1653*11efff7fSkettenis #line 322 "ada-exp.y"
1654b725ae77Skettenis     { write_exp_elt_opcode (UNOP_MEMVAL);
1655b725ae77Skettenis 			  write_exp_elt_type (yyvsp[-2].tval);
1656b725ae77Skettenis 			  write_exp_elt_opcode (UNOP_MEMVAL);
1657b725ae77Skettenis 			}
1658b725ae77Skettenis     break;
1659*11efff7fSkettenis 
1660*11efff7fSkettenis   case 29:
1661*11efff7fSkettenis #line 331 "ada-exp.y"
1662b725ae77Skettenis     { write_exp_elt_opcode (BINOP_EXP); }
1663b725ae77Skettenis     break;
1664*11efff7fSkettenis 
1665*11efff7fSkettenis   case 30:
1666*11efff7fSkettenis #line 335 "ada-exp.y"
1667b725ae77Skettenis     { write_exp_elt_opcode (BINOP_MUL); }
1668b725ae77Skettenis     break;
1669*11efff7fSkettenis 
1670*11efff7fSkettenis   case 31:
1671*11efff7fSkettenis #line 339 "ada-exp.y"
1672b725ae77Skettenis     { write_exp_elt_opcode (BINOP_DIV); }
1673b725ae77Skettenis     break;
1674*11efff7fSkettenis 
1675*11efff7fSkettenis   case 32:
1676*11efff7fSkettenis #line 343 "ada-exp.y"
1677b725ae77Skettenis     { write_exp_elt_opcode (BINOP_REM); }
1678b725ae77Skettenis     break;
1679*11efff7fSkettenis 
1680*11efff7fSkettenis   case 33:
1681*11efff7fSkettenis #line 347 "ada-exp.y"
1682b725ae77Skettenis     { write_exp_elt_opcode (BINOP_MOD); }
1683b725ae77Skettenis     break;
1684*11efff7fSkettenis 
1685*11efff7fSkettenis   case 34:
1686*11efff7fSkettenis #line 351 "ada-exp.y"
1687b725ae77Skettenis     { write_exp_elt_opcode (BINOP_REPEAT); }
1688b725ae77Skettenis     break;
1689*11efff7fSkettenis 
1690*11efff7fSkettenis   case 35:
1691*11efff7fSkettenis #line 355 "ada-exp.y"
1692b725ae77Skettenis     { write_exp_elt_opcode (BINOP_ADD); }
1693b725ae77Skettenis     break;
1694*11efff7fSkettenis 
1695*11efff7fSkettenis   case 36:
1696*11efff7fSkettenis #line 359 "ada-exp.y"
1697b725ae77Skettenis     { write_exp_elt_opcode (BINOP_CONCAT); }
1698b725ae77Skettenis     break;
1699*11efff7fSkettenis 
1700*11efff7fSkettenis   case 37:
1701*11efff7fSkettenis #line 363 "ada-exp.y"
1702b725ae77Skettenis     { write_exp_elt_opcode (BINOP_SUB); }
1703b725ae77Skettenis     break;
1704*11efff7fSkettenis 
1705*11efff7fSkettenis   case 38:
1706*11efff7fSkettenis #line 367 "ada-exp.y"
1707b725ae77Skettenis     { write_exp_elt_opcode (BINOP_EQUAL); }
1708b725ae77Skettenis     break;
1709*11efff7fSkettenis 
1710*11efff7fSkettenis   case 39:
1711*11efff7fSkettenis #line 371 "ada-exp.y"
1712b725ae77Skettenis     { write_exp_elt_opcode (BINOP_NOTEQUAL); }
1713b725ae77Skettenis     break;
1714*11efff7fSkettenis 
1715*11efff7fSkettenis   case 40:
1716*11efff7fSkettenis #line 375 "ada-exp.y"
1717b725ae77Skettenis     { write_exp_elt_opcode (BINOP_LEQ); }
1718b725ae77Skettenis     break;
1719*11efff7fSkettenis 
1720*11efff7fSkettenis   case 41:
1721*11efff7fSkettenis #line 379 "ada-exp.y"
1722*11efff7fSkettenis     { write_exp_elt_opcode (TERNOP_IN_RANGE); }
1723*11efff7fSkettenis     break;
1724*11efff7fSkettenis 
1725b725ae77Skettenis   case 42:
1726*11efff7fSkettenis #line 381 "ada-exp.y"
1727*11efff7fSkettenis     { write_exp_elt_opcode (BINOP_IN_BOUNDS);
1728*11efff7fSkettenis 			  write_exp_elt_longcst ((LONGEST) yyvsp[0].lval);
1729*11efff7fSkettenis 			  write_exp_elt_opcode (BINOP_IN_BOUNDS);
1730*11efff7fSkettenis 			}
1731b725ae77Skettenis     break;
1732*11efff7fSkettenis 
1733b725ae77Skettenis   case 43:
1734*11efff7fSkettenis #line 386 "ada-exp.y"
1735*11efff7fSkettenis     { write_exp_elt_opcode (UNOP_IN_RANGE);
1736*11efff7fSkettenis 		          write_exp_elt_type (yyvsp[0].tval);
1737*11efff7fSkettenis 		          write_exp_elt_opcode (UNOP_IN_RANGE);
1738b725ae77Skettenis 			}
1739b725ae77Skettenis     break;
1740*11efff7fSkettenis 
1741b725ae77Skettenis   case 44:
1742*11efff7fSkettenis #line 391 "ada-exp.y"
1743*11efff7fSkettenis     { write_exp_elt_opcode (TERNOP_IN_RANGE);
1744*11efff7fSkettenis 		          write_exp_elt_opcode (UNOP_LOGICAL_NOT);
1745b725ae77Skettenis 			}
1746b725ae77Skettenis     break;
1747*11efff7fSkettenis 
1748b725ae77Skettenis   case 45:
1749*11efff7fSkettenis #line 395 "ada-exp.y"
1750*11efff7fSkettenis     { write_exp_elt_opcode (BINOP_IN_BOUNDS);
1751b725ae77Skettenis 			  write_exp_elt_longcst ((LONGEST) yyvsp[0].lval);
1752*11efff7fSkettenis 			  write_exp_elt_opcode (BINOP_IN_BOUNDS);
1753b725ae77Skettenis 		          write_exp_elt_opcode (UNOP_LOGICAL_NOT);
1754b725ae77Skettenis 			}
1755b725ae77Skettenis     break;
1756*11efff7fSkettenis 
1757*11efff7fSkettenis   case 46:
1758*11efff7fSkettenis #line 401 "ada-exp.y"
1759*11efff7fSkettenis     { write_exp_elt_opcode (UNOP_IN_RANGE);
1760b725ae77Skettenis 		          write_exp_elt_type (yyvsp[0].tval);
1761*11efff7fSkettenis 		          write_exp_elt_opcode (UNOP_IN_RANGE);
1762b725ae77Skettenis 		          write_exp_elt_opcode (UNOP_LOGICAL_NOT);
1763b725ae77Skettenis 			}
1764b725ae77Skettenis     break;
1765*11efff7fSkettenis 
1766*11efff7fSkettenis   case 47:
1767*11efff7fSkettenis #line 409 "ada-exp.y"
1768b725ae77Skettenis     { write_exp_elt_opcode (BINOP_GEQ); }
1769b725ae77Skettenis     break;
1770*11efff7fSkettenis 
1771*11efff7fSkettenis   case 48:
1772*11efff7fSkettenis #line 413 "ada-exp.y"
1773b725ae77Skettenis     { write_exp_elt_opcode (BINOP_LESS); }
1774b725ae77Skettenis     break;
1775*11efff7fSkettenis 
1776*11efff7fSkettenis   case 49:
1777*11efff7fSkettenis #line 417 "ada-exp.y"
1778b725ae77Skettenis     { write_exp_elt_opcode (BINOP_GTR); }
1779b725ae77Skettenis     break;
1780*11efff7fSkettenis 
1781*11efff7fSkettenis   case 50:
1782*11efff7fSkettenis #line 421 "ada-exp.y"
1783b725ae77Skettenis     { write_exp_elt_opcode (BINOP_BITWISE_AND); }
1784b725ae77Skettenis     break;
1785*11efff7fSkettenis 
1786*11efff7fSkettenis   case 51:
1787*11efff7fSkettenis #line 425 "ada-exp.y"
1788b725ae77Skettenis     { write_exp_elt_opcode (BINOP_LOGICAL_AND); }
1789b725ae77Skettenis     break;
1790*11efff7fSkettenis 
1791*11efff7fSkettenis   case 52:
1792*11efff7fSkettenis #line 429 "ada-exp.y"
1793b725ae77Skettenis     { write_exp_elt_opcode (BINOP_BITWISE_IOR); }
1794b725ae77Skettenis     break;
1795*11efff7fSkettenis 
1796*11efff7fSkettenis   case 53:
1797*11efff7fSkettenis #line 433 "ada-exp.y"
1798b725ae77Skettenis     { write_exp_elt_opcode (BINOP_LOGICAL_OR); }
1799b725ae77Skettenis     break;
1800*11efff7fSkettenis 
1801*11efff7fSkettenis   case 54:
1802*11efff7fSkettenis #line 437 "ada-exp.y"
1803b725ae77Skettenis     { write_exp_elt_opcode (BINOP_BITWISE_XOR); }
1804b725ae77Skettenis     break;
1805*11efff7fSkettenis 
1806*11efff7fSkettenis   case 55:
1807*11efff7fSkettenis #line 441 "ada-exp.y"
1808b725ae77Skettenis     { write_exp_elt_opcode (UNOP_ADDR); }
1809b725ae77Skettenis     break;
1810*11efff7fSkettenis 
1811*11efff7fSkettenis   case 56:
1812*11efff7fSkettenis #line 443 "ada-exp.y"
1813b725ae77Skettenis     { write_exp_elt_opcode (UNOP_ADDR);
1814b725ae77Skettenis 			  write_exp_elt_opcode (UNOP_CAST);
1815*11efff7fSkettenis 			  write_exp_elt_type (type_system_address ());
1816b725ae77Skettenis 			  write_exp_elt_opcode (UNOP_CAST);
1817b725ae77Skettenis 			}
1818b725ae77Skettenis     break;
1819*11efff7fSkettenis 
1820*11efff7fSkettenis   case 57:
1821*11efff7fSkettenis #line 449 "ada-exp.y"
1822*11efff7fSkettenis     { write_int (yyvsp[0].lval, type_int ());
1823*11efff7fSkettenis 			  write_exp_elt_opcode (OP_ATR_FIRST); }
1824*11efff7fSkettenis     break;
1825*11efff7fSkettenis 
1826b725ae77Skettenis   case 58:
1827*11efff7fSkettenis #line 452 "ada-exp.y"
1828*11efff7fSkettenis     { write_int (yyvsp[0].lval, type_int ());
1829*11efff7fSkettenis 			  write_exp_elt_opcode (OP_ATR_LAST); }
1830b725ae77Skettenis     break;
1831*11efff7fSkettenis 
1832b725ae77Skettenis   case 59:
1833*11efff7fSkettenis #line 455 "ada-exp.y"
1834*11efff7fSkettenis     { write_int (yyvsp[0].lval, type_int ());
1835*11efff7fSkettenis 			  write_exp_elt_opcode (OP_ATR_LENGTH); }
1836b725ae77Skettenis     break;
1837*11efff7fSkettenis 
1838b725ae77Skettenis   case 60:
1839*11efff7fSkettenis #line 458 "ada-exp.y"
1840*11efff7fSkettenis     { write_exp_elt_opcode (OP_ATR_SIZE); }
1841b725ae77Skettenis     break;
1842*11efff7fSkettenis 
1843b725ae77Skettenis   case 61:
1844*11efff7fSkettenis #line 460 "ada-exp.y"
1845*11efff7fSkettenis     { write_exp_elt_opcode (OP_ATR_TAG); }
1846b725ae77Skettenis     break;
1847*11efff7fSkettenis 
1848b725ae77Skettenis   case 62:
1849*11efff7fSkettenis #line 462 "ada-exp.y"
1850*11efff7fSkettenis     { write_exp_elt_opcode (OP_ATR_MIN); }
1851b725ae77Skettenis     break;
1852*11efff7fSkettenis 
1853b725ae77Skettenis   case 63:
1854*11efff7fSkettenis #line 464 "ada-exp.y"
1855*11efff7fSkettenis     { write_exp_elt_opcode (OP_ATR_MAX); }
1856b725ae77Skettenis     break;
1857*11efff7fSkettenis 
1858b725ae77Skettenis   case 64:
1859*11efff7fSkettenis #line 466 "ada-exp.y"
1860*11efff7fSkettenis     { write_exp_elt_opcode (OP_ATR_POS); }
1861b725ae77Skettenis     break;
1862*11efff7fSkettenis 
1863b725ae77Skettenis   case 65:
1864*11efff7fSkettenis #line 468 "ada-exp.y"
1865*11efff7fSkettenis     { write_int (yyvsp[0].lval, type_int ());
1866*11efff7fSkettenis 			  write_exp_elt_opcode (OP_ATR_FIRST); }
1867b725ae77Skettenis     break;
1868*11efff7fSkettenis 
1869b725ae77Skettenis   case 66:
1870*11efff7fSkettenis #line 471 "ada-exp.y"
1871*11efff7fSkettenis     { write_int (yyvsp[0].lval, type_int ());
1872*11efff7fSkettenis 			  write_exp_elt_opcode (OP_ATR_LAST); }
1873b725ae77Skettenis     break;
1874*11efff7fSkettenis 
1875b725ae77Skettenis   case 67:
1876*11efff7fSkettenis #line 474 "ada-exp.y"
1877*11efff7fSkettenis     { write_int (yyvsp[0].lval, type_int ());
1878*11efff7fSkettenis 			  write_exp_elt_opcode (OP_ATR_LENGTH); }
1879b725ae77Skettenis     break;
1880*11efff7fSkettenis 
1881b725ae77Skettenis   case 68:
1882*11efff7fSkettenis #line 477 "ada-exp.y"
1883*11efff7fSkettenis     { write_exp_elt_opcode (OP_ATR_VAL); }
1884b725ae77Skettenis     break;
1885*11efff7fSkettenis 
1886b725ae77Skettenis   case 69:
1887*11efff7fSkettenis #line 479 "ada-exp.y"
1888*11efff7fSkettenis     { write_exp_elt_opcode (OP_ATR_MODULUS); }
1889b725ae77Skettenis     break;
1890*11efff7fSkettenis 
1891b725ae77Skettenis   case 70:
1892*11efff7fSkettenis #line 483 "ada-exp.y"
1893b725ae77Skettenis     { yyval.lval = 1; }
1894b725ae77Skettenis     break;
1895*11efff7fSkettenis 
1896*11efff7fSkettenis   case 71:
1897*11efff7fSkettenis #line 485 "ada-exp.y"
1898b725ae77Skettenis     { yyval.lval = yyvsp[-1].typed_val.val; }
1899b725ae77Skettenis     break;
1900*11efff7fSkettenis 
1901*11efff7fSkettenis   case 72:
1902*11efff7fSkettenis #line 490 "ada-exp.y"
1903b725ae77Skettenis     { write_exp_elt_opcode (OP_TYPE);
1904b725ae77Skettenis 			  write_exp_elt_type (yyvsp[0].tval);
1905b725ae77Skettenis 			  write_exp_elt_opcode (OP_TYPE); }
1906b725ae77Skettenis     break;
1907*11efff7fSkettenis 
1908*11efff7fSkettenis   case 74:
1909*11efff7fSkettenis #line 498 "ada-exp.y"
1910b725ae77Skettenis     { write_exp_elt_opcode (OP_TYPE);
1911b725ae77Skettenis 			  write_exp_elt_type (builtin_type_void);
1912b725ae77Skettenis 			  write_exp_elt_opcode (OP_TYPE); }
1913b725ae77Skettenis     break;
1914*11efff7fSkettenis 
1915*11efff7fSkettenis   case 75:
1916*11efff7fSkettenis #line 505 "ada-exp.y"
1917*11efff7fSkettenis     { write_int ((LONGEST) yyvsp[0].typed_val.val, yyvsp[0].typed_val.type); }
1918*11efff7fSkettenis     break;
1919*11efff7fSkettenis 
1920b725ae77Skettenis   case 76:
1921*11efff7fSkettenis #line 509 "ada-exp.y"
1922*11efff7fSkettenis     { write_int (convert_char_literal (type_qualifier, yyvsp[0].typed_val.val),
1923*11efff7fSkettenis 			       (type_qualifier == NULL)
1924*11efff7fSkettenis 			       ? yyvsp[0].typed_val.type : type_qualifier);
1925b725ae77Skettenis 		  }
1926b725ae77Skettenis     break;
1927*11efff7fSkettenis 
1928b725ae77Skettenis   case 77:
1929*11efff7fSkettenis #line 516 "ada-exp.y"
1930b725ae77Skettenis     { write_exp_elt_opcode (OP_DOUBLE);
1931b725ae77Skettenis 			  write_exp_elt_type (yyvsp[0].typed_val_float.type);
1932b725ae77Skettenis 			  write_exp_elt_dblcst (yyvsp[0].typed_val_float.dval);
1933b725ae77Skettenis 			  write_exp_elt_opcode (OP_DOUBLE);
1934b725ae77Skettenis 			}
1935b725ae77Skettenis     break;
1936*11efff7fSkettenis 
1937*11efff7fSkettenis   case 78:
1938*11efff7fSkettenis #line 524 "ada-exp.y"
1939*11efff7fSkettenis     { write_int (0, type_int ()); }
1940*11efff7fSkettenis     break;
1941*11efff7fSkettenis 
1942b725ae77Skettenis   case 79:
1943*11efff7fSkettenis #line 528 "ada-exp.y"
1944b725ae77Skettenis     {
1945*11efff7fSkettenis 			  write_exp_elt_opcode (OP_STRING);
1946*11efff7fSkettenis 			  write_exp_string (yyvsp[0].sval);
1947*11efff7fSkettenis 			  write_exp_elt_opcode (OP_STRING);
1948b725ae77Skettenis 			}
1949b725ae77Skettenis     break;
1950*11efff7fSkettenis 
1951*11efff7fSkettenis   case 80:
1952*11efff7fSkettenis #line 536 "ada-exp.y"
1953b725ae77Skettenis     { error ("NEW not implemented."); }
1954b725ae77Skettenis     break;
1955*11efff7fSkettenis 
1956*11efff7fSkettenis   case 81:
1957*11efff7fSkettenis #line 539 "ada-exp.y"
1958b725ae77Skettenis     { write_var_from_name (NULL, yyvsp[0].ssym); }
1959b725ae77Skettenis     break;
1960*11efff7fSkettenis 
1961*11efff7fSkettenis   case 82:
1962*11efff7fSkettenis #line 541 "ada-exp.y"
1963b725ae77Skettenis     { write_var_from_name (yyvsp[-1].bval, yyvsp[0].ssym); }
1964b725ae77Skettenis     break;
1965*11efff7fSkettenis 
1966*11efff7fSkettenis   case 83:
1967*11efff7fSkettenis #line 543 "ada-exp.y"
1968*11efff7fSkettenis     { write_object_renaming (NULL, yyvsp[0].ssym.sym,
1969*11efff7fSkettenis 				             MAX_RENAMING_CHAIN_LENGTH); }
1970*11efff7fSkettenis     break;
1971*11efff7fSkettenis 
1972b725ae77Skettenis   case 84:
1973*11efff7fSkettenis #line 546 "ada-exp.y"
1974*11efff7fSkettenis     { write_object_renaming (yyvsp[-1].bval, yyvsp[0].ssym.sym,
1975*11efff7fSkettenis 					     MAX_RENAMING_CHAIN_LENGTH); }
1976b725ae77Skettenis     break;
1977*11efff7fSkettenis 
1978b725ae77Skettenis   case 85:
1979*11efff7fSkettenis #line 550 "ada-exp.y"
1980*11efff7fSkettenis     { }
1981b725ae77Skettenis     break;
1982*11efff7fSkettenis 
1983b725ae77Skettenis   case 86:
1984*11efff7fSkettenis #line 551 "ada-exp.y"
1985b725ae77Skettenis     { }
1986b725ae77Skettenis     break;
1987*11efff7fSkettenis 
1988b725ae77Skettenis   case 87:
1989*11efff7fSkettenis #line 552 "ada-exp.y"
1990b725ae77Skettenis     { }
1991b725ae77Skettenis     break;
1992*11efff7fSkettenis 
1993b725ae77Skettenis   case 88:
1994*11efff7fSkettenis #line 556 "ada-exp.y"
1995*11efff7fSkettenis     { yyval.bval = yyvsp[0].bval; }
1996b725ae77Skettenis     break;
1997*11efff7fSkettenis 
1998b725ae77Skettenis   case 89:
1999*11efff7fSkettenis #line 558 "ada-exp.y"
2000b725ae77Skettenis     { yyval.bval = yyvsp[0].bval; }
2001b725ae77Skettenis     break;
2002*11efff7fSkettenis 
2003b725ae77Skettenis   case 90:
2004*11efff7fSkettenis #line 562 "ada-exp.y"
2005*11efff7fSkettenis     { yyval.tval = yyvsp[0].tval; }
2006b725ae77Skettenis     break;
2007*11efff7fSkettenis 
2008b725ae77Skettenis   case 91:
2009*11efff7fSkettenis #line 563 "ada-exp.y"
2010b725ae77Skettenis     { yyval.tval = yyvsp[0].tval; }
2011b725ae77Skettenis     break;
2012*11efff7fSkettenis 
2013b725ae77Skettenis   case 92:
2014*11efff7fSkettenis #line 565 "ada-exp.y"
2015*11efff7fSkettenis     { yyval.tval = lookup_pointer_type (yyvsp[-1].tval); }
2016b725ae77Skettenis     break;
2017*11efff7fSkettenis 
2018b725ae77Skettenis   case 93:
2019*11efff7fSkettenis #line 567 "ada-exp.y"
2020b725ae77Skettenis     { yyval.tval = lookup_pointer_type (yyvsp[-1].tval); }
2021b725ae77Skettenis     break;
2022*11efff7fSkettenis 
2023b725ae77Skettenis   case 94:
2024*11efff7fSkettenis #line 574 "ada-exp.y"
2025b725ae77Skettenis     { write_exp_elt_opcode (UNOP_IND); }
2026b725ae77Skettenis     break;
2027*11efff7fSkettenis 
2028*11efff7fSkettenis   case 95:
2029*11efff7fSkettenis #line 576 "ada-exp.y"
2030b725ae77Skettenis     { write_exp_elt_opcode (UNOP_ADDR); }
2031b725ae77Skettenis     break;
2032*11efff7fSkettenis 
2033*11efff7fSkettenis   case 96:
2034*11efff7fSkettenis #line 578 "ada-exp.y"
2035b725ae77Skettenis     { write_exp_elt_opcode (BINOP_SUBSCRIPT); }
2036b725ae77Skettenis     break;
2037*11efff7fSkettenis 
2038*11efff7fSkettenis 
2039b725ae77Skettenis     }
2040b725ae77Skettenis 
2041*11efff7fSkettenis /* Line 1000 of yacc.c.  */
2042b725ae77Skettenis 
2043b725ae77Skettenis   yyvsp -= yylen;
2044b725ae77Skettenis   yyssp -= yylen;
2045b725ae77Skettenis 
2046*11efff7fSkettenis 
2047*11efff7fSkettenis   YY_STACK_PRINT (yyss, yyssp);
2048b725ae77Skettenis 
2049b725ae77Skettenis   *++yyvsp = yyval;
2050*11efff7fSkettenis 
2051b725ae77Skettenis 
2052b725ae77Skettenis   /* Now `shift' the result of the reduction.  Determine what state
2053b725ae77Skettenis      that goes to, based on the state we popped back to and the rule
2054b725ae77Skettenis      number reduced by.  */
2055b725ae77Skettenis 
2056b725ae77Skettenis   yyn = yyr1[yyn];
2057b725ae77Skettenis 
2058*11efff7fSkettenis   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
2059*11efff7fSkettenis   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
2060b725ae77Skettenis     yystate = yytable[yystate];
2061b725ae77Skettenis   else
2062*11efff7fSkettenis     yystate = yydefgoto[yyn - YYNTOKENS];
2063b725ae77Skettenis 
2064b725ae77Skettenis   goto yynewstate;
2065b725ae77Skettenis 
2066b725ae77Skettenis 
2067b725ae77Skettenis /*------------------------------------.
2068b725ae77Skettenis | yyerrlab -- here on detecting error |
2069b725ae77Skettenis `------------------------------------*/
2070b725ae77Skettenis yyerrlab:
2071b725ae77Skettenis   /* If not already recovering from an error, report this error.  */
2072b725ae77Skettenis   if (!yyerrstatus)
2073b725ae77Skettenis     {
2074b725ae77Skettenis       ++yynerrs;
2075*11efff7fSkettenis #if YYERROR_VERBOSE
2076b725ae77Skettenis       yyn = yypact[yystate];
2077b725ae77Skettenis 
2078*11efff7fSkettenis       if (YYPACT_NINF < yyn && yyn < YYLAST)
2079b725ae77Skettenis 	{
2080b725ae77Skettenis 	  YYSIZE_T yysize = 0;
2081*11efff7fSkettenis 	  int yytype = YYTRANSLATE (yychar);
2082*11efff7fSkettenis 	  const char* yyprefix;
2083b725ae77Skettenis 	  char *yymsg;
2084*11efff7fSkettenis 	  int yyx;
2085b725ae77Skettenis 
2086b725ae77Skettenis 	  /* Start YYX at -YYN if negative to avoid negative indexes in
2087b725ae77Skettenis 	     YYCHECK.  */
2088*11efff7fSkettenis 	  int yyxbegin = yyn < 0 ? -yyn : 0;
2089*11efff7fSkettenis 
2090*11efff7fSkettenis 	  /* Stay within bounds of both yycheck and yytname.  */
2091*11efff7fSkettenis 	  int yychecklim = YYLAST - yyn;
2092*11efff7fSkettenis 	  int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
2093*11efff7fSkettenis 	  int yycount = 0;
2094*11efff7fSkettenis 
2095*11efff7fSkettenis 	  yyprefix = ", expecting ";
2096*11efff7fSkettenis 	  for (yyx = yyxbegin; yyx < yyxend; ++yyx)
2097*11efff7fSkettenis 	    if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
2098*11efff7fSkettenis 	      {
2099*11efff7fSkettenis 		yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]);
2100*11efff7fSkettenis 		yycount += 1;
2101*11efff7fSkettenis 		if (yycount == 5)
2102*11efff7fSkettenis 		  {
2103*11efff7fSkettenis 		    yysize = 0;
2104*11efff7fSkettenis 		    break;
2105*11efff7fSkettenis 		  }
2106*11efff7fSkettenis 	      }
2107*11efff7fSkettenis 	  yysize += (sizeof ("syntax error, unexpected ")
2108*11efff7fSkettenis 		     + yystrlen (yytname[yytype]));
2109b725ae77Skettenis 	  yymsg = (char *) YYSTACK_ALLOC (yysize);
2110b725ae77Skettenis 	  if (yymsg != 0)
2111b725ae77Skettenis 	    {
2112*11efff7fSkettenis 	      char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
2113*11efff7fSkettenis 	      yyp = yystpcpy (yyp, yytname[yytype]);
2114b725ae77Skettenis 
2115b725ae77Skettenis 	      if (yycount < 5)
2116b725ae77Skettenis 		{
2117*11efff7fSkettenis 		  yyprefix = ", expecting ";
2118*11efff7fSkettenis 		  for (yyx = yyxbegin; yyx < yyxend; ++yyx)
2119*11efff7fSkettenis 		    if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
2120b725ae77Skettenis 		      {
2121*11efff7fSkettenis 			yyp = yystpcpy (yyp, yyprefix);
2122b725ae77Skettenis 			yyp = yystpcpy (yyp, yytname[yyx]);
2123*11efff7fSkettenis 			yyprefix = " or ";
2124b725ae77Skettenis 		      }
2125b725ae77Skettenis 		}
2126b725ae77Skettenis 	      yyerror (yymsg);
2127b725ae77Skettenis 	      YYSTACK_FREE (yymsg);
2128b725ae77Skettenis 	    }
2129b725ae77Skettenis 	  else
2130*11efff7fSkettenis 	    yyerror ("syntax error; also virtual memory exhausted");
2131b725ae77Skettenis 	}
2132b725ae77Skettenis       else
2133*11efff7fSkettenis #endif /* YYERROR_VERBOSE */
2134*11efff7fSkettenis 	yyerror ("syntax error");
2135b725ae77Skettenis     }
2136b725ae77Skettenis 
2137b725ae77Skettenis 
2138*11efff7fSkettenis 
2139b725ae77Skettenis   if (yyerrstatus == 3)
2140b725ae77Skettenis     {
2141b725ae77Skettenis       /* If just tried and failed to reuse lookahead token after an
2142b725ae77Skettenis 	 error, discard it.  */
2143b725ae77Skettenis 
2144*11efff7fSkettenis       if (yychar <= YYEOF)
2145*11efff7fSkettenis         {
2146*11efff7fSkettenis           /* If at end of input, pop the error token,
2147*11efff7fSkettenis 	     then the rest of the stack, then return failure.  */
2148b725ae77Skettenis 	  if (yychar == YYEOF)
2149*11efff7fSkettenis 	     for (;;)
2150*11efff7fSkettenis 	       {
2151*11efff7fSkettenis 		 YYPOPSTACK;
2152*11efff7fSkettenis 		 if (yyssp == yyss)
2153b725ae77Skettenis 		   YYABORT;
2154*11efff7fSkettenis 		 YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
2155*11efff7fSkettenis 		 yydestruct (yystos[*yyssp], yyvsp);
2156*11efff7fSkettenis 	       }
2157*11efff7fSkettenis         }
2158*11efff7fSkettenis       else
2159*11efff7fSkettenis 	{
2160*11efff7fSkettenis 	  YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
2161*11efff7fSkettenis 	  yydestruct (yytoken, &yylval);
2162b725ae77Skettenis 	  yychar = YYEMPTY;
2163*11efff7fSkettenis 
2164*11efff7fSkettenis 	}
2165b725ae77Skettenis     }
2166b725ae77Skettenis 
2167b725ae77Skettenis   /* Else will try to reuse lookahead token after shifting the error
2168b725ae77Skettenis      token.  */
2169*11efff7fSkettenis   goto yyerrlab1;
2170b725ae77Skettenis 
2171b725ae77Skettenis 
2172*11efff7fSkettenis /*---------------------------------------------------.
2173*11efff7fSkettenis | yyerrorlab -- error raised explicitly by YYERROR.  |
2174*11efff7fSkettenis `---------------------------------------------------*/
2175*11efff7fSkettenis yyerrorlab:
2176b725ae77Skettenis 
2177*11efff7fSkettenis #ifdef __GNUC__
2178*11efff7fSkettenis   /* Pacify GCC when the user code never invokes YYERROR and the label
2179*11efff7fSkettenis      yyerrorlab therefore never appears in user code.  */
2180*11efff7fSkettenis   if (0)
2181*11efff7fSkettenis      goto yyerrorlab;
2182b725ae77Skettenis #endif
2183b725ae77Skettenis 
2184*11efff7fSkettenis   yyvsp -= yylen;
2185*11efff7fSkettenis   yyssp -= yylen;
2186*11efff7fSkettenis   yystate = *yyssp;
2187*11efff7fSkettenis   goto yyerrlab1;
2188b725ae77Skettenis 
2189*11efff7fSkettenis 
2190*11efff7fSkettenis /*-------------------------------------------------------------.
2191*11efff7fSkettenis | yyerrlab1 -- common code for both syntax error and YYERROR.  |
2192*11efff7fSkettenis `-------------------------------------------------------------*/
2193*11efff7fSkettenis yyerrlab1:
2194*11efff7fSkettenis   yyerrstatus = 3;	/* Each real token shifted decrements this.  */
2195*11efff7fSkettenis 
2196*11efff7fSkettenis   for (;;)
2197*11efff7fSkettenis     {
2198*11efff7fSkettenis       yyn = yypact[yystate];
2199*11efff7fSkettenis       if (yyn != YYPACT_NINF)
2200*11efff7fSkettenis 	{
2201*11efff7fSkettenis 	  yyn += YYTERROR;
2202*11efff7fSkettenis 	  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
2203*11efff7fSkettenis 	    {
2204*11efff7fSkettenis 	      yyn = yytable[yyn];
2205*11efff7fSkettenis 	      if (0 < yyn)
2206*11efff7fSkettenis 		break;
2207*11efff7fSkettenis 	    }
2208*11efff7fSkettenis 	}
2209*11efff7fSkettenis 
2210*11efff7fSkettenis       /* Pop the current state because it cannot handle the error token.  */
2211b725ae77Skettenis       if (yyssp == yyss)
2212b725ae77Skettenis 	YYABORT;
2213b725ae77Skettenis 
2214*11efff7fSkettenis       YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
2215*11efff7fSkettenis       yydestruct (yystos[yystate], yyvsp);
2216*11efff7fSkettenis       YYPOPSTACK;
2217*11efff7fSkettenis       yystate = *yyssp;
2218*11efff7fSkettenis       YY_STACK_PRINT (yyss, yyssp);
2219b725ae77Skettenis     }
2220b725ae77Skettenis 
2221b725ae77Skettenis   if (yyn == YYFINAL)
2222b725ae77Skettenis     YYACCEPT;
2223b725ae77Skettenis 
2224b725ae77Skettenis   YYDPRINTF ((stderr, "Shifting error token, "));
2225b725ae77Skettenis 
2226b725ae77Skettenis   *++yyvsp = yylval;
2227*11efff7fSkettenis 
2228b725ae77Skettenis 
2229b725ae77Skettenis   yystate = yyn;
2230b725ae77Skettenis   goto yynewstate;
2231b725ae77Skettenis 
2232b725ae77Skettenis 
2233b725ae77Skettenis /*-------------------------------------.
2234b725ae77Skettenis | yyacceptlab -- YYACCEPT comes here.  |
2235b725ae77Skettenis `-------------------------------------*/
2236b725ae77Skettenis yyacceptlab:
2237b725ae77Skettenis   yyresult = 0;
2238b725ae77Skettenis   goto yyreturn;
2239b725ae77Skettenis 
2240b725ae77Skettenis /*-----------------------------------.
2241b725ae77Skettenis | yyabortlab -- YYABORT comes here.  |
2242b725ae77Skettenis `-----------------------------------*/
2243b725ae77Skettenis yyabortlab:
2244b725ae77Skettenis   yyresult = 1;
2245b725ae77Skettenis   goto yyreturn;
2246b725ae77Skettenis 
2247*11efff7fSkettenis #ifndef yyoverflow
2248*11efff7fSkettenis /*----------------------------------------------.
2249*11efff7fSkettenis | yyoverflowlab -- parser overflow comes here.  |
2250*11efff7fSkettenis `----------------------------------------------*/
2251b725ae77Skettenis yyoverflowlab:
2252b725ae77Skettenis   yyerror ("parser stack overflow");
2253b725ae77Skettenis   yyresult = 2;
2254b725ae77Skettenis   /* Fall through.  */
2255*11efff7fSkettenis #endif
2256b725ae77Skettenis 
2257b725ae77Skettenis yyreturn:
2258b725ae77Skettenis #ifndef yyoverflow
2259b725ae77Skettenis   if (yyss != yyssa)
2260b725ae77Skettenis     YYSTACK_FREE (yyss);
2261b725ae77Skettenis #endif
2262b725ae77Skettenis   return yyresult;
2263b725ae77Skettenis }
2264*11efff7fSkettenis 
2265*11efff7fSkettenis 
2266*11efff7fSkettenis #line 581 "ada-exp.y"
2267b725ae77Skettenis 
2268b725ae77Skettenis 
2269b725ae77Skettenis /* yylex defined in ada-lex.c: Reads one token, getting characters */
2270b725ae77Skettenis /* through lexptr.  */
2271b725ae77Skettenis 
2272b725ae77Skettenis /* Remap normal flex interface names (yylex) as well as gratuitiously */
2273b725ae77Skettenis /* global symbol names, so we can have multiple flex-generated parsers */
2274b725ae77Skettenis /* in gdb.  */
2275b725ae77Skettenis 
2276b725ae77Skettenis /* (See note above on previous definitions for YACC.) */
2277b725ae77Skettenis 
2278b725ae77Skettenis #define yy_create_buffer ada_yy_create_buffer
2279b725ae77Skettenis #define yy_delete_buffer ada_yy_delete_buffer
2280b725ae77Skettenis #define yy_init_buffer ada_yy_init_buffer
2281b725ae77Skettenis #define yy_load_buffer_state ada_yy_load_buffer_state
2282b725ae77Skettenis #define yy_switch_to_buffer ada_yy_switch_to_buffer
2283b725ae77Skettenis #define yyrestart ada_yyrestart
2284b725ae77Skettenis #define yytext ada_yytext
2285b725ae77Skettenis #define yywrap ada_yywrap
2286b725ae77Skettenis 
2287*11efff7fSkettenis static struct obstack temp_parse_space;
2288*11efff7fSkettenis 
2289b725ae77Skettenis /* The following kludge was found necessary to prevent conflicts between */
2290b725ae77Skettenis /* defs.h and non-standard stdlib.h files.  */
2291b725ae77Skettenis #define qsort __qsort__dummy
2292b725ae77Skettenis #include "ada-lex.c"
2293b725ae77Skettenis 
2294b725ae77Skettenis int
ada_parse(void)2295*11efff7fSkettenis ada_parse (void)
2296b725ae77Skettenis {
2297b725ae77Skettenis   lexer_init (yyin);		/* (Re-)initialize lexer.  */
2298b725ae77Skettenis   left_block_context = NULL;
2299b725ae77Skettenis   type_qualifier = NULL;
2300*11efff7fSkettenis   obstack_free (&temp_parse_space, NULL);
2301*11efff7fSkettenis   obstack_init (&temp_parse_space);
2302b725ae77Skettenis 
2303b725ae77Skettenis   return _ada_parse ();
2304b725ae77Skettenis }
2305b725ae77Skettenis 
2306b725ae77Skettenis void
yyerror(char * msg)2307*11efff7fSkettenis yyerror (char *msg)
2308b725ae77Skettenis {
2309b725ae77Skettenis   error ("A %s in expression, near `%s'.", (msg ? msg : "error"), lexptr);
2310b725ae77Skettenis }
2311b725ae77Skettenis 
2312b725ae77Skettenis /* The operator name corresponding to operator symbol STRING (adds
2313b725ae77Skettenis    quotes and maps to lower-case).  Destroys the previous contents of
2314b725ae77Skettenis    the array pointed to by STRING.ptr.  Error if STRING does not match
2315b725ae77Skettenis    a valid Ada operator.  Assumes that STRING.ptr points to a
2316b725ae77Skettenis    null-terminated string and that, if STRING is a valid operator
2317b725ae77Skettenis    symbol, the array pointed to by STRING.ptr contains at least
2318b725ae77Skettenis    STRING.length+3 characters.  */
2319b725ae77Skettenis 
2320b725ae77Skettenis static struct stoken
string_to_operator(struct stoken string)2321*11efff7fSkettenis string_to_operator (struct stoken string)
2322b725ae77Skettenis {
2323b725ae77Skettenis   int i;
2324b725ae77Skettenis 
2325*11efff7fSkettenis   for (i = 0; ada_opname_table[i].encoded != NULL; i += 1)
2326b725ae77Skettenis     {
2327*11efff7fSkettenis       if (string.length == strlen (ada_opname_table[i].decoded)-2
2328*11efff7fSkettenis 	  && strncasecmp (string.ptr, ada_opname_table[i].decoded+1,
2329b725ae77Skettenis 			  string.length) == 0)
2330b725ae77Skettenis 	{
2331*11efff7fSkettenis 	  strncpy (string.ptr, ada_opname_table[i].decoded,
2332b725ae77Skettenis 		   string.length+2);
2333b725ae77Skettenis 	  string.length += 2;
2334b725ae77Skettenis 	  return string;
2335b725ae77Skettenis 	}
2336b725ae77Skettenis     }
2337b725ae77Skettenis   error ("Invalid operator symbol `%s'", string.ptr);
2338b725ae77Skettenis }
2339b725ae77Skettenis 
2340b725ae77Skettenis /* Emit expression to access an instance of SYM, in block BLOCK (if
2341b725ae77Skettenis  * non-NULL), and with :: qualification ORIG_LEFT_CONTEXT.  */
2342b725ae77Skettenis static void
write_var_from_sym(struct block * orig_left_context,struct block * block,struct symbol * sym)2343*11efff7fSkettenis write_var_from_sym (struct block *orig_left_context,
2344*11efff7fSkettenis 		    struct block *block,
2345*11efff7fSkettenis 		    struct symbol *sym)
2346b725ae77Skettenis {
2347b725ae77Skettenis   if (orig_left_context == NULL && symbol_read_needs_frame (sym))
2348b725ae77Skettenis     {
2349*11efff7fSkettenis       if (innermost_block == 0
2350*11efff7fSkettenis 	  || contained_in (block, innermost_block))
2351b725ae77Skettenis 	innermost_block = block;
2352b725ae77Skettenis     }
2353b725ae77Skettenis 
2354b725ae77Skettenis   write_exp_elt_opcode (OP_VAR_VALUE);
2355*11efff7fSkettenis   write_exp_elt_block (block);
2356b725ae77Skettenis   write_exp_elt_sym (sym);
2357b725ae77Skettenis   write_exp_elt_opcode (OP_VAR_VALUE);
2358b725ae77Skettenis }
2359b725ae77Skettenis 
2360*11efff7fSkettenis /* Emit expression to access an instance of NAME in :: context
2361*11efff7fSkettenis  * ORIG_LEFT_CONTEXT.  If no unique symbol for NAME has been found,
2362*11efff7fSkettenis  * output a dummy symbol (good to the next call of ada_parse) for NAME
2363*11efff7fSkettenis  * in the UNDEF_DOMAIN, for later resolution by ada_resolve.  */
2364b725ae77Skettenis static void
write_var_from_name(struct block * orig_left_context,struct name_info name)2365*11efff7fSkettenis write_var_from_name (struct block *orig_left_context,
2366*11efff7fSkettenis 		     struct name_info name)
2367b725ae77Skettenis {
2368b725ae77Skettenis   if (name.msym != NULL)
2369b725ae77Skettenis     {
2370b725ae77Skettenis       write_exp_msymbol (name.msym,
2371*11efff7fSkettenis 			 lookup_function_type (type_int ()),
2372*11efff7fSkettenis 			 type_int ());
2373b725ae77Skettenis     }
2374b725ae77Skettenis   else if (name.sym == NULL)
2375b725ae77Skettenis     {
2376b725ae77Skettenis       /* Multiple matches: record name and starting block for later
2377b725ae77Skettenis          resolution by ada_resolve.  */
2378*11efff7fSkettenis       char *encoded_name = ada_encode (name.stoken.ptr);
2379*11efff7fSkettenis       struct symbol *sym =
2380*11efff7fSkettenis 	obstack_alloc (&temp_parse_space, sizeof (struct symbol));
2381*11efff7fSkettenis       memset (sym, 0, sizeof (struct symbol));
2382*11efff7fSkettenis       SYMBOL_DOMAIN (sym) = UNDEF_DOMAIN;
2383*11efff7fSkettenis       SYMBOL_LINKAGE_NAME (sym)
2384*11efff7fSkettenis 	= obsavestring (encoded_name, strlen (encoded_name), &temp_parse_space);
2385*11efff7fSkettenis       SYMBOL_LANGUAGE (sym) = language_ada;
2386*11efff7fSkettenis 
2387*11efff7fSkettenis       write_exp_elt_opcode (OP_VAR_VALUE);
2388b725ae77Skettenis       write_exp_elt_block (name.block);
2389*11efff7fSkettenis       write_exp_elt_sym (sym);
2390*11efff7fSkettenis       write_exp_elt_opcode (OP_VAR_VALUE);
2391b725ae77Skettenis     }
2392b725ae77Skettenis   else
2393b725ae77Skettenis     write_var_from_sym (orig_left_context, name.block, name.sym);
2394b725ae77Skettenis }
2395b725ae77Skettenis 
2396*11efff7fSkettenis /* Write integer constant ARG of type TYPE.  */
2397b725ae77Skettenis 
2398b725ae77Skettenis static void
write_int(LONGEST arg,struct type * type)2399*11efff7fSkettenis write_int (LONGEST arg, struct type *type)
2400b725ae77Skettenis {
2401b725ae77Skettenis   write_exp_elt_opcode (OP_LONG);
2402*11efff7fSkettenis   write_exp_elt_type (type);
2403b725ae77Skettenis   write_exp_elt_longcst (arg);
2404b725ae77Skettenis   write_exp_elt_opcode (OP_LONG);
2405b725ae77Skettenis }
2406b725ae77Skettenis 
2407b725ae77Skettenis /* Emit expression corresponding to the renamed object designated by
2408b725ae77Skettenis  * the type RENAMING, which must be the referent of an object renaming
2409*11efff7fSkettenis  * type, in the context of ORIG_LEFT_CONTEXT.  MAX_DEPTH is the maximum
2410*11efff7fSkettenis  * number of cascaded renamings to allow.  */
2411b725ae77Skettenis static void
write_object_renaming(struct block * orig_left_context,struct symbol * renaming,int max_depth)2412*11efff7fSkettenis write_object_renaming (struct block *orig_left_context,
2413*11efff7fSkettenis 		       struct symbol *renaming, int max_depth)
2414b725ae77Skettenis {
2415*11efff7fSkettenis   const char *qualification = SYMBOL_LINKAGE_NAME (renaming);
2416b725ae77Skettenis   const char *simple_tail;
2417b725ae77Skettenis   const char *expr = TYPE_FIELD_NAME (SYMBOL_TYPE (renaming), 0);
2418b725ae77Skettenis   const char *suffix;
2419b725ae77Skettenis   char *name;
2420b725ae77Skettenis   struct symbol *sym;
2421b725ae77Skettenis   enum { SIMPLE_INDEX, LOWER_BOUND, UPPER_BOUND } slice_state;
2422b725ae77Skettenis 
2423*11efff7fSkettenis   if (max_depth <= 0)
2424*11efff7fSkettenis     error ("Could not find renamed symbol");
2425*11efff7fSkettenis 
2426b725ae77Skettenis   /* if orig_left_context is null, then use the currently selected
2427*11efff7fSkettenis      block; otherwise we might fail our symbol lookup below.  */
2428b725ae77Skettenis   if (orig_left_context == NULL)
2429b725ae77Skettenis     orig_left_context = get_selected_block (NULL);
2430b725ae77Skettenis 
2431b725ae77Skettenis   for (simple_tail = qualification + strlen (qualification);
2432b725ae77Skettenis        simple_tail != qualification; simple_tail -= 1)
2433b725ae77Skettenis     {
2434b725ae77Skettenis       if (*simple_tail == '.')
2435b725ae77Skettenis 	{
2436b725ae77Skettenis 	  simple_tail += 1;
2437b725ae77Skettenis 	  break;
2438b725ae77Skettenis 	}
2439*11efff7fSkettenis       else if (strncmp (simple_tail, "__", 2) == 0)
2440b725ae77Skettenis 	{
2441b725ae77Skettenis 	  simple_tail += 2;
2442b725ae77Skettenis 	  break;
2443b725ae77Skettenis 	}
2444b725ae77Skettenis     }
2445b725ae77Skettenis 
2446b725ae77Skettenis   suffix = strstr (expr, "___XE");
2447b725ae77Skettenis   if (suffix == NULL)
2448b725ae77Skettenis     goto BadEncoding;
2449b725ae77Skettenis 
2450*11efff7fSkettenis   name = (char *) obstack_alloc (&temp_parse_space, suffix - expr + 1);
2451b725ae77Skettenis   strncpy (name, expr, suffix-expr);
2452b725ae77Skettenis   name[suffix-expr] = '\000';
2453b725ae77Skettenis   sym = lookup_symbol (name, orig_left_context, VAR_DOMAIN, 0, NULL);
2454*11efff7fSkettenis   if (sym == NULL)
2455*11efff7fSkettenis     error ("Could not find renamed variable: %s", ada_decode (name));
2456*11efff7fSkettenis   if (ada_is_object_renaming (sym))
2457*11efff7fSkettenis     write_object_renaming (orig_left_context, sym, max_depth-1);
2458*11efff7fSkettenis   else
2459b725ae77Skettenis     write_var_from_sym (orig_left_context, block_found, sym);
2460b725ae77Skettenis 
2461b725ae77Skettenis   suffix += 5;
2462b725ae77Skettenis   slice_state = SIMPLE_INDEX;
2463b725ae77Skettenis   while (*suffix == 'X')
2464b725ae77Skettenis     {
2465b725ae77Skettenis       suffix += 1;
2466b725ae77Skettenis 
2467b725ae77Skettenis       switch (*suffix) {
2468*11efff7fSkettenis       case 'A':
2469*11efff7fSkettenis         suffix += 1;
2470*11efff7fSkettenis         write_exp_elt_opcode (UNOP_IND);
2471*11efff7fSkettenis         break;
2472b725ae77Skettenis       case 'L':
2473b725ae77Skettenis 	slice_state = LOWER_BOUND;
2474b725ae77Skettenis       case 'S':
2475b725ae77Skettenis 	suffix += 1;
2476b725ae77Skettenis 	if (isdigit (*suffix))
2477b725ae77Skettenis 	  {
2478b725ae77Skettenis 	    char *next;
2479b725ae77Skettenis 	    long val = strtol (suffix, &next, 10);
2480b725ae77Skettenis 	    if (next == suffix)
2481b725ae77Skettenis 	      goto BadEncoding;
2482b725ae77Skettenis 	    suffix = next;
2483b725ae77Skettenis 	    write_exp_elt_opcode (OP_LONG);
2484*11efff7fSkettenis 	    write_exp_elt_type (type_int ());
2485b725ae77Skettenis 	    write_exp_elt_longcst ((LONGEST) val);
2486b725ae77Skettenis 	    write_exp_elt_opcode (OP_LONG);
2487b725ae77Skettenis 	  }
2488b725ae77Skettenis 	else
2489b725ae77Skettenis 	  {
2490b725ae77Skettenis 	    const char *end;
2491b725ae77Skettenis 	    char *index_name;
2492b725ae77Skettenis 	    int index_len;
2493b725ae77Skettenis 	    struct symbol *index_sym;
2494b725ae77Skettenis 
2495b725ae77Skettenis 	    end = strchr (suffix, 'X');
2496b725ae77Skettenis 	    if (end == NULL)
2497b725ae77Skettenis 	      end = suffix + strlen (suffix);
2498b725ae77Skettenis 
2499b725ae77Skettenis 	    index_len = simple_tail - qualification + 2 + (suffix - end) + 1;
2500*11efff7fSkettenis 	    index_name
2501*11efff7fSkettenis 	      = (char *) obstack_alloc (&temp_parse_space, index_len);
2502b725ae77Skettenis 	    memset (index_name, '\000', index_len);
2503b725ae77Skettenis 	    strncpy (index_name, qualification, simple_tail - qualification);
2504b725ae77Skettenis 	    index_name[simple_tail - qualification] = '\000';
2505b725ae77Skettenis 	    strncat (index_name, suffix, suffix-end);
2506b725ae77Skettenis 	    suffix = end;
2507b725ae77Skettenis 
2508b725ae77Skettenis 	    index_sym =
2509b725ae77Skettenis 	      lookup_symbol (index_name, NULL, VAR_DOMAIN, 0, NULL);
2510b725ae77Skettenis 	    if (index_sym == NULL)
2511b725ae77Skettenis 	      error ("Could not find %s", index_name);
2512b725ae77Skettenis 	    write_var_from_sym (NULL, block_found, sym);
2513b725ae77Skettenis 	  }
2514b725ae77Skettenis 	if (slice_state == SIMPLE_INDEX)
2515b725ae77Skettenis 	  {
2516b725ae77Skettenis 	    write_exp_elt_opcode (OP_FUNCALL);
2517b725ae77Skettenis 	    write_exp_elt_longcst ((LONGEST) 1);
2518b725ae77Skettenis 	    write_exp_elt_opcode (OP_FUNCALL);
2519b725ae77Skettenis 	  }
2520b725ae77Skettenis 	else if (slice_state == LOWER_BOUND)
2521b725ae77Skettenis 	  slice_state = UPPER_BOUND;
2522b725ae77Skettenis 	else if (slice_state == UPPER_BOUND)
2523b725ae77Skettenis 	  {
2524b725ae77Skettenis 	    write_exp_elt_opcode (TERNOP_SLICE);
2525b725ae77Skettenis 	    slice_state = SIMPLE_INDEX;
2526b725ae77Skettenis 	  }
2527b725ae77Skettenis 	break;
2528b725ae77Skettenis 
2529b725ae77Skettenis       case 'R':
2530b725ae77Skettenis 	{
2531b725ae77Skettenis 	  struct stoken field_name;
2532b725ae77Skettenis 	  const char *end;
2533b725ae77Skettenis 	  suffix += 1;
2534b725ae77Skettenis 
2535b725ae77Skettenis 	  if (slice_state != SIMPLE_INDEX)
2536b725ae77Skettenis 	    goto BadEncoding;
2537b725ae77Skettenis 	  end = strchr (suffix, 'X');
2538b725ae77Skettenis 	  if (end == NULL)
2539b725ae77Skettenis 	    end = suffix + strlen (suffix);
2540b725ae77Skettenis 	  field_name.length = end - suffix;
2541*11efff7fSkettenis 	  field_name.ptr = xmalloc (end - suffix + 1);
2542b725ae77Skettenis 	  strncpy (field_name.ptr, suffix, end - suffix);
2543b725ae77Skettenis 	  field_name.ptr[end - suffix] = '\000';
2544b725ae77Skettenis 	  suffix = end;
2545b725ae77Skettenis 	  write_exp_elt_opcode (STRUCTOP_STRUCT);
2546b725ae77Skettenis 	  write_exp_string (field_name);
2547b725ae77Skettenis 	  write_exp_elt_opcode (STRUCTOP_STRUCT);
2548b725ae77Skettenis 	  break;
2549b725ae77Skettenis 	}
2550b725ae77Skettenis 
2551b725ae77Skettenis       default:
2552b725ae77Skettenis 	goto BadEncoding;
2553b725ae77Skettenis       }
2554b725ae77Skettenis     }
2555b725ae77Skettenis   if (slice_state == SIMPLE_INDEX)
2556b725ae77Skettenis     return;
2557b725ae77Skettenis 
2558b725ae77Skettenis  BadEncoding:
2559b725ae77Skettenis   error ("Internal error in encoding of renaming declaration: %s",
2560*11efff7fSkettenis 	 SYMBOL_LINKAGE_NAME (renaming));
2561b725ae77Skettenis }
2562b725ae77Skettenis 
2563b725ae77Skettenis /* Convert the character literal whose ASCII value would be VAL to the
2564b725ae77Skettenis    appropriate value of type TYPE, if there is a translation.
2565b725ae77Skettenis    Otherwise return VAL.  Hence, in an enumeration type ('A', 'B'),
2566b725ae77Skettenis    the literal 'A' (VAL == 65), returns 0.  */
2567b725ae77Skettenis static LONGEST
convert_char_literal(struct type * type,LONGEST val)2568b725ae77Skettenis convert_char_literal (struct type *type, LONGEST val)
2569b725ae77Skettenis {
2570b725ae77Skettenis   char name[7];
2571b725ae77Skettenis   int f;
2572b725ae77Skettenis 
2573b725ae77Skettenis   if (type == NULL || TYPE_CODE (type) != TYPE_CODE_ENUM)
2574b725ae77Skettenis     return val;
2575b725ae77Skettenis   sprintf (name, "QU%02x", (int) val);
2576b725ae77Skettenis   for (f = 0; f < TYPE_NFIELDS (type); f += 1)
2577b725ae77Skettenis     {
2578*11efff7fSkettenis       if (strcmp (name, TYPE_FIELD_NAME (type, f)) == 0)
2579b725ae77Skettenis 	return TYPE_FIELD_BITPOS (type, f);
2580b725ae77Skettenis     }
2581b725ae77Skettenis   return val;
2582b725ae77Skettenis }
2583*11efff7fSkettenis 
2584*11efff7fSkettenis static struct type *
type_int(void)2585*11efff7fSkettenis type_int (void)
2586*11efff7fSkettenis {
2587*11efff7fSkettenis   return builtin_type (current_gdbarch)->builtin_int;
2588*11efff7fSkettenis }
2589*11efff7fSkettenis 
2590*11efff7fSkettenis static struct type *
type_long(void)2591*11efff7fSkettenis type_long (void)
2592*11efff7fSkettenis {
2593*11efff7fSkettenis   return builtin_type (current_gdbarch)->builtin_long;
2594*11efff7fSkettenis }
2595*11efff7fSkettenis 
2596*11efff7fSkettenis static struct type *
type_long_long(void)2597*11efff7fSkettenis type_long_long (void)
2598*11efff7fSkettenis {
2599*11efff7fSkettenis   return builtin_type (current_gdbarch)->builtin_long_long;
2600*11efff7fSkettenis }
2601*11efff7fSkettenis 
2602*11efff7fSkettenis static struct type *
type_float(void)2603*11efff7fSkettenis type_float (void)
2604*11efff7fSkettenis {
2605*11efff7fSkettenis   return builtin_type (current_gdbarch)->builtin_float;
2606*11efff7fSkettenis }
2607*11efff7fSkettenis 
2608*11efff7fSkettenis static struct type *
type_double(void)2609*11efff7fSkettenis type_double (void)
2610*11efff7fSkettenis {
2611*11efff7fSkettenis   return builtin_type (current_gdbarch)->builtin_double;
2612*11efff7fSkettenis }
2613*11efff7fSkettenis 
2614*11efff7fSkettenis static struct type *
type_long_double(void)2615*11efff7fSkettenis type_long_double (void)
2616*11efff7fSkettenis {
2617*11efff7fSkettenis   return builtin_type (current_gdbarch)->builtin_long_double;
2618*11efff7fSkettenis }
2619*11efff7fSkettenis 
2620*11efff7fSkettenis static struct type *
type_char(void)2621*11efff7fSkettenis type_char (void)
2622*11efff7fSkettenis {
2623*11efff7fSkettenis   return language_string_char_type (current_language, current_gdbarch);
2624*11efff7fSkettenis }
2625*11efff7fSkettenis 
2626*11efff7fSkettenis static struct type *
type_system_address(void)2627*11efff7fSkettenis type_system_address (void)
2628*11efff7fSkettenis {
2629*11efff7fSkettenis   struct type *type
2630*11efff7fSkettenis     = language_lookup_primitive_type_by_name (current_language,
2631*11efff7fSkettenis 					      current_gdbarch,
2632*11efff7fSkettenis 					      "system__address");
2633*11efff7fSkettenis   return  type != NULL ? type : lookup_pointer_type (builtin_type_void);
2634*11efff7fSkettenis }
2635*11efff7fSkettenis 
2636*11efff7fSkettenis void
_initialize_ada_exp(void)2637*11efff7fSkettenis _initialize_ada_exp (void)
2638*11efff7fSkettenis {
2639*11efff7fSkettenis   obstack_init (&temp_parse_space);
2640*11efff7fSkettenis }
2641*11efff7fSkettenis 
2642*11efff7fSkettenis /* FIXME: hilfingr/2004-10-05: Hack to remove warning.  The function
2643*11efff7fSkettenis    string_to_operator is supposed to be used for cases where one
2644*11efff7fSkettenis    calls an operator function with prefix notation, as in
2645*11efff7fSkettenis    "+" (a, b), but at some point, this code seems to have gone
2646*11efff7fSkettenis    missing. */
2647*11efff7fSkettenis 
2648*11efff7fSkettenis struct stoken (*dummy_string_to_ada_operator) (struct stoken)
2649*11efff7fSkettenis      = string_to_operator;
2650*11efff7fSkettenis 
2651*11efff7fSkettenis 
2652*11efff7fSkettenis 
2653