
/*  A Bison parser, made from pps.y  */

#define	TYPE	258
#define	DECLARE	259
#define	BEGIN	260
#define	PROCEDURE	261
#define	FUNCTION	262
#define	BREAK	263
#define	CONTINUE	264
#define	END	265
#define	SELECT	266
#define	CASE	267
#define	DEFAULT	268
#define	ENDSELECT	269
#define	SUBRANGE	270
#define	WHILE	271
#define	DO	272
#define	ENDWHILE	273
#define	FOR	274
#define	TO	275
#define	STEP	276
#define	NEXT	277
#define	GOSUB	278
#define	GOTO	279
#define	GO	280
#define	SUB	281
#define	IF	282
#define	THEN	283
#define	ELSE	284
#define	ELSEIF	285
#define	ENDIF	286
#define	FUNC	287
#define	PROC	288
#define	VAR	289
#define	LABELMARKER	290
#define	OP_AND	291
#define	OP_OR	292
#define	OP_NOT	293
#define	OP_LE	294
#define	OP_AE	295
#define	OP_EQ	296
#define	OP_NE	297
#define	OP_LO	298
#define	OP_AB	299
#define	INTFUNC	300
#define	S_0ARG	301
#define	S_1ARG	302
#define	S_2ARG	303
#define	S_3ARG	304
#define	S_4ARG	305
#define	S_5ARG	306
#define	S_6ARG	307
#define	S_7ARG	308
#define	S_8ARG	309
#define	S_9ARG	310
#define	S_10ARG	311
#define	S_0PARG	312
#define	S_1PARG	313
#define	S_2PARG	314
#define	S_1T4ARG	315
#define	LET	316
#define	IDENTIFIER	317
#define	USERPROC	318
#define	USERFUNC	319
#define	UNARAY	320

//#ln 23 "pps.y"


#define YYSTYPE char*
#pragma warn -ias

#define LOOP_WHILE  1
#define LOOP_FOR    2
#define LOOP_IF     3
#define LOOP_CASE   4
#define LOOP_ELSEIF 5

#define STRCONST 1
#define INTCONST 2
#define HEXCONST 3
#define SYMBOL   4
#define DBLCONST 5

#define FUNC_IDENTIFIER 1
#define PROC_IDENTIFIER 2
#define VAR_IDENTIFIER  3

void sendVar(int varnum);
void nextArg(void);
void sendFunc(int funcnum);
void registerIdent(char *data);
void registerIdentList(int type);
void checkIdentifier(void);
char *mkFunc(int f);
char *mkStat(unsigned int s);
char *concat(char *c1, char *c2);
char *separator(int s, int argNum);
void initbuild(void);
void build(char *value);
char *retreiveBuild(void);
char *newTempLabel(void);
void fakeNextLabel(char *);
void pushLabelStack(char *s);
char *popLabelStack(void);
char *lookup(int type);
void pushSelect(char *var);
char *popSelect(void);
void switchLastLabels(void);
char *semValue(char *s);
void checkDim(char *var, int n);
char *semText(char *s);
void invalidVar(char *v);
void registerProc(char *procName, int nArgs, char *argTypes, int pf, int funcReturnType);
void checkProc(char *procName, int nArgs, char *argTypes, int pf, int funcReturnType);
char *zero(void);
void enterProc(char *procName, int type);
void leaveProc(int type);
char *toVar(char *sem);
void correctAssign(void);
void checkFunc(int func, int npar);
void pushParamN(int n);
int popParamN(void);
void checkUserProc(int varnum, int nargs);
void tooManyArgsProc(int p);
void notEnoughArgsProc(int p);
void honnor(int ver);
void checkStatArg(char *s, char *a1, char *a2, char *a3, char *a4, char *a5, char *a6, char *a7, char *a8, char *a9, char *a10);
int argClass(char *arg);
void checkUserProcArgTypes(char *p, int n);
void internalFunc(char *f);
void internalProc(char *f);
void closeLoop(char *s, int loopType);
void checkLoop(char *s, int loopType);
void checkProcFuncName(char *w);
void initLogicalLine(void);
void closeLogicalLine(void);

extern int curArg, statArg;
extern int totalArgs;
extern char yytext[256];
extern char predefValue[];
extern char **labelStack;
extern int labelStackSize;
extern int labelStackPos;
extern int errorOccured;
char *c;
int nCase;
int aa, b;
extern char far msg[];
extern int *loop;
extern int loopSize;
extern int loopPos;
extern int identHdr;
extern int procCount;
extern int beginUsed;
extern int lexn;
extern int declaration, mustBeType;
extern int allowTo;
extern int allowStep;
extern int yyStackSize;

extern char nDim;
extern int dim1, dim2, dim3;

char *wh3, *if3, *fn1, *fn2;
extern int totalParam;

char userProcArgType[256];
extern int linePart;

extern int forceLabel;


#ifndef YYLTYPE
typedef
  struct yyltype
    {
      int timestamp;
      int first_line;
      int first_column;
      int last_line;
      int last_column;
      char *text;
   }
  yyltype;

#define YYLTYPE yyltype
#endif

#ifndef YYSTYPE
#define YYSTYPE int
#endif
#include <stdio.h>

#ifndef __STDC__
#define const
#endif



#define	YYFINAL		634
#define	YYFLAG		-32768
#define	YYNTBASE	79

#define YYTRANSLATE(x) ((unsigned)(x) <= 320 ? yytranslate[x] : 177)

static const char yytranslate[] = {     0,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,    70,     2,     2,    74,
    75,    68,    67,    76,    66,     2,    69,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,    73,     2,     2,
    65,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    77,     2,    78,    72,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     1,     2,     3,     4,     5,
     6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
    36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
    46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
    56,    57,    58,    59,    60,    61,    62,    63,    64,    71
};

#if YYDEBUG != 0
static const short yyrline[] = { 0,
   169,   170,   174,   178,   179,   180,   184,   185,   186,   187,
   188,   189,   190,   194,   195,   196,   197,   198,   207,   208,
   209,   213,   214,   215,   216,   217,   218,   219,   220,   221,
   222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
   235,   241,   245,   246,   250,   254,   255,   259,   260,   264,
   265,   266,   267,   271,   275,   278,   289,   308,   320,   335,
   336,   344,   354,   366,   380,   396,   414,   434,   456,   480,
   506,   515,   521,   531,   543,   555,   569,   580,   593,   608,
   609,   617,   621,   625,   626,   627,   628,   629,   630,   631,
   632,   633,   634,   635,   637,   638,   639,   640,   641,   642,
   643,   644,   645,   646,   647,   648,   649,   650,   651,   652,
   653,   654,   655,   656,   657,   658,   659,   660,   661,   662,
   663,   664,   665,   666,   667,   668,   669,   670,   671,   672,
   673,   674,   675,   676,   677,   678,   679,   680,   681,   682,
   683,   684,   685,   686,   687,   688,   689,   690,   691,   692,
   693,   694,   695,   696,   697,   698,   699,   700,   701,   702,
   703,   704,   705,   706,   707,   708,   709,   710,   711,   712,
   713,   714,   715,   716,   717,   718,   719,   720,   721,   722,
   723,   724,   725,   726,   727,   728,   729,   730,   731,   732,
   733,   734,   735,   736,   737,   738,   739,   740,   741,   742,
   743,   744,   745,   746,   747,   748,   749,   750,   751,   752,
   753,   754,   755,   756,   757,   758,   759,   760,   763,   764,
   765,   766,   767,   768,   769,   773,   774,   775,   779,   783,
   784,   785,   786,   787,   789,   790,   791,   792,   793,   804,
   809,   817,   818,   819,   820,   824,   825,   829,   833,   837,
   838,   844,   850,   859,   860,   861,   862,   866,   867,   871,
   872,   876,   880,   891,   892,   896,   914,   919,   923,   924,
   928,   929,   930,   931,   935,   936,   940,   944,   948,   954,
   961,   965,   966,   970,   971,   972,   973,   977,   978,   982,
   983,   987,   991,   995,   999,  1000,  1001,  1002,  1003,  1004,
  1005,  1006,  1007,  1008,  1009,  1010,  1011,  1012,  1013,  1022,
  1026,  1027,  1031,  1039,  1047,  1055,  1063,  1064,  1068,  1073,
  1082,  1086,  1087,  1091,  1092,  1105,  1106,  1120,  1136,  1157,
  1176,  1180,  1184,  1185,  1189,  1190,  1194,  1195,  1199,  1203,
  1219,  1250,  1266,  1267,  1271,  1294,  1295,  1333,  1334,  1343,
  1383,  1440,  1460,  1461,  1465,  1466,  1475,  1479,  1502,  1503,
  1507,  1508,  1512,  1532,  1562,  1578,  1608,  1635,  1655,  1656,
  1660,  1661,  1665,  1679,  1700,  1701,  1710,  1750,  1798,  1802,
  1828,  1836,  1837,  1841,  1842,  1846,  1847,  1851,  1852
};

static const char * const yytname[] = {     0,
"error","$illegal.","TYPE","DECLARE","BEGIN","PROCEDURE","FUNCTION","BREAK","CONTINUE","END",
"SELECT","CASE","DEFAULT","ENDSELECT","SUBRANGE","WHILE","DO","ENDWHILE","FOR","TO",
"STEP","NEXT","GOSUB","GOTO","GO","SUB","IF","THEN","ELSE","ELSEIF",
"ENDIF","FUNC","PROC","VAR","LABELMARKER","OP_AND","OP_OR","OP_NOT","OP_LE","OP_AE",
"OP_EQ","OP_NE","OP_LO","OP_AB","INTFUNC","S_0ARG","S_1ARG","S_2ARG","S_3ARG","S_4ARG",
"S_5ARG","S_6ARG","S_7ARG","S_8ARG","S_9ARG","S_10ARG","S_0PARG","S_1PARG","S_2PARG","S_1T4ARG",
"LET","IDENTIFIER","USERPROC","USERFUNC","'='","'-'","'+'","'*'","'/'","'%'",
"UNARAY","'^'","':'","'('","')'","','","'['","']'","physical_line"
};
#endif

static const short yyr1[] = {     0,
    79,    79,    80,    81,    81,    81,    82,    82,    82,    82,
    82,    82,    82,    83,    83,    83,    83,    83,    84,    84,
    84,    85,    85,    85,    85,    85,    85,    85,    85,    85,
    85,    85,    85,    85,    85,    85,    85,    85,    85,    85,
    86,    87,    88,    88,    89,    90,    90,    91,    91,    92,
    92,    92,    92,    93,    94,    95,    95,    96,    96,    97,
    97,    97,    97,    97,    97,    97,    97,    97,    97,    97,
    97,    97,    97,    97,    97,    97,    97,    97,    97,    97,
    97,    97,    98,    99,    99,    99,    99,    99,    99,    99,
    99,    99,    99,    99,    99,    99,    99,    99,    99,    99,
    99,    99,    99,    99,    99,    99,    99,    99,    99,    99,
    99,    99,    99,    99,    99,    99,    99,    99,    99,    99,
    99,    99,    99,    99,    99,    99,    99,    99,    99,    99,
    99,    99,    99,    99,    99,    99,    99,    99,    99,    99,
    99,    99,    99,    99,    99,    99,    99,    99,    99,    99,
    99,    99,    99,    99,    99,    99,    99,    99,    99,    99,
    99,    99,    99,    99,    99,    99,    99,    99,    99,    99,
    99,    99,    99,    99,    99,    99,    99,    99,    99,    99,
    99,    99,    99,    99,    99,    99,    99,    99,    99,    99,
    99,    99,    99,    99,    99,    99,    99,    99,    99,    99,
    99,    99,    99,    99,    99,    99,    99,    99,    99,    99,
    99,    99,    99,    99,    99,    99,    99,    99,    99,    99,
    99,    99,    99,    99,    99,   100,   100,   100,   100,   100,
   100,   100,   100,   100,   100,   100,   100,   100,   100,   101,
   101,   102,   102,   102,   102,   103,   103,   104,   105,   106,
   106,   107,   107,   108,   108,   108,   108,   109,   109,   110,
   110,   111,   112,   113,   113,   114,   115,   115,   116,   116,
   117,   117,   117,   117,   118,   118,   119,   120,   121,   122,
   122,   123,   123,   124,   124,   124,   124,   125,   125,   126,
   126,   127,   128,   129,   130,   130,   130,   130,   130,   130,
   130,   130,   130,   130,   130,   130,   130,   130,   130,   131,
   132,   132,   133,   133,   133,   133,   133,   133,   134,   135,
   136,   137,   137,   138,   138,   139,   139,   139,   139,   140,
   141,   142,   143,   143,   144,   144,   145,   145,   146,   147,
   147,   148,   149,   149,   150,   151,   151,   152,   152,   153,
   153,   154,   155,   155,   156,   156,   157,   158,   159,   159,
   160,   160,   161,   162,   163,   164,   164,   164,   165,   165,
   166,   166,   167,   167,   168,   168,   169,   169,   170,   171,
   172,   173,   173,   174,   174,   175,   175,   176,   176
};

static const short yyr2[] = {     0,
     1,     2,     2,     0,     1,     1,     1,     1,     1,     1,
     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
     3,     1,     3,     3,     3,     3,     3,     3,     3,     3,
     3,     3,     3,     3,     3,     3,     3,     2,     2,     2,
     1,     1,     1,     3,     1,     1,     3,     1,     3,     3,
     4,     1,     1,     1,     1,     4,     3,     4,     3,     1,
     2,     4,     6,     8,    10,    12,    14,    16,    18,    20,
     2,     1,     2,     4,     4,     6,     4,     6,     8,     1,
     2,     1,    21,     2,     4,     6,     8,    10,    12,    14,
    16,    18,    20,     2,     4,     6,     8,    10,    12,    14,
    16,    18,    20,     2,     1,     4,     6,     8,    10,    12,
    14,    16,    18,    20,     2,     1,     2,     6,     8,    10,
    12,    14,    16,    18,    20,     2,     1,     2,     4,     8,
    10,    12,    14,    16,    18,    20,     2,     1,     2,     4,
     6,    10,    12,    14,    16,    18,    20,     2,     1,     2,
     4,     6,     8,    12,    14,    16,    18,    20,     2,     1,
     2,     4,     6,     8,    10,    14,    16,    18,    20,     2,
     1,     2,     4,     6,     8,    10,    12,    16,    18,    20,
     2,     1,     2,     4,     6,     8,    10,    12,    14,    18,
    20,     2,     1,     2,     4,     6,     8,    10,    12,    14,
    16,    20,     2,     1,     2,     4,     6,     8,    10,    12,
    14,    16,    18,     2,     1,     1,     2,     2,    10,    12,
    14,    16,    18,    20,     4,     1,     1,     3,     4,     1,
     1,     1,     2,     2,     1,     1,     1,     1,     1,     3,
     2,     4,     4,     4,     4,     1,     2,     2,     2,     1,
     2,     3,     2,     3,     3,     3,     3,     1,     1,     1,
     2,     2,     2,     1,     2,     1,     2,     1,     3,     2,
     4,     4,     4,     4,     1,     2,     2,     2,     1,     2,
     1,     3,     2,     3,     3,     3,     3,     1,     1,     1,
     2,     2,     2,     1,     1,     1,     1,     1,     1,     1,
     1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
     1,     3,     1,     4,     6,     8,     2,     1,     1,     1,
     1,     1,     3,     1,     4,     1,     4,     6,     8,     1,
     4,     4,     1,     2,     1,     2,     1,     2,     1,     2,
     1,     2,     1,     2,     1,     1,     1,     1,     2,     6,
     8,     1,     1,     2,     1,     2,     4,     2,     1,     2,
     1,     2,     1,     2,     3,     2,     1,     1,     2,     1,
     1,     3,     1,     3,     2,     1,     1,     1,     1,     2,
     1,     2,     2,     1,     2,     1,     2,     1,     1
};

