001// yacc cod file for GSQLParser component java version
002
003
004
005/*****************************************************************************}
006{         GSQLParser component   java version                                                     }     
007{         Copyright (c) 2004-2010 by Gudu software                                        }
008{         http://www.sqlparser.com                                                                        }
009{*****************************************************************************/
010
011package gudusoft.gsqlparser;
012import java.io.*;
013
014public class TParserAccessSql extends TCustomParser {
015    //final int _ILLEGAL = 1110;
016
017    static int  yynacts,yyngotos, yynstates, yynrules ;
018
019    static int[] yya_sym,yya_act,yyr_len,yyr_sym,yyg_sym,yyg_act;    // 1 based
020    //int[] yyg; // 1 based
021    static int[] yyd,yyal,yyah,yygl,yygh; // 0 based
022
023    //String y_yyd_file,y_yyal_file,y_yyah_file,y_yygl_file,y_yygh_file,y_yya_file,y_yyr_file,y_yyg_file;
024    static String table_file;
025    
026        static {
027        table_file = "/gudusoft/gsqlparser/parser/access/access_yacc_table.txt";
028        if (TBaseType.enterprise_edition||TBaseType.sqlserver_edition){
029                inittable();
030        }
031        }
032
033    public TParserAccessSql(TSourceTokenList sourcetokens){
034        super(EDbVendor.dbvaccess);
035
036        this.sourcetokenlist = sourcetokens;
037    
038    }
039
040
041    static void inittable(){
042        String line;
043        int lineno = 1,yya_sym_count = 1,yya_act_count = 1,yyg_sym_count = 1,yyg_act_count = 1,yyr_sym_count = 1,yyr_len_count = 1;
044        int yyd_count = 0,yyal_count = 0,yyah_count = 0,yygl_count = 0,yygh_count = 0;
045        boolean inyya_sym = false,inyya_act = false,inyyg_sym = false,inyyg_act = false,inyyr_sym = false,inyyr_len = false;
046        boolean inyyd = false, inyyal = false, inyyah = false, inyygl = false, inyygh = false;
047
048        BufferedReader br = new BufferedReader(new InputStreamReader(TParserAccessSql.class.getResourceAsStream(table_file)));
049
050            try{
051                while( (line = br.readLine()) != null){
052                           if (line.trim().startsWith("yynacts =")){
053                                String[] ss = line.split("[=;]");
054                               yynacts = Integer.parseInt(ss[1].trim());
055                               yya_sym = new int[yynacts+1];
056                               yya_act = new int[yynacts+1];
057                               //System.out.println("yynacts:"+yynacts);
058                           }else if(line.trim().startsWith("yyngotos =")){
059                               String[] ss = line.split("[=;]");
060                              yyngotos = Integer.parseInt(ss[1].trim());
061                               yyg_sym = new int[yyngotos+1];
062                               yyg_act = new int[yyngotos+1];
063                               //yyg  = new int[yyngotos];
064                              //System.out.println("yyngotos:"+yyngotos);
065                           }else if(line.trim().startsWith("yynrules =")){
066                               String[] ss = line.split("[=;]");
067                              yynrules = Integer.parseInt(ss[1].trim());
068                               yyr_len = new int[yynrules+1];
069                               yyr_sym = new int[yynrules+1];
070                              //System.out.println("yynrules:"+yynrules);
071                           }else if(line.trim().startsWith("yynstates =")){
072                               String[] ss = line.split("[=;]");
073                              yynstates = Integer.parseInt(ss[1].trim());
074                               yyd  = new int[yynstates];
075                               yyal = new int[yynstates];
076                               yyah = new int[yynstates];
077                               yygl = new int[yynstates];
078                               yygh = new int[yynstates];
079                              //System.out.println("yynstates:"+yynstates);
080                           }else if (line.trim().startsWith(";")){
081                              if (inyya_sym){
082                                  inyya_sym = false;
083                                 if (yynacts+1 != yya_sym_count ){
084                                    System.out.println("required:"+(yynacts)+" actually:"+(yya_sym_count-1));
085                                 }
086                              }
087                              else if(inyya_act){
088                                     inyya_act = false;
089                                    if (yynacts+1 != yya_act_count ){
090                                       System.out.println("required:"+(yynacts)+" actually:"+(yya_act_count-1));
091                                    }
092                              }
093                              else if(inyyg_sym){
094                                     inyyg_sym = false;
095                                    if (yyngotos+1 != yyg_sym_count ){
096                                       System.out.println("required:"+(yyngotos)+" actually:"+(yyg_sym_count-1));
097                                    }
098                              }
099                              else if(inyyg_act){
100                                     inyyg_act = false;
101                                    if (yyngotos+1 != yyg_act_count ){
102                                       System.out.println("required:"+(yyngotos)+" actually:"+(yyg_act_count-1));
103                                    }
104                              }
105                              else if(inyyr_sym){
106                                     inyyr_sym = false;
107                                    if (yynrules+1 != yyr_sym_count ){
108                                       System.out.println("required:"+(yynrules)+" actually:"+(yyr_sym_count-1));
109                                    }
110                              }
111                              else if(inyyr_len){
112                                     inyyr_len = false;
113                                    if (yynrules+1 != yyr_len_count ){
114                                       System.out.println("required:"+(yynrules)+" actually:"+(yyr_len_count-1));
115                                    }
116                              }
117                              else if(inyyd){
118                                     inyyd = false;
119                                    if (yynstates != yyd_count ){
120                                       System.out.println("required:"+(yynstates)+" actually:"+(yyd_count));
121                                    }
122                              }
123                              else if(inyyal){
124                                     inyyal = false;
125                                    if (yynstates != yyal_count ){
126                                       System.out.println("required:"+(yynstates)+" actually:"+(yyal_count));
127                                    }
128                              }
129                              else if(inyyah){
130                                     inyyah = false;
131                                    if (yynstates != yyah_count ){
132                                       System.out.println("required:"+(yynstates)+" actually:"+(yyah_count));
133                                    }
134                              }
135                              else if(inyygl){
136                                     inyygl = false;
137                                    if (yynstates != yygl_count ){
138                                       System.out.println("required:"+(yynstates)+" actually:"+(yygl_count));
139                                    }
140                              }
141                              else if(inyygh){
142                                     inyygh = false;
143                                    if (yynstates != yygh_count ){
144                                       System.out.println("required:"+(yynstates)+" actually:"+(yygh_count));
145                                    }
146                              }
147                           }else if(line.trim().startsWith("yya_sym =")){
148                             inyya_sym = true;  
149                           }else if(line.trim().startsWith("yya_act =")){
150                             inyya_act = true;
151                           }else if(line.trim().startsWith("yyg_sym =")){
152                             inyyg_sym = true;
153                           }else if(line.trim().startsWith("yyg_act =")){
154                             inyyg_act = true;
155                           }else if(line.trim().startsWith("yyr_sym =")){
156                             inyyr_sym = true;
157                           }else if(line.trim().startsWith("yyr_len =")){
158                             inyyr_len = true;
159                           }else if(line.trim().startsWith("yyd =")){
160                             inyyd = true;
161                           }else if(line.trim().startsWith("yyal =")){
162                             inyyal = true;
163                           }else if(line.trim().startsWith("yyah =")){
164                             inyyah = true;
165                           }else if(line.trim().startsWith("yygl =")){
166                             inyygl = true;
167                           }else if(line.trim().startsWith("yygh =")){
168                             inyygh = true;
169                           }else if(line.trim().length() == 0){
170                               // this is an empty line, igonre it
171                           }else if(inyya_sym){
172                             String[] ss = line.split("[,]");
173                               for(int j=0;j<ss.length;j++){
174                                   // System.out.println(ss[j].trim());
175                                 yya_sym[yya_sym_count++] = Integer.parseInt(ss[j].trim()); 
176                               }
177                           }else if(inyya_act){
178                             String[] ss = line.split("[,]");
179                               for(int j=0;j<ss.length;j++){
180                                   // System.out.println(ss[j].trim());
181                                 yya_act[yya_act_count++] = Integer.parseInt(ss[j].trim());
182                               }
183                           }else if(inyyg_sym){
184                             String[] ss = line.split("[,]");
185                               for(int j=0;j<ss.length;j++){
186                                   // System.out.println(ss[j].trim());
187                                 yyg_sym[yyg_sym_count++] = Integer.parseInt(ss[j].trim());
188                               }
189                           }else if(inyyg_act){
190                             String[] ss = line.split("[,]");
191                               for(int j=0;j<ss.length;j++){
192                                   // System.out.println(ss[j].trim());
193                                 yyg_act[yyg_act_count++] = Integer.parseInt(ss[j].trim());
194                               }
195                           }else if(inyyr_sym){
196                             String[] ss = line.split("[,]");
197                               for(int j=0;j<ss.length;j++){
198                                   // System.out.println(ss[j].trim());
199                                 yyr_sym[yyr_sym_count++] = Integer.parseInt(ss[j].trim());
200                               }
201                           }else if(inyyr_len){
202                             String[] ss = line.split("[,]");
203                               for(int j=0;j<ss.length;j++){
204                                   // System.out.println(ss[j].trim());
205                                 yyr_len[yyr_len_count++] = Integer.parseInt(ss[j].trim());
206                               }
207                           }else if(inyyd){
208                             String[] ss = line.split("[,]");
209                               for(int j=0;j<ss.length;j++){
210                                   // System.out.println(ss[j].trim());
211                                 yyd[yyd_count++] = Integer.parseInt(ss[j].trim());
212                               }
213                           }else if(inyyal){
214                             String[] ss = line.split("[,]");
215                               for(int j=0;j<ss.length;j++){
216                                   // System.out.println(ss[j].trim());
217                                 yyal[yyal_count++] = Integer.parseInt(ss[j].trim());
218                               }
219                           }else if(inyyah){
220                             String[] ss = line.split("[,]");
221                               for(int j=0;j<ss.length;j++){
222                                   // System.out.println(ss[j].trim());
223                                 yyah[yyah_count++] = Integer.parseInt(ss[j].trim());
224                               }
225                           }else if(inyygl){
226                             String[] ss = line.split("[,]");
227                               for(int j=0;j<ss.length;j++){
228                                   // System.out.println(ss[j].trim());
229                                 yygl[yygl_count++] = Integer.parseInt(ss[j].trim());
230                               }
231                           }else if(inyygh){
232                             String[] ss = line.split("[,]");
233                               for(int j=0;j<ss.length;j++){
234                                   // System.out.println(ss[j].trim());
235                                 yygh[yygh_count++] = Integer.parseInt(ss[j].trim());
236                               }
237                           }
238                }
239            }catch(IOException e){
240              System.out.println(e.toString());
241            }
242    }
243
244
245    public int yyparse(){
246            int lcprevyysp,lcyystate,lcyyn,yyn=0;
247            int[] yys = new int[yymaxdepth + 1] ; //1 based
248            TDatabaseYYSType rollback_token = null;
249            int lcAction;
250            boolean lcrollbackstate ;
251            int lcrollbacktokens;
252
253            curtokenpos = 0;
254            int lcRetries = dobefore_yyparse();//super.yyparse();
255            if (lcRetries == -1)
256            { // no solid tokentext in tokentext list
257                return 0;
258            }
259
260            int rollback_mode = 0;
261            int yystate = 0, yychar = -1, yynerrs = 0, yyerrflag = 0;
262            yysp = 0;
263            boolean lcIsError = false;
264            boolean lcIsParse = false;
265            boolean lcIsReduce= false;
266            boolean lcIsShift = false;
267
268            int rollback_state = yystate;
269            int rollback_sp = yysp;
270
271            boolean isBeginOfBatch = true; //used in mssql
272            boolean lccanreduce; // used in mssql
273
274            isbeginofbatch = true;
275        
276            while (true){
277                yysp++;
278                if (yysp > yymaxdepth)
279                {
280                   // yyerror('yyparse stack overflow');
281                    onparseerrorhandle(EErrorType.spfatalerror, "yyparse stack overflow error 1010" , currentsourcetoken.getAstext(),currentsourcetoken.lineNo,currentsourcetoken.columnNo,10010);
282                    //goto abort;
283                    if (dbvendor == EDbVendor.dbvmssql){
284                        onparseerrorhandle(EErrorType.spfatalabort,"abort !!! error 1001", currentsourcetoken.getAstext(),currentsourcetoken.lineNo,currentsourcetoken.columnNo,10011);
285                    }
286
287                    return 10001;
288                }
289
290                yys[yysp] = yystate;
291                yyv[yysp] = yyval;
292
293                while (true){
294                    if( (yyd[yystate] == 0) && (yychar == -1))
295                      //(* get next symbol *)
296                        {
297                            do{
298                               yychar = yylexwrap(true);//yyLexer.yylexwrap;
299                               if (yychar<0) { yychar = 0;}
300                               // ignore comments and blanks [ \n\t]
301                               //if not( (yychar=_COMMENT) or (yychar=_BLANK) or
302                               //        (yychar=_TAB) or (yychar=_NEWLINE) ) then break;
303                               if (!( (yychar== TBaseType.cmtdoublehyphen)|| (yychar== TBaseType.cmtslashstar) ||
304                                       (yychar== TBaseType.lexspace) || (yychar== TBaseType.lexnewline) ||  (yychar== TBaseType.sqlpluscmd) ))
305                                {
306                                   if (yychar == 0)
307                                   {
308                                       //System.out.println("error tokentext:"+yylval.yyTSourceToken+"c "+currentsourcetoken);
309                                          if ( ( sourcetokenlist.get(sourcetokenlist.size() - 1)).tokencode != 0)
310                                       {
311                                             //System.out.println("yychar is 0, but tokencode is:"+ ( sourcetokenlist.get(sourcetokenlist.size() - 1)).tokencode);
312                                              yylval.yyTSourceToken =  new TSourceToken(" ");
313        //                                      NewSourceToken(yylval.yyTSourceToken,'',ttUnknown,wtNotAWord,eNotAComment,-1,-1);
314                                              yylval.yyTSourceToken.container = sourcetokenlist;
315                                              yylval.yyTSourceToken.tokencode = 0;
316                                              //sourcetokenlist.add(yylval.yyTSourceToken);
317                                              yylval.yyTSourceToken.posinlist = sourcetokenlist.size() - 1;
318                                              curtokenpos = sourcetokenlist.size();
319                                              //showmessage('end of input');
320                                       }
321                                          else
322                                       {
323                                              yylval.yyTSourceToken =  sourcetokenlist.get(sourcetokenlist.size() - 1);
324                                             // showmessage('end of input again');
325                                       }
326                                   }
327
328                                    currentsourcetoken = yylval.yyTSourceToken;
329                                    // System.out.println(currentsourcetoken);
330                                    break;
331                                }
332                              else
333                                {
334                                       //ignore non solid tokentext
335                                }
336
337                            } while (true);
338
339//                            if (yychar == _ILLEGAL)
340//                            {
341//                                //goto error;
342//                                lcIsError = true;
343//                            }
344
345                    } //(* get next symbol *)
346
347                    if  (!lcIsError)
348                    {
349                            yyn = yyd[yystate];
350                            if (yyn != 0)
351                            {
352                                //goto reduce; (* simple state *)
353                                lcIsReduce = true;
354                                break;
355                            }
356
357
358//                        if (yychar = RW_CREATE) or (yychar = RW_ALTER ) then
359//                          begin //simulate a reduce of create procedure(function), the rule is shift when ever create is found
360//                          // this is error when create procedure/function is found.
361//                            lcst := sourcetokenlist.NextSolidToken(CurrentSourceToken);
362//                            if assigned(lcst) then
363//                              begin
364//                                if (lcst.TokenCode = RW_PROCEDURE) or (lcst.TokenCode = RW_PROC)  or (lcst.TokenCode = RW_FUNCTION) then
365//                                  begin
366//                                    if not yyact(yystate, ord(';'), yyn) then
367//                                      begin
368//                                      end
369//                                    else if yyn<0 then
370//                                      begin
371//                                        // goto reduce
372//                                  lcIsReduce := true;
373//                                  break;
374//                                      end;
375//                                  end;
376//                              end;
377//                          end;
378
379                      // (* no default action; search parse table *)
380                        boolean tmpb = yyact(yystate, yychar, retvalue);
381                        if(tmpb) {yyn = retvalue[0];}
382                        if (! tmpb)
383                        {
384                            // lcRestartPos :=   curtokenpos;
385
386                            lcAction = aopAbort;
387                            lcrollbackstate = false;
388                            lcrollbacktokens = 0;
389
390                            //  if assigned(SqlStatement) then
391//                        if assigned(OnParserTokenError) and (lcRetries<1) then
392//                          begin
393//                            try
394//                              RecoverToken := nil;
395//                              inc(lcRetries);
396//                              OnParserTokenError(self,yylval.yyTSourceToken,Integer(DbVendor),GetExpectedTokens(yystate, yychar),lcAction,lcRollbackTokens,lcRollbackState);
397//                            except
398//                              lcAction := aopAbort;
399//                            end;
400//                          end;
401
402//if parse error occurs due to a keyword, then change this keyword to identifier
403// and retry again,
404// for example
405
406// select a.wait from b
407// wait is a keyword, can not be field name due to .y file,
408// but it's a legal in mssql, use this procedure while during parsing,
409// we can fix such problem which is very common
410// we don't recover from FROM keyword
411
412                            if ((yylval.yyTSourceToken.tokencode >= TBaseType.rrw_select ) && (yylval.yyTSourceToken.tokencode != TBaseType.rrw_from ))
413                            {
414                                yylval.yyTSourceToken.tokencode = TBaseType.ident;
415                                yylval.yyTSourceToken.tokentype = ETokenType.ttidentifier;
416                                lcAction = aopContinue;
417                                lcrollbacktokens = 1;
418                            }
419                            else
420                            {lcAction = aopAbort;}
421// end of error recover
422
423                            if (lcAction == aopAbort )
424                            {
425                               // goto error;
426                               lcIsError = true;
427                            }
428
429                            if (!lcIsError )
430                            {
431                              if ((lcAction == aopContinue)
432                                  && ( (recovertoken != null)
433                                        || (yychar != 0)
434                                        || ((yychar == 0)
435                                                && (curtokenpos <= yylval.yyTSourceToken.container.size() -1 )) ) )
436                                {
437                                  curtokenpos = curtokenpos - lcrollbacktokens;
438                                  if (lcrollbackstate)
439                                  {
440                                      if (rollback_mode == 1 )    //shift
441                                      {
442                                          yystate = rollback_state;
443                                          yysp--;
444                                      }
445                                      if (rollback_mode == 2) //reduce
446                                      {
447                                          yystate = rollback_state;
448                                          yyval = rollback_token;
449                                          yysp = rollback_sp-1;
450                                          yychar = -1;
451                                          lcAction = aopAbort;
452                                          rollback_mode = 0;
453                                          // goto parse;
454                                          lcIsParse = true;
455                                          break;
456                                      }
457                                      rollback_mode = 0;
458                                  }
459                                  yychar = -1;
460                                  lcAction = aopAbort;
461                                  //goto next;
462                                  continue;
463                                }
464                               else
465                                {
466                                   // goto error;
467                                   lcIsError = true;
468                                }
469                            }// if not lcIsError
470                        }
471                        else if (yyn>0)
472                        {
473                             //goto shift;
474                             lcIsShift = true;
475                             break;
476                        }
477                        else if( yyn<0 )
478                        {
479                            // goto reduce
480                            lcIsReduce = true;
481                            break;
482                        }
483                        else
484                        {
485                            // goto accept;
486                            return 0;
487                        }
488
489                    } // if not lcIsError
490
491                    if (lcIsError)
492                    {
493                        lcIsError = false;
494                        //System.out.println("error tokentext:"+yylval.yyTSourceToken);
495
496                        if (dbvendor == EDbVendor.dbvmssql){
497
498                            if (yyerrflag<=2)                //  (* incomplete recovery; try again *)
499                            {
500                                yyerrflag = 3;
501                                //(* uncover a state with shift action on error tokentext *)
502                              //(* error; start error recovery: *)
503                                if ((yyact(yys[yysp], _error, retvalue)) && (( yyn = retvalue[0])<0))  //if can be reduced to a sql, just do it here,otherwise, rollback to error rules
504                                {
505
506                                    lccanreduce = false;
507
508                                    //make sure after reduce this sql, we can shift error stmt
509                                    lcprevyysp = yysp;
510                                    lcprevyysp = lcprevyysp - yyr_len[-yyn];
511
512                                    boolean tmpbk = yygoto(yys[lcprevyysp], yyr_sym[-yyn], retvalue);
513                                    if (tmpbk)
514                                    {
515                                         lcyyn = retvalue[0];
516                                         lcyystate = lcyyn;
517                                         if (yyd[lcyystate] != 0)
518                                         {
519                                             lccanreduce = true;
520                                         }
521                                         else
522                                         {
523                                             //if ( yyact(lcyystate, _error, lcyyn) and (lcyyn>0) ) then
524                                             //  lccanreduce := true;
525                                             if (lcprevyysp == 1)
526                                               lccanreduce = true;
527                                         }
528                                    }
529
530                                    if (lccanreduce)
531                                        {
532                                         geterrormsg(yystate, yychar,10100);
533                                        // can not be removed
534                                         errorstmtstarttoken =(TSourceToken) sourcetokenlist.get(curtokenpos-1);
535                                         //sourcetokenlist[curtokenpos-1].tokenstatus := tsSynataxError;
536
537                                          //showmessage('reduce by ; :'+inttostr(curtokenpos-1)+'->'+sourcetokenlist[curtokenpos-1].astext+' state:'+inttostr(yys[yysp]));
538                                          curtokenpos = curtokenpos-1;
539                                          yychar = _error;
540                                          //goto reduce;
541                                          lcIsReduce = true;
542                                          break;
543                                        }
544                                   }
545
546
547                                // showmessage('yystate after test yyact'+inttostr(yyn)+' yychar:'+inttostr(yychar)+' current state:'+inttostr(yys[yysp]));
548                                // showmessage('before dec of yysp: '+inttostr(yysp));
549                                lcprevyysp = yysp;
550                                  while ((yysp>0)
551                                          &&  !( yyact(yys[yysp], _error,retvalue)
552                                                    &&( (yyn = retvalue[0]) >0 )
553                                                )
554                                          )
555                                    {
556                                        yysp--;
557                                    }
558
559                                  if (lcprevyysp != yysp) // if error stmt is just the next state need, then it's a fake error, don't report
560                                    geterrormsg(yystate, yychar,10101);
561
562                                  if (yysp==0)
563                                  {
564                                     //assert(1=2,'Should be an error handle rule in y file, never goes to here!!!');
565                                     onparseerrorhandle(EErrorType.spfatalerror,"error recover failed error", currentsourcetoken.getAstext(),currentsourcetoken.lineNo,currentsourcetoken.columnNo,10012);
566                                     //goto abort; (* parser has fallen from stack; abort *)
567
568                                     onparseerrorhandle(EErrorType.spfatalabort,"abort !!! error 1001", currentsourcetoken.getAstext(),currentsourcetoken.lineNo,currentsourcetoken.columnNo,10013);
569        //                              if assigned(_TMssqlStmt(yyval.yyTLz_Parse_Tree_Node)) then
570        //                                if assigned(_TMssqlStmt(yyval.yyTLz_Parse_Tree_Node)._sqlstmtnode) then
571        //                                  if _TMssqlDummyStmt(_TMssqlStmt(yyval.yyTLz_Parse_Tree_Node)._sqlstmtnode).NodeType = T_ErrorStmt then
572        //                                    begin
573        //                                      // showmessage('T_ErrorStmt');
574        //                                      if assigned(AfterParseSql) then
575        //                                       AfterParseSql(self,_TMssqlStmt(yyval.yyTLz_Parse_Tree_Node));
576        //                                    end;
577
578                                     return 10003;
579                                   }
580
581                                //       showmessage('into error state:'+inttostr(curtokenpos-1)+'tokentext text:'+sourcetokenlist[curtokenpos-1].astext+' -> yysp: '+inttostr(yysp)+'->yyd[yystate]:'+inttostr(yystate));
582
583                                  errorstmtstarttoken = null;
584                                  if (lcprevyysp == yysp)
585                                  {
586                                      errorstmtstarttoken =  sourcetokenlist.get(curtokenpos-1);
587                                  }
588
589                                  if (errorstmtstarttoken == null)
590                                  {
591                                      for (int lctmpi = yysp+1; lctmpi < lcprevyysp+1;lctmpi++)
592                                      {
593                                        if (yyv[lctmpi].yyTSourceToken != null)
594                                          {
595                                            // find first error tokentext
596                                            errorstmtstarttoken = yyv[lctmpi].yyTSourceToken;
597                                            // showmessage('errorstmtstarttoken: '+errorstmtstarttoken.astext);
598                                            break;
599                                          }
600                                      }
601                                  }
602
603                                  if (errorstmtstarttoken == null)
604                                  {
605                                    for (int lctmpi = yysp ; lctmpi > 0;lctmpi--)
606                                        {
607                                        if (yyv[lctmpi].yyTSourceToken != null)
608                                            {
609                                            // find tokentext of last valid stmt, then set start tokentext of error stmt after that tokentext
610                                            // errorstmtstarttoken = sourcetokenlist[yyv[lctmpi].yyTSourceToken.posinlist+1];
611                                            break;
612                                            }
613                                        }
614                                  }
615
616
617                                  if (errorstmtstarttoken == null)
618                                  {
619                                      for (int lctmpi = curtokenpos-1; lctmpi >=0;lctmpi--)
620                                        {
621                                          if (( sourcetokenlist.get(lctmpi)).tokenstatus != ETokenStatus.tssynataxerror)
622                                            errorstmtstarttoken =  sourcetokenlist.get(lctmpi);
623                                          else
624                                            break;
625                                        }
626                                  }
627
628                                if (errorstmtstarttoken != null)
629                                {
630                                  for (int lctmpi = errorstmtstarttoken.posinlist; lctmpi < curtokenpos;lctmpi++)
631                                    {
632                                      if (sourcetokenlist.get(lctmpi).tokenstatus == ETokenStatus.tssynataxerror)
633                                        continue; //this tokentext already occupied by prev error stmt, so skip it
634                                      else
635                                        {
636                                          errorstmtstarttoken = sourcetokenlist.get(lctmpi);
637                                          break;
638                                        }
639                                    }
640                                }
641
642                                if (errorstmtstarttoken != null)
643                                {
644                                  for (int lctmpi = errorstmtstarttoken.posinlist; lctmpi < curtokenpos;lctmpi++){
645                                    sourcetokenlist.get(lctmpi).tokenstatus = ETokenStatus.tssynataxerror;
646                                    }
647                                }
648
649                                  yystate = yyn; //           (* simulate shift on error *)
650                                  yychar = -1;
651                                  stmtendpos = curtokenpos-1;
652
653                                  //goto parse;
654                                  lcIsParse = true;
655                                  break;
656                                }
657                            else   //(yyerrflag<=2)                               (* no shift yet; discard symbol *)
658                            {
659                                if (yychar==0)
660                                {
661                                    // showmessage('end of input '+ 'yysp:'+inttostr(yysp)+' current state:'+inttostr(yys[yysp]));
662                                    errorstmtstarttoken = null;
663                                    try  {
664                                        for (int lctmpi = yysp; lctmpi > 0;lctmpi--)
665                                        {
666                                            if (yyv[lctmpi].yyTSourceToken != null)
667                                            {
668                                               errorstmtstarttoken = yyv[lctmpi].yyTSourceToken;
669                                               // showmessage('yysp: '+inttostr(lctmpi)+' yysate:'+inttostr(yys[lctmpi])+' tokentext:'+yyv[lctmpi].yyTSourceToken.astext);
670                                            }
671                                            else
672                                             ;// showmessage('yysp: '+inttostr(lctmpi)+' yysate:'+inttostr(yys[lctmpi]));
673                                        }
674                                    }
675                                    finally{
676                                      errorstmtstarttoken = null;
677                                    }
678
679                                     if (errorstmtstarttoken == null)
680                                      errorstmtstarttoken = (TSourceToken) sourcetokenlist.get(0);
681
682                                     for (int lctmpi = errorstmtstarttoken.posinlist; lctmpi<curtokenpos;lctmpi++)
683                                       sourcetokenlist.get(lctmpi).tokenstatus = ETokenStatus.tssynataxerror;
684
685        //                            if (yyval.yyTLz_Parse_Tree_Node != null) then
686        //                             {
687        //                              if assigned(_TMssqlStmt(yyval.yyTLz_Parse_Tree_Node)._sqlstmtnode) then
688        //                                {
689        //                                  _TMssqlErrorStmt(_TMssqlStmt(yyval.yyTLz_Parse_Tree_Node)._sqlstmtnode).errorstmtstarttoken := errorstmtstarttoken;
690        //                                }
691        //                             }
692
693
694                                     // goto abort; (* end of input; abort *)
695                                    onparseerrorhandle(EErrorType.spfatalabort, "abort !!! error 1001", currentsourcetoken.getAstext(),currentsourcetoken.lineNo,currentsourcetoken.columnNo,10013);
696        //                            if assigned(_TMssqlStmt(yyval.yyTLz_Parse_Tree_Node)) then
697        //                              if assigned(_TMssqlStmt(yyval.yyTLz_Parse_Tree_Node)._sqlstmtnode) then
698        //                                if _TMssqlDummyStmt(_TMssqlStmt(yyval.yyTLz_Parse_Tree_Node)._sqlstmtnode).NodeType = T_ErrorStmt then
699        //                                  begin
700        //                                    // showmessage('T_ErrorStmt');
701        //                                    if assigned(AfterParseSql) then
702        //                                     AfterParseSql(self,_TMssqlStmt(yyval.yyTLz_Parse_Tree_Node));
703        //                                  end;
704
705                                    return  10004;
706                                }
707
708                                yychar = -1;
709                                stmtendpos = curtokenpos-1;
710                                sourcetokenlist.get(curtokenpos-1).tokenstatus = ETokenStatus.tssynataxerror;
711                               //  showmessage('lookahead:'+inttostr(curtokenpos-1)+'->'+sourcetokenlist[curtokenpos-1].astext+'->yyd[yystate]:'+inttostr(yystate));
712                               // goto next;     (* clear lookahead char and try again *)
713                               continue;
714                        }
715                     }else{
716                        geterrormsg(yystate, yychar,10102);
717                           return 10102;
718                        }
719
720                   }// if lcIsError
721
722                }  //next
723
724                if (lcIsParse)
725                {
726                    lcIsParse = false;
727                    continue;
728                }
729
730                if (lcIsShift)
731                {
732                    lcIsShift = false;
733                    //(* go to new state, clear lookahead character: *)
734                    rollback_state = yystate;
735                    rollback_mode = 1;
736                    rollback_sp = yysp;
737                    rollback_token = yyval;
738                    if ((yyerrflag>0) && (yychar != _error ) )
739                    {
740                        if (dbvendor == EDbVendor.dbvmssql){
741                            nextstmtstartpos = curtokenpos - 1;
742                        }
743                        yyerrflag--;
744                    }
745                    yystate = yyn;
746                    yychar = -1;
747                    yyval = new TDatabaseYYSType();
748                    yyval.copy( yylval);
749
750                    if (lcRetries > 0) lcRetries--;
751
752                    if (dbvendor == EDbVendor.dbvmssql){
753                        stmtendpos = curtokenpos - 1; // tokentext became part of stmt only after shift
754                        acceptedtoken = currentsourcetoken;
755                    }
756                    // goto parse;
757                    continue;
758
759                }//if lcIsShift
760
761                if (lcIsReduce)
762                {
763                    lcIsReduce = false;
764
765                    //(* execute action, pop rule from stack, and go to next state: *)
766                   // yyval.yyTLz_Parse_Tree_Node := nil;
767                    if (dbvendor == EDbVendor.dbvmssql){
768                       // yyval.yyTSourceToken = null;
769                        currentyystate = yystate;
770                        currentyysp = yysp;
771                        currentyyn = yyn;
772                    }
773
774                    yyflag = yyfnone;
775                    yyval = new TDatabaseYYSType();
776                    yyaction(-yyn);
777
778                    rollback_mode = 2;
779                    yysp = yysp - yyr_len[-yyn];
780
781                    if (yygoto(yys[yysp], yyr_sym[-yyn], retvalue))
782                    {
783                        yyn = retvalue[0];
784                        yystate = yyn;
785                    }
786
787                    //(* handle action calls to yyaccept, yyabort and yyerror: *)
788
789                    switch(yyflag){
790                      case yyfaccept :
791                      {
792                          if (dbvendor == EDbVendor.dbvmssql){
793                              if (yyerrflag == 3)
794                              { //after reduce error stmt, whole sql is valid again, so remove tsSyntaxError
795                                for (int lctmpi = nextstmtstartpos; lctmpi < curtokenpos;lctmpi++)
796                                {
797                                  //  sourcetokenlist[lctmpi].tokenstatus = tsOriginal;
798                                }
799                              }
800                          }
801                        return 0;
802                      }
803                      case yyfabort :
804                      {
805                          onparseerrorhandle(EErrorType.spfatalerror, "yyfabort error 1004", currentsourcetoken.getAstext(),currentsourcetoken.lineNo,currentsourcetoken.columnNo,10015);
806                          // goto abort;
807                          onparseerrorhandle(EErrorType.spfatalabort,"abort !!! error 1001", currentsourcetoken.getAstext(),currentsourcetoken.lineNo,currentsourcetoken.columnNo,10014);
808
809//                      if assigned(_TMssqlStmt(yyval.yyTLz_Parse_Tree_Node)) then
810//                        if assigned(_TMssqlStmt(yyval.yyTLz_Parse_Tree_Node)._sqlstmtnode) then
811//                            if _TMssqlDummyStmt(_TMssqlStmt(yyval.yyTLz_Parse_Tree_Node)._sqlstmtnode).NodeType = T_ErrorStmt then
812//                                 {
813//                                    if assigned(AfterParseSql) then
814//                                         AfterParseSql(self,_TMssqlStmt(yyval.yyTLz_Parse_Tree_Node));
815//                                }
816
817                          return  10006;
818                      }
819                      case yyferror  :
820                      {
821                          // goto errlab;
822                          onparseerrorhandle(EErrorType.spfatalerror,"error failed error 1000" , currentsourcetoken.getAstext(),currentsourcetoken.lineNo,currentsourcetoken.columnNo,10016);
823                          return 10007;
824                      }
825                    }
826                    //lcRetries := 0;
827
828                    // goto parse;
829                    continue;
830
831            } //if lcIsReduce
832
833            }   // parse
834
835       }
836
837    boolean yygoto(int state, int sym,int[] nstate){
838       boolean r;
839       int k = yygl[state];
840       while ((k<=yygh[state]) && (yyg_sym[k] != sym)) {k++;}
841        if (k>yygh[state])
842          r = false;
843        else
844        {
845            nstate[0] = yyg_act[k];
846            r = true;
847        }
848       return r;
849    }
850
851    boolean yyact(int state,int sym,int[] act){
852      boolean r;
853      int k = yyal[state];
854      while ((k <= yyah[state]) && (yya_sym[k] != sym) ) {k++;}
855        if (k>yyah[state])
856          r = false;
857        else {
858            act[0]  = yya_act[k];
859            r = true;
860        }
861     return r;
862    }
863    
864        void yyaction_1_206 ( int yyruleno ){
865                switch(yyruleno){
866                case    1 : { 
867                         yyval.copy(yyv[yysp-2]);
868                       break;
869                       }
870                case    2 : { 
871                         
872                                
873                       break;
874                       }
875                case    3 : { 
876                         yyval.copy(yyv[yysp-0]);
877                       break;
878                       }
879                case    4 : { 
880                         yyval.copy(yyv[yysp-0]);
881                       break;
882                       }
883                case    5 : { 
884                         yyval.copy(yyv[yysp-0]);
885                       break;
886                       }
887                case    6 : { 
888                         yyval.copy(yyv[yysp-0]);
889                       break;
890                       }
891                case    7 : { 
892                         yyval.copy(yyv[yysp-0]);
893                       break;
894                       }
895                case    8 : { 
896                         yyval.copy(yyv[yysp-0]);
897                       break;
898                       }
899                case    9 : { 
900                         yyval.copy(yyv[yysp-0]);
901                       break;
902                       }
903                case   10 : { 
904                         yyval.copy(yyv[yysp-0]);
905                       break;
906                       }
907                case   11 : { 
908                         yyval.copy(yyv[yysp-0]);
909                       break;
910                       }
911                case   12 : { 
912                         
913                                
914                       break;
915                       }
916                case   13 : { 
917                         
918                                        
919                       break;
920                       }
921                case   14 : { 
922                         
923                                        
924                       break;
925                       }
926                case   15 : { 
927                         
928                                        
929                       break;
930                       }
931                case   16 : { 
932                         
933                                        
934                       break;
935                       }
936                case   17 : { 
937                         
938                                        
939                       break;
940                       }
941                case   18 : { 
942                         
943                                        
944                       break;
945                       }
946                case   19 : { 
947                         
948                                        
949                       break;
950                       }
951                case   20 : { 
952                         
953                                        
954                       break;
955                       }
956                case   21 : { 
957                         
958                                        
959                       break;
960                       }
961                case   22 : { 
962                         
963                                        
964                       break;
965                       }
966                case   23 : { 
967                                
968                                        
969                       break;
970                       }
971                case   24 : { 
972                                
973                                        
974                       break;
975                       }
976                case   25 : { 
977                                
978                                        
979                       break;
980                       }
981                case   26 : { 
982                         
983                                
984                       break;
985                       }
986                case   27 : { 
987                         
988                                
989                       break;
990                       }
991                case   28 : { 
992                         yyval.copy(yyv[yysp-0]);
993                       break;
994                       }
995                case   29 : { 
996                         
997                                
998                       break;
999                       }
1000                case   30 : { 
1001                         
1002                                        
1003                       break;
1004                       }
1005                case   31 : { 
1006                         
1007                                        
1008                       break;
1009                       }
1010                case   32 : { 
1011                         
1012                                        
1013                       break;
1014                       }
1015                case   33 : { 
1016                         
1017                                        
1018                       break;
1019                       }
1020                case   34 : { 
1021                         
1022                                        
1023                       break;
1024                       }
1025                case   35 : { 
1026                         
1027                                        
1028                       break;
1029                       }
1030                case   36 : { 
1031                         
1032                                        
1033                       break;
1034                       }
1035                case   37 : { 
1036                         
1037                                        
1038                       break;
1039                       }
1040                case   38 : { 
1041                         
1042                                        
1043                       break;
1044                       }
1045                case   39 : { 
1046                         
1047                                
1048                       break;
1049                       }
1050                case   40 : { 
1051                         
1052                                        
1053                       break;
1054                       }
1055                case   41 : { 
1056                         
1057                                        
1058                       break;
1059                       }
1060                case   42 : { 
1061                         
1062                                        
1063                       break;
1064                       }
1065                case   43 : { 
1066                         
1067                                        
1068                       break;
1069                       }
1070                case   44 : { 
1071                         
1072                                        
1073                       break;
1074                       }
1075                case   45 : { 
1076                         
1077                                        
1078                       break;
1079                       }
1080                case   46 : { 
1081                         
1082                                        
1083                       break;
1084                       }
1085                case   47 : { 
1086                         
1087                                
1088                       break;
1089                       }
1090                case   48 : { 
1091                         
1092                                        
1093                       break;
1094                       }
1095                case   49 : { 
1096                         
1097                                        
1098                       break;
1099                       }
1100                case   50 : { 
1101                         
1102                                        
1103                       break;
1104                       }
1105                case   51 : { 
1106                         
1107                                        
1108                       break;
1109                       }
1110                case   52 : { 
1111                         
1112                                        
1113                       break;
1114                       }
1115                case   53 : { 
1116                         
1117                                        
1118                       break;
1119                       }
1120                case   54 : { 
1121                         yyval.copy(yyv[yysp-0]);
1122                       break;
1123                       }
1124                case   55 : { 
1125                         
1126                                        
1127                       break;
1128                       }
1129                case   56 : { 
1130                         
1131                                        
1132                       break;
1133                       }
1134                case   57 : { 
1135                         
1136                                        
1137                       break;
1138                       }
1139                case   58 : { 
1140                         
1141                                        
1142                       break;
1143                       }
1144                case   59 : { 
1145                         
1146                                
1147                       break;
1148                       }
1149                case   60 : { 
1150                         
1151                                        
1152                       break;
1153                       }
1154                case   61 : { 
1155                         
1156                                        
1157                       break;
1158                       }
1159                case   62 : { 
1160                         
1161                                        
1162                       break;
1163                       }
1164                case   63 : { 
1165                         
1166                                        
1167                       break;
1168                       }
1169                case   64 : { 
1170                         
1171                                        
1172                       break;
1173                       }
1174                case   65 : { 
1175                         
1176                                        
1177                       break;
1178                       }
1179                case   66 : { 
1180                         
1181                                        
1182                       break;
1183                       }
1184                case   67 : { 
1185                         
1186                                        
1187                       break;
1188                       }
1189                case   68 : { 
1190                         
1191                                        
1192                       break;
1193                       }
1194                case   69 : { 
1195                         
1196                                        
1197                       break;
1198                       }
1199                case   70 : { 
1200                         
1201                                        
1202                       break;
1203                       }
1204                case   71 : { 
1205                         
1206                                        
1207                       break;
1208                       }
1209                case   72 : { 
1210                         
1211                                        
1212                       break;
1213                       }
1214                case   73 : { 
1215                         
1216                                
1217                       break;
1218                       }
1219                case   74 : { 
1220                         
1221                                        
1222                       break;
1223                       }
1224                case   75 : { 
1225                         
1226                                        
1227                       break;
1228                       }
1229                case   76 : { 
1230                         
1231                                        
1232                       break;
1233                       }
1234                case   77 : { 
1235                         
1236                                        
1237                       break;
1238                       }
1239                case   78 : { 
1240                         yyval.copy(yyv[yysp-0]);
1241                       break;
1242                       }
1243                case   79 : { 
1244                         
1245                                        
1246                       break;
1247                       }
1248                case   80 : { 
1249                         
1250                                        
1251                       break;
1252                       }
1253                case   81 : { 
1254                         
1255                                        
1256                       break;
1257                       }
1258                case   82 : { 
1259                         
1260                                        
1261                       break;
1262                       }
1263                case   83 : { 
1264                         
1265                                        
1266                       break;
1267                       }
1268                case   84 : { 
1269                         
1270                                        
1271                       break;
1272                       }
1273                case   85 : { 
1274                         
1275                                        
1276                       break;
1277                       }
1278                case   86 : { 
1279                         
1280                                        
1281                       break;
1282                       }
1283                case   87 : { 
1284                         
1285                                        
1286                       break;
1287                       }
1288                case   88 : { 
1289                         
1290                                        
1291                       break;
1292                       }
1293                case   89 : { 
1294                         
1295                                        
1296                       break;
1297                       }
1298                case   90 : { 
1299                         
1300                                        
1301                       break;
1302                       }
1303                case   91 : { 
1304                         
1305                                        
1306                       break;
1307                       }
1308                case   92 : { 
1309                         
1310                                        
1311                       break;
1312                       }
1313                case   93 : { 
1314                         
1315                                        
1316                       break;
1317                       }
1318                case   94 : { 
1319                         
1320                                        
1321                       break;
1322                       }
1323                case   95 : { 
1324                         
1325                                        
1326                       break;
1327                       }
1328                case   96 : { 
1329                         
1330                                        
1331                       break;
1332                       }
1333                case   97 : { 
1334                         
1335                                
1336                       break;
1337                       }
1338                case   98 : { 
1339                         
1340                                
1341                       break;
1342                       }
1343                case   99 : { 
1344                         
1345                                        
1346                       break;
1347                       }
1348                case  100 : { 
1349                         
1350                                        
1351                       break;
1352                       }
1353                case  101 : { 
1354                         
1355                                        
1356                       break;
1357                       }
1358                case  102 : { 
1359                         
1360                                        
1361                       break;
1362                       }
1363                case  103 : { 
1364                         
1365                                        
1366                       break;
1367                       }
1368                case  104 : { 
1369                         
1370                                        
1371                       break;
1372                       }
1373                case  105 : { 
1374                         
1375                                        
1376                       break;
1377                       }
1378                case  106 : { 
1379                         
1380                                        
1381                       break;
1382                       }
1383                case  107 : { 
1384                         
1385                                        
1386                       break;
1387                       }
1388                case  108 : { 
1389                         
1390                                        
1391                       break;
1392                       }
1393                case  109 : { 
1394                         
1395                                        
1396                       break;
1397                       }
1398                case  110 : { 
1399                         
1400                                        
1401                       break;
1402                       }
1403                case  111 : { 
1404                         
1405                                        
1406                       break;
1407                       }
1408                case  112 : { 
1409                         
1410                                        
1411                       break;
1412                       }
1413                case  113 : { 
1414                         
1415                                        
1416                       break;
1417                       }
1418                case  114 : { 
1419                         
1420                                        
1421                       break;
1422                       }
1423                case  115 : { 
1424                         
1425                                        
1426                       break;
1427                       }
1428                case  116 : { 
1429                         
1430                                        
1431                       break;
1432                       }
1433                case  117 : { 
1434                         
1435                                        
1436                       break;
1437                       }
1438                case  118 : { 
1439                         
1440                                        
1441                       break;
1442                       }
1443                case  119 : { 
1444                         
1445                                        
1446                       break;
1447                       }
1448                case  120 : { 
1449                         
1450                                        
1451                       break;
1452                       }
1453                case  121 : { 
1454                         
1455                                        
1456                       break;
1457                       }
1458                case  122 : { 
1459                         
1460                                        
1461                       break;
1462                       }
1463                case  123 : { 
1464                         
1465                                        
1466                       break;
1467                       }
1468                case  124 : { 
1469                         
1470                                        
1471                       break;
1472                       }
1473                case  125 : { 
1474                         
1475                                        
1476                       break;
1477                       }
1478                case  126 : { 
1479                         
1480                                        
1481                       break;
1482                       }
1483                case  127 : { 
1484                         
1485                                        
1486                       break;
1487                       }
1488                case  128 : { 
1489                         
1490                                        
1491                       break;
1492                       }
1493                case  129 : { 
1494                         
1495                                        
1496                       break;
1497                       }
1498                case  130 : { 
1499                         
1500                                        
1501                       break;
1502                       }
1503                case  131 : { 
1504                         
1505                                        
1506                       break;
1507                       }
1508                case  132 : { 
1509                         
1510                                        
1511                       break;
1512                       }
1513                case  133 : { 
1514                         
1515                                
1516                       break;
1517                       }
1518                case  134 : { 
1519                         
1520                                
1521                       break;
1522                       }
1523                case  135 : { 
1524                         
1525                                                        
1526                       break;
1527                       }
1528                case  136 : { 
1529                         
1530                                                        
1531                       break;
1532                       }
1533                case  137 : { 
1534                         
1535                                        
1536                       break;
1537                       }
1538                case  138 : { 
1539                         
1540                                        
1541                       break;
1542                       }
1543                case  139 : { 
1544                         
1545                                        
1546                       break;
1547                       }
1548                case  140 : { 
1549                         
1550                                        
1551                       break;
1552                       }
1553                case  141 : { 
1554                         
1555                                        
1556                       break;
1557                       }
1558                case  142 : { 
1559                         
1560                                        
1561                       break;
1562                       }
1563                case  143 : { 
1564                         
1565                                                
1566                       break;
1567                       }
1568                case  144 : { 
1569                         yyval.copy(yyv[yysp-0]);
1570                       break;
1571                       }
1572                case  145 : { 
1573                         yyval.copy(yyv[yysp-0]);
1574                       break;
1575                       }
1576                case  146 : { 
1577                         
1578                                        
1579                       break;
1580                       }
1581                case  147 : { 
1582                         yyval.copy(yyv[yysp-0]);
1583                       break;
1584                       }
1585                case  148 : { 
1586                         yyval.copy(yyv[yysp-0]);
1587                       break;
1588                       }
1589                case  149 : { 
1590                         
1591                                        
1592                       break;
1593                       }
1594                case  150 : { 
1595                         
1596                                        
1597                       break;
1598                       }
1599                case  151 : { 
1600                         
1601                                                
1602                       break;
1603                       }
1604                case  152 : { 
1605                         
1606                                        
1607                       break;
1608                       }
1609                case  153 : { 
1610                         
1611                                        
1612                       break;
1613                       }
1614                case  154 : { 
1615                         
1616                                        
1617                       break;
1618                       }
1619                case  155 : { 
1620                         
1621                                                        
1622                       break;
1623                       }
1624                case  156 : { 
1625                         
1626                                                        
1627                       break;
1628                       }
1629                case  157 : { 
1630                         
1631                                                        
1632                       break;
1633                       }
1634                case  158 : { 
1635                         
1636                                                        
1637                       break;
1638                       }
1639                case  159 : { 
1640                         
1641                                                        
1642                       break;
1643                       }
1644                case  160 : { 
1645                         yyval.copy(yyv[yysp-0]);
1646                       break;
1647                       }
1648                case  161 : { 
1649                         
1650                                                        
1651                       break;
1652                       }
1653                case  162 : { 
1654                         
1655                                                        
1656                       break;
1657                       }
1658                case  163 : { 
1659                         
1660                                                        
1661                       break;
1662                       }
1663                case  164 : { 
1664                         
1665                                                        
1666                       break;
1667                       }
1668                case  165 : { 
1669                         
1670                                                        
1671                       break;
1672                       }
1673                case  166 : { 
1674                         
1675                                                        
1676                       break;
1677                       }
1678                case  167 : { 
1679                         
1680                                                        
1681                       break;
1682                       }
1683                case  168 : { 
1684                         
1685                                        
1686                       break;
1687                       }
1688                case  169 : { 
1689                         
1690                                        
1691                       break;
1692                       }
1693                case  170 : { 
1694                         
1695                                        
1696                       break;
1697                       }
1698                case  171 : { 
1699                         
1700                                        
1701                       break;
1702                       }
1703                case  172 : { 
1704                         
1705                                        
1706                       break;
1707                       }
1708                case  173 : { 
1709                         
1710                                        
1711                       break;
1712                       }
1713                case  174 : { 
1714                         
1715                                        
1716                       break;
1717                       }
1718                case  175 : { 
1719                         
1720                                                
1721                       break;
1722                       }
1723                case  176 : { 
1724                         
1725                                                
1726                       break;
1727                       }
1728                case  177 : { 
1729                         
1730                                                
1731                       break;
1732                       }
1733                case  178 : { 
1734                         
1735                                        
1736                       break;
1737                       }
1738                case  179 : { 
1739                         
1740                                        
1741                       break;
1742                       }
1743                case  180 : { 
1744                         
1745                                        
1746                       break;
1747                       }
1748                case  181 : { 
1749                         
1750                                        
1751                       break;
1752                       }
1753                case  182 : { 
1754                         
1755                                        
1756                       break;
1757                       }
1758                case  183 : { 
1759                         
1760                                        
1761                       break;
1762                       }
1763                case  184 : { 
1764                         
1765                                         
1766                       break;
1767                       }
1768                case  185 : { 
1769                         
1770                                                
1771                       break;
1772                       }
1773                case  186 : { 
1774                         
1775                                                
1776                       break;
1777                       }
1778                case  187 : { 
1779                         
1780                                                  
1781                       break;
1782                       }
1783                case  188 : { 
1784                         
1785                                                  
1786                       break;
1787                       }
1788                case  189 : { 
1789                         
1790                                        
1791                       break;
1792                       }
1793                case  190 : { 
1794                         
1795                                        
1796                       break;
1797                       }
1798                case  191 : { 
1799                         
1800                                        
1801                       break;
1802                       }
1803                case  192 : { 
1804                         
1805                                        
1806                       break;
1807                       }
1808                case  193 : { 
1809                         yyval.copy(yyv[yysp-0]);
1810                       break;
1811                       }
1812                case  194 : { 
1813                         yyval.copy(yyv[yysp-0]);
1814                       break;
1815                       }
1816                case  195 : { 
1817                         yyval.copy(yyv[yysp-0]);
1818                       break;
1819                       }
1820                case  196 : { 
1821                         yyval.copy(yyv[yysp-0]);
1822                       break;
1823                       }
1824                case  197 : { 
1825                         yyval.copy(yyv[yysp-0]);
1826                       break;
1827                       }
1828                case  198 : { 
1829                         yyval.copy(yyv[yysp-0]);
1830                       break;
1831                       }
1832                case  199 : { 
1833                         yyval.copy(yyv[yysp-0]);
1834                       break;
1835                       }
1836                case  200 : { 
1837                         yyval.copy(yyv[yysp-0]);
1838                       break;
1839                       }
1840                case  201 : { 
1841                         
1842                                        
1843                       break;
1844                       }
1845                case  202 : { 
1846                         
1847                                        
1848                       break;
1849                       }
1850                case  203 : { 
1851                         
1852                                        
1853                       break;
1854                       }
1855                case  204 : { 
1856                         
1857                                        
1858                       break;
1859                       }
1860                case  205 : { 
1861                         
1862                                        
1863                       break;
1864                       }
1865                case  206 : { 
1866                         
1867                                        
1868                       break;
1869                       }
1870
1871                }
1872        }
1873        void yyaction_207_413 ( int yyruleno ){
1874                switch(yyruleno){
1875                case  207 : { 
1876                         
1877                                        
1878                       break;
1879                       }
1880                case  208 : { 
1881                         
1882                                        
1883                       break;
1884                       }
1885                case  209 : { 
1886                         
1887                                        
1888                       break;
1889                       }
1890                case  210 : { 
1891                         
1892                                        
1893                       break;
1894                       }
1895                case  211 : { 
1896                         
1897                                        
1898                       break;
1899                       }
1900                case  212 : { 
1901                         
1902                                        
1903                       break;
1904                       }
1905                case  213 : { 
1906                         
1907                                        
1908                       break;
1909                       }
1910                case  214 : { 
1911                         
1912                                        
1913                       break;
1914                       }
1915                case  215 : { 
1916                         
1917                                        
1918                       break;
1919                       }
1920                case  216 : { 
1921                         
1922                                        
1923                       break;
1924                       }
1925                case  217 : { 
1926                         
1927                                        
1928                       break;
1929                       }
1930                case  218 : { 
1931                         
1932                                        
1933                       break;
1934                       }
1935                case  219 : { 
1936                         
1937                                        
1938                       break;
1939                       }
1940                case  220 : { 
1941                         
1942                                        
1943                       break;
1944                       }
1945                case  221 : { 
1946                         
1947                                        
1948                       break;
1949                       }
1950                case  222 : { 
1951                         
1952                                        
1953                       break;
1954                       }
1955                case  223 : { 
1956                         
1957                                        
1958                       break;
1959                       }
1960                case  224 : { 
1961                         
1962                                        
1963                       break;
1964                       }
1965                case  225 : { 
1966                         
1967                                        
1968                       break;
1969                       }
1970                case  226 : { 
1971                         
1972                                        
1973                       break;
1974                       }
1975                case  227 : { 
1976                         
1977                                        
1978                       break;
1979                       }
1980                case  228 : { 
1981                         
1982                                        
1983                       break;
1984                       }
1985                case  229 : { 
1986                         
1987                                        
1988                       break;
1989                       }
1990                case  230 : { 
1991                         
1992                                        
1993                       break;
1994                       }
1995                case  231 : { 
1996                         
1997                                        
1998                       break;
1999                       }
2000                case  232 : { 
2001                         
2002                                        
2003                       break;
2004                       }
2005                case  233 : { 
2006                         
2007                                        
2008                       break;
2009                       }
2010                case  234 : { 
2011                         
2012                                        
2013                       break;
2014                       }
2015                case  235 : { 
2016                         
2017                                        
2018                       break;
2019                       }
2020                case  236 : { 
2021                         
2022                                        
2023                       break;
2024                       }
2025                case  237 : { 
2026                         
2027                                        
2028                       break;
2029                       }
2030                case  238 : { 
2031                         
2032                                        
2033                       break;
2034                       }
2035                case  239 : { 
2036                         
2037                                        
2038                       break;
2039                       }
2040                case  240 : { 
2041                         
2042                                        
2043                       break;
2044                       }
2045                case  241 : { 
2046                         
2047                                        
2048                       break;
2049                       }
2050                case  242 : { 
2051                         
2052                                        
2053                       break;
2054                       }
2055                case  243 : { 
2056                         
2057                                        
2058                       break;
2059                       }
2060                case  244 : { 
2061                         
2062                                        
2063                       break;
2064                       }
2065                case  245 : { 
2066                         
2067                                        
2068                       break;
2069                       }
2070                case  246 : { 
2071                         
2072                                        
2073                       break;
2074                       }
2075                case  247 : { 
2076                         
2077                                        
2078                       break;
2079                       }
2080                case  248 : { 
2081                         
2082                                        
2083                       break;
2084                       }
2085                case  249 : { 
2086                         
2087                                        
2088                       break;
2089                       }
2090                case  250 : { 
2091                         
2092                                        
2093                       break;
2094                       }
2095                case  251 : { 
2096                         
2097                                        
2098                       break;
2099                       }
2100                case  252 : { 
2101                         
2102                                        
2103                       break;
2104                       }
2105                case  253 : { 
2106                         
2107                                        
2108                       break;
2109                       }
2110                case  254 : { 
2111                         
2112                                        
2113                       break;
2114                       }
2115                case  255 : { 
2116                         
2117                                        
2118                       break;
2119                       }
2120                case  256 : { 
2121                         
2122                                        
2123                       break;
2124                       }
2125                case  257 : { 
2126                         
2127                                        
2128                       break;
2129                       }
2130                case  258 : { 
2131                         
2132                                        
2133                       break;
2134                       }
2135                case  259 : { 
2136                         
2137                                        
2138                       break;
2139                       }
2140                case  260 : { 
2141                         
2142                                        
2143                       break;
2144                       }
2145                case  261 : { 
2146                         
2147                                        
2148                       break;
2149                       }
2150                case  262 : { 
2151                         
2152                         
2153                       break;
2154                       }
2155                case  263 : { 
2156                         
2157                         
2158                       break;
2159                       }
2160                case  264 : { 
2161                         
2162                                
2163                       break;
2164                       }
2165                case  265 : { 
2166                         yyval.copy(yyv[yysp-0]);
2167                       break;
2168                       }
2169                case  266 : { 
2170                         yyval.copy(yyv[yysp-0]);
2171                       break;
2172                       }
2173                case  267 : { 
2174                         yyval.copy(yyv[yysp-0]);
2175                       break;
2176                       }
2177                case  268 : { 
2178                         yyval.copy(yyv[yysp-0]);
2179                       break;
2180                       }
2181                case  269 : { 
2182                         yyval.copy(yyv[yysp-0]);
2183                       break;
2184                       }
2185                case  270 : { 
2186                         yyval.copy(yyv[yysp-0]);
2187                       break;
2188                       }
2189                case  271 : { 
2190                         yyval.copy(yyv[yysp-0]);
2191                       break;
2192                       }
2193                case  272 : { 
2194                         yyval.copy(yyv[yysp-0]);
2195                       break;
2196                       }
2197                case  273 : { 
2198                         yyval.copy(yyv[yysp-0]);
2199                       break;
2200                       }
2201                case  274 : { 
2202                         yyval.copy(yyv[yysp-0]);
2203                       break;
2204                       }
2205                case  275 : { 
2206                         yyval.copy(yyv[yysp-0]);
2207                       break;
2208                       }
2209                case  276 : { 
2210                         yyval.copy(yyv[yysp-0]);
2211                       break;
2212                       }
2213                case  277 : { 
2214                         yyval.copy(yyv[yysp-0]);
2215                       break;
2216                       }
2217                case  278 : { 
2218                         yyval.copy(yyv[yysp-0]);
2219                       break;
2220                       }
2221                case  279 : { 
2222                         yyval.copy(yyv[yysp-0]);
2223                       break;
2224                       }
2225                case  280 : { 
2226                         
2227                                
2228                       break;
2229                       }
2230                case  281 : { 
2231                         
2232                                        
2233                       break;
2234                       }
2235                case  282 : { 
2236                         
2237                                        
2238                       break;
2239                       }
2240                case  283 : { 
2241                         
2242                                        
2243                       break;
2244                       }
2245                case  284 : { 
2246                         
2247                                        
2248                       break;
2249                       }
2250                case  285 : { 
2251                         
2252                                        
2253                       break;
2254                       }
2255                case  286 : { 
2256                         
2257                                        
2258                       break;
2259                       }
2260                case  287 : { 
2261                         
2262                                        
2263                       break;
2264                       }
2265                case  288 : { 
2266                         
2267                                        
2268                       break;
2269                       }
2270                case  289 : { 
2271                         
2272                                        
2273                       break;
2274                       }
2275                case  290 : { 
2276                         
2277                                        
2278                       break;
2279                       }
2280                case  291 : { 
2281                         
2282                                        
2283                       break;
2284                       }
2285                case  292 : { 
2286                         
2287                                        
2288                       break;
2289                       }
2290                case  293 : { 
2291                         
2292                                        
2293                       break;
2294                       }
2295                case  294 : { 
2296                         
2297                                        
2298                       break;
2299                       }
2300                case  295 : { 
2301                         
2302                                        
2303                       break;
2304                       }
2305                case  296 : { 
2306                         
2307                                        
2308                       break;
2309                       }
2310                case  297 : { 
2311                         yyval.copy(yyv[yysp-2]);
2312                       break;
2313                       }
2314                case  298 : { 
2315                         yyval.copy(yyv[yysp-2]);
2316                       break;
2317                       }
2318                case  299 : { 
2319                         
2320                                        
2321                       break;
2322                       }
2323                case  300 : { 
2324                         
2325                                        
2326                       break;
2327                       }
2328                case  301 : { 
2329                         
2330                                        
2331                       break;
2332                       }
2333                case  302 : { 
2334                         
2335                                        
2336                       break;
2337                       }
2338                case  303 : { 
2339                         
2340                                        
2341                       break;
2342                       }
2343                case  304 : { 
2344                         
2345                                        
2346                       break;
2347                       }
2348                case  305 : { 
2349                         
2350                                        
2351                       break;
2352                       }
2353                case  306 : { 
2354                         
2355                                          
2356                       break;
2357                       }
2358                case  307 : { 
2359                         
2360                                          
2361                       break;
2362                       }
2363                case  308 : { 
2364                         
2365                                          
2366                       break;
2367                       }
2368                case  309 : { 
2369                         
2370                                          
2371                       break;
2372                       }
2373                case  310 : { 
2374                         
2375                                          
2376                       break;
2377                       }
2378                case  311 : { 
2379                         
2380                                          
2381                       break;
2382                       }
2383                case  312 : { 
2384                         
2385                                        
2386                       break;
2387                       }
2388                case  313 : { 
2389                         
2390                                        
2391                       break;
2392                       }
2393                case  314 : { 
2394                         
2395                                        
2396                       break;
2397                       }
2398                case  315 : { 
2399                         
2400                                        
2401                       break;
2402                       }
2403                case  316 : { 
2404                         yyval.copy(yyv[yysp-0]);
2405                       break;
2406                       }
2407                case  317 : { 
2408                         
2409                                        
2410                       break;
2411                       }
2412                case  318 : { 
2413                         
2414                                        
2415                       break;
2416                       }
2417                case  319 : { 
2418                         
2419                                        
2420                       break;
2421                       }
2422                case  320 : { 
2423                         
2424                                        
2425                       break;
2426                       }
2427                case  321 : { 
2428                         
2429                                        
2430                       break;
2431                       }
2432                case  322 : { 
2433                         
2434                                        
2435                       break;
2436                       }
2437                case  323 : { 
2438                         
2439                                        
2440                       break;
2441                       }
2442                case  324 : { 
2443                         
2444                                        
2445                       break;
2446                       }
2447                case  325 : { 
2448                         
2449                                        
2450                       break;
2451                       }
2452                case  326 : { 
2453                         
2454                                        
2455                       break;
2456                       }
2457                case  327 : { 
2458                         
2459                                        
2460                       break;
2461                       }
2462                case  328 : { 
2463                         
2464                                        
2465                       break;
2466                       }
2467                case  329 : { 
2468                         
2469                                        
2470                       break;
2471                       }
2472                case  330 : { 
2473                         
2474                                        
2475                       break;
2476                       }
2477                case  331 : { 
2478                         
2479                                        
2480                       break;
2481                       }
2482                case  332 : { 
2483                         
2484                                        
2485                       break;
2486                       }
2487                case  333 : { 
2488                         yyval.copy(yyv[yysp-2]);
2489                       break;
2490                       }
2491                case  334 : { 
2492                         yyval.copy(yyv[yysp-2]);
2493                       break;
2494                       }
2495                case  335 : { 
2496                         
2497                                        
2498                       break;
2499                       }
2500                case  336 : { 
2501                         
2502                                        
2503                       break;
2504                       }
2505                case  337 : { 
2506                         
2507                                        
2508                       break;
2509                       }
2510                case  338 : { 
2511                         
2512                                        
2513                       break;
2514                       }
2515                case  339 : { 
2516                         
2517                                        
2518                       break;
2519                       }
2520                case  340 : { 
2521                         
2522                                        
2523                       break;
2524                       }
2525                case  341 : { 
2526                         
2527                                          
2528                       break;
2529                       }
2530                case  342 : { 
2531                         
2532                                        
2533                       break;
2534                       }
2535                case  343 : { 
2536                         
2537                                        
2538                       break;
2539                       }
2540                case  344 : { 
2541                         
2542                         
2543                       break;
2544                       }
2545                case  345 : { 
2546                         
2547                                        
2548                       break;
2549                       }
2550                case  346 : { 
2551                         yyval.copy(yyv[yysp-0]);
2552                       break;
2553                       }
2554                case  347 : { 
2555                         
2556                                        
2557                       break;
2558                       }
2559                case  348 : { 
2560                         
2561                                        
2562                       break;
2563                       }
2564                case  349 : { 
2565                         
2566                                        
2567                       break;
2568                       }
2569                case  350 : { 
2570                         
2571                                        
2572                       break;
2573                       }
2574                case  351 : { 
2575                         
2576                                        
2577                       break;
2578                       }
2579                case  352 : { 
2580                         yyval.copy(yyv[yysp-0]);
2581                       break;
2582                       }
2583                case  353 : { 
2584                         yyval.copy(yyv[yysp-0]);
2585                       break;
2586                       }
2587                case  354 : { 
2588                         yyval.copy(yyv[yysp-0]);
2589                       break;
2590                       }
2591                case  355 : { 
2592                         yyval.copy(yyv[yysp-0]);
2593                       break;
2594                       }
2595                case  356 : { 
2596                         yyval.copy(yyv[yysp-0]);
2597                       break;
2598                       }
2599                case  357 : { 
2600                         yyval.copy(yyv[yysp-0]);
2601                       break;
2602                       }
2603                case  358 : { 
2604                         yyval.copy(yyv[yysp-0]);
2605                       break;
2606                       }
2607                case  359 : { 
2608                         yyval.copy(yyv[yysp-0]);
2609                       break;
2610                       }
2611                case  360 : { 
2612                         
2613                                
2614                       break;
2615                       }
2616                case  361 : { 
2617                         yyval.copy(yyv[yysp-0]);
2618                       break;
2619                       }
2620                case  362 : { 
2621                         yyval.copy(yyv[yysp-0]);
2622                       break;
2623                       }
2624                case  363 : { 
2625                         
2626                                        
2627                       break;
2628                       }
2629                case  364 : { 
2630                         
2631                                        
2632                       break;
2633                       }
2634                case  365 : { 
2635                         
2636                                        
2637                       break;
2638                       }
2639                case  366 : { 
2640                         
2641                                        
2642                       break;
2643                       }
2644                case  367 : { 
2645                         
2646                                        
2647                       break;
2648                       }
2649                case  368 : { 
2650                         
2651                                        
2652                       break;
2653                       }
2654                case  369 : { 
2655                         
2656                                        
2657                       break;
2658                       }
2659                case  370 : { 
2660                         
2661                                        
2662                       break;
2663                       }
2664                case  371 : { 
2665                         
2666                                        
2667                       break;
2668                       }
2669                case  372 : { 
2670                         
2671                                        
2672                       break;
2673                       }
2674                case  373 : { 
2675                         
2676                                        
2677                       break;
2678                       }
2679                case  374 : { 
2680                         yyval.copy(yyv[yysp-0]);
2681                       break;
2682                       }
2683                case  375 : { 
2684                         
2685                                        
2686                       break;
2687                       }
2688                case  376 : { 
2689                         
2690                                        
2691                       break;
2692                       }
2693                case  377 : { 
2694                         
2695                                        
2696                       break;
2697                       }
2698                case  378 : { 
2699                         
2700                                        
2701                       break;
2702                       }
2703                case  379 : { 
2704                         
2705                                        
2706                       break;
2707                       }
2708                case  380 : { 
2709                         
2710                                        
2711                       break;
2712                       }
2713                case  381 : { 
2714                         
2715                                        
2716                       break;
2717                       }
2718                case  382 : { 
2719                         
2720                                        
2721                       break;
2722                       }
2723                case  383 : { 
2724                         
2725                                        
2726                       break;
2727                       }
2728                case  384 : { 
2729                         
2730                                        
2731                       break;
2732                       }
2733                case  385 : { 
2734                         
2735                                        
2736                       break;
2737                       }
2738                case  386 : { 
2739                         
2740                                                
2741                       break;
2742                       }
2743                case  387 : { 
2744                         
2745                                                
2746                       break;
2747                       }
2748                case  388 : { 
2749                         
2750                                                
2751                       break;
2752                       }
2753                case  389 : { 
2754                         yyval.copy(yyv[yysp-0]);
2755                       break;
2756                       }
2757                case  390 : { 
2758                         
2759                                          
2760                       break;
2761                       }
2762                case  391 : { 
2763                         
2764                                          
2765                       break;
2766                       }
2767                case  392 : { 
2768                         
2769                                          
2770                       break;
2771                       }
2772                case  393 : { 
2773                         
2774                                          
2775                       break;
2776                       }
2777                case  394 : { 
2778                         
2779                                          
2780                       break;
2781                       }
2782                case  395 : { 
2783                         
2784                                          
2785                       break;
2786                       }
2787                case  396 : { 
2788                         
2789                                        
2790                       break;
2791                       }
2792                case  397 : { 
2793                         
2794                                        
2795                       break;
2796                       }
2797                case  398 : { 
2798                         
2799                                        
2800                       break;
2801                       }
2802                case  399 : { 
2803                         
2804                                        
2805                       break;
2806                       }
2807                case  400 : { 
2808                         
2809                                        
2810                       break;
2811                       }
2812                case  401 : { 
2813                         
2814                                        
2815                       break;
2816                       }
2817                case  402 : { 
2818                         
2819                                        
2820                       break;
2821                       }
2822                case  403 : { 
2823                         
2824                                        
2825                       break;
2826                       }
2827                case  404 : { 
2828                         
2829                                        
2830                       break;
2831                       }
2832                case  405 : { 
2833                         
2834                                        
2835                       break;
2836                       }
2837                case  406 : { 
2838                         
2839                                        
2840                       break;
2841                       }
2842                case  407 : { 
2843                         
2844                                        
2845                       break;
2846                       }
2847                case  408 : { 
2848                         
2849                                        
2850                       break;
2851                       }
2852                case  409 : { 
2853                         
2854                                        
2855                       break;
2856                       }
2857                case  410 : { 
2858                         
2859                                        
2860                       break;
2861                       }
2862                case  411 : { 
2863                         
2864                                        
2865                       break;
2866                       }
2867                case  412 : { 
2868                         yyval.copy(yyv[yysp-2]);
2869                       break;
2870                       }
2871                case  413 : { 
2872                         yyval.copy(yyv[yysp-2]);
2873                       break;
2874                       }
2875
2876                }
2877        }
2878        void yyaction_414_662 ( int yyruleno ){
2879                switch(yyruleno){
2880                case  414 : { 
2881                         
2882                                        
2883                       break;
2884                       }
2885                case  415 : { 
2886                         
2887                                                
2888                       break;
2889                       }
2890                case  416 : { 
2891                         
2892                                                
2893                       break;
2894                       }
2895                case  417 : { 
2896                         
2897                                                
2898                       break;
2899                       }
2900                case  418 : { 
2901                         
2902                                                
2903                       break;
2904                       }
2905                case  419 : { 
2906                         yyval.copy(yyv[yysp-0]);
2907                       break;
2908                       }
2909                case  420 : { 
2910                         yyval.copy(yyv[yysp-0]);
2911                       break;
2912                       }
2913                case  421 : { 
2914                         yyval.copy(yyv[yysp-0]);
2915                       break;
2916                       }
2917                case  422 : { 
2918                         yyval.copy(yyv[yysp-0]);
2919                       break;
2920                       }
2921                case  423 : { 
2922                         yyval.copy(yyv[yysp-0]);
2923                       break;
2924                       }
2925                case  424 : { 
2926                         yyval.copy(yyv[yysp-0]);
2927                       break;
2928                       }
2929                case  425 : { 
2930                         yyval.copy(yyv[yysp-0]);
2931                       break;
2932                       }
2933                case  426 : { 
2934                         yyval.copy(yyv[yysp-0]);
2935                       break;
2936                       }
2937                case  427 : { 
2938                         yyval.copy(yyv[yysp-0]);
2939                       break;
2940                       }
2941                case  428 : { 
2942                         yyval.copy(yyv[yysp-0]);
2943                       break;
2944                       }
2945                case  429 : { 
2946                         yyval.copy(yyv[yysp-0]);
2947                       break;
2948                       }
2949                case  430 : { 
2950                         yyval.copy(yyv[yysp-0]);
2951                       break;
2952                       }
2953                case  431 : { 
2954                         yyval.copy(yyv[yysp-0]);
2955                       break;
2956                       }
2957                case  432 : { 
2958                         yyval.copy(yyv[yysp-0]);
2959                       break;
2960                       }
2961                case  433 : { 
2962                         yyval.copy(yyv[yysp-0]);
2963                       break;
2964                       }
2965                case  434 : { 
2966                         yyval.copy(yyv[yysp-0]);
2967                       break;
2968                       }
2969                case  435 : { 
2970                         
2971                                        
2972                       break;
2973                       }
2974                case  436 : { 
2975                         
2976                                        
2977                       break;
2978                       }
2979                case  437 : { 
2980                         yyval.copy(yyv[yysp-0]);
2981                       break;
2982                       }
2983                case  438 : { 
2984                         yyval.copy(yyv[yysp-0]);
2985                       break;
2986                       }
2987                case  439 : { 
2988                         yyval.copy(yyv[yysp-0]);
2989                       break;
2990                       }
2991                case  440 : { 
2992                         yyval.copy(yyv[yysp-0]);
2993                       break;
2994                       }
2995                case  441 : { 
2996                         yyval.copy(yyv[yysp-0]);
2997                       break;
2998                       }
2999                case  442 : { 
3000                         yyval.copy(yyv[yysp-0]);
3001                       break;
3002                       }
3003                case  443 : { 
3004                         yyval.copy(yyv[yysp-0]);
3005                       break;
3006                       }
3007                case  444 : { 
3008                         yyval.copy(yyv[yysp-0]);
3009                       break;
3010                       }
3011                case  445 : { 
3012                         yyval.copy(yyv[yysp-0]);
3013                       break;
3014                       }
3015                case  446 : { 
3016                         yyval.copy(yyv[yysp-0]);
3017                       break;
3018                       }
3019                case  447 : { 
3020                         yyval.copy(yyv[yysp-0]);
3021                       break;
3022                       }
3023                case  448 : { 
3024                         yyval.copy(yyv[yysp-0]);
3025                       break;
3026                       }
3027                case  449 : { 
3028                         yyval.copy(yyv[yysp-0]);
3029                       break;
3030                       }
3031                case  450 : { 
3032                         yyval.copy(yyv[yysp-0]);
3033                       break;
3034                       }
3035                case  451 : { 
3036                         yyval.copy(yyv[yysp-0]);
3037                       break;
3038                       }
3039                case  452 : { 
3040                         yyval.copy(yyv[yysp-0]);
3041                       break;
3042                       }
3043                case  453 : { 
3044                         yyval.copy(yyv[yysp-0]);
3045                       break;
3046                       }
3047                case  454 : { 
3048                         yyval.copy(yyv[yysp-0]);
3049                       break;
3050                       }
3051                case  455 : { 
3052                         yyval.copy(yyv[yysp-0]);
3053                       break;
3054                       }
3055                case  456 : { 
3056                         yyval.copy(yyv[yysp-0]);
3057                       break;
3058                       }
3059                case  457 : { 
3060                         yyval.copy(yyv[yysp-0]);
3061                       break;
3062                       }
3063                case  458 : { 
3064                         yyval.copy(yyv[yysp-0]);
3065                       break;
3066                       }
3067                case  459 : { 
3068                         yyval.copy(yyv[yysp-0]);
3069                       break;
3070                       }
3071                case  460 : { 
3072                         yyval.copy(yyv[yysp-0]);
3073                       break;
3074                       }
3075                case  461 : { 
3076                         yyval.copy(yyv[yysp-0]);
3077                       break;
3078                       }
3079                case  462 : { 
3080                         yyval.copy(yyv[yysp-0]);
3081                       break;
3082                       }
3083                case  463 : { 
3084                         yyval.copy(yyv[yysp-0]);
3085                       break;
3086                       }
3087                case  464 : { 
3088                         yyval.copy(yyv[yysp-0]);
3089                       break;
3090                       }
3091                case  465 : { 
3092                         yyval.copy(yyv[yysp-0]);
3093                       break;
3094                       }
3095                case  466 : { 
3096                         yyval.copy(yyv[yysp-0]);
3097                       break;
3098                       }
3099                case  467 : { 
3100                         yyval.copy(yyv[yysp-0]);
3101                       break;
3102                       }
3103                case  468 : { 
3104                         yyval.copy(yyv[yysp-0]);
3105                       break;
3106                       }
3107                case  469 : { 
3108                         yyval.copy(yyv[yysp-0]);
3109                       break;
3110                       }
3111                case  470 : { 
3112                         yyval.copy(yyv[yysp-0]);
3113                       break;
3114                       }
3115                case  471 : { 
3116                         yyval.copy(yyv[yysp-0]);
3117                       break;
3118                       }
3119                case  472 : { 
3120                         yyval.copy(yyv[yysp-0]);
3121                       break;
3122                       }
3123                case  473 : { 
3124                         yyval.copy(yyv[yysp-0]);
3125                       break;
3126                       }
3127                case  474 : { 
3128                         yyval.copy(yyv[yysp-0]);
3129                       break;
3130                       }
3131                case  475 : { 
3132                         yyval.copy(yyv[yysp-0]);
3133                       break;
3134                       }
3135                case  476 : { 
3136                         yyval.copy(yyv[yysp-0]);
3137                       break;
3138                       }
3139                case  477 : { 
3140                         yyval.copy(yyv[yysp-0]);
3141                       break;
3142                       }
3143                case  478 : { 
3144                         yyval.copy(yyv[yysp-0]);
3145                       break;
3146                       }
3147                case  479 : { 
3148                         yyval.copy(yyv[yysp-0]);
3149                       break;
3150                       }
3151                case  480 : { 
3152                         yyval.copy(yyv[yysp-0]);
3153                       break;
3154                       }
3155                case  481 : { 
3156                         yyval.copy(yyv[yysp-0]);
3157                       break;
3158                       }
3159                case  482 : { 
3160                         yyval.copy(yyv[yysp-0]);
3161                       break;
3162                       }
3163                case  483 : { 
3164                         yyval.copy(yyv[yysp-0]);
3165                       break;
3166                       }
3167                case  484 : { 
3168                         yyval.copy(yyv[yysp-0]);
3169                       break;
3170                       }
3171                case  485 : { 
3172                         yyval.copy(yyv[yysp-0]);
3173                       break;
3174                       }
3175                case  486 : { 
3176                         yyval.copy(yyv[yysp-0]);
3177                       break;
3178                       }
3179                case  487 : { 
3180                         yyval.copy(yyv[yysp-0]);
3181                       break;
3182                       }
3183                case  488 : { 
3184                         yyval.copy(yyv[yysp-0]);
3185                       break;
3186                       }
3187                case  489 : { 
3188                         yyval.copy(yyv[yysp-0]);
3189                       break;
3190                       }
3191                case  490 : { 
3192                         yyval.copy(yyv[yysp-0]);
3193                       break;
3194                       }
3195                case  491 : { 
3196                         yyval.copy(yyv[yysp-0]);
3197                       break;
3198                       }
3199                case  492 : { 
3200                         yyval.copy(yyv[yysp-0]);
3201                       break;
3202                       }
3203                case  493 : { 
3204                         yyval.copy(yyv[yysp-0]);
3205                       break;
3206                       }
3207                case  494 : { 
3208                         yyval.copy(yyv[yysp-0]);
3209                       break;
3210                       }
3211                case  495 : { 
3212                         yyval.copy(yyv[yysp-0]);
3213                       break;
3214                       }
3215                case  496 : { 
3216                         yyval.copy(yyv[yysp-0]);
3217                       break;
3218                       }
3219                case  497 : { 
3220                         yyval.copy(yyv[yysp-0]);
3221                       break;
3222                       }
3223                case  498 : { 
3224                         yyval.copy(yyv[yysp-0]);
3225                       break;
3226                       }
3227                case  499 : { 
3228                         yyval.copy(yyv[yysp-0]);
3229                       break;
3230                       }
3231                case  500 : { 
3232                         yyval.copy(yyv[yysp-0]);
3233                       break;
3234                       }
3235                case  501 : { 
3236                         yyval.copy(yyv[yysp-0]);
3237                       break;
3238                       }
3239                case  502 : { 
3240                         yyval.copy(yyv[yysp-0]);
3241                       break;
3242                       }
3243                case  503 : { 
3244                         yyval.copy(yyv[yysp-0]);
3245                       break;
3246                       }
3247                case  504 : { 
3248                         yyval.copy(yyv[yysp-0]);
3249                       break;
3250                       }
3251                case  505 : { 
3252                         yyval.copy(yyv[yysp-0]);
3253                       break;
3254                       }
3255                case  506 : { 
3256                         yyval.copy(yyv[yysp-0]);
3257                       break;
3258                       }
3259                case  507 : { 
3260                         yyval.copy(yyv[yysp-0]);
3261                       break;
3262                       }
3263                case  508 : { 
3264                         yyval.copy(yyv[yysp-0]);
3265                       break;
3266                       }
3267                case  509 : { 
3268                         yyval.copy(yyv[yysp-0]);
3269                       break;
3270                       }
3271                case  510 : { 
3272                         yyval.copy(yyv[yysp-0]);
3273                       break;
3274                       }
3275                case  511 : { 
3276                         yyval.copy(yyv[yysp-0]);
3277                       break;
3278                       }
3279                case  512 : { 
3280                         yyval.copy(yyv[yysp-0]);
3281                       break;
3282                       }
3283                case  513 : { 
3284                         yyval.copy(yyv[yysp-0]);
3285                       break;
3286                       }
3287                case  514 : { 
3288                         yyval.copy(yyv[yysp-0]);
3289                       break;
3290                       }
3291                case  515 : { 
3292                         yyval.copy(yyv[yysp-0]);
3293                       break;
3294                       }
3295                case  516 : { 
3296                         yyval.copy(yyv[yysp-0]);
3297                       break;
3298                       }
3299                case  517 : { 
3300                         yyval.copy(yyv[yysp-0]);
3301                       break;
3302                       }
3303                case  518 : { 
3304                         yyval.copy(yyv[yysp-0]);
3305                       break;
3306                       }
3307                case  519 : { 
3308                         yyval.copy(yyv[yysp-0]);
3309                       break;
3310                       }
3311                case  520 : { 
3312                         yyval.copy(yyv[yysp-0]);
3313                       break;
3314                       }
3315                case  521 : { 
3316                         yyval.copy(yyv[yysp-0]);
3317                       break;
3318                       }
3319                case  522 : { 
3320                         yyval.copy(yyv[yysp-0]);
3321                       break;
3322                       }
3323                case  523 : { 
3324                         yyval.copy(yyv[yysp-0]);
3325                       break;
3326                       }
3327                case  524 : { 
3328                         yyval.copy(yyv[yysp-0]);
3329                       break;
3330                       }
3331                case  525 : { 
3332                         yyval.copy(yyv[yysp-0]);
3333                       break;
3334                       }
3335                case  526 : { 
3336                         yyval.copy(yyv[yysp-0]);
3337                       break;
3338                       }
3339                case  527 : { 
3340                         yyval.copy(yyv[yysp-0]);
3341                       break;
3342                       }
3343                case  528 : { 
3344                         yyval.copy(yyv[yysp-0]);
3345                       break;
3346                       }
3347                case  529 : { 
3348                         yyval.copy(yyv[yysp-0]);
3349                       break;
3350                       }
3351                case  530 : { 
3352                         yyval.copy(yyv[yysp-0]);
3353                       break;
3354                       }
3355                case  531 : { 
3356                         yyval.copy(yyv[yysp-0]);
3357                       break;
3358                       }
3359                case  532 : { 
3360                         yyval.copy(yyv[yysp-0]);
3361                       break;
3362                       }
3363                case  533 : { 
3364                         yyval.copy(yyv[yysp-0]);
3365                       break;
3366                       }
3367                case  534 : { 
3368                         yyval.copy(yyv[yysp-0]);
3369                       break;
3370                       }
3371                case  535 : { 
3372                         yyval.copy(yyv[yysp-0]);
3373                       break;
3374                       }
3375                case  536 : { 
3376                         yyval.copy(yyv[yysp-0]);
3377                       break;
3378                       }
3379                case  537 : { 
3380                         yyval.copy(yyv[yysp-0]);
3381                       break;
3382                       }
3383                case  538 : { 
3384                         yyval.copy(yyv[yysp-0]);
3385                       break;
3386                       }
3387                case  539 : { 
3388                         yyval.copy(yyv[yysp-0]);
3389                       break;
3390                       }
3391                case  540 : { 
3392                         yyval.copy(yyv[yysp-0]);
3393                       break;
3394                       }
3395                case  541 : { 
3396                         yyval.copy(yyv[yysp-0]);
3397                       break;
3398                       }
3399                case  542 : { 
3400                         yyval.copy(yyv[yysp-0]);
3401                       break;
3402                       }
3403                case  543 : { 
3404                         yyval.copy(yyv[yysp-0]);
3405                       break;
3406                       }
3407                case  544 : { 
3408                         yyval.copy(yyv[yysp-0]);
3409                       break;
3410                       }
3411                case  545 : { 
3412                         yyval.copy(yyv[yysp-0]);
3413                       break;
3414                       }
3415                case  546 : { 
3416                         yyval.copy(yyv[yysp-0]);
3417                       break;
3418                       }
3419                case  547 : { 
3420                         yyval.copy(yyv[yysp-0]);
3421                       break;
3422                       }
3423                case  548 : { 
3424                         yyval.copy(yyv[yysp-0]);
3425                       break;
3426                       }
3427                case  549 : { 
3428                         yyval.copy(yyv[yysp-0]);
3429                       break;
3430                       }
3431                case  550 : { 
3432                         yyval.copy(yyv[yysp-0]);
3433                       break;
3434                       }
3435                case  551 : { 
3436                         yyval.copy(yyv[yysp-0]);
3437                       break;
3438                       }
3439                case  552 : { 
3440                         yyval.copy(yyv[yysp-0]);
3441                       break;
3442                       }
3443                case  553 : { 
3444                         yyval.copy(yyv[yysp-0]);
3445                       break;
3446                       }
3447                case  554 : { 
3448                         yyval.copy(yyv[yysp-0]);
3449                       break;
3450                       }
3451                case  555 : { 
3452                         yyval.copy(yyv[yysp-0]);
3453                       break;
3454                       }
3455                case  556 : { 
3456                         yyval.copy(yyv[yysp-0]);
3457                       break;
3458                       }
3459                case  557 : { 
3460                         yyval.copy(yyv[yysp-0]);
3461                       break;
3462                       }
3463                case  558 : { 
3464                         yyval.copy(yyv[yysp-0]);
3465                       break;
3466                       }
3467                case  559 : { 
3468                         yyval.copy(yyv[yysp-0]);
3469                       break;
3470                       }
3471                case  560 : { 
3472                         yyval.copy(yyv[yysp-0]);
3473                       break;
3474                       }
3475                case  561 : { 
3476                         yyval.copy(yyv[yysp-0]);
3477                       break;
3478                       }
3479                case  562 : { 
3480                         yyval.copy(yyv[yysp-0]);
3481                       break;
3482                       }
3483                case  563 : { 
3484                         yyval.copy(yyv[yysp-0]);
3485                       break;
3486                       }
3487                case  564 : { 
3488                         yyval.copy(yyv[yysp-0]);
3489                       break;
3490                       }
3491                case  565 : { 
3492                         yyval.copy(yyv[yysp-0]);
3493                       break;
3494                       }
3495                case  566 : { 
3496                         yyval.copy(yyv[yysp-0]);
3497                       break;
3498                       }
3499                case  567 : { 
3500                         yyval.copy(yyv[yysp-0]);
3501                       break;
3502                       }
3503                case  568 : { 
3504                         yyval.copy(yyv[yysp-0]);
3505                       break;
3506                       }
3507                case  569 : { 
3508                         yyval.copy(yyv[yysp-0]);
3509                       break;
3510                       }
3511                case  570 : { 
3512                         yyval.copy(yyv[yysp-0]);
3513                       break;
3514                       }
3515                case  571 : { 
3516                         yyval.copy(yyv[yysp-0]);
3517                       break;
3518                       }
3519                case  572 : { 
3520                         yyval.copy(yyv[yysp-0]);
3521                       break;
3522                       }
3523                case  573 : { 
3524                         yyval.copy(yyv[yysp-0]);
3525                       break;
3526                       }
3527                case  574 : { 
3528                         yyval.copy(yyv[yysp-0]);
3529                       break;
3530                       }
3531                case  575 : { 
3532                         yyval.copy(yyv[yysp-0]);
3533                       break;
3534                       }
3535                case  576 : { 
3536                         yyval.copy(yyv[yysp-0]);
3537                       break;
3538                       }
3539                case  577 : { 
3540                         yyval.copy(yyv[yysp-0]);
3541                       break;
3542                       }
3543                case  578 : { 
3544                         yyval.copy(yyv[yysp-0]);
3545                       break;
3546                       }
3547                case  579 : { 
3548                         yyval.copy(yyv[yysp-0]);
3549                       break;
3550                       }
3551                case  580 : { 
3552                         yyval.copy(yyv[yysp-0]);
3553                       break;
3554                       }
3555                case  581 : { 
3556                         yyval.copy(yyv[yysp-0]);
3557                       break;
3558                       }
3559                case  582 : { 
3560                         yyval.copy(yyv[yysp-0]);
3561                       break;
3562                       }
3563                case  583 : { 
3564                         yyval.copy(yyv[yysp-0]);
3565                       break;
3566                       }
3567                case  584 : { 
3568                         yyval.copy(yyv[yysp-0]);
3569                       break;
3570                       }
3571                case  585 : { 
3572                         yyval.copy(yyv[yysp-0]);
3573                       break;
3574                       }
3575                case  586 : { 
3576                         yyval.copy(yyv[yysp-0]);
3577                       break;
3578                       }
3579                case  587 : { 
3580                         yyval.copy(yyv[yysp-0]);
3581                       break;
3582                       }
3583                case  588 : { 
3584                         yyval.copy(yyv[yysp-0]);
3585                       break;
3586                       }
3587                case  589 : { 
3588                         yyval.copy(yyv[yysp-0]);
3589                       break;
3590                       }
3591                case  590 : { 
3592                         yyval.copy(yyv[yysp-0]);
3593                       break;
3594                       }
3595                case  591 : { 
3596                         yyval.copy(yyv[yysp-0]);
3597                       break;
3598                       }
3599                case  592 : { 
3600                         yyval.copy(yyv[yysp-0]);
3601                       break;
3602                       }
3603                case  593 : { 
3604                         yyval.copy(yyv[yysp-0]);
3605                       break;
3606                       }
3607                case  594 : { 
3608                         yyval.copy(yyv[yysp-0]);
3609                       break;
3610                       }
3611                case  595 : { 
3612                         yyval.copy(yyv[yysp-0]);
3613                       break;
3614                       }
3615                case  596 : { 
3616                         yyval.copy(yyv[yysp-0]);
3617                       break;
3618                       }
3619                case  597 : { 
3620                         yyval.copy(yyv[yysp-0]);
3621                       break;
3622                       }
3623                case  598 : { 
3624                         yyval.copy(yyv[yysp-0]);
3625                       break;
3626                       }
3627                case  599 : { 
3628                         yyval.copy(yyv[yysp-0]);
3629                       break;
3630                       }
3631                case  600 : { 
3632                         yyval.copy(yyv[yysp-0]);
3633                       break;
3634                       }
3635                case  601 : { 
3636                         yyval.copy(yyv[yysp-0]);
3637                       break;
3638                       }
3639                case  602 : { 
3640                         yyval.copy(yyv[yysp-0]);
3641                       break;
3642                       }
3643                case  603 : { 
3644                         yyval.copy(yyv[yysp-0]);
3645                       break;
3646                       }
3647                case  604 : { 
3648                         yyval.copy(yyv[yysp-0]);
3649                       break;
3650                       }
3651                case  605 : { 
3652                         yyval.copy(yyv[yysp-0]);
3653                       break;
3654                       }
3655                case  606 : { 
3656                         yyval.copy(yyv[yysp-0]);
3657                       break;
3658                       }
3659                case  607 : { 
3660                         yyval.copy(yyv[yysp-0]);
3661                       break;
3662                       }
3663                case  608 : { 
3664                         yyval.copy(yyv[yysp-0]);
3665                       break;
3666                       }
3667                case  609 : { 
3668                         yyval.copy(yyv[yysp-0]);
3669                       break;
3670                       }
3671                case  610 : { 
3672                         yyval.copy(yyv[yysp-0]);
3673                       break;
3674                       }
3675                case  611 : { 
3676                         yyval.copy(yyv[yysp-0]);
3677                       break;
3678                       }
3679                case  612 : { 
3680                         yyval.copy(yyv[yysp-0]);
3681                       break;
3682                       }
3683                case  613 : { 
3684                         yyval.copy(yyv[yysp-0]);
3685                       break;
3686                       }
3687                case  614 : { 
3688                         yyval.copy(yyv[yysp-0]);
3689                       break;
3690                       }
3691                case  615 : { 
3692                         yyval.copy(yyv[yysp-0]);
3693                       break;
3694                       }
3695                case  616 : { 
3696                         yyval.copy(yyv[yysp-0]);
3697                       break;
3698                       }
3699                case  617 : { 
3700                         yyval.copy(yyv[yysp-0]);
3701                       break;
3702                       }
3703                case  618 : { 
3704                         yyval.copy(yyv[yysp-0]);
3705                       break;
3706                       }
3707                case  619 : { 
3708                         yyval.copy(yyv[yysp-0]);
3709                       break;
3710                       }
3711                case  620 : { 
3712                         yyval.copy(yyv[yysp-0]);
3713                       break;
3714                       }
3715                case  621 : { 
3716                         yyval.copy(yyv[yysp-0]);
3717                       break;
3718                       }
3719                case  622 : { 
3720                         yyval.copy(yyv[yysp-0]);
3721                       break;
3722                       }
3723                case  623 : { 
3724                         yyval.copy(yyv[yysp-0]);
3725                       break;
3726                       }
3727                case  624 : { 
3728                         yyval.copy(yyv[yysp-0]);
3729                       break;
3730                       }
3731                case  625 : { 
3732                         yyval.copy(yyv[yysp-0]);
3733                       break;
3734                       }
3735                case  626 : { 
3736                         yyval.copy(yyv[yysp-0]);
3737                       break;
3738                       }
3739                case  627 : { 
3740                         yyval.copy(yyv[yysp-0]);
3741                       break;
3742                       }
3743                case  628 : { 
3744                         yyval.copy(yyv[yysp-0]);
3745                       break;
3746                       }
3747                case  629 : { 
3748                         yyval.copy(yyv[yysp-0]);
3749                       break;
3750                       }
3751                case  630 : { 
3752                         yyval.copy(yyv[yysp-0]);
3753                       break;
3754                       }
3755                case  631 : { 
3756                         yyval.copy(yyv[yysp-0]);
3757                       break;
3758                       }
3759                case  632 : { 
3760                         yyval.copy(yyv[yysp-0]);
3761                       break;
3762                       }
3763                case  633 : { 
3764                         yyval.copy(yyv[yysp-0]);
3765                       break;
3766                       }
3767                case  634 : { 
3768                         yyval.copy(yyv[yysp-0]);
3769                       break;
3770                       }
3771                case  635 : { 
3772                         yyval.copy(yyv[yysp-0]);
3773                       break;
3774                       }
3775                case  636 : { 
3776                         yyval.copy(yyv[yysp-0]);
3777                       break;
3778                       }
3779                case  637 : { 
3780                         yyval.copy(yyv[yysp-0]);
3781                       break;
3782                       }
3783                case  638 : { 
3784                         yyval.copy(yyv[yysp-0]);
3785                       break;
3786                       }
3787                case  639 : { 
3788                         yyval.copy(yyv[yysp-0]);
3789                       break;
3790                       }
3791                case  640 : { 
3792                         yyval.copy(yyv[yysp-0]);
3793                       break;
3794                       }
3795                case  641 : { 
3796                         yyval.copy(yyv[yysp-0]);
3797                       break;
3798                       }
3799                case  642 : { 
3800                         yyval.copy(yyv[yysp-0]);
3801                       break;
3802                       }
3803                case  643 : { 
3804                         yyval.copy(yyv[yysp-0]);
3805                       break;
3806                       }
3807                case  644 : { 
3808                         yyval.copy(yyv[yysp-0]);
3809                       break;
3810                       }
3811                case  645 : { 
3812                         yyval.copy(yyv[yysp-0]);
3813                       break;
3814                       }
3815                case  646 : { 
3816                         yyval.copy(yyv[yysp-0]);
3817                       break;
3818                       }
3819                case  647 : { 
3820                         yyval.copy(yyv[yysp-0]);
3821                       break;
3822                       }
3823                case  648 : { 
3824                         yyval.copy(yyv[yysp-0]);
3825                       break;
3826                       }
3827                case  649 : { 
3828                         yyval.copy(yyv[yysp-0]);
3829                       break;
3830                       }
3831                case  650 : { 
3832                         yyval.copy(yyv[yysp-0]);
3833                       break;
3834                       }
3835                case  651 : { 
3836                         yyval.copy(yyv[yysp-0]);
3837                       break;
3838                       }
3839                case  652 : { 
3840                         yyval.copy(yyv[yysp-0]);
3841                       break;
3842                       }
3843                case  653 : { 
3844                         yyval.copy(yyv[yysp-0]);
3845                       break;
3846                       }
3847                case  654 : { 
3848                         yyval.copy(yyv[yysp-0]);
3849                       break;
3850                       }
3851                case  655 : { 
3852                         yyval.copy(yyv[yysp-0]);
3853                       break;
3854                       }
3855                case  656 : { 
3856                         yyval.copy(yyv[yysp-0]);
3857                       break;
3858                       }
3859                case  657 : { 
3860                         yyval.copy(yyv[yysp-0]);
3861                       break;
3862                       }
3863                case  658 : { 
3864                         yyval.copy(yyv[yysp-0]);
3865                       break;
3866                       }
3867                case  659 : { 
3868                         yyval.copy(yyv[yysp-0]);
3869                       break;
3870                       }
3871                case  660 : { 
3872                         yyval.copy(yyv[yysp-0]);
3873                       break;
3874                       }
3875                case  661 : { 
3876                         yyval.copy(yyv[yysp-0]);
3877                       break;
3878                       }
3879                case  662 : { 
3880                         yyval.copy(yyv[yysp-0]);
3881                       break;
3882                       }
3883
3884                }
3885        }
3886        void yyaction_663_843 ( int yyruleno ){
3887                switch(yyruleno){
3888                case  663 : { 
3889                         yyval.copy(yyv[yysp-0]);
3890                       break;
3891                       }
3892                case  664 : { 
3893                         yyval.copy(yyv[yysp-0]);
3894                       break;
3895                       }
3896                case  665 : { 
3897                         yyval.copy(yyv[yysp-0]);
3898                       break;
3899                       }
3900                case  666 : { 
3901                         yyval.copy(yyv[yysp-0]);
3902                       break;
3903                       }
3904                case  667 : { 
3905                         yyval.copy(yyv[yysp-0]);
3906                       break;
3907                       }
3908                case  668 : { 
3909                         yyval.copy(yyv[yysp-0]);
3910                       break;
3911                       }
3912                case  669 : { 
3913                         yyval.copy(yyv[yysp-0]);
3914                       break;
3915                       }
3916                case  670 : { 
3917                         yyval.copy(yyv[yysp-0]);
3918                       break;
3919                       }
3920                case  671 : { 
3921                         yyval.copy(yyv[yysp-0]);
3922                       break;
3923                       }
3924                case  672 : { 
3925                         yyval.copy(yyv[yysp-0]);
3926                       break;
3927                       }
3928                case  673 : { 
3929                         yyval.copy(yyv[yysp-0]);
3930                       break;
3931                       }
3932                case  674 : { 
3933                         yyval.copy(yyv[yysp-0]);
3934                       break;
3935                       }
3936                case  675 : { 
3937                         yyval.copy(yyv[yysp-0]);
3938                       break;
3939                       }
3940                case  676 : { 
3941                         yyval.copy(yyv[yysp-0]);
3942                       break;
3943                       }
3944                case  677 : { 
3945                         yyval.copy(yyv[yysp-0]);
3946                       break;
3947                       }
3948                case  678 : { 
3949                         yyval.copy(yyv[yysp-0]);
3950                       break;
3951                       }
3952                case  679 : { 
3953                         yyval.copy(yyv[yysp-0]);
3954                       break;
3955                       }
3956                case  680 : { 
3957                         yyval.copy(yyv[yysp-0]);
3958                       break;
3959                       }
3960                case  681 : { 
3961                         yyval.copy(yyv[yysp-0]);
3962                       break;
3963                       }
3964                case  682 : { 
3965                         yyval.copy(yyv[yysp-0]);
3966                       break;
3967                       }
3968                case  683 : { 
3969                         yyval.copy(yyv[yysp-0]);
3970                       break;
3971                       }
3972                case  684 : { 
3973                         yyval.copy(yyv[yysp-0]);
3974                       break;
3975                       }
3976                case  685 : { 
3977                         yyval.copy(yyv[yysp-0]);
3978                       break;
3979                       }
3980                case  686 : { 
3981                         yyval.copy(yyv[yysp-0]);
3982                       break;
3983                       }
3984                case  687 : { 
3985                         yyval.copy(yyv[yysp-0]);
3986                       break;
3987                       }
3988                case  688 : { 
3989                         yyval.copy(yyv[yysp-0]);
3990                       break;
3991                       }
3992                case  689 : { 
3993                         yyval.copy(yyv[yysp-0]);
3994                       break;
3995                       }
3996                case  690 : { 
3997                         yyval.copy(yyv[yysp-0]);
3998                       break;
3999                       }
4000                case  691 : { 
4001                         yyval.copy(yyv[yysp-0]);
4002                       break;
4003                       }
4004                case  692 : { 
4005                         yyval.copy(yyv[yysp-0]);
4006                       break;
4007                       }
4008                case  693 : { 
4009                         yyval.copy(yyv[yysp-0]);
4010                       break;
4011                       }
4012                case  694 : { 
4013                         yyval.copy(yyv[yysp-0]);
4014                       break;
4015                       }
4016                case  695 : { 
4017                         yyval.copy(yyv[yysp-0]);
4018                       break;
4019                       }
4020                case  696 : { 
4021                         yyval.copy(yyv[yysp-0]);
4022                       break;
4023                       }
4024                case  697 : { 
4025                         yyval.copy(yyv[yysp-0]);
4026                       break;
4027                       }
4028                case  698 : { 
4029                         yyval.copy(yyv[yysp-0]);
4030                       break;
4031                       }
4032                case  699 : { 
4033                         yyval.copy(yyv[yysp-0]);
4034                       break;
4035                       }
4036                case  700 : { 
4037                         yyval.copy(yyv[yysp-0]);
4038                       break;
4039                       }
4040                case  701 : { 
4041                         yyval.copy(yyv[yysp-0]);
4042                       break;
4043                       }
4044                case  702 : { 
4045                         yyval.copy(yyv[yysp-0]);
4046                       break;
4047                       }
4048                case  703 : { 
4049                         yyval.copy(yyv[yysp-0]);
4050                       break;
4051                       }
4052                case  704 : { 
4053                         yyval.copy(yyv[yysp-0]);
4054                       break;
4055                       }
4056                case  705 : { 
4057                         yyval.copy(yyv[yysp-0]);
4058                       break;
4059                       }
4060                case  706 : { 
4061                         yyval.copy(yyv[yysp-0]);
4062                       break;
4063                       }
4064                case  707 : { 
4065                         yyval.copy(yyv[yysp-0]);
4066                       break;
4067                       }
4068                case  708 : { 
4069                         yyval.copy(yyv[yysp-0]);
4070                       break;
4071                       }
4072                case  709 : { 
4073                         yyval.copy(yyv[yysp-0]);
4074                       break;
4075                       }
4076                case  710 : { 
4077                         yyval.copy(yyv[yysp-0]);
4078                       break;
4079                       }
4080                case  711 : { 
4081                         yyval.copy(yyv[yysp-0]);
4082                       break;
4083                       }
4084                case  712 : { 
4085                         yyval.copy(yyv[yysp-0]);
4086                       break;
4087                       }
4088                case  713 : { 
4089                         yyval.copy(yyv[yysp-0]);
4090                       break;
4091                       }
4092                case  714 : { 
4093                         yyval.copy(yyv[yysp-0]);
4094                       break;
4095                       }
4096                case  715 : { 
4097                         yyval.copy(yyv[yysp-0]);
4098                       break;
4099                       }
4100                case  716 : { 
4101                         yyval.copy(yyv[yysp-0]);
4102                       break;
4103                       }
4104                case  717 : { 
4105                         yyval.copy(yyv[yysp-0]);
4106                       break;
4107                       }
4108                case  718 : { 
4109                         yyval.copy(yyv[yysp-0]);
4110                       break;
4111                       }
4112                case  719 : { 
4113                         yyval.copy(yyv[yysp-0]);
4114                       break;
4115                       }
4116                case  720 : { 
4117                         yyval.copy(yyv[yysp-0]);
4118                       break;
4119                       }
4120                case  721 : { 
4121                         yyval.copy(yyv[yysp-0]);
4122                       break;
4123                       }
4124                case  722 : { 
4125                         yyval.copy(yyv[yysp-0]);
4126                       break;
4127                       }
4128                case  723 : { 
4129                         yyval.copy(yyv[yysp-0]);
4130                       break;
4131                       }
4132                case  724 : { 
4133                         yyval.copy(yyv[yysp-0]);
4134                       break;
4135                       }
4136                case  725 : { 
4137                         yyval.copy(yyv[yysp-0]);
4138                       break;
4139                       }
4140                case  726 : { 
4141                         yyval.copy(yyv[yysp-0]);
4142                       break;
4143                       }
4144                case  727 : { 
4145                         yyval.copy(yyv[yysp-0]);
4146                       break;
4147                       }
4148                case  728 : { 
4149                         yyval.copy(yyv[yysp-0]);
4150                       break;
4151                       }
4152                case  729 : { 
4153                         yyval.copy(yyv[yysp-0]);
4154                       break;
4155                       }
4156                case  730 : { 
4157                         yyval.copy(yyv[yysp-0]);
4158                       break;
4159                       }
4160                case  731 : { 
4161                         yyval.copy(yyv[yysp-0]);
4162                       break;
4163                       }
4164                case  732 : { 
4165                         yyval.copy(yyv[yysp-0]);
4166                       break;
4167                       }
4168                case  733 : { 
4169                         yyval.copy(yyv[yysp-0]);
4170                       break;
4171                       }
4172                case  734 : { 
4173                         yyval.copy(yyv[yysp-0]);
4174                       break;
4175                       }
4176                case  735 : { 
4177                         yyval.copy(yyv[yysp-0]);
4178                       break;
4179                       }
4180                case  736 : { 
4181                         yyval.copy(yyv[yysp-0]);
4182                       break;
4183                       }
4184                case  737 : { 
4185                         yyval.copy(yyv[yysp-0]);
4186                       break;
4187                       }
4188                case  738 : { 
4189                         yyval.copy(yyv[yysp-0]);
4190                       break;
4191                       }
4192                case  739 : { 
4193                         yyval.copy(yyv[yysp-0]);
4194                       break;
4195                       }
4196                case  740 : { 
4197                         yyval.copy(yyv[yysp-0]);
4198                       break;
4199                       }
4200                case  741 : { 
4201                         yyval.copy(yyv[yysp-0]);
4202                       break;
4203                       }
4204                case  742 : { 
4205                         yyval.copy(yyv[yysp-0]);
4206                       break;
4207                       }
4208                case  743 : { 
4209                         yyval.copy(yyv[yysp-0]);
4210                       break;
4211                       }
4212                case  744 : { 
4213                         yyval.copy(yyv[yysp-0]);
4214                       break;
4215                       }
4216                case  745 : { 
4217                         yyval.copy(yyv[yysp-0]);
4218                       break;
4219                       }
4220                case  746 : { 
4221                         yyval.copy(yyv[yysp-0]);
4222                       break;
4223                       }
4224                case  747 : { 
4225                         yyval.copy(yyv[yysp-0]);
4226                       break;
4227                       }
4228                case  748 : { 
4229                         yyval.copy(yyv[yysp-0]);
4230                       break;
4231                       }
4232                case  749 : { 
4233                         yyval.copy(yyv[yysp-0]);
4234                       break;
4235                       }
4236                case  750 : { 
4237                         yyval.copy(yyv[yysp-0]);
4238                       break;
4239                       }
4240                case  751 : { 
4241                         yyval.copy(yyv[yysp-0]);
4242                       break;
4243                       }
4244                case  752 : { 
4245                         yyval.copy(yyv[yysp-0]);
4246                       break;
4247                       }
4248                case  753 : { 
4249                         yyval.copy(yyv[yysp-0]);
4250                       break;
4251                       }
4252                case  754 : { 
4253                         yyval.copy(yyv[yysp-0]);
4254                       break;
4255                       }
4256                case  755 : { 
4257                         yyval.copy(yyv[yysp-0]);
4258                       break;
4259                       }
4260                case  756 : { 
4261                         yyval.copy(yyv[yysp-0]);
4262                       break;
4263                       }
4264                case  757 : { 
4265                         yyval.copy(yyv[yysp-0]);
4266                       break;
4267                       }
4268                case  758 : { 
4269                         yyval.copy(yyv[yysp-0]);
4270                       break;
4271                       }
4272                case  759 : { 
4273                         yyval.copy(yyv[yysp-0]);
4274                       break;
4275                       }
4276                case  760 : { 
4277                         yyval.copy(yyv[yysp-0]);
4278                       break;
4279                       }
4280                case  761 : { 
4281                         yyval.copy(yyv[yysp-0]);
4282                       break;
4283                       }
4284                case  762 : { 
4285                         yyval.copy(yyv[yysp-0]);
4286                       break;
4287                       }
4288                case  763 : { 
4289                         yyval.copy(yyv[yysp-0]);
4290                       break;
4291                       }
4292                case  764 : { 
4293                         yyval.copy(yyv[yysp-0]);
4294                       break;
4295                       }
4296                case  765 : { 
4297                         yyval.copy(yyv[yysp-0]);
4298                       break;
4299                       }
4300                case  766 : { 
4301                         yyval.copy(yyv[yysp-0]);
4302                       break;
4303                       }
4304                case  767 : { 
4305                         yyval.copy(yyv[yysp-0]);
4306                       break;
4307                       }
4308                case  768 : { 
4309                         yyval.copy(yyv[yysp-0]);
4310                       break;
4311                       }
4312                case  769 : { 
4313                         yyval.copy(yyv[yysp-0]);
4314                       break;
4315                       }
4316                case  770 : { 
4317                         yyval.copy(yyv[yysp-0]);
4318                       break;
4319                       }
4320                case  771 : { 
4321                         yyval.copy(yyv[yysp-0]);
4322                       break;
4323                       }
4324                case  772 : { 
4325                         yyval.copy(yyv[yysp-0]);
4326                       break;
4327                       }
4328                case  773 : { 
4329                         yyval.copy(yyv[yysp-0]);
4330                       break;
4331                       }
4332                case  774 : { 
4333                         yyval.copy(yyv[yysp-0]);
4334                       break;
4335                       }
4336                case  775 : { 
4337                         yyval.copy(yyv[yysp-0]);
4338                       break;
4339                       }
4340                case  776 : { 
4341                         yyval.copy(yyv[yysp-0]);
4342                       break;
4343                       }
4344                case  777 : { 
4345                         yyval.copy(yyv[yysp-0]);
4346                       break;
4347                       }
4348                case  778 : { 
4349                         yyval.copy(yyv[yysp-0]);
4350                       break;
4351                       }
4352                case  779 : { 
4353                         yyval.copy(yyv[yysp-0]);
4354                       break;
4355                       }
4356                case  780 : { 
4357                         yyval.copy(yyv[yysp-0]);
4358                       break;
4359                       }
4360                case  781 : { 
4361                         yyval.copy(yyv[yysp-0]);
4362                       break;
4363                       }
4364                case  782 : { 
4365                         yyval.copy(yyv[yysp-0]);
4366                       break;
4367                       }
4368                case  783 : { 
4369                         yyval.copy(yyv[yysp-0]);
4370                       break;
4371                       }
4372                case  784 : { 
4373                         yyval.copy(yyv[yysp-0]);
4374                       break;
4375                       }
4376                case  785 : { 
4377                         yyval.copy(yyv[yysp-0]);
4378                       break;
4379                       }
4380                case  786 : { 
4381                         yyval.copy(yyv[yysp-0]);
4382                       break;
4383                       }
4384                case  787 : { 
4385                         yyval.copy(yyv[yysp-0]);
4386                       break;
4387                       }
4388                case  788 : { 
4389                         yyval.copy(yyv[yysp-0]);
4390                       break;
4391                       }
4392                case  789 : { 
4393                         yyval.copy(yyv[yysp-0]);
4394                       break;
4395                       }
4396                case  790 : { 
4397                         yyval.copy(yyv[yysp-0]);
4398                       break;
4399                       }
4400                case  791 : { 
4401                         yyval.copy(yyv[yysp-0]);
4402                       break;
4403                       }
4404                case  792 : { 
4405                         yyval.copy(yyv[yysp-0]);
4406                       break;
4407                       }
4408                case  793 : { 
4409                         yyval.copy(yyv[yysp-0]);
4410                       break;
4411                       }
4412                case  794 : { 
4413                         yyval.copy(yyv[yysp-0]);
4414                       break;
4415                       }
4416                case  795 : { 
4417                         yyval.copy(yyv[yysp-0]);
4418                       break;
4419                       }
4420                case  796 : { 
4421                         yyval.copy(yyv[yysp-0]);
4422                       break;
4423                       }
4424                case  797 : { 
4425                         yyval.copy(yyv[yysp-0]);
4426                       break;
4427                       }
4428                case  798 : { 
4429                         yyval.copy(yyv[yysp-0]);
4430                       break;
4431                       }
4432                case  799 : { 
4433                         yyval.copy(yyv[yysp-0]);
4434                       break;
4435                       }
4436                case  800 : { 
4437                         yyval.copy(yyv[yysp-0]);
4438                       break;
4439                       }
4440                case  801 : { 
4441                         yyval.copy(yyv[yysp-0]);
4442                       break;
4443                       }
4444                case  802 : { 
4445                         yyval.copy(yyv[yysp-0]);
4446                       break;
4447                       }
4448                case  803 : { 
4449                         yyval.copy(yyv[yysp-0]);
4450                       break;
4451                       }
4452                case  804 : { 
4453                         yyval.copy(yyv[yysp-0]);
4454                       break;
4455                       }
4456                case  805 : { 
4457                         yyval.copy(yyv[yysp-0]);
4458                       break;
4459                       }
4460                case  806 : { 
4461                         yyval.copy(yyv[yysp-0]);
4462                       break;
4463                       }
4464                case  807 : { 
4465                         yyval.copy(yyv[yysp-0]);
4466                       break;
4467                       }
4468                case  808 : { 
4469                         yyval.copy(yyv[yysp-0]);
4470                       break;
4471                       }
4472                case  809 : { 
4473                         yyval.copy(yyv[yysp-0]);
4474                       break;
4475                       }
4476                case  810 : { 
4477                         yyval.copy(yyv[yysp-0]);
4478                       break;
4479                       }
4480                case  811 : { 
4481                         yyval.copy(yyv[yysp-0]);
4482                       break;
4483                       }
4484                case  812 : { 
4485                         yyval.copy(yyv[yysp-0]);
4486                       break;
4487                       }
4488                case  813 : { 
4489                         yyval.copy(yyv[yysp-0]);
4490                       break;
4491                       }
4492                case  814 : { 
4493                         yyval.copy(yyv[yysp-0]);
4494                       break;
4495                       }
4496                case  815 : { 
4497                         yyval.copy(yyv[yysp-0]);
4498                       break;
4499                       }
4500                case  816 : { 
4501                         yyval.copy(yyv[yysp-0]);
4502                       break;
4503                       }
4504                case  817 : { 
4505                         yyval.copy(yyv[yysp-0]);
4506                       break;
4507                       }
4508                case  818 : { 
4509                         yyval.copy(yyv[yysp-0]);
4510                       break;
4511                       }
4512                case  819 : { 
4513                         yyval.copy(yyv[yysp-0]);
4514                       break;
4515                       }
4516                case  820 : { 
4517                         yyval.copy(yyv[yysp-0]);
4518                       break;
4519                       }
4520                case  821 : { 
4521                         yyval.copy(yyv[yysp-0]);
4522                       break;
4523                       }
4524                case  822 : { 
4525                         yyval.copy(yyv[yysp-0]);
4526                       break;
4527                       }
4528                case  823 : { 
4529                         yyval.copy(yyv[yysp-0]);
4530                       break;
4531                       }
4532                case  824 : { 
4533                         yyval.copy(yyv[yysp-0]);
4534                       break;
4535                       }
4536                case  825 : { 
4537                         yyval.copy(yyv[yysp-0]);
4538                       break;
4539                       }
4540                case  826 : { 
4541                         yyval.copy(yyv[yysp-0]);
4542                       break;
4543                       }
4544                case  827 : { 
4545                         yyval.copy(yyv[yysp-0]);
4546                       break;
4547                       }
4548                case  828 : { 
4549                         yyval.copy(yyv[yysp-0]);
4550                       break;
4551                       }
4552                case  829 : { 
4553                         yyval.copy(yyv[yysp-0]);
4554                       break;
4555                       }
4556                case  830 : { 
4557                         yyval.copy(yyv[yysp-0]);
4558                       break;
4559                       }
4560                case  831 : { 
4561                         yyval.copy(yyv[yysp-0]);
4562                       break;
4563                       }
4564                case  832 : { 
4565                         yyval.copy(yyv[yysp-0]);
4566                       break;
4567                       }
4568                case  833 : { 
4569                         yyval.copy(yyv[yysp-0]);
4570                       break;
4571                       }
4572                case  834 : { 
4573                         yyval.copy(yyv[yysp-0]);
4574                       break;
4575                       }
4576                case  835 : { 
4577                         yyval.copy(yyv[yysp-0]);
4578                       break;
4579                       }
4580                case  836 : { 
4581                         yyval.copy(yyv[yysp-0]);
4582                       break;
4583                       }
4584                case  837 : { 
4585                         yyval.copy(yyv[yysp-0]);
4586                       break;
4587                       }
4588                case  838 : { 
4589                         yyval.copy(yyv[yysp-0]);
4590                       break;
4591                       }
4592                case  839 : { 
4593                         yyval.copy(yyv[yysp-0]);
4594                       break;
4595                       }
4596                case  840 : { 
4597                         yyval.copy(yyv[yysp-0]);
4598                       break;
4599                       }
4600                case  841 : { 
4601                         yyval.copy(yyv[yysp-0]);
4602                       break;
4603                       }
4604                case  842 : { 
4605                         yyval.copy(yyv[yysp-0]);
4606                       break;
4607                       }
4608                case  843 : { 
4609                         yyval.copy(yyv[yysp-0]);
4610                       break;
4611                       }
4612                           
4613                           default:{
4614                               break;
4615                           } 
4616
4617                }
4618        }
4619void yyaction (int yyruleno){
4620if (yyruleno >= 663) { yyaction_663_843( yyruleno ); } else{
4621if (yyruleno >= 414) { yyaction_414_662( yyruleno ); } else{
4622if (yyruleno >= 207) { yyaction_207_413( yyruleno ); } else{
4623if (yyruleno >= 1) { yyaction_1_206( yyruleno ); }
4624}
4625}
4626}
4627}
4628
4629} // end of class