typedef union {
   Terminal        rk;
   Terminal        NT;
   Terminal        RK;
   Terminal        Rk;

   float           floatval;
   double          doubleval;
   char            charval;
   int             intval;
   long            longval;
   char           *string;

   BaseType        basetype;
   StorageClass    storageclass;
   TypeQualifier   typequalifier;
   ArgType	   argtype;
  
   lookupentry *   lookuplistptr;
   tableentry *    tablelistptr;

   struct {
	char* classname;
	char* fieldmethodname;
   }		classfieldmethodstruct;

   struct _declinfo {
      int   function;
      int   ptrcount;
      int   dimsize[7];
      int   numdims;
      char *name;
   }               declinfo;
   
   struct {
      TreeNode *formals;
      struct _declinfo D;
   }               funcstuff;

   struct {
      Type          T;
      StorageClass  C;
      TypeQualifier Q;
   } declspecs;

   struct {
      Type          T;
      StorageClass  C;
      TypeQualifier Q;
      TreeNode     *node;
   } declspecsnode;

   struct {
      Type          T;
      StorageClass  C;
      TypeQualifier Q;
      Symbol       *headsym;
      Symbol       *prevsym;
   } structdeclspecs;

   struct {
      Symbol   *headsym;
      Symbol   *prevsym;
   } headprevsym;

   struct {
      int       spec;
      int       val;
      char     *id;
   } idspecval;

   struct {
      Symbol   *sym;
      int       val;
   } symval;

   Type            typetype;

   Symbol         *sym;

   struct {
      TreeNode *decl;
      TreeNode *func;
   } declfunc;

   struct {
      TreeNode *decl;
      TreeNode *func;
      TreeNode *exprs;
      TreeNode *last;
   } declfuncexprs;

   struct {
      TreeNode *exprs;
      TreeNode *last;
   } exprslast;

   TreeNode       *node;
} YYSTYPE;
#define	LABEL	258
#define	IDENTIFIER	259
#define	INTCONSTANT	260
#define	LONGCONSTANT	261
#define	FLOATCONSTANT	262
#define	DOUBLECONSTANT	263
#define	CHARCONSTANT	264
#define	STRING_LITERAL	265
#define	CLASS	266
#define	EXTENDS	267
#define	ACCESS	268
#define	IMPLEMENTS	269
#define	FIELD	270
#define	METHOD	271
#define	MAX_STACK	272
#define	MAX_LOCALS	273
#define	CODE	274
#define	PUBLIC	275
#define	PRIVATE	276
#define	PROTECTED	277
#define	ABSTRACT	278
#define	FINAL	279
#define	INTERFACE	280
#define	STATIC	281
#define	NATIVE	282
#define	SYNCHRONIZED	283
#define	TRANSIENT	284
#define	VOLATILE	285
#define	BYTE	286
#define	CHAR	287
#define	DOUBLE	288
#define	FLOAT	289
#define	INT	290
#define	LONG	291
#define	SHORT	292
#define	BOOLEAN	293
#define	VOID	294
#define	DEFAULT	295
#define	TO	296
#define	EXCEPTIONS	297
#define	SOURCEFILE	298
#define	THROWS	299
#define	LINENUMBERTABLE	300
#define	LOCALVARIABLETABLE	301
#define	ACC_PUBLIC	302
#define	ACC_PRIVATE	303
#define	ACC_PROTECTED	304
#define	ACC_STATIC	305
#define	ACC_FINAL	306
#define	ACC_SYNCHRONIZED	307
#define	ACC_VOLATILE	308
#define	ACC_TRANSIENT	309
#define	ACC_NATIVE	310
#define	ACC_INTERFACE	311
#define	ACC_ABSTRACT	312
#define	AALOAD	313
#define	AASTORE	314
#define	ACONST_NULL	315
#define	ALOAD_0	316
#define	ALOAD_1	317
#define	ALOAD_2	318
#define	ALOAD_3	319
#define	ANEWARRAY	320
#define	ARETURN	321
#define	ARRAYLENGTH	322
#define	ASTORE_0	323
#define	ASTORE_1	324
#define	ASTORE_2	325
#define	ASTORE_3	326
#define	ATHROW	327
#define	BALOAD	328
#define	BASTORE	329
#define	BIPUSH	330
#define	CALOAD	331
#define	CASTORE	332
#define	CHECKCAST	333
#define	D2F	334
#define	D2I	335
#define	D2L	336
#define	DADD	337
#define	DALOAD	338
#define	DASTORE	339
#define	DCMPG	340
#define	DCMPL	341
#define	DCONST_0	342
#define	DCONST_1	343
#define	DDIV	344
#define	DLOAD_0	345
#define	DLOAD_1	346
#define	DLOAD_2	347
#define	DLOAD_3	348
#define	DMUL	349
#define	DNEG	350
#define	DREM	351
#define	DRETURN	352
#define	DSTORE_0	353
#define	DSTORE_1	354
#define	DSTORE_2	355
#define	DSTORE_3	356
#define	DSUB	357
#define	DUP	358
#define	DUP_X1	359
#define	DUP_X2	360
#define	DUP2	361
#define	DUP2_X1	362
#define	DUP2_X2	363
#define	F2D	364
#define	F2I	365
#define	F2L	366
#define	FADD	367
#define	FALOAD	368
#define	FASTORE	369
#define	FCMPG	370
#define	FCMPL	371
#define	FCONST_0	372
#define	FCONST_1	373
#define	FCONST_2	374
#define	FDIV	375
#define	FLOAD_0	376
#define	FLOAD_1	377
#define	FLOAD_2	378
#define	FLOAD_3	379
#define	FMUL	380
#define	FNEG	381
#define	FREM	382
#define	FRETURN	383
#define	FSTORE_0	384
#define	FSTORE_1	385
#define	FSTORE_2	386
#define	FSTORE_3	387
#define	FSUB	388
#define	GETFIELD	389
#define	GETSTATIC	390
#define	GOTO	391
#define	GOTO_W	392
#define	I2B	393
#define	I2C	394
#define	I2D	395
#define	I2F	396
#define	I2L	397
#define	I2S	398
#define	IADD	399
#define	IALOAD	400
#define	IAND	401
#define	IASTORE	402
#define	ICONST_0	403
#define	ICONST_1	404
#define	ICONST_2	405
#define	ICONST_3	406
#define	ICONST_4	407
#define	ICONST_5	408
#define	ICONST_M1	409
#define	IDIV	410
#define	IF_ACMPEQ	411
#define	IF_ACMPNE	412
#define	IF_ICMPEQ	413
#define	IF_ICMPNE	414
#define	IF_ICMPLT	415
#define	IF_ICMPGE	416
#define	IF_ICMPGT	417
#define	IF_ICMPLE	418
#define	IFEQ	419
#define	IFNE	420
#define	IFLT	421
#define	IFGE	422
#define	IFGT	423
#define	IFLE	424
#define	IFNONNULL	425
#define	IFNULL	426
#define	ILOAD_0	427
#define	ILOAD_1	428
#define	ILOAD_2	429
#define	ILOAD_3	430
#define	IMUL	431
#define	INEG	432
#define	IOR	433
#define	IREM	434
#define	IRETURN	435
#define	ISHL	436
#define	ISHR	437
#define	ISTORE_0	438
#define	ISTORE_1	439
#define	ISTORE_2	440
#define	ISTORE_3	441
#define	ISUB	442
#define	IUSHR	443
#define	IXOR	444
#define	JSR	445
#define	JSR_W	446
#define	L2D	447
#define	L2F	448
#define	L2I	449
#define	LADD	450
#define	LALOAD	451
#define	LAND	452
#define	LASTORE	453
#define	LCMP	454
#define	LCONST_0	455
#define	LCONST_1	456
#define	LDIV	457
#define	LLOAD_0	458
#define	LLOAD_1	459
#define	LLOAD_2	460
#define	LLOAD_3	461
#define	LMUL	462
#define	LNEG	463
#define	LOR	464
#define	LREM	465
#define	LRETURN	466
#define	LSHL	467
#define	LSHR	468
#define	LSTORE_0	469
#define	LSTORE_1	470
#define	LSTORE_2	471
#define	LSTORE_3	472
#define	LSUB	473
#define	LUSHR	474
#define	LXOR	475
#define	MONITORENTER	476
#define	MONITOREXIT	477
#define	NOP	478
#define	POP	479
#define	POP2	480
#define	RETURN	481
#define	SALOAD	482
#define	SASTORE	483
#define	SWAP	484
#define	IINC	485
#define	INSTANCEOF	486
#define	INVOKEINTERFACE	487
#define	INVOKENONVIRTUAL	488
#define	INVOKESTATIC	489
#define	INVOKEVIRTUAL	490
#define	LDC	491
#define	LDC_W	492
#define	LDC2_W	493
#define	MULTIANEWARRAY	494
#define	NEW	495
#define	NEWARRAY	496
#define	PUTFIELD	497
#define	PUTSTATIC	498
#define	SIPUSH	499
#define	ILOAD	500
#define	FLOAD	501
#define	ALOAD	502
#define	LLOAD	503
#define	DLOAD	504
#define	ISTORE	505
#define	FSTORE	506
#define	ASTORE	507
#define	LSTORE	508
#define	DSTORE	509
#define	RET	510
#define	WIDE	511
#define	LOAD	512
#define	STORE	513
#define	LOOKUPSWITCH	514
#define	TABLESWITCH	515


extern YYSTYPE yylval;