static const short yydefact[] = {     4,
     0,     0,   381,     0,     0,   377,   378,    80,     0,     0,
   370,   376,     0,   361,     0,   355,   386,   384,     0,     0,
   339,   343,   348,   379,    60,   105,   116,   127,   138,   149,
   160,   171,   182,   193,   204,    72,   215,   216,     0,     0,
   321,     0,     0,     4,     1,     5,     6,   230,   226,    82,
     7,    15,     0,    17,     0,    16,   268,     0,    18,   281,
     0,    14,   330,   326,     0,   324,   322,     0,   333,   341,
   235,   346,   345,   335,   231,     0,   337,   236,   347,   237,
    12,   352,   353,     0,   359,   238,   363,    13,   232,   239,
     8,   367,   368,   227,     0,     9,    10,    11,     0,     0,
   318,   310,   311,   313,   319,     0,     0,   296,     0,   295,
   297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
   307,   308,   309,   258,   259,     0,     0,     0,     0,   289,
   288,     0,     0,     0,   375,   362,   356,   349,   382,   383,
     0,    54,    55,     0,     0,     0,    22,    42,    81,    20,
    52,     0,    53,   104,    19,     0,    41,   373,   369,   366,
   371,     0,     0,   385,   387,     0,    84,    94,    61,   115,
   117,   126,   128,   137,   139,   148,   150,   159,   161,   170,
   172,   181,   183,   192,   194,   203,   205,   214,    43,    71,
    73,   217,   218,     0,     0,     3,     2,   250,     0,   241,
     0,   246,     0,     0,   264,     0,   253,     0,     0,   260,
     0,   267,   279,   270,     0,     0,   275,     0,   280,   294,
   283,     0,     0,   290,     0,     0,     0,     0,    80,   389,
   388,   342,   340,   334,   344,   336,     0,   338,   354,   364,
   358,   360,   380,   233,   234,     0,     0,   317,     0,     0,
     0,     0,     0,     0,     0,     0,   257,   254,   256,   255,
   287,   284,   286,   285,    40,    38,    39,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,   365,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,    59,     0,
   251,   240,   249,   247,   248,   265,   252,   262,   261,   263,
   266,   269,   277,   276,   278,   282,   292,   291,   293,   228,
     0,   323,     0,     0,   312,     0,   320,   245,   243,   244,
   242,   274,   272,   273,   271,    21,    30,    31,    23,    24,
    25,    27,    28,    29,    26,    33,    32,    35,    34,    36,
    37,    95,    50,    45,    46,     0,    57,    48,     0,   374,
   372,   357,     0,   331,    85,   106,    62,   129,   140,   151,
   162,   173,   184,   195,   206,    44,    74,    75,    77,   225,
   229,    58,   325,   327,     0,   332,   314,     0,     0,    51,
     0,    56,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,    96,
    47,    49,   350,    86,   107,   118,    63,   141,   152,   163,
   174,   185,   196,   207,    76,    78,   328,     0,   315,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,    97,   351,    87,   108,
   119,   130,    64,   153,   164,   175,   186,   197,   208,    79,
   329,   316,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,    98,    88,   109,   120,   131,
   142,    65,   165,   176,   187,   198,   209,   219,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,    99,    89,   110,   121,   132,   143,   154,    66,   177,
   188,   199,   210,   220,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,   100,    90,   111,
   122,   133,   144,   155,   166,    67,   189,   200,   211,   221,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,   101,    91,   112,   123,   134,   145,   156,
   167,   178,    68,   201,   212,   222,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,   102,
    92,   113,   124,   135,   146,   157,   168,   179,   190,    69,
   213,   223,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,   103,    93,   114,   125,   136,
   147,   158,   169,   180,   191,   202,    70,   224,     0,     0,
    83,     0,     0,     0
};

static const short yydefgoto[] = {    43,
    44,    45,    46,    47,   147,   148,   158,   189,   190,   365,
   366,   369,   150,   151,   152,   153,    48,    49,   154,    50,
    51,    52,    53,   201,   202,   203,   204,    54,    55,   126,
   208,   209,   210,   211,   320,    56,    57,    58,   215,   216,
   217,   218,    59,    60,    61,   132,   222,   223,   224,   225,
   127,    62,   102,   103,   104,   336,    63,    64,   155,    66,
    67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
    77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
    87,    88,    89,    90,    91,    92,   160,   161,    93,    94,
    95,    96,    97,    98,    99,   100,   233
};

static const short yypact[] = {   662,
    -1,    83,-32768,   144,   191,-32768,-32768,   114,    35,    17,
-32768,-32768,   -31,-32768,   -12,-32768,-32768,-32768,    46,     0,
-32768,-32768,-32768,-32768,   259,   259,   259,   259,   259,   259,
   259,   259,   259,   259,   259,   259,   259,   259,   -12,   -12,
-32768,     2,    15,   662,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,    25,-32768,    31,-32768,    50,    32,-32768,    77,
    33,-32768,-32768,-32768,   -13,-32768,    12,   320,    65,-32768,
-32768,-32768,    70,   754,-32768,    40,   754,-32768,-32768,-32768,
-32768,-32768,   -12,   320,   754,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,   -12,-32768,-32768,-32768,   -12,   -12,
-32768,    29,-32768,   -32,-32768,   598,   776,-32768,    52,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,    58,    66,    68,    79,-32768,
-32768,    87,    97,   103,-32768,-32768,-32768,-32768,-32768,-32768,
   259,-32768,-32768,   259,   259,   259,-32768,   443,    48,-32768,
   105,   108,-32768,-32768,   110,   259,   443,   171,-32768,   129,
-32768,   259,    22,-32768,-32768,   259,   133,-32768,   134,-32768,
   136,-32768,   137,-32768,   138,-32768,   141,-32768,   142,-32768,
   143,-32768,   153,-32768,   155,-32768,   156,-32768,-32768,   157,
   159,   172,   176,    27,    98,-32768,-32768,-32768,   217,-32768,
    20,-32768,    36,   -12,-32768,   253,-32768,    43,    37,-32768,
   -12,-32768,-32768,-32768,    69,   254,-32768,   -12,-32768,-32768,
-32768,    73,   255,-32768,   -12,   259,   259,   811,    11,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,   259,-32768,   110,-32768,
-32768,-32768,-32768,-32768,-32768,    -1,   -12,-32768,   185,   186,
   187,   188,   189,   190,   192,   193,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,   196,   196,   196,   383,   259,   259,
   259,   259,   259,   259,   259,   259,   259,   259,   259,   259,
   259,   259,   259,   259,   817,   849,-32768,   259,   259,   194,
   259,   197,   259,   259,   259,   259,   259,   259,   259,   259,
   259,   259,   259,   259,   259,   259,   259,   259,-32768,    75,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
   195,-32768,    80,   199,-32768,    82,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,   345,   345,   158,   158,
   158,   158,   158,   158,   158,    41,    41,   196,   196,   196,
   196,   201,-32768,   443,-32768,    92,-32768,-32768,    94,-32768,
-32768,-32768,   245,-32768,   202,   204,   205,   206,   208,   224,
   225,   226,   227,   229,   230,-32768,   157,   231,   232,-32768,
-32768,-32768,-32768,-32768,   259,-32768,-32768,   -12,   259,-32768,
   259,-32768,   259,   259,   259,   259,   259,   259,   259,   259,
   259,   259,   259,   259,   259,   259,   259,    99,   109,   233,
-32768,-32768,   250,   234,   235,   236,   238,   239,   240,   242,
   243,   246,   248,   256,   157,   262,-32768,   259,-32768,   -12,
   259,   259,   259,   259,   259,   259,   259,   259,   259,   259,
   259,   259,   259,   259,   200,   260,   264,-32768,   266,   270,
   276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
-32768,-32768,   259,   259,   259,   259,   259,   259,   259,   259,
   259,   259,   259,   259,   259,   288,   289,   314,   316,   317,
   318,   319,   332,   340,   342,   352,   353,   354,   259,   259,
   259,   259,   259,   259,   259,   259,   259,   259,   259,   259,
   259,   355,   356,   358,   378,   380,   381,   384,   385,   386,
   387,   388,   405,   412,   259,   259,   259,   259,   259,   259,
   259,   259,   259,   259,   259,   259,   259,   413,   414,   428,
   429,   430,   431,   440,   454,   455,   456,   457,   458,   459,
   259,   259,   259,   259,   259,   259,   259,   259,   259,   259,
   259,   259,   259,   460,   461,   462,   463,   464,   465,   466,
   481,   482,   483,   484,   485,   486,   259,   259,   259,   259,
   259,   259,   259,   259,   259,   259,   259,   259,   259,   487,
   488,   489,   490,   491,   492,   506,   507,   508,   509,   510,
   511,   512,   259,   259,   259,   259,   259,   259,   259,   259,
   259,   259,   259,   259,   259,   513,   513,   513,   513,   513,
   513,   513,   513,   513,   513,   513,   513,   514,   259,   259,
   157,   513,   396,-32768
};

static const short yypgoto[] = {-32768,
-32768,   377,-32768,-32768,-32768,   468,  -125,    -8,  -182,  -274,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   -24,-32768,
   -17,-32768,-32768,-32768,   389,-32768,-32768,-32768,-32768,   504,
-32768,-32768,   382,-32768,   368,-32768,-32768,-32768,-32768,-32768,
   395,-32768,-32768,-32768,-32768,   516,-32768,-32768,   371,-32768,
     9,-32768,-32768,   213,    28,  -382,   116,-32768,    54,-32768,
   576,-32768,-32768,-32768,-32768,-32768,   606,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,   328,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,   -21
};


#define	YYLAST		924


static const short yytable[] = {   149,
   168,   170,   172,   174,   176,   178,   180,   182,   184,   186,
   188,   368,   310,   133,   633,   419,   167,   169,   171,   173,
   175,   177,   179,   181,   183,   185,   187,   198,   191,   192,
   287,   128,   134,   205,   213,   220,   290,   138,   198,   205,
   292,   247,   162,   101,   248,    21,   156,   234,   141,    41,
   232,   226,   212,    65,   141,   142,   236,   456,   199,   238,
    41,   142,   241,   227,   206,   164,   240,   242,   163,   199,
   206,   165,    41,   166,   143,   195,   144,   145,    41,   219,
   143,   230,   144,   145,   146,   228,   291,   196,   106,   107,
   146,   308,   231,   194,   312,   313,   235,    65,   227,   200,
   330,   331,   333,   227,   246,   207,   214,   221,   280,   281,
   282,   334,   283,   237,   251,   255,   105,   317,   318,   105,
   105,    65,   387,   284,   135,   257,   421,    65,   422,   136,
    65,   258,   137,   252,   256,   141,   239,    65,    65,   259,
   138,   260,   142,   322,   323,   139,   140,   326,   327,   392,
   304,   141,   261,   108,   394,   395,   397,   398,   142,    41,
   262,   143,   370,   144,   145,   373,   400,   401,   402,   403,
   263,   146,   309,   437,   438,    41,   264,   143,   285,   144,
   145,   286,   391,   439,   440,   288,   227,   146,   109,   110,
   111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
   108,   121,   122,   123,   289,    41,   124,   125,   293,   294,
   243,   295,   296,   297,   244,   245,   298,   299,   300,   311,
   149,   105,   105,   278,   279,   280,   281,   282,   301,   283,
   302,   303,   304,   435,   305,   129,   110,   111,   112,   113,
   114,   115,   116,   117,   118,   119,   120,   306,   121,   122,
   123,   307,    41,   130,   131,   316,   213,   220,   338,   339,
   340,   341,   342,   343,   404,   344,   345,   283,   372,   418,
   442,   374,   393,   396,   471,   362,   399,   405,   423,   406,
   407,   408,   390,   409,   375,   376,   377,   378,   379,   380,
   381,   382,   383,   384,   385,   386,   141,   388,   389,   410,
   411,   412,   413,   142,   414,   415,   416,   417,   441,   443,
   444,   445,   455,   446,   447,   448,   458,   449,   450,   315,
    41,   451,   143,   452,   144,   145,   321,     6,     7,   229,
     9,   453,   146,   325,   472,    13,   230,   454,    15,   473,
   321,   474,    17,    18,    19,   475,    20,   231,    21,    22,
    23,   476,   477,   478,   479,   480,   481,   482,   483,   484,
   485,   105,   337,   499,   500,    25,    26,    27,    28,    29,
    30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
    40,    41,    42,   271,   272,   273,   274,   275,   276,   501,
   420,   502,   503,   504,   505,   634,   424,   425,   426,   427,
   428,   429,   430,   431,   432,   433,   434,   506,   436,   277,
   278,   279,   280,   281,   282,   507,   283,   508,   269,   270,
   197,   271,   272,   273,   274,   275,   276,   509,   510,   511,
   525,   526,   457,   527,   459,   460,   461,   462,   463,   464,
   465,   466,   467,   468,   469,   470,   631,   277,   278,   279,
   280,   281,   282,   528,   283,   529,   530,   346,   335,   531,
   532,   533,   534,   535,   486,   487,   488,   489,   490,   491,
   492,   493,   494,   495,   496,   497,   498,   157,   269,   270,
   536,   271,   272,   273,   274,   275,   276,   537,   551,   552,
   512,   513,   514,   515,   516,   517,   518,   519,   520,   521,
   522,   523,   524,   553,   554,   555,   556,   277,   278,   279,
   280,   281,   282,   337,   283,   557,   538,   539,   540,   541,
   542,   543,   544,   545,   546,   547,   548,   549,   550,   558,
   559,   560,   561,   562,   563,   577,   578,   579,   580,   581,
   582,   583,   564,   565,   566,   567,   568,   569,   570,   571,
   572,   573,   574,   575,   576,   337,   584,   585,   586,   587,
   588,   589,   603,   604,   605,   606,   607,   608,   590,   591,
   592,   593,   594,   595,   596,   597,   598,   599,   600,   601,
   602,   609,   610,   611,   612,   613,   614,   615,   629,   630,
   319,   314,   329,   328,   616,   617,   618,   619,   620,   621,
   622,   623,   624,   625,   626,   627,   628,   108,   265,   250,
   324,   266,   267,   268,   193,   159,   371,     0,     0,     0,
     0,   632,   254,   157,     0,     0,     0,     0,     0,   157,
     0,     0,     0,   157,     0,     0,     0,     0,     0,     0,
     0,     0,   249,   110,   111,   112,   113,   114,   115,   116,
   117,   118,   119,   120,     0,   121,   122,   123,     0,    41,
   124,   125,     0,     0,     1,     2,     3,     4,     5,     6,
     7,     8,     9,    10,    11,    12,     0,    13,     0,    14,
    15,     0,     0,    16,    17,    18,    19,     0,    20,     0,
    21,    22,    23,   157,   157,   157,    24,     0,     0,     0,
     0,     0,     0,     0,   157,     0,     0,    25,    26,    27,
    28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
    38,    39,    40,    41,    42,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,   347,   348,   349,   350,
   351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
   361,     0,   364,   364,     0,   157,   157,     0,   157,     0,
     0,     6,     7,   229,     9,     0,     0,     0,     0,    13,
     0,     0,    15,     0,     0,   157,    17,    18,    19,     0,
    20,     0,    21,    22,    23,   108,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,    25,
    26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
    36,    37,    38,    39,    40,    41,    42,     0,     0,     0,
   253,   110,   111,   112,   113,   114,   115,   116,   117,   118,
   119,   120,     0,   121,   122,   123,     0,    41,   130,   131,
     0,     0,     0,     0,     0,     0,     0,     0,   141,     0,
     0,     0,     0,     0,   141,   142,     0,     0,     0,     0,
     0,   142,   157,     0,     0,     0,     0,     0,   364,     0,
   364,   157,    41,     0,   143,     0,   144,   145,    41,     0,
   143,     0,   144,   145,   146,   332,   141,     0,     0,     0,
   146,   363,     0,   142,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,   157,     0,     0,     0,   157,
    41,     0,   143,     0,   144,   145,     0,     0,     0,     0,
     0,     0,   146,   367
};

static const short yycheck[] = {     8,
    25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
    35,   286,   195,     5,     0,   398,    25,    26,    27,    28,
    29,    30,    31,    32,    33,    34,    35,     3,    37,    38,
   156,     4,     5,     3,     3,     3,   162,    27,     3,     3,
   166,    74,    74,    45,    77,    29,    12,    69,    38,    62,
    68,    65,     3,     0,    38,    45,    74,   440,    34,    77,
    62,    45,    84,    77,    34,    20,    84,    85,    15,    34,
    34,    26,    62,    74,    64,    74,    66,    67,    62,     3,
    64,    17,    66,    67,    74,    74,    65,    73,     6,     7,
    74,    65,    28,    40,    75,    76,    27,    44,    77,    75,
   226,   227,   228,    77,    76,    75,    75,    75,    68,    69,
    70,   237,    72,    74,   106,   107,     1,    75,    76,     4,
     5,    68,   305,    76,    11,    74,   401,    74,   403,    16,
    77,    74,    19,   106,   107,    38,    83,    84,    85,    74,
    27,    74,    45,    75,    76,    32,    33,    75,    76,    75,
    76,    38,    74,    10,    75,    76,    75,    76,    45,    62,
    74,    64,   288,    66,    67,   291,    75,    76,    75,    76,
    74,    74,    75,    75,    76,    62,    74,    64,    74,    66,
    67,    74,   308,    75,    76,    15,    77,    74,    45,    46,
    47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
    10,    58,    59,    60,    76,    62,    63,    64,    76,    76,
    95,    76,    76,    76,    99,   100,    76,    76,    76,     3,
   229,   106,   107,    66,    67,    68,    69,    70,    76,    72,
    76,    76,    76,   416,    76,    45,    46,    47,    48,    49,
    50,    51,    52,    53,    54,    55,    56,    76,    58,    59,
    60,    76,    62,    63,    64,     3,     3,     3,    74,    74,
    74,    74,    74,    74,    20,    74,    74,    72,    75,   395,
    21,    75,    78,    75,    75,   284,    76,    76,   404,    76,
    76,    76,   307,    76,   293,   294,   295,   296,   297,   298,
   299,   300,   301,   302,   303,   304,    38,   306,   307,    76,
    76,    76,    76,    45,    76,    76,    76,    76,    76,    76,
    76,    76,   438,    76,    76,    76,   442,    76,    76,   204,
    62,    76,    64,    76,    66,    67,   211,     8,     9,    10,
    11,    76,    74,   218,    75,    16,    17,    76,    19,    76,
   225,    76,    23,    24,    25,    76,    27,    28,    29,    30,
    31,    76,    76,    76,    76,    76,    76,    76,    76,    76,
    76,   246,   247,    76,    76,    46,    47,    48,    49,    50,
    51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
    61,    62,    63,    39,    40,    41,    42,    43,    44,    76,
   399,    76,    76,    76,    76,     0,   405,   406,   407,   408,
   409,   410,   411,   412,   413,   414,   415,    76,   417,    65,
    66,    67,    68,    69,    70,    76,    72,    76,    36,    37,
    44,    39,    40,    41,    42,    43,    44,    76,    76,    76,
    76,    76,   441,    76,   443,   444,   445,   446,   447,   448,
   449,   450,   451,   452,   453,   454,   629,    65,    66,    67,
    68,    69,    70,    76,    72,    76,    76,    75,   246,    76,
    76,    76,    76,    76,   473,   474,   475,   476,   477,   478,
   479,   480,   481,   482,   483,   484,   485,    10,    36,    37,
    76,    39,    40,    41,    42,    43,    44,    76,    76,    76,
   499,   500,   501,   502,   503,   504,   505,   506,   507,   508,
   509,   510,   511,    76,    76,    76,    76,    65,    66,    67,
    68,    69,    70,   398,    72,    76,   525,   526,   527,   528,
   529,   530,   531,   532,   533,   534,   535,   536,   537,    76,
    76,    76,    76,    76,    76,    76,    76,    76,    76,    76,
    76,    76,   551,   552,   553,   554,   555,   556,   557,   558,
   559,   560,   561,   562,   563,   440,    76,    76,    76,    76,
    76,    76,    76,    76,    76,    76,    76,    76,   577,   578,
   579,   580,   581,   582,   583,   584,   585,   586,   587,   588,
   589,    76,    76,    76,    76,    76,    76,    76,    76,    76,
   209,   203,   225,   223,   603,   604,   605,   606,   607,   608,
   609,   610,   611,   612,   613,   614,   615,    10,   141,   106,
   216,   144,   145,   146,    39,    10,   289,    -1,    -1,    -1,
    -1,   630,   107,   156,    -1,    -1,    -1,    -1,    -1,   162,
    -1,    -1,    -1,   166,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    45,    46,    47,    48,    49,    50,    51,    52,
    53,    54,    55,    56,    -1,    58,    59,    60,    -1,    62,
    63,    64,    -1,    -1,     3,     4,     5,     6,     7,     8,
     9,    10,    11,    12,    13,    14,    -1,    16,    -1,    18,
    19,    -1,    -1,    22,    23,    24,    25,    -1,    27,    -1,
    29,    30,    31,   226,   227,   228,    35,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,   237,    -1,    -1,    46,    47,    48,
    49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
    59,    60,    61,    62,    63,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,   269,   270,   271,   272,
   273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
   283,    -1,   285,   286,    -1,   288,   289,    -1,   291,    -1,
    -1,     8,     9,    10,    11,    -1,    -1,    -1,    -1,    16,
    -1,    -1,    19,    -1,    -1,   308,    23,    24,    25,    -1,
    27,    -1,    29,    30,    31,    10,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    46,
    47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
    57,    58,    59,    60,    61,    62,    63,    -1,    -1,    -1,
    45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
    55,    56,    -1,    58,    59,    60,    -1,    62,    63,    64,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    38,    -1,
    -1,    -1,    -1,    -1,    38,    45,    -1,    -1,    -1,    -1,
    -1,    45,   395,    -1,    -1,    -1,    -1,    -1,   401,    -1,
   403,   404,    62,    -1,    64,    -1,    66,    67,    62,    -1,
    64,    -1,    66,    67,    74,    75,    38,    -1,    -1,    -1,
    74,    75,    -1,    45,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,   438,    -1,    -1,    -1,   442,
    62,    -1,    64,    -1,    66,    67,    -1,    -1,    -1,    -1,
    -1,    -1,    74,    75
};
#define YYPURE 1

/* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
//#ln 3 "bison.simple"

/* Skeleton output parser for bison,
   Copyright (C) 1984, 1989, 1990 Bob Corbett and Richard Stallman

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 1, or (at your option)
   any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */


#ifdef __GNUC__
#define alloca __builtin_alloca
#else /* Not GNU C.  */
#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__)
#include <alloca.h>
#endif /* Sparc.  */
#endif /* Not GNU C.  */

/* This is the parser code that is written into each bison parser
  when the %semantic_parser declaration is not specified in the grammar.
  It was written by Richard Stallman by simplifying the hairy parser
  used when %semantic_parser is specified.  */

/* Note: there must be only one dollar sign in this file.
   It is replaced by the list of actions, each action
   as one case of the switch.  */

#define yyerrok		(yyerrstatus = 0)
#define yyclearin	(yychar = YYEMPTY)
#define YYEMPTY		-2
#define YYEOF		0
#define YYACCEPT	return(0)
#define YYABORT 	return(1)
#define YYERROR		goto yyerrlab1
/* Like YYERROR except do call yyerror.
   This remains here temporarily to ease the
   transition to the new meaning of YYERROR, for GCC.
   Once GCC version 2 has supplanted version 1, this can go.  */
#define YYFAIL		goto yyerrlab
#define YYRECOVERING()  (!!yyerrstatus)
#define YYBACKUP(token, value) \
do								\
  if (yychar == YYEMPTY && yylen == 1)				\
    { yychar = (token), yylval = (value);			\
      yychar1 = YYTRANSLATE (yychar);				\
      YYPOPSTACK;						\
      goto yybackup;						\
    }								\
  else								\
    { yyerror ("Syntax error, cannot back up!"); YYERROR; }	\
while (0)

#define YYTERROR	1
#define YYERRCODE	256

#ifndef YYIMPURE
#define YYLEX		yylex()
#endif

#ifndef YYPURE
#define YYLEX		yylex(&yylval)//, &yylloc) MY MODIF!
#endif

/* If nonreentrant, generate the variables here */

#ifndef YYIMPURE

int	yychar;			/*  the lookahead symbol		*/
YYSTYPE	yylval;			/*  the semantic value of the		*/
				/*  lookahead symbol			*/

#ifdef YYLSP_NEEDED
YYLTYPE yylloc;			/*  location data for the lookahead	*/
				/*  symbol				*/
#endif

int yynerrs;			/*  number of parse errors so far       */
#endif  /* YYIMPURE */

#if YYDEBUG != 0
int yydebug;			/*  nonzero means print parse trace	*/
/* Since this is uninitialized, it does not stop multiple parsers
   from coexisting.  */
#endif

/*  YYINITDEPTH indicates the initial size of the parser's stacks	*/

#ifndef	YYINITDEPTH
#define YYINITDEPTH 200
#endif

/*  YYMAXDEPTH is the maximum size the stacks can grow to
    (effective only if the built-in stack extension method is used).  */

#if YYMAXDEPTH == 0
#undef YYMAXDEPTH
#endif

#ifndef YYMAXDEPTH
#define YYMAXDEPTH 10000
#endif

/* This is the most reliable way to avoid incompatibilities
   in available built-in functions on various systems.  */
static void
__yy_bcopy (from, to, count)
     char *from;
     char *to;
     int count;
{
  register char *f = from;
  register char *t = to;
  register int i = count;

  while (i-- > 0)
    *t++ = *f++;
}

//#ln 131 "bison.simple"
int
yyparse()
{
  register int yystate;
  register int yyn;
  register short *yyssp;
  register YYSTYPE *yyvsp;
  int yyerrstatus;	/*  number of tokens to shift before error messages enabled */
  int yychar1;		/*  lookahead token as an internal (translated) token number */

  short	yyssa[YYINITDEPTH];	/*  the state stack			*/
  YYSTYPE yyvsa[YYINITDEPTH];	/*  the semantic value stack		*/

  short *yyss = yyssa;		/*  refer to the stacks thru separate pointers */
  YYSTYPE *yyvs = yyvsa;	/*  to allow yyoverflow to reallocate them elsewhere */

#ifdef YYLSP_NEEDED
  YYLTYPE *yyls = yylsa;
  YYLTYPE *yylsp;
  YYLTYPE yylsa[YYINITDEPTH];	/*  the location stack			*/

#define YYPOPSTACK   (yyvsp--, yysp--, yylsp--)
#else
#define YYPOPSTACK   (yyvsp--, yysp--)
#endif

  int yystacksize = YYINITDEPTH;

#ifndef YYPURE
  int yychar;
  YYSTYPE yylval;
  int yynerrs;
#ifdef YYLSP_NEEDED
  YYLTYPE yylloc;
#endif
#endif

  YYSTYPE yyval;		/*  the variable used to return		*/
				/*  semantic values from the action	*/
				/*  routines				*/

  int yylen;

#if YYDEBUG != 0
  if (yydebug)
    fprintf(stderr, "Starting parse\n");
#endif

  yystate = 0;
  yyerrstatus = 0;
  yynerrs = 0;
  yychar = YYEMPTY;		/* Cause a token to be read.  */

  /* Initialize stack pointers.
     Waste one element of value and location stack
     so that they stay on the same level as the state stack.  */

  yyssp = yyss - 1;
  yyvsp = yyvs;
#ifdef YYLSP_NEEDED
  yylsp = yyls;
#endif

/* Push a new state, which is found in  yystate  .  */
/* In all cases, when you get here, the value and location stacks
   have just been pushed. so pushing a state here evens the stacks.  */
yynewstate:

  *++yyssp = yystate;

  if (yyssp >= yyss + yystacksize - 1)
    {
      /* Give user a chance to reallocate the stack */
      /* Use copies of these so that the &'s don't force the real ones into memory. */
      YYSTYPE *yyvs1 = yyvs;
      short *yyss1 = yyss;
#ifdef YYLSP_NEEDED
      YYLTYPE *yyls1 = yyls;
#endif

      /* Get the current used size of the three stacks, in elements.  */
      int size = yyssp - yyss + 1;

#ifdef yyoverflow
      /* Each stack pointer address is followed by the size of
	 the data in use in that stack, in bytes.  */
      yyoverflow("internal error: parser stack overflow",
		 &yyss1, size * sizeof (*yyssp),
		 &yyvs1, size * sizeof (*yyvsp),
#ifdef YYLSP_NEEDED
		 &yyls1, size * sizeof (*yylsp),
#endif
		 &yystacksize);

      yyss = yyss1; yyvs = yyvs1;
#ifdef YYLSP_NEEDED
      yyls = yyls1;
#endif
#else /* no yyoverflow */
      /* Extend the stack our own way.  */
      if (yystacksize >= YYMAXDEPTH)
	{
	  yyerror("internal error: parser stack overflow");
	  return 2;
	}
      yystacksize *= 2;
      if (yystacksize > YYMAXDEPTH)
	yystacksize = YYMAXDEPTH;
      yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
      __yy_bcopy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp));
      yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
      __yy_bcopy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp));
#ifdef YYLSP_NEEDED
      yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
      __yy_bcopy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp));
#endif
#endif /* no yyoverflow */

      yyssp = yyss + size - 1;
      yyvsp = yyvs + size - 1;
#ifdef YYLSP_NEEDED
      yylsp = yyls + size - 1;
#endif

#if YYDEBUG != 0
      if (yydebug)
	fprintf(stderr, "stack size increased to %d\n", yystacksize);
#endif

      if (yyssp >= yyss + yystacksize - 1)
	YYABORT;
    }

#if YYDEBUG != 0
  if (yydebug)
    fprintf(stderr, "entering state %d\n", yystate);
#endif

 yybackup:

/* Do appropriate processing given the current state.  */
/* Read a lookahead token if we need one and don't already have one.  */
/* yyresume: */

  /* First try to decide what to do without reference to lookahead token.  */

  yyn = yypact[yystate];
  if (yyn == YYFLAG)
    goto yydefault;

  /* Not known => get a lookahead token if don't already have one.  */

  /* yychar is either YYEMPTY or YYEOF
     or a valid token in external form.  */

  if (yychar == YYEMPTY)
    {
#if YYDEBUG != 0
      if (yydebug)
	fprintf(stderr, "reading a token: ");
#endif
	yyStackSize = yyssp - (yyss - 1);
	yychar = YYLEX;
    }

  /* Convert token to internal form (in yychar1) for indexing tables with */

  if (yychar <= 0)		/* This means end of input. */
    {
      yychar1 = 0;
      yychar = YYEOF;		/* Don't call YYLEX any more */

#if YYDEBUG != 0
      if (yydebug)
	fprintf(stderr, "now at end of input.\n");
#endif
    }
  else
    {
      yychar1 = YYTRANSLATE(yychar);

#if YYDEBUG != 0
      if (yydebug)
	fprintf(stderr, "next token is %d (%s)\n", yychar, yytname[yychar1]);
#endif
    }

  yyn += yychar1;
  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
    goto yydefault;

  yyn = yytable[yyn];

  /* yyn is what to do for this token type in this state.
     Negative => reduce, -yyn is rule number.
     Positive => shift, yyn is new state.
       New state is final state => don't bother to shift,
       just return success.
     0, or most negative number => error.  */

  if (yyn < 0)
    {
      if (yyn == YYFLAG)
	goto yyerrlab;
      yyn = -yyn;
      goto yyreduce;
    }
  else if (yyn == 0)
    goto yyerrlab;

  if (yyn == YYFINAL)
    YYACCEPT;

  /* Shift the lookahead token.  */

#if YYDEBUG != 0
  if (yydebug)
    fprintf(stderr, "shifting token %d (%s), ", yychar, yytname[yychar1]);
#endif

  /* Discard the token being shifted unless it is eof.  */
  if (yychar != YYEOF)
    yychar = YYEMPTY;

  *++yyvsp = yylval;
#ifdef YYLSP_NEEDED
  *++yylsp = yylloc;
#endif

  /* count tokens shifted since error; after three, turn off error status.  */
  if (yyerrstatus) yyerrstatus--;

  yystate = yyn;
  goto yynewstate;

/* Do the default action for the current state.  */
yydefault:

  yyn = yydefact[yystate];
  if (yyn == 0)
    goto yyerrlab;

/* Do a reduction.  yyn is the number of a rule to reduce with.  */
yyreduce:
  yylen = yyr2[yyn];
  yyval = yyvsp[1-yylen]; /* implement default value of the action */

#if YYDEBUG != 0
  if (yydebug)
    {
      if (yylen == 1)
	fprintf (stderr, "reducing 1 value via rule %d (line %d), ",
		 yyn, yyrline[yyn]);
      else
	fprintf (stderr, "reducing %d values via rule %d (line %d), ",
		 yylen, yyn, yyrline[yyn]);
    }
#endif


  switch (yyn) {

case 3:
//#ln 174 "pps.y"
{ closeLogicalLine(); initLogicalLine(); ;
    break;}
case 5:
//#ln 179 "pps.y"
{ sendToBuffer(yyvsp[0]+2, *(int *)yyvsp[0]); ;
    break;}
case 7:
//#ln 184 "pps.y"
{ yyval = yyvsp[0]; ;
    break;}
case 8:
//#ln 185 "pps.y"
{ yyval = yyvsp[0]; ;
    break;}
case 9:
//#ln 186 "pps.y"
{ yyval = yyvsp[0]; ;
    break;}
case 10:
//#ln 187 "pps.y"
{ yyval = yyvsp[0]; ;
    break;}
case 11:
//#ln 188 "pps.y"
{ yyval = yyvsp[0]; ;
    break;}
case 12:
//#ln 189 "pps.y"
{ yyval = yyvsp[0]; ;
    break;}
case 13:
//#ln 190 "pps.y"
{ yyval = yyvsp[0]; ;
    break;}
case 19:
//#ln 207 "pps.y"
{ yyval = yyvsp[0]; ;
    break;}
case 20:
//#ln 208 "pps.y"
{ yyval = yyvsp[0]; ;
    break;}
case 21:
//#ln 209 "pps.y"
{ yyval = yyvsp[-1]; ;
    break;}
case 22:
//#ln 213 "pps.y"
{ yyval = yyvsp[0]; ;
    break;}
case 23:
//#ln 214 "pps.y"
{ yyval = concat(concat(yyvsp[-2], yyvsp[0]), mkFunc(13)); ;
    break;}
case 24:
//#ln 215 "pps.y"
{ yyval = concat(concat(yyvsp[-2], yyvsp[0]), mkFunc(15)); ;
    break;}
case 25:
//#ln 216 "pps.y"
{ yyval = concat(concat(yyvsp[-2], yyvsp[0]), mkFunc(10)); ;
    break;}
case 26:
//#ln 217 "pps.y"
{ yyval = concat(concat(yyvsp[-2], yyvsp[0]), mkFunc(10)); ;
    break;}
case 27:
//#ln 218 "pps.y"
{ yyval = concat(concat(yyvsp[-2], yyvsp[0]), mkFunc(11)); ;
    break;}
case 28:
//#ln 219 "pps.y"
{ yyval = concat(concat(yyvsp[-2], yyvsp[0]), mkFunc(12)); ;
    break;}
case 29:
//#ln 220 "pps.y"
{ yyval = concat(concat(yyvsp[-2], yyvsp[0]), mkFunc(14)); ;
    break;}
case 30:
//#ln 221 "pps.y"
{ yyval = concat(concat(yyvsp[-2], yyvsp[0]), mkFunc(17)); ;
    break;}
case 31:
//#ln 222 "pps.y"
{ yyval = concat(concat(yyvsp[-2], yyvsp[0]), mkFunc(18)); ;
    break;}
case 32:
//#ln 223 "pps.y"
{ yyval = concat(concat(yyvsp[-2], yyvsp[0]), mkFunc(8)); ;
    break;}
case 33:
//#ln 224 "pps.y"
{ yyval = concat(concat(yyvsp[-2], yyvsp[0]), mkFunc(9)); ;
    break;}
case 34:
//#ln 225 "pps.y"
{ yyval = concat(concat(yyvsp[-2], yyvsp[0]), mkFunc(6)); ;
    break;}
case 35:
//#ln 226 "pps.y"
{ yyval = concat(concat(yyvsp[-2], yyvsp[0]), mkFunc(5)); ;
    break;}
case 36:
//#ln 227 "pps.y"
{ yyval = concat(concat(yyvsp[-2], yyvsp[0]), mkFunc(7)); ;
    break;}
case 37:
//#ln 228 "pps.y"
{ yyval = concat(concat(yyvsp[-2], yyvsp[0]), mkFunc(4)); ;
    break;}
case 38:
//#ln 229 "pps.y"
{ yyval = concat(yyvsp[0], mkFunc(3)); ;
    break;}
case 39:
//#ln 230 "pps.y"
{ yyval = concat(yyvsp[0], mkFunc(2)); ;
    break;}
case 40:
//#ln 231 "pps.y"
{ yyval = concat(yyvsp[0], mkFunc(16)); ;
    break;}
case 41:
//#ln 235 "pps.y"
{ yyval = yyvsp[0]; ;
    break;}
case 42:
//#ln 241 "pps.y"
{ yyval = yyvsp[0]; totalArgs++;;
    break;}
case 43:
//#ln 245 "pps.y"
{ yyval = yyvsp[0]; userProcArgType[totalArgs-1] = argClass(yyvsp[0]); ;
    break;}
case 44:
//#ln 246 "pps.y"
{ yyval = concat(yyvsp[-2], concat(mkStat(0), yyvsp[0])); userProcArgType[totalArgs-1] = argClass(yyvsp[0]); ;
    break;}
case 45:
//#ln 250 "pps.y"
{ yyval = yyvsp[0]; totalParam++; ;
    break;}
case 46:
//#ln 254 "pps.y"
{ yyval = yyvsp[0]; ;
    break;}
case 47:
//#ln 255 "pps.y"
{ yyval = concat(yyvsp[-2], yyvsp[0]); ;
    break;}
case 48:
//#ln 259 "pps.y"
{ yyval = yyvsp[0]; ;
    break;}
case 49:
//#ln 260 "pps.y"
{ yyval = concat(yyvsp[-2], concat(mkStat(0),yyvsp[0])); ;
    break;}
case 50:
//#ln 264 "pps.y"
{ checkFunc(*(int *)(yyvsp[-2]+2), totalParam); yyval = mkFunc(*(int *)(yyvsp[-2]+2)); totalParam=popParamN(); ;
    break;}
case 51:
//#ln 265 "pps.y"
{ checkFunc(*(int *)(yyvsp[-3]+2), totalParam); yyval = concat(yyvsp[-1], mkFunc(*(int *)(yyvsp[-3]+2))); totalParam=popParamN(); ;
    break;}
case 52:
//#ln 266 "pps.y"
{ yyval = zero(); yyerror("opening parenthesis not found"); ;
    break;}
case 53:
//#ln 267 "pps.y"
{ yyval = yyvsp[0]; ;
    break;}
case 54:
//#ln 271 "pps.y"
{ yyval = yyvsp[0]; pushParamN(totalParam); ;
    break;}
case 55:
//#ln 275 "pps.y"
{ yyval = yyvsp[0]; pushParamN(totalParam); ;
    break;}
case 56:
//#ln 278 "pps.y"
{
									honnor(1520);
								  	initbuild();
                                  	build(yyvsp[-3]);
                                  	build(mkStat(0));
                                  	build(yyvsp[-1]);
                                  	build(mkStat(0));
                                  	yyval = retreiveBuild();
                                    checkUserProc(*(int *)(yyvsp[-3]+2), totalParam);
                                    totalParam=popParamN();
									;
    break;}
case 57:
//#ln 289 "pps.y"
{
									honnor(1520);
								  	initbuild();
                                  	build(yyvsp[-2]);
                                  	build(mkStat(0));
                                  	yyval = retreiveBuild();
                                    if (totalParam != 0)
                                    	yyerror("internal error counting number of parameters in function");
                                    checkUserProc(*(int *)(yyvsp[-2]+2), totalParam);
                                    totalParam=popParamN();
									;
    break;}
case 58:
//#ln 308 "pps.y"
{
									honnor(1520);
									initbuild();
                                  	build(mkStat(0xA8));
                                  	build(yyvsp[-3]);
                                  	build(mkStat(0));
                                  	build(yyvsp[-1]);
                                  	build(mkStat(0));
                                  	yyval = retreiveBuild();
                                    checkUserProc(*(int *)(yyvsp[-3]+2), totalArgs);
                                    checkUserProcArgTypes(yyvsp[-3], totalArgs);
									;
    break;}
case 59:
//#ln 320 "pps.y"
{
									honnor(1520);
								  	initbuild();
                                  	build(mkStat(0xA8));
                                  	build(yyvsp[-2]);
                                  	build(mkStat(0));
                                  	yyval = retreiveBuild();
                                    if (totalArgs != 0)
                                    	yyerror("internal error counting number of parameters in procedure");
                                    checkUserProc(*(int *)(yyvsp[-2]+2), totalArgs);
                                    checkUserProcArgTypes(yyvsp[-2], totalArgs);
									;
    break;}
case 60:
//#ln 335 "pps.y"
{ yyval = mkStat(*(int *)(yyvsp[0]+2)); ;
    break;}
case 61:
//#ln 336 "pps.y"
{
    																			            checkStatArg(yyvsp[-1], yyvsp[0], 0, 0, 0, 0, 0, 0, 0, 0, 0);
																							initbuild();
																							build(mkStat(*(int *)(yyvsp[-1]+2)));
																							build(yyvsp[0]);
																							build(separator(*(int *)(yyvsp[-1]+2), 1));
																							yyval = retreiveBuild();
																						  ;
    break;}
case 62:
//#ln 344 "pps.y"
{
    																			            checkStatArg(yyvsp[-3], yyvsp[-2], yyvsp[0], 0, 0, 0, 0, 0, 0, 0, 0);
																							initbuild();
																							build(mkStat(*(int *)(yyvsp[-3]+2)));
																							build(yyvsp[-2]);
																							build(separator(*(int *)(yyvsp[-3]+2), 1));
																							build(yyvsp[0]);
																							build(separator(*(int *)(yyvsp[-3]+2), 2));
																							yyval = retreiveBuild();
																						  ;
    break;}
case 63:
//#ln 354 "pps.y"
{
    																			            checkStatArg(yyvsp[-5], yyvsp[-4], yyvsp[-2], yyvsp[0], 0, 0, 0, 0, 0, 0, 0);
																							initbuild();
																							build(mkStat(*(int *)(yyvsp[-5]+2)));
																							build(yyvsp[-4]);
																							build(separator(*(int *)(yyvsp[-5]+2), 1));
																							build(yyvsp[-2]);
																							build(separator(*(int *)(yyvsp[-5]+2), 2));
																							build(yyvsp[0]);
																							build(separator(*(int *)(yyvsp[-5]+2), 3));
																							yyval = retreiveBuild();
																						  ;
    break;}
case 64:
//#ln 366 "pps.y"
{
    																			            checkStatArg(yyvsp[-7], yyvsp[-6], yyvsp[-4], yyvsp[-2], yyvsp[0], 0, 0, 0, 0, 0, 0);
																							initbuild();
																							build(mkStat(*(int *)(yyvsp[-7]+2)));
																							build(yyvsp[-6]);
																							build(separator(*(int *)(yyvsp[-7]+2), 1));
																							build(yyvsp[-4]);
																							build(separator(*(int *)(yyvsp[-7]+2), 2));
																							build(yyvsp[-2]);
																							build(separator(*(int *)(yyvsp[-7]+2), 3));
																							build(yyvsp[0]);
																							build(separator(*(int *)(yyvsp[-7]+2), 4));
																							yyval = retreiveBuild();
																						  ;
    break;}
case 65:
//#ln 380 "pps.y"
{
    																			            checkStatArg(yyvsp[-9], yyvsp[-8], yyvsp[-6], yyvsp[-4], yyvsp[-2], yyvsp[0], 0, 0, 0, 0, 0);
																							initbuild();
																							build(mkStat(*(int *)(yyvsp[-9]+2)));
																							build(yyvsp[-8]);
																							build(separator(*(int *)(yyvsp[-9]+2), 1));
																							build(yyvsp[-6]);
																							build(separator(*(int *)(yyvsp[-9]+2), 2));
																							build(yyvsp[-4]);
																							build(separator(*(int *)(yyvsp[-9]+2), 3));
																							build(yyvsp[-2]);
																							build(separator(*(int *)(yyvsp[-9]+2), 4));
																							build(yyvsp[0]);
																							build(separator(*(int *)(yyvsp[-9]+2), 5));
																							yyval = retreiveBuild();
																						  ;
    break;}
case 66:
//#ln 396 "pps.y"
{
    																			            checkStatArg(yyvsp[-11], yyvsp[-10], yyvsp[-8], yyvsp[-6], yyvsp[-4], yyvsp[-2], yyvsp[0], 0, 0, 0, 0);
																							initbuild();
																							build(mkStat(*(int *)(yyvsp[-11]+2)));
																							build(yyvsp[-10]);
																							build(separator(*(int *)(yyvsp[-11]+2), 1));
																							build(yyvsp[-8]);
																							build(separator(*(int *)(yyvsp[-11]+2), 2));
																							build(yyvsp[-6]);
																							build(separator(*(int *)(yyvsp[-11]+2), 3));
																							build(yyvsp[-4]);
																							build(separator(*(int *)(yyvsp[-11]+2), 4));
					   																		build(yyvsp[-2]);
																							build(separator(*(int *)(yyvsp[-11]+2), 5));
																							build(yyvsp[0]);
																							build(separator(*(int *)(yyvsp[-11]+2), 6));
																							yyval = retreiveBuild();
																						  ;
    break;}
case 67:
//#ln 414 "pps.y"
{
    																			            checkStatArg(yyvsp[-13], yyvsp[-12], yyvsp[-10], yyvsp[-8], yyvsp[-6], yyvsp[-4], yyvsp[-2], yyvsp[0], 0, 0, 0);
																							initbuild();
																							build(mkStat(*(int *)(yyvsp[-13]+2)));
																							build(yyvsp[-12]);
																							build(separator(*(int *)(yyvsp[-13]+2), 1));
																							build(yyvsp[-10]);
																							build(separator(*(int *)(yyvsp[-13]+2), 2));
																							build(yyvsp[-8]);
																							build(separator(*(int *)(yyvsp[-13]+2), 3));
																							build(yyvsp[-6]);
																							build(separator(*(int *)(yyvsp[-13]+2), 4));
																							build(yyvsp[-4]);
																							build(separator(*(int *)(yyvsp[-13]+2), 5));
																							build(yyvsp[-2]);
																							build(separator(*(int *)(yyvsp[-13]+2), 6));
																							build(yyvsp[0]);
																							build(separator(*(int *)(yyvsp[-13]+2), 7));
																							yyval = retreiveBuild();
																						  ;
    break;}
case 68:
//#ln 434 "pps.y"
{
    																			            checkStatArg(yyvsp[-15], yyvsp[-14], yyvsp[-12], yyvsp[-10], yyvsp[-8], yyvsp[-6], yyvsp[-4], yyvsp[-2], yyvsp[0], 0, 0);
																							initbuild();
																							build(mkStat(*(int *)(yyvsp[-15]+2)));
																							build(yyvsp[-14]);
																							build(separator(*(int *)(yyvsp[-15]+2), 1));
																							build(yyvsp[-12]);
																							build(separator(*(int *)(yyvsp[-15]+2), 2));
																							build(yyvsp[-10]);
																							build(separator(*(int *)(yyvsp[-15]+2), 3));
																							build(yyvsp[-8]);
																							build(separator(*(int *)(yyvsp[-15]+2), 4));
																							build(yyvsp[-6]);
																							build(separator(*(int *)(yyvsp[-15]+2), 5));
																							build(yyvsp[-4]);
																							build(separator(*(int *)(yyvsp[-15]+2), 6));
																							build(yyvsp[-2]);
																							build(separator(*(int *)(yyvsp[-15]+2), 7));
																							build(yyvsp[0]);
																							build(separator(*(int *)(yyvsp[-15]+2), 8));
																							yyval = retreiveBuild();
																						  ;
    break;}
case 69:
//#ln 456 "pps.y"
{
    																			            checkStatArg(yyvsp[-17], yyvsp[-16], yyvsp[-14], yyvsp[-12], yyvsp[-10], yyvsp[-8], yyvsp[-6], yyvsp[-4], yyvsp[-2], yyvsp[0], 0);
																							initbuild();
																							build(mkStat(*(int *)(yyvsp[-17]+2)));
																							build(yyvsp[-16]);
																							build(separator(*(int *)(yyvsp[-17]+2), 1));
																							build(yyvsp[-14]);
																							build(separator(*(int *)(yyvsp[-17]+2), 2));
																							build(yyvsp[-12]);
																							build(separator(*(int *)(yyvsp[-17]+2), 3));
																							build(yyvsp[-10]);
																							build(separator(*(int *)(yyvsp[-17]+2), 4));
																							build(yyvsp[-8]);
																							build(separator(*(int *)(yyvsp[-17]+2), 5));
																							build(yyvsp[-6]);
																							build(separator(*(int *)(yyvsp[-17]+2), 6));
																							build(yyvsp[-4]);
																							build(separator(*(int *)(yyvsp[-17]+2), 7));
																							build(yyvsp[-2]);
																							build(separator(*(int *)(yyvsp[-17]+2), 8));
																							build(yyvsp[0]);
																							build(separator(*(int *)(yyvsp[-17]+2), 9));
																							yyval = retreiveBuild();
																						  ;
    break;}
case 70:
//#ln 480 "pps.y"
{
    																			            checkStatArg(yyvsp[-19], yyvsp[-18], yyvsp[-16], yyvsp[-14], yyvsp[-12], yyvsp[-10], yyvsp[-8], yyvsp[-6], yyvsp[-4], yyvsp[-2], yyvsp[0]);
																							initbuild();
																							build(mkStat(*(int *)(yyvsp[-19]+2)));
																							build(yyvsp[-18]);
																							build(separator(*(int *)(yyvsp[-19]+2), 1));
																							build(yyvsp[-16]);
																							build(separator(*(int *)(yyvsp[-19]+2), 2));
																							build(yyvsp[-14]);
																							build(separator(*(int *)(yyvsp[-19]+2), 3));
																							build(yyvsp[-12]);
																							build(separator(*(int *)(yyvsp[-19]+2), 4));
																							build(yyvsp[-10]);
																							build(separator(*(int *)(yyvsp[-19]+2), 5));
																							build(yyvsp[-8]);
																							build(separator(*(int *)(yyvsp[-19]+2), 6));
																							build(yyvsp[-6]);
																							build(separator(*(int *)(yyvsp[-19]+2), 7));
																							build(yyvsp[-4]);
																							build(separator(*(int *)(yyvsp[-19]+2), 8));
																							build(yyvsp[-2]);
																							build(separator(*(int *)(yyvsp[-19]+2), 9));
																							build(yyvsp[0]);
																							build(separator(*(int *)(yyvsp[-19]+2), 10));
																							yyval = retreiveBuild();
																						  ;
    break;}
case 71:
//#ln 506 "pps.y"
{
																							initbuild();
																							build(mkStat(*(int *)(yyvsp[-1]+2)));
                                                                                            build(mkStat(totalArgs));
                                                                                            totalArgs=0;
																							build(yyvsp[0]);
																							build(separator(*(int *)(yyvsp[-1]+2), 1));
																							yyval = retreiveBuild();
																						  ;
    break;}
case 72:
//#ln 515 "pps.y"
{
																							initbuild();
																							build(mkStat(*(int *)(yyvsp[0]+2)));
                                                                                            build(mkStat(0));
																							yyval = retreiveBuild();
																						  ;
    break;}
case 73:
//#ln 521 "pps.y"
{
    																			            checkStatArg(yyvsp[-1], yyvsp[0], 0, 0, 0, 0, 0, 0, 0, 0, 0);
																							initbuild();
																							build(mkStat(*(int *)(yyvsp[-1]+2)));
                                                                                            build(mkStat(1));
                                                                                            totalArgs=0;
																							build(yyvsp[0]);
																							build(separator(*(int *)(yyvsp[-1]+2), 1));
																							yyval = retreiveBuild();
																						  ;
    break;}
case 74:
//#ln 531 "pps.y"
{
    																			            checkStatArg(yyvsp[-3], yyvsp[-2], 0, 0, 0, 0, 0, 0, 0, 0, 0);
																							initbuild();
																							build(mkStat(*(int *)(yyvsp[-3]+2)));
                                                                                            build(mkStat(totalArgs));
                                                                                            totalArgs=0;
																							build(yyvsp[-2]);
																							build(separator(*(int *)(yyvsp[-3]+2), 1));
																							build(yyvsp[0]);
																							build(separator(*(int *)(yyvsp[-3]+2), 2));
																							yyval = retreiveBuild();
																						  ;
    break;}
case 75:
//#ln 543 "pps.y"
{
    																			            checkStatArg(yyvsp[-3], yyvsp[-2], yyvsp[0], 0, 0, 0, 0, 0, 0, 0, 0);
																							initbuild();
																							build(mkStat(*(int *)(yyvsp[-3]+2)));
                                                                                            build(mkStat(2));
                                                                                            totalArgs=0;
																							build(yyvsp[-2]);
																							build(separator(*(int *)(yyvsp[-3]+2), 1));
																							build(yyvsp[0]);
																							build(separator(*(int *)(yyvsp[-3]+2), 2));
																							yyval = retreiveBuild();
																						  ;
    break;}
case 76:
//#ln 555 "pps.y"
{
    																			            checkStatArg(yyvsp[-5], yyvsp[-4], yyvsp[-2], 0, 0, 0, 0, 0, 0, 0, 0);
																							initbuild();
																							build(mkStat(*(int *)(yyvsp[-5]+2)));
                                                                                            build(mkStat(totalArgs));
                                                                                            totalArgs=0;
																							build(yyvsp[-4]);
																							build(separator(*(int *)(yyvsp[-5]+2), 1));
																							build(yyvsp[-2]);
																							build(separator(*(int *)(yyvsp[-5]+2), 2));
																							build(yyvsp[0]);
																							build(separator(*(int *)(yyvsp[-5]+2), 3));
																							yyval = retreiveBuild();
																						  ;
    break;}
case 77:
//#ln 569 "pps.y"
{
    																			            checkStatArg(yyvsp[-3], yyvsp[-2], 0, 0, 0, 0, 0, 0, 0, 0, 0);
                                                                                            checkDim(yyvsp[-2], totalArgs);
																							initbuild();
																							build(mkStat(*(int *)(yyvsp[-3]+2)));
                                                                                            build(mkStat(2));
																							build(yyvsp[-2]);
																							build(yyvsp[0]);
																							build(separator(*(int *)(yyvsp[-3]+2), 2));
																							yyval = retreiveBuild();
																						  ;
    break;}
case 78:
//#ln 580 "pps.y"
{
    																			            checkStatArg(yyvsp[-5], yyvsp[-4], 0, 0, 0, 0, 0, 0, 0, 0, 0);
                                                                                            checkDim(yyvsp[-4], totalArgs);
																							initbuild();
																							build(mkStat(*(int *)(yyvsp[-5]+2)));
                                                                                            build(mkStat(3));
																							build(yyvsp[-4]);
																							build(yyvsp[-2]);
																							build(separator(*(int *)(yyvsp[-5]+2), 2));
																							build(yyvsp[0]);
																							build(separator(*(int *)(yyvsp[-5]+2), 3));
																							yyval = retreiveBuild();
																						  ;
    break;}
case 79:
//#ln 593 "pps.y"
{
    																			            checkStatArg(yyvsp[-7], yyvsp[-6], 0, 0, 0, 0, 0, 0, 0, 0, 0);
                                                                                            checkDim(yyvsp[-6], totalArgs);
																							initbuild();
																							build(mkStat(*(int *)(yyvsp[-7]+2)));
                                                                                            build(mkStat(4));
																							build(yyvsp[-6]);
																							build(yyvsp[-4]);
																							build(separator(*(int *)(yyvsp[-7]+2), 2));
																							build(yyvsp[-2]);
																							build(separator(*(int *)(yyvsp[-7]+2), 3));
																							build(yyvsp[0]);
																							build(separator(*(int *)(yyvsp[-7]+2), 4));
																							yyval = retreiveBuild();
																						  ;
    break;}
case 80:
//#ln 608 "pps.y"
{ yyval = mkStat(1); ;
    break;}
case 81:
//#ln 609 "pps.y"
{
																							honnor(2000);
																							initbuild();
																							build(mkStat(415));
																							build(yyvsp[0]);
																							build(separator(*(int *)(yyvsp[-1]+2), 1));
																							yyval = retreiveBuild();
																						  ;
    break;}
case 82:
//#ln 617 "pps.y"
{ yyval = zero(); ;
    break;}
case 83:
//#ln 621 "pps.y"
{ yyval = zero(); ;
    break;}
case 84:
//#ln 625 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-1]+2)) ;
    break;}
case 85:
//#ln 626 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-3]+2)) ;
    break;}
case 86:
//#ln 627 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-5]+2)) ;
    break;}
case 87:
//#ln 628 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-7]+2)) ;
    break;}
case 88:
//#ln 629 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-9]+2)) ;
    break;}
case 89:
//#ln 630 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-11]+2)) ;
    break;}
case 90:
//#ln 631 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-13]+2)) ;
    break;}
case 91:
//#ln 632 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-15]+2)) ;
    break;}
case 92:
//#ln 633 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-17]+2)) ;
    break;}
case 93:
//#ln 634 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-19]+2)) ;
    break;}
case 94:
//#ln 635 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-1]+2)) ;
    break;}
case 95:
//#ln 637 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-3]+2)) ;
    break;}
case 96:
//#ln 638 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-5]+2)) ;
    break;}
case 97:
//#ln 639 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-7]+2)) ;
    break;}
case 98:
//#ln 640 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-9]+2)) ;
    break;}
case 99:
//#ln 641 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-11]+2)) ;
    break;}
case 100:
//#ln 642 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-13]+2)) ;
    break;}
case 101:
//#ln 643 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-15]+2)) ;
    break;}
case 102:
//#ln 644 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-17]+2)) ;
    break;}
case 103:
//#ln 645 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-19]+2)) ;
    break;}
case 104:
//#ln 646 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-1]+2)) ;
    break;}
case 105:
//#ln 647 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[0]+2)) ;
    break;}
case 106:
//#ln 648 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-3]+2)) ;
    break;}
case 107:
//#ln 649 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-5]+2)) ;
    break;}
case 108:
//#ln 650 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-7]+2)) ;
    break;}
case 109:
//#ln 651 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-9]+2)) ;
    break;}
case 110:
//#ln 652 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-11]+2)) ;
    break;}
case 111:
//#ln 653 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-13]+2)) ;
    break;}
case 112:
//#ln 654 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-15]+2)) ;
    break;}
case 113:
//#ln 655 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-17]+2)) ;
    break;}
case 114:
//#ln 656 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-19]+2)) ;
    break;}
case 115:
//#ln 657 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-1]+2)) ;
    break;}
case 116:
//#ln 658 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[0]+2)) ;
    break;}
case 117:
//#ln 659 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[-1]+2)) ;
    break;}
case 118:
//#ln 660 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-5]+2)) ;
    break;}
case 119:
//#ln 661 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-7]+2)) ;
    break;}
case 120:
//#ln 662 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-9]+2)) ;
    break;}
case 121:
//#ln 663 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-11]+2)) ;
    break;}
case 122:
//#ln 664 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-13]+2)) ;
    break;}
case 123:
//#ln 665 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-15]+2)) ;
    break;}
case 124:
//#ln 666 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-17]+2)) ;
    break;}
case 125:
//#ln 667 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-19]+2)) ;
    break;}
case 126:
//#ln 668 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-1]+2)) ;
    break;}
case 127:
//#ln 669 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[0]+2)) ;
    break;}
case 128:
//#ln 670 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[-1]+2)) ;
    break;}
case 129:
//#ln 671 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[-3]+2)) ;
    break;}
case 130:
//#ln 672 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-7]+2)) ;
    break;}
case 131:
//#ln 673 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-9]+2)) ;
    break;}
case 132:
//#ln 674 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-11]+2)) ;
    break;}
case 133:
//#ln 675 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-13]+2)) ;
    break;}
case 134:
//#ln 676 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-15]+2)) ;
    break;}
case 135:
//#ln 677 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-17]+2)) ;
    break;}
case 136:
//#ln 678 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-19]+2)) ;
    break;}
case 137:
//#ln 679 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-1]+2)) ;
    break;}
case 138:
//#ln 680 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[0]+2)) ;
    break;}
case 139:
//#ln 681 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[-1]+2)) ;
    break;}
case 140:
//#ln 682 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[-3]+2)) ;
    break;}
case 141:
//#ln 683 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[-5]+2)) ;
    break;}
case 142:
//#ln 684 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-9]+2)) ;
    break;}
case 143:
//#ln 685 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-11]+2)) ;
    break;}
case 144:
//#ln 686 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-13]+2)) ;
    break;}
case 145:
//#ln 687 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-15]+2)) ;
    break;}
case 146:
//#ln 688 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-17]+2)) ;
    break;}
case 147:
//#ln 689 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-19]+2)) ;
    break;}
case 148:
//#ln 690 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-1]+2)) ;
    break;}
case 149:
//#ln 691 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[0]+2)) ;
    break;}
case 150:
//#ln 692 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[-1]+2)) ;
    break;}
case 151:
//#ln 693 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[-3]+2)) ;
    break;}
case 152:
//#ln 694 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[-5]+2)) ;
    break;}
case 153:
//#ln 695 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[-7]+2)) ;
    break;}
case 154:
//#ln 696 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-11]+2)) ;
    break;}
case 155:
//#ln 697 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-13]+2)) ;
    break;}
case 156:
//#ln 698 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-15]+2)) ;
    break;}
case 157:
//#ln 699 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-17]+2)) ;
    break;}
case 158:
//#ln 700 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-19]+2)) ;
    break;}
case 159:
//#ln 701 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-1]+2)) ;
    break;}
case 160:
//#ln 702 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[0]+2)) ;
    break;}
case 161:
//#ln 703 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[-1]+2)) ;
    break;}
case 162:
//#ln 704 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[-3]+2)) ;
    break;}
case 163:
//#ln 705 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[-5]+2)) ;
    break;}
case 164:
//#ln 706 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[-7]+2)) ;
    break;}
case 165:
//#ln 707 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[-9]+2)) ;
    break;}
case 166:
//#ln 708 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-13]+2)) ;
    break;}
case 167:
//#ln 709 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-15]+2)) ;
    break;}
case 168:
//#ln 710 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-17]+2)) ;
    break;}
case 169:
//#ln 711 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-19]+2)) ;
    break;}
case 170:
//#ln 712 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-1]+2)) ;
    break;}
case 171:
//#ln 713 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[0]+2)) ;
    break;}
case 172:
//#ln 714 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[-1]+2)) ;
    break;}
case 173:
//#ln 715 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[-3]+2)) ;
    break;}
case 174:
//#ln 716 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[-5]+2)) ;
    break;}
case 175:
//#ln 717 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[-7]+2)) ;
    break;}
case 176:
//#ln 718 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[-9]+2)) ;
    break;}
case 177:
//#ln 719 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[-11]+2)) ;
    break;}
case 178:
//#ln 720 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-15]+2)) ;
    break;}
case 179:
//#ln 721 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-17]+2)) ;
    break;}
case 180:
//#ln 722 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-19]+2)) ;
    break;}
case 181:
//#ln 723 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-1]+2)) ;
    break;}
case 182:
//#ln 724 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[0]+2)) ;
    break;}
case 183:
//#ln 725 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[-1]+2)) ;
    break;}
case 184:
//#ln 726 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[-3]+2)) ;
    break;}
case 185:
//#ln 727 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[-5]+2)) ;
    break;}
case 186:
//#ln 728 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[-7]+2)) ;
    break;}
case 187:
//#ln 729 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[-9]+2)) ;
    break;}
case 188:
//#ln 730 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[-11]+2)) ;
    break;}
case 189:
//#ln 731 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[-13]+2)) ;
    break;}
case 190:
//#ln 732 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-17]+2)) ;
    break;}
case 191:
//#ln 733 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-19]+2)) ;
    break;}
case 192:
//#ln 734 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-1]+2)) ;
    break;}
case 193:
//#ln 735 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[0]+2)) ;
    break;}
case 194:
//#ln 736 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[-1]+2)) ;
    break;}
case 195:
//#ln 737 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[-3]+2)) ;
    break;}
case 196:
//#ln 738 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[-5]+2)) ;
    break;}
case 197:
//#ln 739 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[-7]+2)) ;
    break;}
case 198:
//#ln 740 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[-9]+2)) ;
    break;}
case 199:
//#ln 741 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[-11]+2)) ;
    break;}
case 200:
//#ln 742 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[-13]+2)) ;
    break;}
case 201:
//#ln 743 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[-15]+2)) ;
    break;}
case 202:
//#ln 744 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-19]+2)) ;
    break;}
case 203:
//#ln 745 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-1]+2)) ;
    break;}
case 204:
//#ln 746 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[0]+2)) ;
    break;}
case 205:
//#ln 747 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[-1]+2)) ;
    break;}
case 206:
//#ln 748 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[-3]+2)) ;
    break;}
case 207:
//#ln 749 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[-5]+2)) ;
    break;}
case 208:
//#ln 750 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[-7]+2)) ;
    break;}
case 209:
//#ln 751 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[-9]+2)) ;
    break;}
case 210:
//#ln 752 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[-11]+2)) ;
    break;}
case 211:
//#ln 753 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[-13]+2)) ;
    break;}
case 212:
//#ln 754 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[-15]+2)) ;
    break;}
case 213:
//#ln 755 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[-17]+2)) ;
    break;}
case 214:
//#ln 756 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-1]+2)) ;
    break;}
case 215:
//#ln 757 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[0]+2)) ;
    break;}
case 216:
//#ln 758 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[0]+2)) ;
    break;}
case 217:
//#ln 759 "pps.y"
{ yyval = zero(); notEnoughArgsProc(*(int*)(yyvsp[-1]+2)) ;
    break;}
case 218:
//#ln 760 "pps.y"
{ yyval = zero();
    																						yyerror("wrong type of argument or no enough arguments passed to 'Redim'");
																						  ;
    break;}
case 219:
//#ln 763 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-9]+2)) ;
    break;}
case 220:
//#ln 764 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-11]+2)) ;
    break;}
case 221:
//#ln 765 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-13]+2)) ;
    break;}
case 222:
//#ln 766 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-15]+2)) ;
    break;}
case 223:
//#ln 767 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-17]+2)) ;
    break;}
case 224:
//#ln 768 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-19]+2)) ;
    break;}
case 225:
//#ln 769 "pps.y"
{ yyval = zero(); tooManyArgsProc(*(int*)(yyvsp[-3]+2)) ;
    break;}
case 226:
//#ln 773 "pps.y"
{ yyval = yyvsp[0]; ;
    break;}
case 227:
//#ln 774 "pps.y"
{ yyval = yyvsp[0]; ;
    break;}
case 228:
//#ln 775 "pps.y"
{
							            checkStatArg(mkStat(8), yyvsp[-2], yyvsp[0], 0, 0, 0, 0, 0, 0, 0, 0);
										yyval = concat( mkStat(8), concat( yyvsp[-2], concat(yyvsp[0], separator(8,2)) ) );
										;
    break;}
case 229:
//#ln 779 "pps.y"
{
							            checkStatArg(mkStat(8), yyvsp[-2], yyvsp[0], 0, 0, 0, 0, 0, 0, 0, 0);
										yyval = concat( mkStat(8), concat( yyvsp[-2], concat(yyvsp[0], separator(8,2)) ) );
										;
    break;}
case 230:
//#ln 783 "pps.y"
{ yyval = yyvsp[0]; ;
    break;}
case 231:
//#ln 784 "pps.y"
{ yyval = yyvsp[0]; ;
    break;}
case 232:
//#ln 785 "pps.y"
{ yyval = yyvsp[0]; ;
    break;}
case 233:
//#ln 786 "pps.y"
{ strcpy(yytext, yyvsp[0]); yyval = concat(mkStat(7), mkStat(65535));/* forceLabel = 0;*/ ;
    break;}
case 234:
//#ln 787 "pps.y"
{ strcpy(yytext, yyvsp[0]); yyval = concat(mkStat(41), mkStat(65535));/* forceLabel = 0;*/ ;
    break;}
case 235:
//#ln 789 "pps.y"
{ yyval = yyvsp[0]; ;
    break;}
case 236:
//#ln 790 "pps.y"
{ yyval = yyvsp[0]; ;
    break;}
case 237:
//#ln 791 "pps.y"
{ yyval = yyvsp[0]; ;
    break;}
case 238:
//#ln 792 "pps.y"
{ yyval = yyvsp[0]; ;
    break;}
case 240:
//#ln 804 "pps.y"
{
																		honnor(1520);
                                                                        registerProc(yyvsp[-2], totalArgs, yyvsp[-1], PROC_IDENTIFIER, 0);
																		totalArgs = 0;
																		;
    break;}
case 241:
//#ln 809 "pps.y"
{
																		honnor(1520);
                                                                        registerProc(yyvsp[-1], totalArgs, zero(), PROC_IDENTIFIER, 0);
																		totalArgs = 0;
																		;
    break;}
case 242:
//#ln 817 "pps.y"
{ yyval = yyvsp[-1]; mustBeType=1; ;
    break;}
case 243:
//#ln 818 "pps.y"
{ yyval = yyvsp[-1]; mustBeType=1; yyerror("procedure already defined"); ;
    break;}
case 244:
//#ln 819 "pps.y"
{ yyval = yyvsp[-1]; mustBeType=1; internalProc(yyvsp[-1]) ;
    break;}
case 245:
//#ln 820 "pps.y"
{ yyval = yyvsp[-1]; mustBeType=1; internalFunc(yyvsp[-1]) ;
    break;}
case 246:
//#ln 824 "pps.y"
{ totalArgs++; yyval = yyvsp[0]; mustBeType=0; ;
    break;}
case 247:
//#ln 825 "pps.y"
{ totalArgs++; yyval = concat(yyvsp[-1],yyvsp[0]); mustBeType=0; ;
    break;}
case 248:
//#ln 829 "pps.y"
{ yyval = yyvsp[-1]; strcpy(yytext, yyvsp[0]); declaration = 0;;
    break;}
case 249:
//#ln 833 "pps.y"
{ mustBeType=1; yyval = yyvsp[-1]; ;
    break;}
case 250:
//#ln 837 "pps.y"
{ yyval = yyvsp[0]; mustBeType = 0; ;
    break;}
case 251:
//#ln 838 "pps.y"
{ yyval = concat(mkStat(255), yyvsp[0]); mustBeType = 0; ;
    break;}
case 252:
//#ln 844 "pps.y"
{
                                                                          c = mkStat(1);
																		  sendToBuffer(c+2, *(int *)c);
                                                                          checkProc(yyvsp[-2], totalArgs, yyvsp[-1], PROC_IDENTIFIER, 0);
                                                                          enterProc(yyvsp[-2], PROC_IDENTIFIER);
                                                                          ;
    break;}
case 253:
//#ln 850 "pps.y"
{
                                                                          c = mkStat(1);
																		  sendToBuffer(c+2, *(int *)c);
                                                                          checkProc(yyvsp[-1], totalArgs, zero(), PROC_IDENTIFIER,0);
                                                                          enterProc(yyvsp[-1], PROC_IDENTIFIER);
                                                                          ;
    break;}
case 254:
//#ln 859 "pps.y"
{ yyval = yyvsp[-1]; mustBeType = 1; identHdr = ++procCount;;
    break;}
case 255:
//#ln 860 "pps.y"
{ yyval = yyvsp[-1]; mustBeType = 1; identHdr = ++procCount; yyerror("undeclared procedure"); ;
    break;}
case 256:
//#ln 861 "pps.y"
{ yyval = yyvsp[-1]; mustBeType=1; internalProc(yyvsp[0]) ;
    break;}
case 257:
//#ln 862 "pps.y"
{ yyval = yyvsp[-1]; mustBeType=1; internalFunc(yyvsp[0]) ;
    break;}
case 258:
//#ln 866 "pps.y"
{ yyval = semText(yytext); ;
    break;}
case 259:
//#ln 867 "pps.y"
{ sprintf(msg,"'%s' already defined as a function", yytext); yyerror(msg); ;
    break;}
case 260:
//#ln 871 "pps.y"
{ totalArgs++; yyval = yyvsp[0]; ;
    break;}
case 261:
//#ln 872 "pps.y"
{ totalArgs++; yyval = concat(yyvsp[-1], yyvsp[0]); ;
    break;}
case 262:
//#ln 876 "pps.y"
{ mustBeType=1; yyval = yyvsp[-1]; ;
    break;}
case 263:
//#ln 880 "pps.y"
{
													yyval = yyvsp[-1];
                                                    if (*(int *)(yyvsp[-1]+2) == 255)
                                                    	registerIdentList(*(int *)(yyvsp[-1]+4));
                                                    else
														registerIdentList(*(int *)(yyvsp[-1]+2));
													declaration = 0;
													;
    break;}
case 264:
//#ln 891 "pps.y"
{ yyval = yyvsp[0]; mustBeType = 0; ;
    break;}
case 265:
//#ln 892 "pps.y"
{ yyval = concat(mkStat(255), yyvsp[0]); mustBeType = 0; ;
    break;}
case 266:
//#ln 896 "pps.y"
{
    							strcpy(yytext, yyvsp[0]);
								nDim = 0;
								dim1=0;
								dim2=0;
							    dim3=0;
							   	registerIdent(NULL);
							   ;
    break;}
case 267:
//#ln 914 "pps.y"
{
                                                            registerProc(fn1, totalArgs, fn2, FUNC_IDENTIFIER,*(int *)(yyvsp[0]+2));
															totalArgs = 0;
                                                            mustBeType = 0;
															;
    break;}
case 268:
//#ln 919 "pps.y"
{ yyerror("function return type not specified"); ;
    break;}
case 269:
//#ln 923 "pps.y"
{ mustBeType = 1; fn1 = yyvsp[-2]; fn2 = yyvsp[-1]; ;
    break;}
case 270:
//#ln 924 "pps.y"
{ mustBeType = 1; fn1 = yyvsp[-1]; fn2 = zero(); ;
    break;}
case 271:
//#ln 928 "pps.y"
{ yyval = yyvsp[-1]; mustBeType=1; ;
    break;}
case 272:
//#ln 929 "pps.y"
{ yyval = yyvsp[-1]; mustBeType=1; yyerror("function already defined"); ;
    break;}
case 273:
//#ln 930 "pps.y"
{ yyval = yyvsp[-1]; mustBeType=1; internalProc(yyvsp[-1]) ;
    break;}
case 274:
//#ln 931 "pps.y"
{ yyval = yyvsp[-1]; mustBeType=1; internalFunc(yyvsp[-1]) ;
    break;}
case 275:
//#ln 935 "pps.y"
{ totalArgs++; yyval = yyvsp[0]; ;
    break;}
case 276:
//#ln 936 "pps.y"
{ totalArgs++; yyval = concat(yyvsp[-1],yyvsp[0]); ;
    break;}
case 277:
//#ln 940 "pps.y"
{ mustBeType = 1; yyval = yyvsp[-1]; ;
    break;}
case 278:
//#ln 944 "pps.y"
{ strcpy(yytext, yyvsp[0]); yyval = yyvsp[-1]; declaration = 0; ;
    break;}
case 279:
//#ln 948 "pps.y"
{ mustBeType = 0; yyval = yyvsp[0]; ;
    break;}
case 280:
//#ln 954 "pps.y"
{
                                                        c = mkStat(1);
														sendToBuffer(c+2, *(int *)c);
                                        				checkProc(fn1, totalArgs, fn2, FUNC_IDENTIFIER, *(int *)(yyvsp[0]+2));
                                        				enterProc(fn1, FUNC_IDENTIFIER);
                                                        mustBeType=0;
                                        				;
    break;}
case 281:
//#ln 961 "pps.y"
{ yyerror("function return type not specified"); ;
    break;}
case 282:
//#ln 965 "pps.y"
{ mustBeType = 1; fn1 = yyvsp[-2]; fn2 = yyvsp[-1]; ;
    break;}
case 283:
//#ln 966 "pps.y"
{ mustBeType = 1; fn1 = yyvsp[-1]; fn2 = zero(); ;
    break;}
case 284:
//#ln 970 "pps.y"
{ mustBeType = 1; yyval = yyvsp[-1]; identHdr = ++procCount;;
    break;}
case 285:
//#ln 971 "pps.y"
{ mustBeType = 1; yyval = yyvsp[-1]; identHdr = ++procCount; yyerror("undeclared function"); ;
    break;}
case 286:
//#ln 972 "pps.y"
{ yyval = yyvsp[-1]; mustBeType=1; internalProc(yyvsp[0]) ;
    break;}
case 287:
//#ln 973 "pps.y"
{ yyval = yyvsp[-1]; mustBeType=1; internalFunc(yyvsp[0]) ;
    break;}
case 288:
//#ln 977 "pps.y"
{ yyval = semText(yytext); ;
    break;}
case 289:
//#ln 978 "pps.y"
{ sprintf(msg,"'%s' already defined as a procedure", yytext); yyerror(msg); ;
    break;}
case 290:
//#ln 982 "pps.y"
{ totalArgs++; yyval = yyvsp[0]; ;
    break;}
case 291:
//#ln 983 "pps.y"
{ totalArgs++; yyval = concat(yyvsp[-1], yyvsp[0]); ;
    break;}
case 292:
//#ln 987 "pps.y"
{ mustBeType = 1; yyval = yyvsp[-1]; ;
    break;}
case 293:
//#ln 991 "pps.y"
{ yyval = yyvsp[-1]; registerIdentList(*(int *)(yyvsp[-1]+2)); declaration = 0; ;
    break;}
case 294:
//#ln 995 "pps.y"
{ mustBeType = 0; yyval = yyvsp[0]; ;
    break;}
case 310:
//#ln 1022 "pps.y"
{ registerIdentList(*(int *)(yyvsp[-1]+2)); declaration=0;;
    break;}
case 313:
//#ln 1031 "pps.y"
{
																	nDim = 0;
																	dim1=0;
																	dim2=0;
																	dim3=0;
                                                                    strcpy(yytext, yyvsp[0]);
																	registerIdent(NULL);
																	;
    break;}
case 314:
//#ln 1039 "pps.y"
{
                                                                    nDim = 1;
    																dim1 = *(int *)yyvsp[-1];
                                                                    dim2=0;
                                                                    dim3=0;
                                                                    strcpy(yytext, yyvsp[-3]);
                                                                    registerIdent(NULL);
    																;
    break;}
case 315:
//#ln 1047 "pps.y"
{
                                                                    nDim = 2;
    																dim1 = *(int *)yyvsp[-3];
                                                                    dim2 = *(int *)yyvsp[-1];
                                                                    dim3=0;
                                                                    strcpy(yytext, yyvsp[-5]);
                                                                    registerIdent(NULL);
    																;
    break;}
case 316:
//#ln 1055 "pps.y"
{
    																nDim = 3;
    																dim1 = *(int *)yyvsp[-5];
                                                                    dim2 = *(int *)yyvsp[-3];
                                                                    dim3 = *(int *)yyvsp[-1];
                                                                    strcpy(yytext, yyvsp[-7]);
                                                                    registerIdent(NULL);
    																;
    break;}
case 317:
//#ln 1063 "pps.y"
{ yyerror("string subscript not allowed in declaration"); ;
    break;}
case 318:
//#ln 1064 "pps.y"
{ yyval = zero(); internalFunc(yyvsp[0]); ;
    break;}
case 319:
//#ln 1068 "pps.y"
{ yyval = yyvsp[0]; ;
    break;}
case 320:
//#ln 1073 "pps.y"
{
				  		yyval = semValue(yyvsp[0]);
                  		if (errorOccured)
                            break;
				  		invalidVar(yytext);
				 		;
    break;}
case 321:
//#ln 1082 "pps.y"
{ yyval = semText(yytext); ;
    break;}
case 322:
//#ln 1086 "pps.y"
{ yyval = concat(yyvsp[0], mkStat(0)); ;
    break;}
case 323:
//#ln 1087 "pps.y"
{ yyval = concat(yyvsp[-2], mkStat(0)); ;
    break;}
case 324:
//#ln 1091 "pps.y"
{ yyval = yyvsp[0] ;
    break;}
case 325:
//#ln 1092 "pps.y"
{
                                            initbuild();
                                            build(yyvsp[-3]);
                                            build(yyvsp[-1]);
                                            strcpy(yytext, "1");
                                            build(lookup(INTCONST));
                                            build(mkStat(0));
                                            build(mkFunc(23));
											yyval = retreiveBuild();
											;
    break;}
case 326:
//#ln 1105 "pps.y"
{ checkDim(yyvsp[0], 0); yyval = yyvsp[0]; ;
    break;}
case 327:
//#ln 1106 "pps.y"
{
																			checkDim(yyvsp[-3], 1);
                                                                            if (errorOccured)
                                                                            	{
                                                                                yyval = zero();
																				break;
                                                                                }
																			initbuild();
                                                                            build(yyvsp[-3]);
																			build(mkStat(1));
																			build(yyvsp[-1]);
																			build(mkStat(0));
                                                                            yyval = retreiveBuild();
                                                                            ;
    break;}
case 328:
//#ln 1120 "pps.y"
{
    																		checkDim(yyvsp[-5], 2);
                                                                            if (errorOccured)
													                        	{
													                            yyval = zero();
													                            break;
													                            }
																			initbuild();
                                                                            build(yyvsp[-5]);
																			build(mkStat(2));
																			build(yyvsp[-3]);
                                                                            build(mkStat(0));
																			build(yyvsp[-1]);
																			build(mkStat(0));
                                                                            yyval = retreiveBuild();
                                                                            ;
    break;}
case 329:
//#ln 1136 "pps.y"
{
    																		checkDim(yyvsp[-7], 3);
                                                                            if (errorOccured)
													                        	{
													                            yyval = zero();
													                            break;
													                            }
																			initbuild();
                                                                            build(yyvsp[-7]);
																			build(mkStat(3));
																			build(yyvsp[-5]);
                                                                            build(mkStat(0));
																			build(yyvsp[-3]);
                                                                            build(mkStat(0));
																			build(yyvsp[-1]);
																			build(mkStat(0));
                                                                            yyval = retreiveBuild();
                                                                            ;
    break;}
case 330:
//#ln 1157 "pps.y"
{
    					strcpy(yytext, yyvsp[0]);
                        if (predefValue[0] == 0)
							checkIdentifier();
                        if (errorOccured)
                        	{
                            yyval = zero();
                            break;
                            }
						yyval = toVar(yyvsp[0]);
						;
    break;}
case 331:
//#ln 1176 "pps.y"
{ if3 = yyvsp[-1]; lexn = 0; ;
    break;}
case 332:
//#ln 1180 "pps.y"
{ if3 = yyvsp[-1]; lexn = 0; ;
    break;}
case 335:
//#ln 1189 "pps.y"
{ yyval = yyvsp[0]; ;
    break;}
case 336:
//#ln 1190 "pps.y"
{ yyval = concat(yyvsp[-1], yyvsp[0]); ;
    break;}
case 337:
//#ln 1194 "pps.y"
{ yyval = yyvsp[0]; ;
    break;}
case 338:
//#ln 1195 "pps.y"
{ yyval = concat(yyvsp[-1], yyvsp[0]); ;
    break;}
case 339:
//#ln 1199 "pps.y"
{ lexn = 0; linePart++; ;
    break;}
case 340:
//#ln 1203 "pps.y"
{
    									initbuild();
                                        build(mkStat(0xB));
                                        build(if3);
                                        build(separator(0xB, 1));
                                        strcpy(msg, yytext);
                                        strcpy(yytext, newTempLabel());
                                        build(mkStat(65535));
                                        pushLabelStack(yytext);
                                        strcpy(yytext, msg);
                                        openLoop(LOOP_IF);
                                        yyval = retreiveBuild();
                                        lexn=0;
                                        linePart++;
										;
    break;}
case 341:
//#ln 1219 "pps.y"
{
                                        initbuild();
                                        checkLoop("ElseIf", LOOP_IF);
                                        if (errorOccured)
				                        	{
				                            yyval = zero();
                				            break;
				                            }
                                        endifLoop(); // set current loop to LOOP_ENDIF+n
                                        build(mkStat(7));
                                        strcpy(msg, yytext);
                                        strcpy(yytext, newTempLabel());
                                        build(mkStat(65535));
                                        pushLabelStack(yytext);
                                        switchLastLabels();
                                        strcpy(yytext, popLabelStack());
                                        build(mkStat(65534));
                                        build(mkStat(0xB));
                                        build(if3);
                                        build(separator(0xB, 1));
                                        strcpy(yytext, newTempLabel());
                                        pushLabelStack(yytext);
//                                        strcpy(yytext, labelStack[labelStackPos-1]);
                                        build(mkStat(65535));
                                        strcpy(yytext,msg);
                                        yyval = retreiveBuild();
                                        linePart++;
										;
    break;}
case 342:
//#ln 1250 "pps.y"
{
										initbuild();
			                            build(mkStat(11));
            			                build(if3);
                        			    build(separator(11, 1));
                                        strcpy(msg, yytext);
			                            strcpy(yytext, newTempLabel());
            			                build(mkStat(65535));
			                            fakeNextLabel(yytext);
                                        strcpy(yytext, msg);
										build(yyvsp[0]);
                                        yyval = retreiveBuild();
                                        ;
    break;}
case 345:
//#ln 1271 "pps.y"
{
    									initbuild();
                                        checkLoop("Else", LOOP_IF);
                                        if (errorOccured)
				                        	{
				                            yyval = zero();
				                            break;
				                            }
                                        build(mkStat(7));
                                        strcpy(msg, yytext);
                                        strcpy(yytext, newTempLabel());
                                        build(mkStat(65535));
                                        pushLabelStack(yytext);
                                        switchLastLabels();
                                        strcpy(yytext, popLabelStack());
                                        build(mkStat(65534));
                                        strcpy(yytext,msg);
                                        yyval = retreiveBuild();
                                        linePart++;
										;
    break;}
case 346:
//#ln 1294 "pps.y"
{ yyval = yyvsp[0]; ;
    break;}
case 347:
//#ln 1296 "pps.y"
{
    									initbuild();
										if (loop[loopPos-1] >= LOOP_ELSEIF && loopPos>0)
                                        	{
                                            aa = loop[loopPos-1]-3;
                                        	closeLoop("EndIf", LOOP_ELSEIF);
	                                        if (errorOccured)
					                        	{
					                            yyval = zero();
					                            break;
					                            }
                                            for (b=0;b<aa;b++)
                                            	{
		                                        strcpy(msg, yytext);
					                            strcpy(yytext, popLabelStack());
    		                                    build(mkStat(65534));
		                                        strcpy(yytext,msg);
                                            	}
                                        	}
                                        else
	    									{
											closeLoop("EndIf", LOOP_IF);
	                                        if (errorOccured)
					                        	{
					                            yyval = zero();
					                            break;
					                            }
	                                        strcpy(msg, yytext);
				                            strcpy(yytext, popLabelStack());
    	                                    build(mkStat(65534));
	                                        strcpy(yytext, msg);
                                            }
                                        yyval = retreiveBuild();
                                        ;
    break;}
case 350:
//#ln 1343 "pps.y"
{
    											initbuild();
                                                build(mkStat(8));
                                                build(yyvsp[-4]);
                                                build(separator(8,1));
                                                build(yyvsp[-2]);
                                                build(separator(8,2));
                                                build(mkStat(7));
		                                        strcpy(msg, yytext);
                                                strcpy(yytext, newTempLabel());
                                                build(mkStat(65535));
                                                pushLabelStack(yytext);
                                                strcpy(yytext, newTempLabel());
                                                build(mkStat(65534));
                                                pushLabelStack(yytext);
                                                switchLastLabels();
                                                build(mkStat(8));
                                                build(yyvsp[-4]);
                                                build(separator(8,1));
                                                build(yyvsp[-4]);
                                                strcpy(yytext, "1");
                                                build(lookup(INTCONST));
                                                build(mkStat(0));
                                                build(mkFunc(8));
                                                build(separator(8,2));
                                                strcpy(yytext, popLabelStack());
                                                build(mkStat(65534));
                                                build(mkStat(0xB));
                                                build(yyvsp[-4]);
                                                build(yyvsp[0]);
                                                build(mkFunc(13)); /* <= */
                                                build(separator(0xB,1));
                                                strcpy(yytext, newTempLabel());
                                                build(mkStat(65535));
                                                pushLabelStack(yytext);
                                                switchLastLabels();
		                                        strcpy(yytext, msg);
    											openLoop(LOOP_FOR);
                                                yyval = retreiveBuild();
    											;
    break;}
case 351:
//#ln 1383 "pps.y"
{
    											initbuild();
                                                build(mkStat(8));
                                                build(yyvsp[-6]);
                                                build(separator(8,1));
                                                build(yyvsp[-4]);
                                                build(separator(8,2));
                                                build(mkStat(7));
		                                        strcpy(msg, yytext);
                                                strcpy(yytext, newTempLabel());
                                                build(mkStat(65535));
                                                pushLabelStack(yytext);
                                                strcpy(yytext, newTempLabel());
                                                build(mkStat(65534));
                                                pushLabelStack(yytext);
                                                switchLastLabels();
                                                build(mkStat(8));
                                                build(yyvsp[-6]);
                                                build(separator(8,1));
                                                build(yyvsp[-6]);
                                                build(yyvsp[0]);
                                                build(mkFunc(8));
                                                build(separator(8,2));
                                                strcpy(yytext, popLabelStack());
                                                build(mkStat(65534));
                                                build(mkStat(0xB));
                                                build(yyvsp[0]);
                                                strcpy(yytext, "0");
                                                build(lookup(INTCONST));
                                                build(mkStat(0));
                                                build(mkFunc(12));
                                                build(yyvsp[-6]);
                                                build(yyvsp[-2]);
                                                build(mkFunc(15));
                                                build(mkFunc(17));
												build(yyvsp[0]);
                                                strcpy(yytext, "0");
                                                build(lookup(INTCONST));
                                                build(mkStat(0));
                                                build(mkFunc(15));
                                                build(yyvsp[-6]);
                                                build(yyvsp[-2]);
                                                build(mkFunc(13));
                                                build(mkFunc(17));
                                                build(mkFunc(18));
                                                build(separator(0xB,1));
                                                strcpy(yytext, newTempLabel());
                                                build(mkStat(65535));
                                                pushLabelStack(yytext);
                                                switchLastLabels();
		                                        strcpy(yytext, msg);
    											openLoop(LOOP_FOR);
                                                yyval = retreiveBuild();
    											;
    break;}
case 352:
//#ln 1440 "pps.y"
{
    											closeLoop("Next", LOOP_FOR);
                                                if (errorOccured)
						                        	{
						                            yyval = zero();
                        						    break;
						                            }
    											initbuild();
                                                build(mkStat(7));
		                                        strcpy(msg, yytext);
                                                strcpy(yytext, popLabelStack());
                                                build(mkStat(65535));
                                                strcpy(yytext, popLabelStack());
                                                build(mkStat(65534));
		                                        strcpy(yytext, msg);
                                                yyval = retreiveBuild();
    											;
    break;}
case 354:
//#ln 1461 "pps.y"
{ yywarning("old basic syntax, identifier ignored"); ;
    break;}
case 357:
//#ln 1475 "pps.y"
{ wh3 = yyvsp[-1]; lexn=0; ;
    break;}
case 358:
//#ln 1479 "pps.y"
{
    									initbuild();
                                        strcpy(msg, yytext);
                                        strcpy(yytext, newTempLabel());
                                        pushLabelStack(yytext);
                                        build(mkStat(65534));
                                        build(mkStat(0xB));
                                        build(wh3);
                                        build(separator(0xB, 1));
                                        strcpy(yytext, newTempLabel());
                                        build(mkStat(65535));
                                        pushLabelStack(yytext);
                                        switchLastLabels();
                                        strcpy(yytext, msg);
                                        openLoop(LOOP_WHILE);
                                        yyval = retreiveBuild();
                                        lexn = 0;
                                        linePart++;
    							   		;
    break;}
case 359:
//#ln 1502 "pps.y"
{ yyval = yyvsp[0]; ;
    break;}
case 360:
//#ln 1503 "pps.y"
{ yyval = concat(yyvsp[-1], yyvsp[0]); ;
    break;}
case 363:
//#ln 1512 "pps.y"
{
    												closeLoop("EndWhile", LOOP_WHILE);
                                                    if (errorOccured)
							                        	{
							                            yyval = zero();
							                            break;
							                            }
    												initbuild();
                                                    build(mkStat(7));
			                                        strcpy(msg, yytext);
			                                        strcpy(yytext, popLabelStack());
                                                    build(mkStat(65535));
			                                        strcpy(yytext, popLabelStack());
                                                    build(mkStat(65534));
			                                        strcpy(yytext, msg);
                                                    yyval = retreiveBuild();
                                                    ;
    break;}
case 364:
//#ln 1532 "pps.y"
{
    									initbuild();
                                        strcpy(msg, yytext);
                                        strcpy(yytext, newTempLabel());
                                        pushLabelStack(yytext);
                                        build(mkStat(65534));
                                        build(mkStat(0xB));
                                        build(wh3);
                                        build(separator(0xB, 1));
                                        strcpy(yytext, newTempLabel());
                                        build(mkStat(65535));
                                        pushLabelStack(yytext);
                                        switchLastLabels();
										build(yyvsp[0]);
                                        build(mkStat(7));
			                            strcpy(yytext, popLabelStack());
                                        build(mkStat(65535));
			                            strcpy(yytext, popLabelStack());
                                        build(mkStat(65534));
                                        strcpy(yytext, msg);
                                        yyval = retreiveBuild();
    									;
    break;}
case 365:
//#ln 1562 "pps.y"
{
    								 nCase=0;
                                     pushSelect(yyvsp[0]);
                                     openLoop(LOOP_CASE);
                                     strcpy(msg, yytext);
                                     strcpy(yytext, newTempLabel());
                                     pushLabelStack(yytext);
                                     strcpy(yytext, newTempLabel());
                                     pushLabelStack(yytext);
                                     switchLastLabels();
                                     strcpy(yytext, msg);
                                     yyval = zero();
    								 ;
    break;}
case 366:
//#ln 1578 "pps.y"
{
    								initbuild();
                                    strcpy(msg, yytext);
                                    checkLoop("Case", LOOP_CASE);
                                    if (errorOccured)
			                          	{
              				            yyval = zero();
                            			break;
			                            }
    								nCase++;
                                    if (nCase > 1)
                                    	{
                                        switchLastLabels();
                                        build(mkStat(7));
                                        strcpy(yytext, popLabelStack());
                                        build(mkStat(65535)); /* Goto */
	                                    pushLabelStack(yytext);
                                        switchLastLabels();
                                        }
                                    strcpy(yytext, popLabelStack());
                                    build(mkStat(65534)); /* Label */
                                    build(mkStat(0xB));
                                    build(yyvsp[0]);
                                    build(separator(0xB, 1));
                                    strcpy(yytext, newTempLabel());
                                    build(mkStat(65535)); /* Goto */
                                    pushLabelStack(yytext);
                                    strcpy(yytext, msg);
                                    yyval = retreiveBuild();
    								;
    break;}
case 367:
//#ln 1609 "pps.y"
{
                                    initbuild();
                                    strcpy(msg, yytext);
                                    checkLoop("Default", LOOP_CASE);
                                    if (errorOccured)
				                       	{
                			            yyval = zero();
            	                		break;
			                            }
    								nCase++;
                                    if (nCase > 1)
                                    	{
                                        switchLastLabels();
                                        build(mkStat(7));
                                        strcpy(yytext, popLabelStack());
                                        build(mkStat(65535)); /* Goto */
	                                    pushLabelStack(yytext);
                                        switchLastLabels();
                                        }
                                    strcpy(yytext, popLabelStack());
                                    build(mkStat(65534)); /* Label */
                                    strcpy(yytext, newTempLabel());
                                    pushLabelStack(yytext);
                                    strcpy(yytext, msg);
                                    yyval = retreiveBuild();
                                    ;
    break;}
case 368:
//#ln 1635 "pps.y"
{
    								initbuild();
                                    strcpy(msg, yytext);
                                    closeLoop("EndSelect", LOOP_CASE);
                                    if (errorOccured)
			                        	{
			                            yyval = zero();
            			                break;
                        			    }
                                    strcpy(yytext, popLabelStack());
                                    build(mkStat(65534)); /* Label */
                                    strcpy(yytext, popLabelStack());
                                    build(mkStat(65534)); /* Label */
                                    popSelect();
                                    strcpy(yytext, msg);
                                    yyval = retreiveBuild();
    								;
    break;}
case 371:
//#ln 1660 "pps.y"
{ yyval = yyvsp[0]; ;
    break;}
case 372:
//#ln 1661 "pps.y"
{ yyval = concat(yyvsp[-2], concat(yyvsp[0], mkFunc(18))); ;
    break;}
case 373:
//#ln 1665 "pps.y"
{
    								initbuild();
                                    c = popSelect();
                                    if (errorOccured)
			                        	{
            			                yyval = zero();
                        			    break;
			                            }
                                    pushSelect(c);
                                    build(c);
                                    build(yyvsp[0]);
                                    build(mkFunc(10));
                                    yyval = retreiveBuild();
    								;
    break;}
case 374:
//#ln 1679 "pps.y"
{
    								initbuild();
                                    c = popSelect();
                                    if (errorOccured)
			                        	{
            			                yyval = zero();
                        			    break;
			                            }
                                    pushSelect(c);
                                    build(c);
                                    build(yyvsp[-2]);
                                    build(mkFunc(15));
                                    build(c);
                                    build(yyvsp[0]);
                                    build(mkFunc(13));
                                    build(mkFunc(17));
                                    yyval = retreiveBuild();
    								;
    break;}
case 377:
//#ln 1710 "pps.y"
{
    								if (loop[loopPos-1] == LOOP_IF || loop[loopPos-1] == LOOP_CASE || loop[loopPos-1] >= LOOP_ELSEIF)
                                    	{
										aa = loopPos-1;
                                        b = labelStackPos;
                                        for (aa=aa;aa>=0;aa--)
                                        	{
                                            switch(loop[aa])
                                            	{
                                                case LOOP_IF:
                                                	b--;
                                                    break;
                                                case LOOP_CASE:
                                                	b-=2;
                                                    break;
                                                default:
                                                	if (loop[aa] < LOOP_ELSEIF)
	                                                	goto found;
                                                }
                                            if (loop[aa] >= LOOP_ELSEIF)
                                            	b -= loop[aa]-3;
                                            }
                                        yyerror("'break' invalid in this context");
                                        break;
                                        }
                                    else
                                    	{
                                    	aa = loop[loopPos-1];
                                        b = labelStackPos;
                                        }
                                    found:

                                   	initbuild();
                                    strcpy(msg, yytext);
                                    build(mkStat(7));
                                    strcpy(yytext, labelStack[b-2]);
                                    build(mkStat(65535)); /* Goto */
                                    strcpy(yytext, msg);
                                    yyval = retreiveBuild();
    								;
    break;}
case 378:
//#ln 1750 "pps.y"
{
    								if (loop[loopPos-1] == LOOP_IF || loop[loopPos-1] == LOOP_CASE || loop[loopPos-1] >= LOOP_ELSEIF)
                                    	{
										aa = loopPos-1;
                                        b = labelStackPos;
                                        for (aa=aa;aa>=0;aa--)
                                        	{
                                            switch(loop[aa])
                                            	{
                                                case LOOP_IF:
                                                	b--;
                                                    break;
                                                case LOOP_CASE:
                                                	b-=2;
                                                    break;
                                                default:
                                                	if (loop[aa] < LOOP_ELSEIF)
	                                                	goto found2;
                                                }
                                            if (loop[aa] >= LOOP_ELSEIF)
                                            	b -= loop[aa]-3;
                                            }
                                        yyerror("'continue' invalid in this context");
                                        break;
                                        }
                                    else
                                    	{
                                    	aa = loop[loopPos-1];
                                        b = labelStackPos;
                                        }
                                    found2:

                                   	initbuild();
                                    strcpy(msg, yytext);
                                    build(mkStat(7));
                                    strcpy(yytext, labelStack[b-1]);
                                    build(mkStat(65535)); /* Goto */
                                    strcpy(yytext, msg);
                                    yyval = retreiveBuild();
    								;
    break;}
case 379:
//#ln 1798 "pps.y"
{ forceLabel = 1; ;
    break;}
case 380:
//#ln 1802 "pps.y"
{ strcpy(yytext, yyvsp[0]); yyval = mkStat(65534); forceLabel = 0; ;
    break;}
case 381:
//#ln 1828 "pps.y"
{
						strcpy(yytext, "~BEGIN");
                        beginUsed=1;
                        yyval = mkStat(65534); /* label */
                        ;
    break;}
case 382:
//#ln 1836 "pps.y"
{ honnor(1520); leaveProc(PROC_IDENTIFIER); identHdr=0; yyval = mkStat(171); ;
    break;}
case 383:
//#ln 1837 "pps.y"
{ honnor(1520); leaveProc(PROC_IDENTIFIER); identHdr=0; yyval = mkStat(169); ;
    break;}
case 384:
//#ln 1841 "pps.y"
{ forceLabel = 1; ;
    break;}
case 385:
//#ln 1842 "pps.y"
{ forceLabel = 1; ;
    break;}
case 386:
//#ln 1846 "pps.y"
{ forceLabel = 1; ;
    break;}
case 387:
//#ln 1847 "pps.y"
{ forceLabel = 1; ;
    break;}
case 388:
//#ln 1851 "pps.y"
{ lexn = 0; ;
    break;}
case 389:
//#ln 1852 "pps.y"
{ lexn = 0; ;
    break;}
}
   /* the action file gets copied in in place of this dollarsign */
//#ln 362 "bison.simple"

  yyvsp -= yylen;
  yyssp -= yylen;
#ifdef YYLSP_NEEDED
  yylsp -= yylen;
#endif

#if YYDEBUG != 0
  if (yydebug)
    {
      short *ssp1 = yyss - 1;
      fprintf (stderr, "state stack now");
      while (ssp1 != yyssp)
	fprintf (stderr, " %d", *++ssp1);
      fprintf (stderr, "\n");
    }
#endif

  *++yyvsp = yyval;

#ifdef YYLSP_NEEDED
  yylsp++;
  if (yylen == 0)
    {
      yylsp->first_line = yylloc.first_line;
      yylsp->first_column = yylloc.first_column;
      yylsp->last_line = (yylsp-1)->last_line;
      yylsp->last_column = (yylsp-1)->last_column;
      yylsp->text = 0;
    }
  else
    {
      yylsp->last_line = (yylsp+yylen-1)->last_line;
      yylsp->last_column = (yylsp+yylen-1)->last_column;
    }
#endif

  /* Now "shift" the result of the reduction.
     Determine what state that goes to,
     based on the state we popped back to
     and the rule number reduced by.  */

  yyn = yyr1[yyn];

  yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
  if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
    yystate = yytable[yystate];
  else
    yystate = yydefgoto[yyn - YYNTBASE];

  goto yynewstate;

yyerrlab:   /* here on detecting error */

  if (! yyerrstatus)
    /* If not already recovering from an error, report this error.  */
    {
      ++yynerrs;

#ifdef YYERROR_VERBOSE
      yyn = yypact[yystate];

      if (yyn > YYFLAG && yyn < YYLAST)
	{
	  int size = 0;
	  char *msg;
	  int x, count;

	  count = 0;
	  for (x = 0; x < (sizeof(yytname) / sizeof(char *)); x++)
	    if (yycheck[x + yyn] == x)
	      size += strlen(yytname[x]) + 15, count++;
	  msg = (char *) xmalloc(size + 15);
	  strcpy(msg, "syntax error");

	  if (count < 5)
	    {
	      count = 0;
	      for (x = 0; x < (sizeof(yytname) / sizeof(char *)); x++)
		if (yycheck[x + yyn] == x)
		  {
		    strcat(msg, count == 0 ? ", expecting `" : " or `");
		    strcat(msg, yytname[x]);
		    strcat(msg, "'");
		    count++;
		  }
	    }
	  yyerror(msg);
	  free(msg);
	}
      else
#endif /* YYERROR_VERBOSE */
	yyerror("syntax error");
    }

yyerrlab1:   /* here on error raised explicitly by an action */

  if (yyerrstatus == 3)
    {
      /* if just tried and failed to reuse lookahead token after an error, discard it.  */

      /* return failure if at end of input */
      if (yychar == YYEOF)
	YYABORT;

#if YYDEBUG != 0
      if (yydebug)
	fprintf(stderr, "discarding token %d (%s).\n", yychar, yytname[yychar1]);
#endif

      yychar = YYEMPTY;
    }

  /* Else will try to reuse lookahead token
     after shifting the error token.  */

  yyerrstatus = 3;		/* Each real token shifted decrements this */

  goto yyerrhandle;

yyerrdefault:  /* current state does not do anything special for the error token. */

#if 0
  /* This is wrong; only states that explicitly want error tokens
     should shift them.  */
  yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
  if (yyn) goto yydefault;
#endif

yyerrpop:   /* pop the current state because it cannot handle the error token */

  if (yyssp == yyss) YYABORT;
  yyvsp--;
  yystate = *--yyssp;
#ifdef YYLSP_NEEDED
  yylsp--;
#endif

#if YYDEBUG != 0
  if (yydebug)
    {
      short *ssp1 = yyss - 1;
      fprintf (stderr, "error: state stack now");
      while (ssp1 != yyssp)
	fprintf (stderr, " %d", *++ssp1);
      fprintf (stderr, "\n");
    }
#endif

yyerrhandle:

  yyn = yypact[yystate];
  if (yyn == YYFLAG)
    goto yyerrdefault;

  yyn += YYTERROR;
  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
    goto yyerrdefault;

  yyn = yytable[yyn];
  if (yyn < 0)
    {
      if (yyn == YYFLAG)
	goto yyerrpop;
      yyn = -yyn;
      goto yyreduce;
    }
  else if (yyn == 0)
    goto yyerrpop;

  if (yyn == YYFINAL)
    YYACCEPT;

#if YYDEBUG != 0
  if (yydebug)
    fprintf(stderr, "shifting error token, ");
#endif

  *++yyvsp = yylval;
#ifdef YYLSP_NEEDED
  *++yylsp = yylloc;
#endif

  yystate = yyn;
  goto yynewstate;
}
//#ln 1855 "pps.y"


#pragma warn .ias
