001/* Generated By:JavaCC: Do not edit this line. CParser.java */
002
003package jtb.cparser;
004
005import java.util.*;
006import jtb.cparser.syntaxtree.*;
007import java.util.Vector;
008import jtb.cparser.customvisitor.*;
009import java.io.IOException;
010
011
012@SuppressWarnings({"unchecked","rawtypes"})
013public class CParser implements CParserConstants {
014   private static Hashtable<String, Boolean> types = new Hashtable<String, Boolean>();
015   private static Stack<Boolean> typedefParsingStack = new Stack<Boolean>();
016   private static boolean isType(String type)
017   {
018      if ( types.get(type) != null )
019         {
020            return true;
021         }
022      return false;
023   }
024   private static void addType(String type)
025   {
026      types.put(type,Boolean.TRUE);
027   }
028   private static void printTypes()
029   {
030      Enumeration e = types.keys();
031      while ( e.hasMoreElements() )
032         {
033            System.out.println(e.nextElement());
034         }
035   }
036   public static void main(String args[])
037   {
038      CParser parser;
039      types.put("__signed__",Boolean.TRUE);
040      types.put("__const",Boolean.TRUE);
041      types.put("__inline__",Boolean.TRUE);
042      types.put("__signed",Boolean.TRUE);
043      types.put("__attribute__", Boolean.TRUE);
044      types.put("__extension__", Boolean.TRUE);
045
046      if ( args.length == 0 )
047      {
048          System.out.println("C Parser Version 0.1Alpha:  Reading from standard input . . .");
049         parser = new CParser(System.in);
050      }
051      else
052         if ( args.length == 1 )
053         {
054             System.out.println("C Parser Version 0.1Alpha:  Reading from file " + args[0]+ " . . .");
055            try
056            {
057               parser = new CParser(new java.io.FileInputStream(args[0]));
058            }
059            catch (java.io.FileNotFoundException e)
060            {
061               System.out.println("C Parser Version 0.1:  File " + args[0]+ " not found.");
062               return;
063            }
064         }
065         else
066         {
067             System.out.println("C Parser Version 0.1Alpha:  Usage is one of:");
068             System.out.println("         java CreateSpinfoC < inputfile");
069             System.out.println("OR");
070             System.out.println("         java CreateSpinfoC inputfile");
071            return;
072         }
073      try
074      {
075         CParser.TranslationUnit();
076         System.out.println("C Parser Version 0.1Alpha:  C program parsed successfully.");
077
078      }
079      catch (ParseException e)
080         {
081            System.out.println("C Parser Version 0.1Alpha:  Encountered errors during parse.");
082         }
083   }
084
085  static public final TranslationUnit TranslationUnit() throws ParseException {
086   NodeList n0 = new NodeList();
087   ExternalDeclaration n1;
088
089   {
090   }
091    label_1:
092    while (true) {
093      n1 = ExternalDeclaration();
094        n0.addNode(n1);
095      if (jj_2_1(1)) {
096        ;
097      } else {
098        break label_1;
099      }
100    }
101     n0.nodes.trimToSize();
102     {if (true) return new TranslationUnit(n0);}
103    throw new Error("Missing return statement in function");
104  }
105
106  static public final ExternalDeclaration ExternalDeclaration() throws ParseException {
107   NodeChoice n0;
108   FunctionDefinition n1;
109   Declaration n2;
110
111   {
112   }
113    if (jj_2_2(2147483647)) {
114      n1 = FunctionDefinition();
115           n0 = new NodeChoice(n1, 0);
116    } else if (jj_2_3(1)) {
117      n2 = Declaration();
118           n0 = new NodeChoice(n2, 1);
119    } else {
120      jj_consume_token(-1);
121      throw new ParseException();
122    }
123     {if (true) return new ExternalDeclaration(n0);}
124    throw new Error("Missing return statement in function");
125  }
126
127  static public final FunctionDefinition FunctionDefinition() throws ParseException {
128   NodeOptional n0 = new NodeOptional();
129   DeclarationSpecifiers n1;
130   Declarator n2;
131   NodeOptional n3 = new NodeOptional();
132   DeclarationList n4;
133   CompoundStatement n5;
134
135   {
136   }
137    if (jj_2_4(2147483647)) {
138      n1 = DeclarationSpecifiers();
139        n0.addNode(n1);
140    } else {
141      ;
142    }
143    n2 = Declarator();
144    if (jj_2_5(1)) {
145      n4 = DeclarationList();
146        n3.addNode(n4);
147    } else {
148      ;
149    }
150    n5 = CompoundStatement();
151     {if (true) return new FunctionDefinition(n0,n2,n3,n5);}
152    throw new Error("Missing return statement in function");
153  }
154
155  static public final Declaration Declaration() throws ParseException {
156   DeclarationSpecifiers n0;
157   NodeOptional n1 = new NodeOptional();
158   InitDeclaratorList n2;
159   NodeToken n3;
160   Token n4;
161
162   {
163   }
164    n0 = DeclarationSpecifiers();
165    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
166    case IDENTIFIER:
167    case 56:
168    case 60:
169      n2 = InitDeclaratorList();
170        n1.addNode(n2);
171      break;
172    default:
173      jj_la1[0] = jj_gen;
174      ;
175    }
176    n4 = jj_consume_token(50);
177            n3 = JTBToolkit.makeNodeToken(n4);
178     {if (true) return new Declaration(n0,n1,n3);}
179    throw new Error("Missing return statement in function");
180  }
181
182  static public final DeclarationList DeclarationList() throws ParseException {
183   NodeList n0 = new NodeList();
184   Declaration n1;
185
186   {
187   }
188    label_2:
189    while (true) {
190      n1 = Declaration();
191        n0.addNode(n1);
192      if (jj_2_6(2147483647)) {
193        ;
194      } else {
195        break label_2;
196      }
197    }
198     n0.nodes.trimToSize();
199     {if (true) return new DeclarationList(n0);}
200    throw new Error("Missing return statement in function");
201  }
202
203  static public final DeclarationSpecifiers DeclarationSpecifiers() throws ParseException {
204   NodeChoice n0;
205   NodeSequence n1;
206   StorageClassSpecifier n2;
207   NodeOptional n3 = new NodeOptional();
208   DeclarationSpecifiers n4;
209   NodeSequence n5;
210   TypeSpecifier n6;
211   NodeOptional n7 = new NodeOptional();
212   DeclarationSpecifiers n8;
213   NodeSequence n9;
214   TypeQualifier n10;
215   NodeOptional n11 = new NodeOptional();
216   DeclarationSpecifiers n12;
217
218   {
219   }
220    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
221    case REGISTER:
222    case TYPEDEF:
223    case EXTERN:
224    case STATIC:
225    case AUTO:
226        n1 = new NodeSequence(2);
227      n2 = StorageClassSpecifier();
228        n1.addNode(n2);
229      if (jj_2_7(2147483647)) {
230        n4 = DeclarationSpecifiers();
231           n3.addNode(n4);
232      } else {
233        ;
234      }
235        n1.addNode(n3);
236        n0 = new NodeChoice(n1, 0);
237      break;
238    default:
239      jj_la1[1] = jj_gen;
240      if (jj_2_10(1)) {
241        n5 = new NodeSequence(2);
242        n6 = TypeSpecifier();
243        n5.addNode(n6);
244        if (jj_2_8(2147483647)) {
245          n8 = DeclarationSpecifiers();
246           n7.addNode(n8);
247        } else {
248          ;
249        }
250        n5.addNode(n7);
251        n0 = new NodeChoice(n5, 1);
252      } else {
253        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
254        case VOLATILE:
255        case CONST:
256        n9 = new NodeSequence(2);
257          n10 = TypeQualifier();
258        n9.addNode(n10);
259          if (jj_2_9(2147483647)) {
260            n12 = DeclarationSpecifiers();
261           n11.addNode(n12);
262          } else {
263            ;
264          }
265        n9.addNode(n11);
266        n0 = new NodeChoice(n9, 2);
267          break;
268        default:
269          jj_la1[2] = jj_gen;
270          jj_consume_token(-1);
271          throw new ParseException();
272        }
273      }
274    }
275     {if (true) return new DeclarationSpecifiers(n0);}
276    throw new Error("Missing return statement in function");
277  }
278
279  static public final StorageClassSpecifier StorageClassSpecifier() throws ParseException {
280   NodeChoice n0;
281   NodeToken n1;
282   Token n2;
283   NodeToken n3;
284   Token n4;
285   NodeToken n5;
286   Token n6;
287   NodeToken n7;
288   Token n8;
289   NodeToken n9;
290   Token n10;
291
292   {
293   }
294    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
295    case AUTO:
296      n2 = jj_consume_token(AUTO);
297                     n1 = JTBToolkit.makeNodeToken(n2);
298           n0 = new NodeChoice(n1, 0);
299      break;
300    case REGISTER:
301      n4 = jj_consume_token(REGISTER);
302                         n3 = JTBToolkit.makeNodeToken(n4);
303           n0 = new NodeChoice(n3, 1);
304      break;
305    case STATIC:
306      n6 = jj_consume_token(STATIC);
307                       n5 = JTBToolkit.makeNodeToken(n6);
308           n0 = new NodeChoice(n5, 2);
309      break;
310    case EXTERN:
311      n8 = jj_consume_token(EXTERN);
312                       n7 = JTBToolkit.makeNodeToken(n8);
313           n0 = new NodeChoice(n7, 3);
314      break;
315    case TYPEDEF:
316      n10 = jj_consume_token(TYPEDEF);
317                         n9 = JTBToolkit.makeNodeToken(n10);
318            typedefParsingStack.push(Boolean.TRUE);
319           n0 = new NodeChoice(n9, 4);
320      break;
321    default:
322      jj_la1[3] = jj_gen;
323      jj_consume_token(-1);
324      throw new ParseException();
325    }
326     {if (true) return new StorageClassSpecifier(n0);}
327    throw new Error("Missing return statement in function");
328  }
329
330  static public final TypeSpecifier TypeSpecifier() throws ParseException {
331   NodeChoice n0;
332   NodeToken n1;
333   Token n2;
334   NodeToken n3;
335   Token n4;
336   NodeToken n5;
337   Token n6;
338   NodeToken n7;
339   Token n8;
340   NodeToken n9;
341   Token n10;
342   NodeToken n11;
343   Token n12;
344   NodeToken n13;
345   Token n14;
346   NodeToken n15;
347   Token n16;
348   NodeToken n17;
349   Token n18;
350   StructOrUnionSpecifier n19;
351   EnumSpecifier n20;
352   TypedefName n21;
353
354   {
355   }
356    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
357    case VOID:
358      n2 = jj_consume_token(VOID);
359                     n1 = JTBToolkit.makeNodeToken(n2);
360           n0 = new NodeChoice(n1, 0);
361      break;
362    case CHAR:
363      n4 = jj_consume_token(CHAR);
364                     n3 = JTBToolkit.makeNodeToken(n4);
365           n0 = new NodeChoice(n3, 1);
366      break;
367    case SHORT:
368      n6 = jj_consume_token(SHORT);
369                      n5 = JTBToolkit.makeNodeToken(n6);
370           n0 = new NodeChoice(n5, 2);
371      break;
372    case INT:
373      n8 = jj_consume_token(INT);
374                    n7 = JTBToolkit.makeNodeToken(n8);
375           n0 = new NodeChoice(n7, 3);
376      break;
377    case LONG:
378      n10 = jj_consume_token(LONG);
379                      n9 = JTBToolkit.makeNodeToken(n10);
380           n0 = new NodeChoice(n9, 4);
381      break;
382    case FLOAT:
383      n12 = jj_consume_token(FLOAT);
384                       n11 = JTBToolkit.makeNodeToken(n12);
385           n0 = new NodeChoice(n11, 5);
386      break;
387    case DOUBLE:
388      n14 = jj_consume_token(DOUBLE);
389                        n13 = JTBToolkit.makeNodeToken(n14);
390           n0 = new NodeChoice(n13, 6);
391      break;
392    case SIGNED:
393      n16 = jj_consume_token(SIGNED);
394                        n15 = JTBToolkit.makeNodeToken(n16);
395           n0 = new NodeChoice(n15, 7);
396      break;
397    case UNSIGNED:
398      n18 = jj_consume_token(UNSIGNED);
399                          n17 = JTBToolkit.makeNodeToken(n18);
400           n0 = new NodeChoice(n17, 8);
401      break;
402    case STRUCT:
403    case UNION:
404      n19 = StructOrUnionSpecifier();
405           n0 = new NodeChoice(n19, 9);
406      break;
407    case ENUM:
408      n20 = EnumSpecifier();
409           n0 = new NodeChoice(n20, 10);
410      break;
411    default:
412      jj_la1[4] = jj_gen;
413      if (isType(getToken(1).image)) {
414        n21 = TypedefName();
415           n0 = new NodeChoice(n21, 11);
416      } else {
417        jj_consume_token(-1);
418        throw new ParseException();
419      }
420    }
421     {if (true) return new TypeSpecifier(n0);}
422    throw new Error("Missing return statement in function");
423  }
424
425  static public final TypeQualifier TypeQualifier() throws ParseException {
426   NodeChoice n0;
427   NodeToken n1;
428   Token n2;
429   NodeToken n3;
430   Token n4;
431
432   {
433   }
434    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
435    case CONST:
436      n2 = jj_consume_token(CONST);
437                      n1 = JTBToolkit.makeNodeToken(n2);
438           n0 = new NodeChoice(n1, 0);
439      break;
440    case VOLATILE:
441      n4 = jj_consume_token(VOLATILE);
442                         n3 = JTBToolkit.makeNodeToken(n4);
443           n0 = new NodeChoice(n3, 1);
444      break;
445    default:
446      jj_la1[5] = jj_gen;
447      jj_consume_token(-1);
448      throw new ParseException();
449    }
450     {if (true) return new TypeQualifier(n0);}
451    throw new Error("Missing return statement in function");
452  }
453
454  static public final StructOrUnionSpecifier StructOrUnionSpecifier() throws ParseException {
455   StructOrUnion n0;
456   NodeChoice n1;
457   NodeSequence n2;
458   NodeOptional n3 = new NodeOptional();
459   NodeToken n4;
460   Token n5;
461   NodeToken n6;
462   Token n7;
463   StructDeclarationList n8;
464   NodeToken n9;
465   Token n10;
466   NodeToken n11;
467   Token n12;
468
469   {
470   }
471      typedefParsingStack.push(Boolean.FALSE);
472    n0 = StructOrUnion();
473    if (jj_2_11(3)) {
474           n2 = new NodeSequence(5);
475      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
476      case IDENTIFIER:
477        n5 = jj_consume_token(IDENTIFIER);
478                              n4 = JTBToolkit.makeNodeToken(n5);
479              n3.addNode(n4);
480        break;
481      default:
482        jj_la1[6] = jj_gen;
483        ;
484      }
485           n2.addNode(n3);
486      n7 = jj_consume_token(51);
487                  n6 = JTBToolkit.makeNodeToken(n7);
488           n2.addNode(n6);
489      n8 = StructDeclarationList();
490           n2.addNode(n8);
491      n10 = jj_consume_token(52);
492                   n9 = JTBToolkit.makeNodeToken(n10);
493           n2.addNode(n9);
494           n1 = new NodeChoice(n2, 0);
495    } else {
496      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
497      case IDENTIFIER:
498        n12 = jj_consume_token(IDENTIFIER);
499                            n11 = JTBToolkit.makeNodeToken(n12);
500           n1 = new NodeChoice(n11, 1);
501        break;
502      default:
503        jj_la1[7] = jj_gen;
504        jj_consume_token(-1);
505        throw new ParseException();
506      }
507    }
508      typedefParsingStack.pop();
509     {if (true) return new StructOrUnionSpecifier(n0,n1);}
510    throw new Error("Missing return statement in function");
511  }
512
513  static public final StructOrUnion StructOrUnion() throws ParseException {
514   NodeChoice n0;
515   NodeToken n1;
516   Token n2;
517   NodeToken n3;
518   Token n4;
519
520   {
521   }
522    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
523    case STRUCT:
524      n2 = jj_consume_token(STRUCT);
525                       n1 = JTBToolkit.makeNodeToken(n2);
526           n0 = new NodeChoice(n1, 0);
527      break;
528    case UNION:
529      n4 = jj_consume_token(UNION);
530                      n3 = JTBToolkit.makeNodeToken(n4);
531           n0 = new NodeChoice(n3, 1);
532      break;
533    default:
534      jj_la1[8] = jj_gen;
535      jj_consume_token(-1);
536      throw new ParseException();
537    }
538     {if (true) return new StructOrUnion(n0);}
539    throw new Error("Missing return statement in function");
540  }
541
542  static public final StructDeclarationList StructDeclarationList() throws ParseException {
543   NodeList n0 = new NodeList();
544   StructDeclaration n1;
545
546   {
547   }
548    label_3:
549    while (true) {
550      n1 = StructDeclaration();
551        n0.addNode(n1);
552      if (jj_2_12(1)) {
553        ;
554      } else {
555        break label_3;
556      }
557    }
558     n0.nodes.trimToSize();
559     {if (true) return new StructDeclarationList(n0);}
560    throw new Error("Missing return statement in function");
561  }
562
563  static public final InitDeclaratorList InitDeclaratorList() throws ParseException {
564   InitDeclarator n0;
565   NodeListOptional n1 = new NodeListOptional();
566   NodeSequence n2;
567   NodeToken n3;
568   Token n4;
569   InitDeclarator n5;
570
571   {
572   }
573    n0 = InitDeclarator();
574    label_4:
575    while (true) {
576      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
577      case 53:
578        ;
579        break;
580      default:
581        jj_la1[9] = jj_gen;
582        break label_4;
583      }
584        n2 = new NodeSequence(2);
585      n4 = jj_consume_token(53);
586               n3 = JTBToolkit.makeNodeToken(n4);
587        n2.addNode(n3);
588      n5 = InitDeclarator();
589        n2.addNode(n5);
590        n1.addNode(n2);
591    }
592     n1.nodes.trimToSize();
593      if ( !(typedefParsingStack.empty()) && (typedefParsingStack.peek()).booleanValue() )
594      {
595         typedefParsingStack.pop();
596      }
597     {if (true) return new InitDeclaratorList(n0,n1);}
598    throw new Error("Missing return statement in function");
599  }
600
601  static public final InitDeclarator InitDeclarator() throws ParseException {
602   Declarator n0;
603   NodeOptional n1 = new NodeOptional();
604   NodeSequence n2;
605   NodeToken n3;
606   Token n4;
607   Initializer n5;
608
609   {
610   }
611    n0 = Declarator();
612    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
613    case 54:
614        n2 = new NodeSequence(2);
615      n4 = jj_consume_token(54);
616               n3 = JTBToolkit.makeNodeToken(n4);
617        n2.addNode(n3);
618      n5 = Initializer();
619        n2.addNode(n5);
620        n1.addNode(n2);
621      break;
622    default:
623      jj_la1[10] = jj_gen;
624      ;
625    }
626     {if (true) return new InitDeclarator(n0,n1);}
627    throw new Error("Missing return statement in function");
628  }
629
630  static public final StructDeclaration StructDeclaration() throws ParseException {
631   SpecifierQualifierList n0;
632   StructDeclaratorList n1;
633   NodeToken n2;
634   Token n3;
635
636   {
637   }
638    n0 = SpecifierQualifierList();
639    n1 = StructDeclaratorList();
640    n3 = jj_consume_token(50);
641            n2 = JTBToolkit.makeNodeToken(n3);
642     {if (true) return new StructDeclaration(n0,n1,n2);}
643    throw new Error("Missing return statement in function");
644  }
645
646  static public final SpecifierQualifierList SpecifierQualifierList() throws ParseException {
647   NodeChoice n0;
648   NodeSequence n1;
649   TypeSpecifier n2;
650   NodeOptional n3 = new NodeOptional();
651   SpecifierQualifierList n4;
652   NodeSequence n5;
653   TypeQualifier n6;
654   NodeOptional n7 = new NodeOptional();
655   SpecifierQualifierList n8;
656
657   {
658   }
659    if (jj_2_15(1)) {
660        n1 = new NodeSequence(2);
661      n2 = TypeSpecifier();
662        n1.addNode(n2);
663      if (jj_2_13(2147483647)) {
664        n4 = SpecifierQualifierList();
665           n3.addNode(n4);
666      } else {
667        ;
668      }
669        n1.addNode(n3);
670        n0 = new NodeChoice(n1, 0);
671    } else {
672      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
673      case VOLATILE:
674      case CONST:
675        n5 = new NodeSequence(2);
676        n6 = TypeQualifier();
677        n5.addNode(n6);
678        if (jj_2_14(2147483647)) {
679          n8 = SpecifierQualifierList();
680           n7.addNode(n8);
681        } else {
682          ;
683        }
684        n5.addNode(n7);
685        n0 = new NodeChoice(n5, 1);
686        break;
687      default:
688        jj_la1[11] = jj_gen;
689        jj_consume_token(-1);
690        throw new ParseException();
691      }
692    }
693     {if (true) return new SpecifierQualifierList(n0);}
694    throw new Error("Missing return statement in function");
695  }
696
697  static public final StructDeclaratorList StructDeclaratorList() throws ParseException {
698   StructDeclarator n0;
699   NodeListOptional n1 = new NodeListOptional();
700   NodeSequence n2;
701   NodeToken n3;
702   Token n4;
703   StructDeclarator n5;
704
705   {
706   }
707    n0 = StructDeclarator();
708    label_5:
709    while (true) {
710      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
711      case 53:
712        ;
713        break;
714      default:
715        jj_la1[12] = jj_gen;
716        break label_5;
717      }
718        n2 = new NodeSequence(2);
719      n4 = jj_consume_token(53);
720               n3 = JTBToolkit.makeNodeToken(n4);
721        n2.addNode(n3);
722      n5 = StructDeclarator();
723        n2.addNode(n5);
724        n1.addNode(n2);
725    }
726     n1.nodes.trimToSize();
727     {if (true) return new StructDeclaratorList(n0,n1);}
728    throw new Error("Missing return statement in function");
729  }
730
731  static public final StructDeclarator StructDeclarator() throws ParseException {
732   NodeChoice n0;
733   Declarator n1;
734   NodeSequence n2;
735   NodeOptional n3 = new NodeOptional();
736   Declarator n4;
737   NodeToken n5;
738   Token n6;
739   ConstantExpression n7;
740
741   {
742   }
743    if (jj_2_16(3)) {
744      n1 = Declarator();
745           n0 = new NodeChoice(n1, 0);
746    } else {
747      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
748      case IDENTIFIER:
749      case 55:
750      case 56:
751      case 60:
752           n2 = new NodeSequence(3);
753        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
754        case IDENTIFIER:
755        case 56:
756        case 60:
757          n4 = Declarator();
758              n3.addNode(n4);
759          break;
760        default:
761          jj_la1[13] = jj_gen;
762          ;
763        }
764           n2.addNode(n3);
765        n6 = jj_consume_token(55);
766                  n5 = JTBToolkit.makeNodeToken(n6);
767           n2.addNode(n5);
768        n7 = ConstantExpression();
769           n2.addNode(n7);
770           n0 = new NodeChoice(n2, 1);
771        break;
772      default:
773        jj_la1[14] = jj_gen;
774        jj_consume_token(-1);
775        throw new ParseException();
776      }
777    }
778     {if (true) return new StructDeclarator(n0);}
779    throw new Error("Missing return statement in function");
780  }
781
782  static public final EnumSpecifier EnumSpecifier() throws ParseException {
783   NodeToken n0;
784   Token n1;
785   NodeChoice n2;
786   NodeSequence n3;
787   NodeOptional n4 = new NodeOptional();
788   NodeToken n5;
789   Token n6;
790   NodeToken n7;
791   Token n8;
792   EnumeratorList n9;
793   NodeToken n10;
794   Token n11;
795   NodeToken n12;
796   Token n13;
797
798   {
799   }
800    n1 = jj_consume_token(ENUM);
801               n0 = JTBToolkit.makeNodeToken(n1);
802    if (jj_2_17(3)) {
803           n3 = new NodeSequence(5);
804      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
805      case IDENTIFIER:
806        n6 = jj_consume_token(IDENTIFIER);
807                              n5 = JTBToolkit.makeNodeToken(n6);
808              n4.addNode(n5);
809        break;
810      default:
811        jj_la1[15] = jj_gen;
812        ;
813      }
814           n3.addNode(n4);
815      n8 = jj_consume_token(51);
816                  n7 = JTBToolkit.makeNodeToken(n8);
817           n3.addNode(n7);
818      n9 = EnumeratorList();
819           n3.addNode(n9);
820      n11 = jj_consume_token(52);
821                   n10 = JTBToolkit.makeNodeToken(n11);
822           n3.addNode(n10);
823           n2 = new NodeChoice(n3, 0);
824    } else {
825      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
826      case IDENTIFIER:
827        n13 = jj_consume_token(IDENTIFIER);
828                            n12 = JTBToolkit.makeNodeToken(n13);
829           n2 = new NodeChoice(n12, 1);
830        break;
831      default:
832        jj_la1[16] = jj_gen;
833        jj_consume_token(-1);
834        throw new ParseException();
835      }
836    }
837     {if (true) return new EnumSpecifier(n0,n2);}
838    throw new Error("Missing return statement in function");
839  }
840
841  static public final EnumeratorList EnumeratorList() throws ParseException {
842   Enumerator n0;
843   NodeListOptional n1 = new NodeListOptional();
844   NodeSequence n2;
845   NodeToken n3;
846   Token n4;
847   Enumerator n5;
848
849   {
850   }
851    n0 = Enumerator();
852    label_6:
853    while (true) {
854      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
855      case 53:
856        ;
857        break;
858      default:
859        jj_la1[17] = jj_gen;
860        break label_6;
861      }
862        n2 = new NodeSequence(2);
863      n4 = jj_consume_token(53);
864               n3 = JTBToolkit.makeNodeToken(n4);
865        n2.addNode(n3);
866      n5 = Enumerator();
867        n2.addNode(n5);
868        n1.addNode(n2);
869    }
870     n1.nodes.trimToSize();
871     {if (true) return new EnumeratorList(n0,n1);}
872    throw new Error("Missing return statement in function");
873  }
874
875  static public final Enumerator Enumerator() throws ParseException {
876   NodeToken n0;
877   Token n1;
878   NodeOptional n2 = new NodeOptional();
879   NodeSequence n3;
880   NodeToken n4;
881   Token n5;
882   ConstantExpression n6;
883
884   {
885   }
886    n1 = jj_consume_token(IDENTIFIER);
887                     n0 = JTBToolkit.makeNodeToken(n1);
888    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
889    case 54:
890        n3 = new NodeSequence(2);
891      n5 = jj_consume_token(54);
892               n4 = JTBToolkit.makeNodeToken(n5);
893        n3.addNode(n4);
894      n6 = ConstantExpression();
895        n3.addNode(n6);
896        n2.addNode(n3);
897      break;
898    default:
899      jj_la1[18] = jj_gen;
900      ;
901    }
902     {if (true) return new Enumerator(n0,n2);}
903    throw new Error("Missing return statement in function");
904  }
905
906  static public final Declarator Declarator() throws ParseException {
907   NodeOptional n0 = new NodeOptional();
908   Pointer n1;
909   DirectDeclarator n2;
910
911   {
912   }
913    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
914    case 60:
915      n1 = Pointer();
916        n0.addNode(n1);
917      break;
918    default:
919      jj_la1[19] = jj_gen;
920      ;
921    }
922    n2 = DirectDeclarator();
923     {if (true) return new Declarator(n0,n2);}
924    throw new Error("Missing return statement in function");
925  }
926
927  static public final DirectDeclarator DirectDeclarator() throws ParseException {
928   NodeChoice n0;
929   NodeToken n1;
930   Token n2;
931   NodeSequence n3;
932   NodeToken n4;
933   Token n5;
934   Declarator n6;
935   NodeToken n7;
936   Token n8;
937   NodeListOptional n9 = new NodeListOptional();
938   NodeChoice n10;
939   NodeSequence n11;
940   NodeToken n12;
941   Token n13;
942   NodeOptional n14;
943   ConstantExpression n15;
944   NodeToken n16;
945   Token n17;
946   NodeSequence n18;
947   NodeToken n19;
948   Token n20;
949   ParameterTypeList n21;
950   NodeToken n22;
951   Token n23;
952   NodeSequence n24;
953   NodeToken n25;
954   Token n26;
955   NodeOptional n27;
956   IdentifierList n28;
957   NodeToken n29;
958   Token n30;
959
960   {
961   }
962    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
963    case IDENTIFIER:
964      n2 = jj_consume_token(IDENTIFIER);
965                           n1 = JTBToolkit.makeNodeToken(n2);
966            Token t;
967            t = n2;
968            if ( !(typedefParsingStack.empty()) && (typedefParsingStack.peek()).booleanValue() )
969            {
970               addType(t.image);
971            }
972           n0 = new NodeChoice(n1, 0);
973      break;
974    case 56:
975           n3 = new NodeSequence(3);
976      n5 = jj_consume_token(56);
977                  n4 = JTBToolkit.makeNodeToken(n5);
978           n3.addNode(n4);
979      n6 = Declarator();
980           n3.addNode(n6);
981      n8 = jj_consume_token(57);
982                  n7 = JTBToolkit.makeNodeToken(n8);
983           n3.addNode(n7);
984           n0 = new NodeChoice(n3, 1);
985      break;
986    default:
987      jj_la1[20] = jj_gen;
988      jj_consume_token(-1);
989      throw new ParseException();
990    }
991    label_7:
992    while (true) {
993      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
994      case 56:
995      case 58:
996        ;
997        break;
998      default:
999        jj_la1[21] = jj_gen;
1000        break label_7;
1001      }
1002        n14 = new NodeOptional();
1003        n27 = new NodeOptional();
1004      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1005      case 58:
1006           n11 = new NodeSequence(3);
1007        n13 = jj_consume_token(58);
1008                   n12 = JTBToolkit.makeNodeToken(n13);
1009           n11.addNode(n12);
1010        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1011        case INTEGER_LITERAL:
1012        case FLOATING_POINT_LITERAL:
1013        case CHARACTER_LITERAL:
1014        case STRING_LITERAL:
1015        case SIZEOF:
1016        case IDENTIFIER:
1017        case 56:
1018        case 60:
1019        case 77:
1020        case 86:
1021        case 87:
1022        case 90:
1023        case 91:
1024        case 92:
1025        case 93:
1026          n15 = ConstantExpression();
1027              n14.addNode(n15);
1028          break;
1029        default:
1030          jj_la1[22] = jj_gen;
1031          ;
1032        }
1033           n11.addNode(n14);
1034        n17 = jj_consume_token(59);
1035                   n16 = JTBToolkit.makeNodeToken(n17);
1036           n11.addNode(n16);
1037           n10 = new NodeChoice(n11, 0);
1038        break;
1039      default:
1040        jj_la1[24] = jj_gen;
1041        if (jj_2_18(3)) {
1042           n18 = new NodeSequence(4);
1043          n20 = jj_consume_token(56);
1044                   n19 = JTBToolkit.makeNodeToken(n20);
1045           n18.addNode(n19);
1046          n21 = ParameterTypeList();
1047           n18.addNode(n21);
1048          n23 = jj_consume_token(57);
1049                   n22 = JTBToolkit.makeNodeToken(n23);
1050           n18.addNode(n22);
1051           n10 = new NodeChoice(n18, 1);
1052        } else {
1053          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1054          case 56:
1055           n24 = new NodeSequence(3);
1056            n26 = jj_consume_token(56);
1057                   n25 = JTBToolkit.makeNodeToken(n26);
1058           n24.addNode(n25);
1059            switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1060            case IDENTIFIER:
1061              n28 = IdentifierList();
1062              n27.addNode(n28);
1063              break;
1064            default:
1065              jj_la1[23] = jj_gen;
1066              ;
1067            }
1068           n24.addNode(n27);
1069            n30 = jj_consume_token(57);
1070                   n29 = JTBToolkit.makeNodeToken(n30);
1071           n24.addNode(n29);
1072           n10 = new NodeChoice(n24, 2);
1073            break;
1074          default:
1075            jj_la1[25] = jj_gen;
1076            jj_consume_token(-1);
1077            throw new ParseException();
1078          }
1079        }
1080      }
1081        n9.addNode(n10);
1082    }
1083     n9.nodes.trimToSize();
1084     {if (true) return new DirectDeclarator(n0,n9);}
1085    throw new Error("Missing return statement in function");
1086  }
1087
1088  static public final Pointer Pointer() throws ParseException {
1089   NodeToken n0;
1090   Token n1;
1091   NodeOptional n2 = new NodeOptional();
1092   TypeQualifierList n3;
1093   NodeOptional n4 = new NodeOptional();
1094   Pointer n5;
1095
1096   {
1097   }
1098    n1 = jj_consume_token(60);
1099            n0 = JTBToolkit.makeNodeToken(n1);
1100    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1101    case VOLATILE:
1102    case CONST:
1103      n3 = TypeQualifierList();
1104        n2.addNode(n3);
1105      break;
1106    default:
1107      jj_la1[26] = jj_gen;
1108      ;
1109    }
1110    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1111    case 60:
1112      n5 = Pointer();
1113        n4.addNode(n5);
1114      break;
1115    default:
1116      jj_la1[27] = jj_gen;
1117      ;
1118    }
1119     {if (true) return new Pointer(n0,n2,n4);}
1120    throw new Error("Missing return statement in function");
1121  }
1122
1123  static public final TypeQualifierList TypeQualifierList() throws ParseException {
1124   NodeList n0 = new NodeList();
1125   TypeQualifier n1;
1126
1127   {
1128   }
1129    label_8:
1130    while (true) {
1131      n1 = TypeQualifier();
1132        n0.addNode(n1);
1133      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1134      case VOLATILE:
1135      case CONST:
1136        ;
1137        break;
1138      default:
1139        jj_la1[28] = jj_gen;
1140        break label_8;
1141      }
1142    }
1143     n0.nodes.trimToSize();
1144     {if (true) return new TypeQualifierList(n0);}
1145    throw new Error("Missing return statement in function");
1146  }
1147
1148  static public final ParameterTypeList ParameterTypeList() throws ParseException {
1149   ParameterList n0;
1150   NodeOptional n1 = new NodeOptional();
1151   NodeSequence n2;
1152   NodeToken n3;
1153   Token n4;
1154   NodeToken n5;
1155   Token n6;
1156
1157   {
1158   }
1159    n0 = ParameterList();
1160    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1161    case 53:
1162        n2 = new NodeSequence(2);
1163      n4 = jj_consume_token(53);
1164               n3 = JTBToolkit.makeNodeToken(n4);
1165        n2.addNode(n3);
1166      n6 = jj_consume_token(61);
1167                 n5 = JTBToolkit.makeNodeToken(n6);
1168        n2.addNode(n5);
1169        n1.addNode(n2);
1170      break;
1171    default:
1172      jj_la1[29] = jj_gen;
1173      ;
1174    }
1175     {if (true) return new ParameterTypeList(n0,n1);}
1176    throw new Error("Missing return statement in function");
1177  }
1178
1179  static public final ParameterList ParameterList() throws ParseException {
1180   ParameterDeclaration n0;
1181   NodeListOptional n1 = new NodeListOptional();
1182   NodeSequence n2;
1183   NodeToken n3;
1184   Token n4;
1185   ParameterDeclaration n5;
1186
1187   {
1188   }
1189    n0 = ParameterDeclaration();
1190    label_9:
1191    while (true) {
1192      if (jj_2_19(2)) {
1193        ;
1194      } else {
1195        break label_9;
1196      }
1197        n2 = new NodeSequence(2);
1198      n4 = jj_consume_token(53);
1199               n3 = JTBToolkit.makeNodeToken(n4);
1200        n2.addNode(n3);
1201      n5 = ParameterDeclaration();
1202        n2.addNode(n5);
1203        n1.addNode(n2);
1204    }
1205     n1.nodes.trimToSize();
1206     {if (true) return new ParameterList(n0,n1);}
1207    throw new Error("Missing return statement in function");
1208  }
1209
1210  static public final ParameterDeclaration ParameterDeclaration() throws ParseException {
1211   DeclarationSpecifiers n0;
1212   NodeChoice n1;
1213   Declarator n2;
1214   NodeOptional n3 = new NodeOptional();
1215   AbstractDeclarator n4;
1216
1217   {
1218   }
1219    n0 = DeclarationSpecifiers();
1220    if (jj_2_20(2147483647)) {
1221      n2 = Declarator();
1222           n1 = new NodeChoice(n2, 0);
1223    } else {
1224      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1225      case 56:
1226      case 58:
1227      case 60:
1228        n4 = AbstractDeclarator();
1229              n3.addNode(n4);
1230        break;
1231      default:
1232        jj_la1[30] = jj_gen;
1233        ;
1234      }
1235           n1 = new NodeChoice(n3, 1);
1236    }
1237     {if (true) return new ParameterDeclaration(n0,n1);}
1238    throw new Error("Missing return statement in function");
1239  }
1240
1241  static public final IdentifierList IdentifierList() throws ParseException {
1242   NodeToken n0;
1243   Token n1;
1244   NodeListOptional n2 = new NodeListOptional();
1245   NodeSequence n3;
1246   NodeToken n4;
1247   Token n5;
1248   NodeToken n6;
1249   Token n7;
1250
1251   {
1252   }
1253    n1 = jj_consume_token(IDENTIFIER);
1254                     n0 = JTBToolkit.makeNodeToken(n1);
1255    label_10:
1256    while (true) {
1257      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1258      case 53:
1259        ;
1260        break;
1261      default:
1262        jj_la1[31] = jj_gen;
1263        break label_10;
1264      }
1265        n3 = new NodeSequence(2);
1266      n5 = jj_consume_token(53);
1267               n4 = JTBToolkit.makeNodeToken(n5);
1268        n3.addNode(n4);
1269      n7 = jj_consume_token(IDENTIFIER);
1270                        n6 = JTBToolkit.makeNodeToken(n7);
1271        n3.addNode(n6);
1272        n2.addNode(n3);
1273    }
1274     n2.nodes.trimToSize();
1275     {if (true) return new IdentifierList(n0,n2);}
1276    throw new Error("Missing return statement in function");
1277  }
1278
1279  static public final Initializer Initializer() throws ParseException {
1280   NodeChoice n0;
1281   AssignmentExpression n1;
1282   NodeSequence n2;
1283   NodeToken n3;
1284   Token n4;
1285   InitializerList n5;
1286   NodeOptional n6 = new NodeOptional();
1287   NodeToken n7;
1288   Token n8;
1289   NodeToken n9;
1290   Token n10;
1291
1292   {
1293   }
1294    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1295    case INTEGER_LITERAL:
1296    case FLOATING_POINT_LITERAL:
1297    case CHARACTER_LITERAL:
1298    case STRING_LITERAL:
1299    case SIZEOF:
1300    case IDENTIFIER:
1301    case 56:
1302    case 60:
1303    case 77:
1304    case 86:
1305    case 87:
1306    case 90:
1307    case 91:
1308    case 92:
1309    case 93:
1310      n1 = AssignmentExpression();
1311           n0 = new NodeChoice(n1, 0);
1312      break;
1313    case 51:
1314           n2 = new NodeSequence(4);
1315      n4 = jj_consume_token(51);
1316                  n3 = JTBToolkit.makeNodeToken(n4);
1317           n2.addNode(n3);
1318      n5 = InitializerList();
1319           n2.addNode(n5);
1320      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1321      case 53:
1322        n8 = jj_consume_token(53);
1323                     n7 = JTBToolkit.makeNodeToken(n8);
1324              n6.addNode(n7);
1325        break;
1326      default:
1327        jj_la1[32] = jj_gen;
1328        ;
1329      }
1330           n2.addNode(n6);
1331      n10 = jj_consume_token(52);
1332                   n9 = JTBToolkit.makeNodeToken(n10);
1333           n2.addNode(n9);
1334           n0 = new NodeChoice(n2, 1);
1335      break;
1336    default:
1337      jj_la1[33] = jj_gen;
1338      jj_consume_token(-1);
1339      throw new ParseException();
1340    }
1341     {if (true) return new Initializer(n0);}
1342    throw new Error("Missing return statement in function");
1343  }
1344
1345  static public final InitializerList InitializerList() throws ParseException {
1346   Initializer n0;
1347   NodeListOptional n1 = new NodeListOptional();
1348   NodeSequence n2;
1349   NodeToken n3;
1350   Token n4;
1351   Initializer n5;
1352
1353   {
1354   }
1355    n0 = Initializer();
1356    label_11:
1357    while (true) {
1358      if (jj_2_21(2)) {
1359        ;
1360      } else {
1361        break label_11;
1362      }
1363        n2 = new NodeSequence(2);
1364      n4 = jj_consume_token(53);
1365               n3 = JTBToolkit.makeNodeToken(n4);
1366        n2.addNode(n3);
1367      n5 = Initializer();
1368        n2.addNode(n5);
1369        n1.addNode(n2);
1370    }
1371     n1.nodes.trimToSize();
1372     {if (true) return new InitializerList(n0,n1);}
1373    throw new Error("Missing return statement in function");
1374  }
1375
1376  static public final TypeName TypeName() throws ParseException {
1377   SpecifierQualifierList n0;
1378   NodeOptional n1 = new NodeOptional();
1379   AbstractDeclarator n2;
1380
1381   {
1382   }
1383    n0 = SpecifierQualifierList();
1384    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1385    case 56:
1386    case 58:
1387    case 60:
1388      n2 = AbstractDeclarator();
1389        n1.addNode(n2);
1390      break;
1391    default:
1392      jj_la1[34] = jj_gen;
1393      ;
1394    }
1395     {if (true) return new TypeName(n0,n1);}
1396    throw new Error("Missing return statement in function");
1397  }
1398
1399  static public final AbstractDeclarator AbstractDeclarator() throws ParseException {
1400   NodeChoice n0;
1401   Pointer n1;
1402   NodeSequence n2;
1403   NodeOptional n3 = new NodeOptional();
1404   Pointer n4;
1405   DirectAbstractDeclarator n5;
1406
1407   {
1408   }
1409    if (jj_2_22(3)) {
1410      n1 = Pointer();
1411           n0 = new NodeChoice(n1, 0);
1412    } else {
1413      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1414      case 56:
1415      case 58:
1416      case 60:
1417           n2 = new NodeSequence(2);
1418        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1419        case 60:
1420          n4 = Pointer();
1421              n3.addNode(n4);
1422          break;
1423        default:
1424          jj_la1[35] = jj_gen;
1425          ;
1426        }
1427           n2.addNode(n3);
1428        n5 = DirectAbstractDeclarator();
1429           n2.addNode(n5);
1430           n0 = new NodeChoice(n2, 1);
1431        break;
1432      default:
1433        jj_la1[36] = jj_gen;
1434        jj_consume_token(-1);
1435        throw new ParseException();
1436      }
1437    }
1438     {if (true) return new AbstractDeclarator(n0);}
1439    throw new Error("Missing return statement in function");
1440  }
1441
1442  static public final DirectAbstractDeclarator DirectAbstractDeclarator() throws ParseException {
1443   NodeChoice n0;
1444   NodeSequence n1;
1445   NodeToken n2;
1446   Token n3;
1447   AbstractDeclarator n4;
1448   NodeToken n5;
1449   Token n6;
1450   NodeSequence n7;
1451   NodeToken n8;
1452   Token n9;
1453   NodeOptional n10 = new NodeOptional();
1454   ConstantExpression n11;
1455   NodeToken n12;
1456   Token n13;
1457   NodeSequence n14;
1458   NodeToken n15;
1459   Token n16;
1460   NodeOptional n17 = new NodeOptional();
1461   ParameterTypeList n18;
1462   NodeToken n19;
1463   Token n20;
1464   NodeListOptional n21 = new NodeListOptional();
1465   NodeChoice n22;
1466   NodeSequence n23;
1467   NodeToken n24;
1468   Token n25;
1469   NodeOptional n26;
1470   ConstantExpression n27;
1471   NodeToken n28;
1472   Token n29;
1473   NodeSequence n30;
1474   NodeToken n31;
1475   Token n32;
1476   NodeOptional n33;
1477   ParameterTypeList n34;
1478   NodeToken n35;
1479   Token n36;
1480
1481   {
1482   }
1483    if (jj_2_24(2)) {
1484           n1 = new NodeSequence(4);
1485      n3 = jj_consume_token(56);
1486                  n2 = JTBToolkit.makeNodeToken(n3);
1487           n1.addNode(n2);
1488      n4 = AbstractDeclarator();
1489           n1.addNode(n4);
1490      n6 = jj_consume_token(57);
1491                  n5 = JTBToolkit.makeNodeToken(n6);
1492           n1.addNode(n5);
1493           n0 = new NodeChoice(n1, 0);
1494    } else {
1495      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1496      case 58:
1497           n7 = new NodeSequence(3);
1498        n9 = jj_consume_token(58);
1499                  n8 = JTBToolkit.makeNodeToken(n9);
1500           n7.addNode(n8);
1501        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1502        case INTEGER_LITERAL:
1503        case FLOATING_POINT_LITERAL:
1504        case CHARACTER_LITERAL:
1505        case STRING_LITERAL:
1506        case SIZEOF:
1507        case IDENTIFIER:
1508        case 56:
1509        case 60:
1510        case 77:
1511        case 86:
1512        case 87:
1513        case 90:
1514        case 91:
1515        case 92:
1516        case 93:
1517          n11 = ConstantExpression();
1518              n10.addNode(n11);
1519          break;
1520        default:
1521          jj_la1[37] = jj_gen;
1522          ;
1523        }
1524           n7.addNode(n10);
1525        n13 = jj_consume_token(59);
1526                   n12 = JTBToolkit.makeNodeToken(n13);
1527           n7.addNode(n12);
1528           n0 = new NodeChoice(n7, 1);
1529        break;
1530      case 56:
1531           n14 = new NodeSequence(3);
1532        n16 = jj_consume_token(56);
1533                   n15 = JTBToolkit.makeNodeToken(n16);
1534           n14.addNode(n15);
1535        if (jj_2_23(1)) {
1536          n18 = ParameterTypeList();
1537              n17.addNode(n18);
1538        } else {
1539          ;
1540        }
1541           n14.addNode(n17);
1542        n20 = jj_consume_token(57);
1543                   n19 = JTBToolkit.makeNodeToken(n20);
1544           n14.addNode(n19);
1545           n0 = new NodeChoice(n14, 2);
1546        break;
1547      default:
1548        jj_la1[38] = jj_gen;
1549        jj_consume_token(-1);
1550        throw new ParseException();
1551      }
1552    }
1553    label_12:
1554    while (true) {
1555      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1556      case 56:
1557      case 58:
1558        ;
1559        break;
1560      default:
1561        jj_la1[39] = jj_gen;
1562        break label_12;
1563      }
1564        n26 = new NodeOptional();
1565        n33 = new NodeOptional();
1566      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1567      case 58:
1568           n23 = new NodeSequence(3);
1569        n25 = jj_consume_token(58);
1570                   n24 = JTBToolkit.makeNodeToken(n25);
1571           n23.addNode(n24);
1572        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1573        case INTEGER_LITERAL:
1574        case FLOATING_POINT_LITERAL:
1575        case CHARACTER_LITERAL:
1576        case STRING_LITERAL:
1577        case SIZEOF:
1578        case IDENTIFIER:
1579        case 56:
1580        case 60:
1581        case 77:
1582        case 86:
1583        case 87:
1584        case 90:
1585        case 91:
1586        case 92:
1587        case 93:
1588          n27 = ConstantExpression();
1589              n26.addNode(n27);
1590          break;
1591        default:
1592          jj_la1[40] = jj_gen;
1593          ;
1594        }
1595           n23.addNode(n26);
1596        n29 = jj_consume_token(59);
1597                   n28 = JTBToolkit.makeNodeToken(n29);
1598           n23.addNode(n28);
1599           n22 = new NodeChoice(n23, 0);
1600        break;
1601      case 56:
1602           n30 = new NodeSequence(3);
1603        n32 = jj_consume_token(56);
1604                   n31 = JTBToolkit.makeNodeToken(n32);
1605           n30.addNode(n31);
1606        if (jj_2_25(1)) {
1607          n34 = ParameterTypeList();
1608              n33.addNode(n34);
1609        } else {
1610          ;
1611        }
1612           n30.addNode(n33);
1613        n36 = jj_consume_token(57);
1614                   n35 = JTBToolkit.makeNodeToken(n36);
1615           n30.addNode(n35);
1616           n22 = new NodeChoice(n30, 1);
1617        break;
1618      default:
1619        jj_la1[41] = jj_gen;
1620        jj_consume_token(-1);
1621        throw new ParseException();
1622      }
1623        n21.addNode(n22);
1624    }
1625     n21.nodes.trimToSize();
1626     {if (true) return new DirectAbstractDeclarator(n0,n21);}
1627    throw new Error("Missing return statement in function");
1628  }
1629
1630  static public final TypedefName TypedefName() throws ParseException {
1631   NodeToken n0;
1632   Token n1;
1633
1634   {
1635   }
1636    n1 = jj_consume_token(IDENTIFIER);
1637                     n0 = JTBToolkit.makeNodeToken(n1);
1638     {if (true) return new TypedefName(n0);}
1639    throw new Error("Missing return statement in function");
1640  }
1641
1642  static public final Statement Statement() throws ParseException {
1643   NodeChoice n0;
1644   LabeledStatement n1;
1645   ExpressionStatement n2;
1646   CompoundStatement n3;
1647   SelectionStatement n4;
1648   IterationStatement n5;
1649   JumpStatement n6;
1650
1651   {
1652   }
1653    if (jj_2_26(2)) {
1654      n1 = LabeledStatement();
1655           n0 = new NodeChoice(n1, 0);
1656    } else {
1657      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1658      case INTEGER_LITERAL:
1659      case FLOATING_POINT_LITERAL:
1660      case CHARACTER_LITERAL:
1661      case STRING_LITERAL:
1662      case SIZEOF:
1663      case IDENTIFIER:
1664      case 50:
1665      case 56:
1666      case 60:
1667      case 77:
1668      case 86:
1669      case 87:
1670      case 90:
1671      case 91:
1672      case 92:
1673      case 93:
1674        n2 = ExpressionStatement();
1675           n0 = new NodeChoice(n2, 1);
1676        break;
1677      case 51:
1678        n3 = CompoundStatement();
1679           n0 = new NodeChoice(n3, 2);
1680        break;
1681      case SWITCH:
1682      case IF:
1683        n4 = SelectionStatement();
1684           n0 = new NodeChoice(n4, 3);
1685        break;
1686      case WHILE:
1687      case FOR:
1688      case DO:
1689        n5 = IterationStatement();
1690           n0 = new NodeChoice(n5, 4);
1691        break;
1692      case CONTINUE:
1693      case RETURN:
1694      case BREAK:
1695      case GOTO:
1696        n6 = JumpStatement();
1697           n0 = new NodeChoice(n6, 5);
1698        break;
1699      default:
1700        jj_la1[42] = jj_gen;
1701        jj_consume_token(-1);
1702        throw new ParseException();
1703      }
1704    }
1705     {if (true) return new Statement(n0);}
1706    throw new Error("Missing return statement in function");
1707  }
1708
1709  static public final LabeledStatement LabeledStatement() throws ParseException {
1710   NodeChoice n0;
1711   NodeSequence n1;
1712   NodeToken n2;
1713   Token n3;
1714   NodeToken n4;
1715   Token n5;
1716   Statement n6;
1717   NodeSequence n7;
1718   NodeToken n8;
1719   Token n9;
1720   ConstantExpression n10;
1721   NodeToken n11;
1722   Token n12;
1723   Statement n13;
1724   NodeSequence n14;
1725   NodeToken n15;
1726   Token n16;
1727   NodeToken n17;
1728   Token n18;
1729   Statement n19;
1730
1731   {
1732   }
1733    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1734    case IDENTIFIER:
1735           n1 = new NodeSequence(3);
1736      n3 = jj_consume_token(IDENTIFIER);
1737                           n2 = JTBToolkit.makeNodeToken(n3);
1738           n1.addNode(n2);
1739      n5 = jj_consume_token(55);
1740                  n4 = JTBToolkit.makeNodeToken(n5);
1741           n1.addNode(n4);
1742      n6 = Statement();
1743           n1.addNode(n6);
1744           n0 = new NodeChoice(n1, 0);
1745      break;
1746    case CASE:
1747           n7 = new NodeSequence(4);
1748      n9 = jj_consume_token(CASE);
1749                     n8 = JTBToolkit.makeNodeToken(n9);
1750           n7.addNode(n8);
1751      n10 = ConstantExpression();
1752           n7.addNode(n10);
1753      n12 = jj_consume_token(55);
1754                   n11 = JTBToolkit.makeNodeToken(n12);
1755           n7.addNode(n11);
1756      n13 = Statement();
1757           n7.addNode(n13);
1758           n0 = new NodeChoice(n7, 1);
1759      break;
1760    case DFLT:
1761           n14 = new NodeSequence(3);
1762      n16 = jj_consume_token(DFLT);
1763                      n15 = JTBToolkit.makeNodeToken(n16);
1764           n14.addNode(n15);
1765      n18 = jj_consume_token(55);
1766                   n17 = JTBToolkit.makeNodeToken(n18);
1767           n14.addNode(n17);
1768      n19 = Statement();
1769           n14.addNode(n19);
1770           n0 = new NodeChoice(n14, 2);
1771      break;
1772    default:
1773      jj_la1[43] = jj_gen;
1774      jj_consume_token(-1);
1775      throw new ParseException();
1776    }
1777     {if (true) return new LabeledStatement(n0);}
1778    throw new Error("Missing return statement in function");
1779  }
1780
1781  static public final ExpressionStatement ExpressionStatement() throws ParseException {
1782   NodeOptional n0 = new NodeOptional();
1783   Expression n1;
1784   NodeToken n2;
1785   Token n3;
1786
1787   {
1788   }
1789    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1790    case INTEGER_LITERAL:
1791    case FLOATING_POINT_LITERAL:
1792    case CHARACTER_LITERAL:
1793    case STRING_LITERAL:
1794    case SIZEOF:
1795    case IDENTIFIER:
1796    case 56:
1797    case 60:
1798    case 77:
1799    case 86:
1800    case 87:
1801    case 90:
1802    case 91:
1803    case 92:
1804    case 93:
1805      n1 = Expression();
1806        n0.addNode(n1);
1807      break;
1808    default:
1809      jj_la1[44] = jj_gen;
1810      ;
1811    }
1812    n3 = jj_consume_token(50);
1813            n2 = JTBToolkit.makeNodeToken(n3);
1814     {if (true) return new ExpressionStatement(n0,n2);}
1815    throw new Error("Missing return statement in function");
1816  }
1817
1818  static public final CompoundStatement CompoundStatement() throws ParseException {
1819   NodeToken n0;
1820   Token n1;
1821   NodeOptional n2 = new NodeOptional();
1822   DeclarationList n3;
1823   NodeOptional n4 = new NodeOptional();
1824   StatementList n5;
1825   NodeToken n6;
1826   Token n7;
1827
1828   {
1829   }
1830    n1 = jj_consume_token(51);
1831            n0 = JTBToolkit.makeNodeToken(n1);
1832    if (jj_2_27(2147483647)) {
1833      n3 = DeclarationList();
1834        n2.addNode(n3);
1835    } else {
1836      ;
1837    }
1838    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1839    case INTEGER_LITERAL:
1840    case FLOATING_POINT_LITERAL:
1841    case CHARACTER_LITERAL:
1842    case STRING_LITERAL:
1843    case CONTINUE:
1844    case DFLT:
1845    case SIZEOF:
1846    case SWITCH:
1847    case RETURN:
1848    case WHILE:
1849    case BREAK:
1850    case CASE:
1851    case GOTO:
1852    case FOR:
1853    case IF:
1854    case DO:
1855    case IDENTIFIER:
1856    case 50:
1857    case 51:
1858    case 56:
1859    case 60:
1860    case 77:
1861    case 86:
1862    case 87:
1863    case 90:
1864    case 91:
1865    case 92:
1866    case 93:
1867      n5 = StatementList();
1868        n4.addNode(n5);
1869      break;
1870    default:
1871      jj_la1[45] = jj_gen;
1872      ;
1873    }
1874    n7 = jj_consume_token(52);
1875            n6 = JTBToolkit.makeNodeToken(n7);
1876     {if (true) return new CompoundStatement(n0,n2,n4,n6);}
1877    throw new Error("Missing return statement in function");
1878  }
1879
1880  static public final StatementList StatementList() throws ParseException {
1881   NodeList n0 = new NodeList();
1882   Statement n1;
1883
1884   {
1885   }
1886    label_13:
1887    while (true) {
1888      n1 = Statement();
1889        n0.addNode(n1);
1890      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1891      case INTEGER_LITERAL:
1892      case FLOATING_POINT_LITERAL:
1893      case CHARACTER_LITERAL:
1894      case STRING_LITERAL:
1895      case CONTINUE:
1896      case DFLT:
1897      case SIZEOF:
1898      case SWITCH:
1899      case RETURN:
1900      case WHILE:
1901      case BREAK:
1902      case CASE:
1903      case GOTO:
1904      case FOR:
1905      case IF:
1906      case DO:
1907      case IDENTIFIER:
1908      case 50:
1909      case 51:
1910      case 56:
1911      case 60:
1912      case 77:
1913      case 86:
1914      case 87:
1915      case 90:
1916      case 91:
1917      case 92:
1918      case 93:
1919        ;
1920        break;
1921      default:
1922        jj_la1[46] = jj_gen;
1923        break label_13;
1924      }
1925    }
1926     n0.nodes.trimToSize();
1927     {if (true) return new StatementList(n0);}
1928    throw new Error("Missing return statement in function");
1929  }
1930
1931  static public final SelectionStatement SelectionStatement() throws ParseException {
1932   NodeChoice n0;
1933   NodeSequence n1;
1934   NodeToken n2;
1935   Token n3;
1936   NodeToken n4;
1937   Token n5;
1938   Expression n6;
1939   NodeToken n7;
1940   Token n8;
1941   Statement n9;
1942   NodeOptional n10 = new NodeOptional();
1943   NodeSequence n11;
1944   NodeToken n12;
1945   Token n13;
1946   Statement n14;
1947   NodeSequence n15;
1948   NodeToken n16;
1949   Token n17;
1950   NodeToken n18;
1951   Token n19;
1952   Expression n20;
1953   NodeToken n21;
1954   Token n22;
1955   Statement n23;
1956
1957   {
1958   }
1959    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1960    case IF:
1961           n1 = new NodeSequence(6);
1962      n3 = jj_consume_token(IF);
1963                   n2 = JTBToolkit.makeNodeToken(n3);
1964           n1.addNode(n2);
1965      n5 = jj_consume_token(56);
1966                  n4 = JTBToolkit.makeNodeToken(n5);
1967           n1.addNode(n4);
1968      n6 = Expression();
1969           n1.addNode(n6);
1970      n8 = jj_consume_token(57);
1971                  n7 = JTBToolkit.makeNodeToken(n8);
1972           n1.addNode(n7);
1973      n9 = Statement();
1974           n1.addNode(n9);
1975      if (jj_2_28(2)) {
1976              n11 = new NodeSequence(2);
1977        n13 = jj_consume_token(ELSE);
1978                         n12 = JTBToolkit.makeNodeToken(n13);
1979              n11.addNode(n12);
1980        n14 = Statement();
1981              n11.addNode(n14);
1982              n10.addNode(n11);
1983      } else {
1984        ;
1985      }
1986           n1.addNode(n10);
1987           n0 = new NodeChoice(n1, 0);
1988      break;
1989    case SWITCH:
1990           n15 = new NodeSequence(5);
1991      n17 = jj_consume_token(SWITCH);
1992                        n16 = JTBToolkit.makeNodeToken(n17);
1993           n15.addNode(n16);
1994      n19 = jj_consume_token(56);
1995                   n18 = JTBToolkit.makeNodeToken(n19);
1996           n15.addNode(n18);
1997      n20 = Expression();
1998           n15.addNode(n20);
1999      n22 = jj_consume_token(57);
2000                   n21 = JTBToolkit.makeNodeToken(n22);
2001           n15.addNode(n21);
2002      n23 = Statement();
2003           n15.addNode(n23);
2004           n0 = new NodeChoice(n15, 1);
2005      break;
2006    default:
2007      jj_la1[47] = jj_gen;
2008      jj_consume_token(-1);
2009      throw new ParseException();
2010    }
2011     {if (true) return new SelectionStatement(n0);}
2012    throw new Error("Missing return statement in function");
2013  }
2014
2015  static public final IterationStatement IterationStatement() throws ParseException {
2016   NodeChoice n0;
2017   NodeSequence n1;
2018   NodeToken n2;
2019   Token n3;
2020   NodeToken n4;
2021   Token n5;
2022   Expression n6;
2023   NodeToken n7;
2024   Token n8;
2025   Statement n9;
2026   NodeSequence n10;
2027   NodeToken n11;
2028   Token n12;
2029   Statement n13;
2030   NodeToken n14;
2031   Token n15;
2032   NodeToken n16;
2033   Token n17;
2034   Expression n18;
2035   NodeToken n19;
2036   Token n20;
2037   NodeToken n21;
2038   Token n22;
2039   NodeSequence n23;
2040   NodeToken n24;
2041   Token n25;
2042   NodeToken n26;
2043   Token n27;
2044   NodeOptional n28 = new NodeOptional();
2045   Expression n29;
2046   NodeToken n30;
2047   Token n31;
2048   NodeOptional n32 = new NodeOptional();
2049   Expression n33;
2050   NodeToken n34;
2051   Token n35;
2052   NodeOptional n36 = new NodeOptional();
2053   Expression n37;
2054   NodeToken n38;
2055   Token n39;
2056   Statement n40;
2057
2058   {
2059   }
2060    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2061    case WHILE:
2062           n1 = new NodeSequence(5);
2063      n3 = jj_consume_token(WHILE);
2064                      n2 = JTBToolkit.makeNodeToken(n3);
2065           n1.addNode(n2);
2066      n5 = jj_consume_token(56);
2067                  n4 = JTBToolkit.makeNodeToken(n5);
2068           n1.addNode(n4);
2069      n6 = Expression();
2070           n1.addNode(n6);
2071      n8 = jj_consume_token(57);
2072                  n7 = JTBToolkit.makeNodeToken(n8);
2073           n1.addNode(n7);
2074      n9 = Statement();
2075           n1.addNode(n9);
2076           n0 = new NodeChoice(n1, 0);
2077      break;
2078    case DO:
2079           n10 = new NodeSequence(7);
2080      n12 = jj_consume_token(DO);
2081                    n11 = JTBToolkit.makeNodeToken(n12);
2082           n10.addNode(n11);
2083      n13 = Statement();
2084           n10.addNode(n13);
2085      n15 = jj_consume_token(WHILE);
2086                       n14 = JTBToolkit.makeNodeToken(n15);
2087           n10.addNode(n14);
2088      n17 = jj_consume_token(56);
2089                   n16 = JTBToolkit.makeNodeToken(n17);
2090           n10.addNode(n16);
2091      n18 = Expression();
2092           n10.addNode(n18);
2093      n20 = jj_consume_token(57);
2094                   n19 = JTBToolkit.makeNodeToken(n20);
2095           n10.addNode(n19);
2096      n22 = jj_consume_token(50);
2097                   n21 = JTBToolkit.makeNodeToken(n22);
2098           n10.addNode(n21);
2099           n0 = new NodeChoice(n10, 1);
2100      break;
2101    case FOR:
2102           n23 = new NodeSequence(9);
2103      n25 = jj_consume_token(FOR);
2104                     n24 = JTBToolkit.makeNodeToken(n25);
2105           n23.addNode(n24);
2106      n27 = jj_consume_token(56);
2107                   n26 = JTBToolkit.makeNodeToken(n27);
2108           n23.addNode(n26);
2109      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2110      case INTEGER_LITERAL:
2111      case FLOATING_POINT_LITERAL:
2112      case CHARACTER_LITERAL:
2113      case STRING_LITERAL:
2114      case SIZEOF:
2115      case IDENTIFIER:
2116      case 56:
2117      case 60:
2118      case 77:
2119      case 86:
2120      case 87:
2121      case 90:
2122      case 91:
2123      case 92:
2124      case 93:
2125        n29 = Expression();
2126              n28.addNode(n29);
2127        break;
2128      default:
2129        jj_la1[48] = jj_gen;
2130        ;
2131      }
2132           n23.addNode(n28);
2133      n31 = jj_consume_token(50);
2134                   n30 = JTBToolkit.makeNodeToken(n31);
2135           n23.addNode(n30);
2136      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2137      case INTEGER_LITERAL:
2138      case FLOATING_POINT_LITERAL:
2139      case CHARACTER_LITERAL:
2140      case STRING_LITERAL:
2141      case SIZEOF:
2142      case IDENTIFIER:
2143      case 56:
2144      case 60:
2145      case 77:
2146      case 86:
2147      case 87:
2148      case 90:
2149      case 91:
2150      case 92:
2151      case 93:
2152        n33 = Expression();
2153              n32.addNode(n33);
2154        break;
2155      default:
2156        jj_la1[49] = jj_gen;
2157        ;
2158      }
2159           n23.addNode(n32);
2160      n35 = jj_consume_token(50);
2161                   n34 = JTBToolkit.makeNodeToken(n35);
2162           n23.addNode(n34);
2163      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2164      case INTEGER_LITERAL:
2165      case FLOATING_POINT_LITERAL:
2166      case CHARACTER_LITERAL:
2167      case STRING_LITERAL:
2168      case SIZEOF:
2169      case IDENTIFIER:
2170      case 56:
2171      case 60:
2172      case 77:
2173      case 86:
2174      case 87:
2175      case 90:
2176      case 91:
2177      case 92:
2178      case 93:
2179        n37 = Expression();
2180              n36.addNode(n37);
2181        break;
2182      default:
2183        jj_la1[50] = jj_gen;
2184        ;
2185      }
2186           n23.addNode(n36);
2187      n39 = jj_consume_token(57);
2188                   n38 = JTBToolkit.makeNodeToken(n39);
2189           n23.addNode(n38);
2190      n40 = Statement();
2191           n23.addNode(n40);
2192           n0 = new NodeChoice(n23, 2);
2193      break;
2194    default:
2195      jj_la1[51] = jj_gen;
2196      jj_consume_token(-1);
2197      throw new ParseException();
2198    }
2199     {if (true) return new IterationStatement(n0);}
2200    throw new Error("Missing return statement in function");
2201  }
2202
2203  static public final JumpStatement JumpStatement() throws ParseException {
2204   NodeChoice n0;
2205   NodeSequence n1;
2206   NodeToken n2;
2207   Token n3;
2208   NodeToken n4;
2209   Token n5;
2210   NodeToken n6;
2211   Token n7;
2212   NodeSequence n8;
2213   NodeToken n9;
2214   Token n10;
2215   NodeToken n11;
2216   Token n12;
2217   NodeSequence n13;
2218   NodeToken n14;
2219   Token n15;
2220   NodeToken n16;
2221   Token n17;
2222   NodeSequence n18;
2223   NodeToken n19;
2224   Token n20;
2225   NodeOptional n21 = new NodeOptional();
2226   Expression n22;
2227   NodeToken n23;
2228   Token n24;
2229
2230   {
2231   }
2232    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2233    case GOTO:
2234           n1 = new NodeSequence(3);
2235      n3 = jj_consume_token(GOTO);
2236                     n2 = JTBToolkit.makeNodeToken(n3);
2237           n1.addNode(n2);
2238      n5 = jj_consume_token(IDENTIFIER);
2239                           n4 = JTBToolkit.makeNodeToken(n5);
2240           n1.addNode(n4);
2241      n7 = jj_consume_token(50);
2242                  n6 = JTBToolkit.makeNodeToken(n7);
2243           n1.addNode(n6);
2244           n0 = new NodeChoice(n1, 0);
2245      break;
2246    case CONTINUE:
2247           n8 = new NodeSequence(2);
2248      n10 = jj_consume_token(CONTINUE);
2249                          n9 = JTBToolkit.makeNodeToken(n10);
2250           n8.addNode(n9);
2251      n12 = jj_consume_token(50);
2252                   n11 = JTBToolkit.makeNodeToken(n12);
2253           n8.addNode(n11);
2254           n0 = new NodeChoice(n8, 1);
2255      break;
2256    case BREAK:
2257           n13 = new NodeSequence(2);
2258      n15 = jj_consume_token(BREAK);
2259                       n14 = JTBToolkit.makeNodeToken(n15);
2260           n13.addNode(n14);
2261      n17 = jj_consume_token(50);
2262                   n16 = JTBToolkit.makeNodeToken(n17);
2263           n13.addNode(n16);
2264           n0 = new NodeChoice(n13, 2);
2265      break;
2266    case RETURN:
2267           n18 = new NodeSequence(3);
2268      n20 = jj_consume_token(RETURN);
2269                        n19 = JTBToolkit.makeNodeToken(n20);
2270           n18.addNode(n19);
2271      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2272      case INTEGER_LITERAL:
2273      case FLOATING_POINT_LITERAL:
2274      case CHARACTER_LITERAL:
2275      case STRING_LITERAL:
2276      case SIZEOF:
2277      case IDENTIFIER:
2278      case 56:
2279      case 60:
2280      case 77:
2281      case 86:
2282      case 87:
2283      case 90:
2284      case 91:
2285      case 92:
2286      case 93:
2287        n22 = Expression();
2288              n21.addNode(n22);
2289        break;
2290      default:
2291        jj_la1[52] = jj_gen;
2292        ;
2293      }
2294           n18.addNode(n21);
2295      n24 = jj_consume_token(50);
2296                   n23 = JTBToolkit.makeNodeToken(n24);
2297           n18.addNode(n23);
2298           n0 = new NodeChoice(n18, 3);
2299      break;
2300    default:
2301      jj_la1[53] = jj_gen;
2302      jj_consume_token(-1);
2303      throw new ParseException();
2304    }
2305     {if (true) return new JumpStatement(n0);}
2306    throw new Error("Missing return statement in function");
2307  }
2308
2309  static public final Expression Expression() throws ParseException {
2310   AssignmentExpression n0;
2311   NodeListOptional n1 = new NodeListOptional();
2312   NodeSequence n2;
2313   NodeToken n3;
2314   Token n4;
2315   AssignmentExpression n5;
2316
2317   {
2318   }
2319    n0 = AssignmentExpression();
2320    label_14:
2321    while (true) {
2322      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2323      case 53:
2324        ;
2325        break;
2326      default:
2327        jj_la1[54] = jj_gen;
2328        break label_14;
2329      }
2330        n2 = new NodeSequence(2);
2331      n4 = jj_consume_token(53);
2332               n3 = JTBToolkit.makeNodeToken(n4);
2333        n2.addNode(n3);
2334      n5 = AssignmentExpression();
2335        n2.addNode(n5);
2336        n1.addNode(n2);
2337    }
2338     n1.nodes.trimToSize();
2339     {if (true) return new Expression(n0,n1);}
2340    throw new Error("Missing return statement in function");
2341  }
2342
2343  static public final AssignmentExpression AssignmentExpression() throws ParseException {
2344   NodeChoice n0;
2345   NodeSequence n1;
2346   UnaryExpression n2;
2347   AssignmentOperator n3;
2348   AssignmentExpression n4;
2349   ConditionalExpression n5;
2350
2351   {
2352   }
2353    if (jj_2_29(2147483647)) {
2354        n1 = new NodeSequence(4);
2355      n2 = UnaryExpression();
2356        n1.addNode(n2);
2357      n3 = AssignmentOperator();
2358        n1.addNode(n3);
2359      n4 = AssignmentExpression();
2360        n1.addNode(n4);
2361        n0 = new NodeChoice(n1, 0);
2362    } else if (jj_2_30(3)) {
2363      n5 = ConditionalExpression();
2364        n0 = new NodeChoice(n5, 1);
2365    } else {
2366      jj_consume_token(-1);
2367      throw new ParseException();
2368    }
2369     {if (true) return new AssignmentExpression(n0);}
2370    throw new Error("Missing return statement in function");
2371  }
2372
2373  static public final AssignmentOperator AssignmentOperator() throws ParseException {
2374   NodeChoice n0;
2375   NodeToken n1;
2376   Token n2;
2377   NodeToken n3;
2378   Token n4;
2379   NodeToken n5;
2380   Token n6;
2381   NodeToken n7;
2382   Token n8;
2383   NodeToken n9;
2384   Token n10;
2385   NodeToken n11;
2386   Token n12;
2387   NodeToken n13;
2388   Token n14;
2389   NodeToken n15;
2390   Token n16;
2391   NodeToken n17;
2392   Token n18;
2393   NodeToken n19;
2394   Token n20;
2395   NodeToken n21;
2396   Token n22;
2397
2398   {
2399   }
2400    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2401    case 54:
2402      n2 = jj_consume_token(54);
2403                  n1 = JTBToolkit.makeNodeToken(n2);
2404           n0 = new NodeChoice(n1, 0);
2405      break;
2406    case 62:
2407      n4 = jj_consume_token(62);
2408                   n3 = JTBToolkit.makeNodeToken(n4);
2409           n0 = new NodeChoice(n3, 1);
2410      break;
2411    case 63:
2412      n6 = jj_consume_token(63);
2413                   n5 = JTBToolkit.makeNodeToken(n6);
2414           n0 = new NodeChoice(n5, 2);
2415      break;
2416    case 64:
2417      n8 = jj_consume_token(64);
2418                   n7 = JTBToolkit.makeNodeToken(n8);
2419           n0 = new NodeChoice(n7, 3);
2420      break;
2421    case 65:
2422      n10 = jj_consume_token(65);
2423                    n9 = JTBToolkit.makeNodeToken(n10);
2424           n0 = new NodeChoice(n9, 4);
2425      break;
2426    case 66:
2427      n12 = jj_consume_token(66);
2428                    n11 = JTBToolkit.makeNodeToken(n12);
2429           n0 = new NodeChoice(n11, 5);
2430      break;
2431    case 67:
2432      n14 = jj_consume_token(67);
2433                     n13 = JTBToolkit.makeNodeToken(n14);
2434           n0 = new NodeChoice(n13, 6);
2435      break;
2436    case 68:
2437      n16 = jj_consume_token(68);
2438                     n15 = JTBToolkit.makeNodeToken(n16);
2439           n0 = new NodeChoice(n15, 7);
2440      break;
2441    case 69:
2442      n18 = jj_consume_token(69);
2443                    n17 = JTBToolkit.makeNodeToken(n18);
2444           n0 = new NodeChoice(n17, 8);
2445      break;
2446    case 70:
2447      n20 = jj_consume_token(70);
2448                    n19 = JTBToolkit.makeNodeToken(n20);
2449           n0 = new NodeChoice(n19, 9);
2450      break;
2451    case 71:
2452      n22 = jj_consume_token(71);
2453                    n21 = JTBToolkit.makeNodeToken(n22);
2454           n0 = new NodeChoice(n21, 10);
2455      break;
2456    default:
2457      jj_la1[55] = jj_gen;
2458      jj_consume_token(-1);
2459      throw new ParseException();
2460    }
2461     {if (true) return new AssignmentOperator(n0);}
2462    throw new Error("Missing return statement in function");
2463  }
2464
2465  static public final ConditionalExpression ConditionalExpression() throws ParseException {
2466   LogicalORExpression n0;
2467   NodeOptional n1 = new NodeOptional();
2468   NodeSequence n2;
2469   NodeToken n3;
2470   Token n4;
2471   Expression n5;
2472   NodeToken n6;
2473   Token n7;
2474   ConditionalExpression n8;
2475
2476   {
2477   }
2478    n0 = LogicalORExpression();
2479    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2480    case 72:
2481        n2 = new NodeSequence(4);
2482      n4 = jj_consume_token(72);
2483               n3 = JTBToolkit.makeNodeToken(n4);
2484        n2.addNode(n3);
2485      n5 = Expression();
2486        n2.addNode(n5);
2487      n7 = jj_consume_token(55);
2488               n6 = JTBToolkit.makeNodeToken(n7);
2489        n2.addNode(n6);
2490      n8 = ConditionalExpression();
2491        n2.addNode(n8);
2492        n1.addNode(n2);
2493      break;
2494    default:
2495      jj_la1[56] = jj_gen;
2496      ;
2497    }
2498     {if (true) return new ConditionalExpression(n0,n1);}
2499    throw new Error("Missing return statement in function");
2500  }
2501
2502  static public final ConstantExpression ConstantExpression() throws ParseException {
2503   ConditionalExpression n0;
2504
2505   {
2506   }
2507    n0 = ConditionalExpression();
2508     {if (true) return new ConstantExpression(n0);}
2509    throw new Error("Missing return statement in function");
2510  }
2511
2512  static public final LogicalORExpression LogicalORExpression() throws ParseException {
2513   LogicalANDExpression n0;
2514   NodeOptional n1 = new NodeOptional();
2515   NodeSequence n2;
2516   NodeToken n3;
2517   Token n4;
2518   LogicalORExpression n5;
2519
2520   {
2521   }
2522    n0 = LogicalANDExpression();
2523    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2524    case 73:
2525        n2 = new NodeSequence(2);
2526      n4 = jj_consume_token(73);
2527                n3 = JTBToolkit.makeNodeToken(n4);
2528        n2.addNode(n3);
2529      n5 = LogicalORExpression();
2530        n2.addNode(n5);
2531        n1.addNode(n2);
2532      break;
2533    default:
2534      jj_la1[57] = jj_gen;
2535      ;
2536    }
2537     {if (true) return new LogicalORExpression(n0,n1);}
2538    throw new Error("Missing return statement in function");
2539  }
2540
2541  static public final LogicalANDExpression LogicalANDExpression() throws ParseException {
2542   InclusiveORExpression n0;
2543   NodeOptional n1 = new NodeOptional();
2544   NodeSequence n2;
2545   NodeToken n3;
2546   Token n4;
2547   LogicalANDExpression n5;
2548
2549   {
2550   }
2551    n0 = InclusiveORExpression();
2552    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2553    case 74:
2554        n2 = new NodeSequence(2);
2555      n4 = jj_consume_token(74);
2556                n3 = JTBToolkit.makeNodeToken(n4);
2557        n2.addNode(n3);
2558      n5 = LogicalANDExpression();
2559        n2.addNode(n5);
2560        n1.addNode(n2);
2561      break;
2562    default:
2563      jj_la1[58] = jj_gen;
2564      ;
2565    }
2566     {if (true) return new LogicalANDExpression(n0,n1);}
2567    throw new Error("Missing return statement in function");
2568  }
2569
2570  static public final InclusiveORExpression InclusiveORExpression() throws ParseException {
2571   ExclusiveORExpression n0;
2572   NodeOptional n1 = new NodeOptional();
2573   NodeSequence n2;
2574   NodeToken n3;
2575   Token n4;
2576   InclusiveORExpression n5;
2577
2578   {
2579   }
2580    n0 = ExclusiveORExpression();
2581    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2582    case 75:
2583        n2 = new NodeSequence(2);
2584      n4 = jj_consume_token(75);
2585               n3 = JTBToolkit.makeNodeToken(n4);
2586        n2.addNode(n3);
2587      n5 = InclusiveORExpression();
2588        n2.addNode(n5);
2589        n1.addNode(n2);
2590      break;
2591    default:
2592      jj_la1[59] = jj_gen;
2593      ;
2594    }
2595     {if (true) return new InclusiveORExpression(n0,n1);}
2596    throw new Error("Missing return statement in function");
2597  }
2598
2599  static public final ExclusiveORExpression ExclusiveORExpression() throws ParseException {
2600   ANDExpression n0;
2601   NodeOptional n1 = new NodeOptional();
2602   NodeSequence n2;
2603   NodeToken n3;
2604   Token n4;
2605   ExclusiveORExpression n5;
2606
2607   {
2608   }
2609    n0 = ANDExpression();
2610    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2611    case 76:
2612        n2 = new NodeSequence(2);
2613      n4 = jj_consume_token(76);
2614               n3 = JTBToolkit.makeNodeToken(n4);
2615        n2.addNode(n3);
2616      n5 = ExclusiveORExpression();
2617        n2.addNode(n5);
2618        n1.addNode(n2);
2619      break;
2620    default:
2621      jj_la1[60] = jj_gen;
2622      ;
2623    }
2624     {if (true) return new ExclusiveORExpression(n0,n1);}
2625    throw new Error("Missing return statement in function");
2626  }
2627
2628  static public final ANDExpression ANDExpression() throws ParseException {
2629   EqualityExpression n0;
2630   NodeOptional n1 = new NodeOptional();
2631   NodeSequence n2;
2632   NodeToken n3;
2633   Token n4;
2634   ANDExpression n5;
2635
2636   {
2637   }
2638    n0 = EqualityExpression();
2639    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2640    case 77:
2641        n2 = new NodeSequence(2);
2642      n4 = jj_consume_token(77);
2643               n3 = JTBToolkit.makeNodeToken(n4);
2644        n2.addNode(n3);
2645      n5 = ANDExpression();
2646        n2.addNode(n5);
2647        n1.addNode(n2);
2648      break;
2649    default:
2650      jj_la1[61] = jj_gen;
2651      ;
2652    }
2653     {if (true) return new ANDExpression(n0,n1);}
2654    throw new Error("Missing return statement in function");
2655  }
2656
2657  static public final EqualityExpression EqualityExpression() throws ParseException {
2658   RelationalExpression n0;
2659   NodeOptional n1 = new NodeOptional();
2660   NodeSequence n2;
2661   NodeChoice n3;
2662   NodeToken n4;
2663   Token n5;
2664   NodeToken n6;
2665   Token n7;
2666   EqualityExpression n8;
2667
2668   {
2669   }
2670    n0 = RelationalExpression();
2671    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2672    case 78:
2673    case 79:
2674        n2 = new NodeSequence(2);
2675      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2676      case 78:
2677        n5 = jj_consume_token(78);
2678                      n4 = JTBToolkit.makeNodeToken(n5);
2679              n3 = new NodeChoice(n4, 0);
2680        break;
2681      case 79:
2682        n7 = jj_consume_token(79);
2683                      n6 = JTBToolkit.makeNodeToken(n7);
2684              n3 = new NodeChoice(n6, 1);
2685        break;
2686      default:
2687        jj_la1[62] = jj_gen;
2688        jj_consume_token(-1);
2689        throw new ParseException();
2690      }
2691        n2.addNode(n3);
2692      n8 = EqualityExpression();
2693        n2.addNode(n8);
2694        n1.addNode(n2);
2695      break;
2696    default:
2697      jj_la1[63] = jj_gen;
2698      ;
2699    }
2700     {if (true) return new EqualityExpression(n0,n1);}
2701    throw new Error("Missing return statement in function");
2702  }
2703
2704  static public final RelationalExpression RelationalExpression() throws ParseException {
2705   ShiftExpression n0;
2706   NodeOptional n1 = new NodeOptional();
2707   NodeSequence n2;
2708   NodeChoice n3;
2709   NodeToken n4;
2710   Token n5;
2711   NodeToken n6;
2712   Token n7;
2713   NodeToken n8;
2714   Token n9;
2715   NodeToken n10;
2716   Token n11;
2717   RelationalExpression n12;
2718
2719   {
2720   }
2721    n0 = ShiftExpression();
2722    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2723    case 80:
2724    case 81:
2725    case 82:
2726    case 83:
2727        n2 = new NodeSequence(2);
2728      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2729      case 80:
2730        n5 = jj_consume_token(80);
2731                     n4 = JTBToolkit.makeNodeToken(n5);
2732              n3 = new NodeChoice(n4, 0);
2733        break;
2734      case 81:
2735        n7 = jj_consume_token(81);
2736                     n6 = JTBToolkit.makeNodeToken(n7);
2737              n3 = new NodeChoice(n6, 1);
2738        break;
2739      case 82:
2740        n9 = jj_consume_token(82);
2741                      n8 = JTBToolkit.makeNodeToken(n9);
2742              n3 = new NodeChoice(n8, 2);
2743        break;
2744      case 83:
2745        n11 = jj_consume_token(83);
2746                       n10 = JTBToolkit.makeNodeToken(n11);
2747              n3 = new NodeChoice(n10, 3);
2748        break;
2749      default:
2750        jj_la1[64] = jj_gen;
2751        jj_consume_token(-1);
2752        throw new ParseException();
2753      }
2754        n2.addNode(n3);
2755      n12 = RelationalExpression();
2756        n2.addNode(n12);
2757        n1.addNode(n2);
2758      break;
2759    default:
2760      jj_la1[65] = jj_gen;
2761      ;
2762    }
2763     {if (true) return new RelationalExpression(n0,n1);}
2764    throw new Error("Missing return statement in function");
2765  }
2766
2767  static public final ShiftExpression ShiftExpression() throws ParseException {
2768   AdditiveExpression n0;
2769   NodeOptional n1 = new NodeOptional();
2770   NodeSequence n2;
2771   NodeChoice n3;
2772   NodeToken n4;
2773   Token n5;
2774   NodeToken n6;
2775   Token n7;
2776   ShiftExpression n8;
2777
2778   {
2779   }
2780    n0 = AdditiveExpression();
2781    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2782    case 84:
2783    case 85:
2784        n2 = new NodeSequence(2);
2785      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2786      case 84:
2787        n5 = jj_consume_token(84);
2788                      n4 = JTBToolkit.makeNodeToken(n5);
2789              n3 = new NodeChoice(n4, 0);
2790        break;
2791      case 85:
2792        n7 = jj_consume_token(85);
2793                      n6 = JTBToolkit.makeNodeToken(n7);
2794              n3 = new NodeChoice(n6, 1);
2795        break;
2796      default:
2797        jj_la1[66] = jj_gen;
2798        jj_consume_token(-1);
2799        throw new ParseException();
2800      }
2801        n2.addNode(n3);
2802      n8 = ShiftExpression();
2803        n2.addNode(n8);
2804        n1.addNode(n2);
2805      break;
2806    default:
2807      jj_la1[67] = jj_gen;
2808      ;
2809    }
2810     {if (true) return new ShiftExpression(n0,n1);}
2811    throw new Error("Missing return statement in function");
2812  }
2813
2814  static public final AdditiveExpression AdditiveExpression() throws ParseException {
2815   MultiplicativeExpression n0;
2816   NodeOptional n1 = new NodeOptional();
2817   NodeSequence n2;
2818   NodeChoice n3;
2819   NodeToken n4;
2820   Token n5;
2821   NodeToken n6;
2822   Token n7;
2823   AdditiveExpression n8;
2824
2825   {
2826   }
2827    n0 = MultiplicativeExpression();
2828    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2829    case 86:
2830    case 87:
2831        n2 = new NodeSequence(2);
2832      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2833      case 86:
2834        n5 = jj_consume_token(86);
2835                     n4 = JTBToolkit.makeNodeToken(n5);
2836              n3 = new NodeChoice(n4, 0);
2837        break;
2838      case 87:
2839        n7 = jj_consume_token(87);
2840                     n6 = JTBToolkit.makeNodeToken(n7);
2841              n3 = new NodeChoice(n6, 1);
2842        break;
2843      default:
2844        jj_la1[68] = jj_gen;
2845        jj_consume_token(-1);
2846        throw new ParseException();
2847      }
2848        n2.addNode(n3);
2849      n8 = AdditiveExpression();
2850        n2.addNode(n8);
2851        n1.addNode(n2);
2852      break;
2853    default:
2854      jj_la1[69] = jj_gen;
2855      ;
2856    }
2857     {if (true) return new AdditiveExpression(n0,n1);}
2858    throw new Error("Missing return statement in function");
2859  }
2860
2861  static public final MultiplicativeExpression MultiplicativeExpression() throws ParseException {
2862   CastExpression n0;
2863   NodeOptional n1 = new NodeOptional();
2864   NodeSequence n2;
2865   NodeChoice n3;
2866   NodeToken n4;
2867   Token n5;
2868   NodeToken n6;
2869   Token n7;
2870   NodeToken n8;
2871   Token n9;
2872   MultiplicativeExpression n10;
2873
2874   {
2875   }
2876    n0 = CastExpression();
2877    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2878    case 60:
2879    case 88:
2880    case 89:
2881        n2 = new NodeSequence(2);
2882      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2883      case 60:
2884        n5 = jj_consume_token(60);
2885                     n4 = JTBToolkit.makeNodeToken(n5);
2886              n3 = new NodeChoice(n4, 0);
2887        break;
2888      case 88:
2889        n7 = jj_consume_token(88);
2890                     n6 = JTBToolkit.makeNodeToken(n7);
2891              n3 = new NodeChoice(n6, 1);
2892        break;
2893      case 89:
2894        n9 = jj_consume_token(89);
2895                     n8 = JTBToolkit.makeNodeToken(n9);
2896              n3 = new NodeChoice(n8, 2);
2897        break;
2898      default:
2899        jj_la1[70] = jj_gen;
2900        jj_consume_token(-1);
2901        throw new ParseException();
2902      }
2903        n2.addNode(n3);
2904      n10 = MultiplicativeExpression();
2905        n2.addNode(n10);
2906        n1.addNode(n2);
2907      break;
2908    default:
2909      jj_la1[71] = jj_gen;
2910      ;
2911    }
2912     {if (true) return new MultiplicativeExpression(n0,n1);}
2913    throw new Error("Missing return statement in function");
2914  }
2915
2916  static public final CastExpression CastExpression() throws ParseException {
2917   NodeChoice n0;
2918   NodeSequence n1;
2919   NodeToken n2;
2920   Token n3;
2921   TypeName n4;
2922   NodeToken n5;
2923   Token n6;
2924   CastExpression n7;
2925   UnaryExpression n8;
2926
2927   {
2928   }
2929    if (jj_2_31(2147483647)) {
2930           n1 = new NodeSequence(5);
2931      n3 = jj_consume_token(56);
2932                  n2 = JTBToolkit.makeNodeToken(n3);
2933           n1.addNode(n2);
2934      n4 = TypeName();
2935           n1.addNode(n4);
2936      n6 = jj_consume_token(57);
2937                  n5 = JTBToolkit.makeNodeToken(n6);
2938           n1.addNode(n5);
2939      n7 = CastExpression();
2940           n1.addNode(n7);
2941           n0 = new NodeChoice(n1, 0);
2942    } else {
2943      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2944      case INTEGER_LITERAL:
2945      case FLOATING_POINT_LITERAL:
2946      case CHARACTER_LITERAL:
2947      case STRING_LITERAL:
2948      case SIZEOF:
2949      case IDENTIFIER:
2950      case 56:
2951      case 60:
2952      case 77:
2953      case 86:
2954      case 87:
2955      case 90:
2956      case 91:
2957      case 92:
2958      case 93:
2959        n8 = UnaryExpression();
2960           n0 = new NodeChoice(n8, 1);
2961        break;
2962      default:
2963        jj_la1[72] = jj_gen;
2964        jj_consume_token(-1);
2965        throw new ParseException();
2966      }
2967    }
2968     {if (true) return new CastExpression(n0);}
2969    throw new Error("Missing return statement in function");
2970  }
2971
2972  static public final UnaryExpression UnaryExpression() throws ParseException {
2973   NodeChoice n0;
2974   PostfixExpression n1;
2975   NodeSequence n2;
2976   NodeToken n3;
2977   Token n4;
2978   UnaryExpression n5;
2979   NodeSequence n6;
2980   NodeToken n7;
2981   Token n8;
2982   UnaryExpression n9;
2983   NodeSequence n10;
2984   UnaryOperator n11;
2985   CastExpression n12;
2986   NodeSequence n13;
2987   NodeToken n14;
2988   Token n15;
2989   NodeChoice n16;
2990   UnaryExpression n17;
2991   NodeSequence n18;
2992   NodeToken n19;
2993   Token n20;
2994   TypeName n21;
2995   NodeToken n22;
2996   Token n23;
2997
2998   {
2999   }
3000    if (jj_2_33(3)) {
3001      n1 = PostfixExpression();
3002           n0 = new NodeChoice(n1, 0);
3003    } else {
3004      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3005      case 90:
3006           n2 = new NodeSequence(2);
3007        n4 = jj_consume_token(90);
3008                   n3 = JTBToolkit.makeNodeToken(n4);
3009           n2.addNode(n3);
3010        n5 = UnaryExpression();
3011           n2.addNode(n5);
3012           n0 = new NodeChoice(n2, 1);
3013        break;
3014      case 91:
3015           n6 = new NodeSequence(2);
3016        n8 = jj_consume_token(91);
3017                   n7 = JTBToolkit.makeNodeToken(n8);
3018           n6.addNode(n7);
3019        n9 = UnaryExpression();
3020           n6.addNode(n9);
3021           n0 = new NodeChoice(n6, 2);
3022        break;
3023      case 60:
3024      case 77:
3025      case 86:
3026      case 87:
3027      case 92:
3028      case 93:
3029           n10 = new NodeSequence(2);
3030        n11 = UnaryOperator();
3031           n10.addNode(n11);
3032        n12 = CastExpression();
3033           n10.addNode(n12);
3034           n0 = new NodeChoice(n10, 3);
3035        break;
3036      case SIZEOF:
3037           n13 = new NodeSequence(2);
3038        n15 = jj_consume_token(SIZEOF);
3039                        n14 = JTBToolkit.makeNodeToken(n15);
3040           n13.addNode(n14);
3041        if (jj_2_32(2147483647)) {
3042          n17 = UnaryExpression();
3043                 n16 = new NodeChoice(n17, 0);
3044        } else {
3045          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3046          case 56:
3047                 n18 = new NodeSequence(3);
3048            n20 = jj_consume_token(56);
3049                         n19 = JTBToolkit.makeNodeToken(n20);
3050                 n18.addNode(n19);
3051            n21 = TypeName();
3052                 n18.addNode(n21);
3053            n23 = jj_consume_token(57);
3054                         n22 = JTBToolkit.makeNodeToken(n23);
3055                 n18.addNode(n22);
3056                 n16 = new NodeChoice(n18, 1);
3057            break;
3058          default:
3059            jj_la1[73] = jj_gen;
3060            jj_consume_token(-1);
3061            throw new ParseException();
3062          }
3063        }
3064           n13.addNode(n16);
3065           n0 = new NodeChoice(n13, 4);
3066        break;
3067      default:
3068        jj_la1[74] = jj_gen;
3069        jj_consume_token(-1);
3070        throw new ParseException();
3071      }
3072    }
3073     {if (true) return new UnaryExpression(n0);}
3074    throw new Error("Missing return statement in function");
3075  }
3076
3077  static public final UnaryOperator UnaryOperator() throws ParseException {
3078   NodeChoice n0;
3079   NodeToken n1;
3080   Token n2;
3081   NodeToken n3;
3082   Token n4;
3083   NodeToken n5;
3084   Token n6;
3085   NodeToken n7;
3086   Token n8;
3087   NodeToken n9;
3088   Token n10;
3089   NodeToken n11;
3090   Token n12;
3091
3092   {
3093   }
3094    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3095    case 77:
3096      n2 = jj_consume_token(77);
3097                  n1 = JTBToolkit.makeNodeToken(n2);
3098           n0 = new NodeChoice(n1, 0);
3099      break;
3100    case 60:
3101      n4 = jj_consume_token(60);
3102                  n3 = JTBToolkit.makeNodeToken(n4);
3103           n0 = new NodeChoice(n3, 1);
3104      break;
3105    case 86:
3106      n6 = jj_consume_token(86);
3107                  n5 = JTBToolkit.makeNodeToken(n6);
3108           n0 = new NodeChoice(n5, 2);
3109      break;
3110    case 87:
3111      n8 = jj_consume_token(87);
3112                  n7 = JTBToolkit.makeNodeToken(n8);
3113           n0 = new NodeChoice(n7, 3);
3114      break;
3115    case 92:
3116      n10 = jj_consume_token(92);
3117                   n9 = JTBToolkit.makeNodeToken(n10);
3118           n0 = new NodeChoice(n9, 4);
3119      break;
3120    case 93:
3121      n12 = jj_consume_token(93);
3122                   n11 = JTBToolkit.makeNodeToken(n12);
3123           n0 = new NodeChoice(n11, 5);
3124      break;
3125    default:
3126      jj_la1[75] = jj_gen;
3127      jj_consume_token(-1);
3128      throw new ParseException();
3129    }
3130     {if (true) return new UnaryOperator(n0);}
3131    throw new Error("Missing return statement in function");
3132  }
3133
3134  static public final PostfixExpression PostfixExpression() throws ParseException {
3135   PrimaryExpression n0;
3136   NodeListOptional n1 = new NodeListOptional();
3137   NodeChoice n2;
3138   NodeSequence n3;
3139   NodeToken n4;
3140   Token n5;
3141   Expression n6;
3142   NodeToken n7;
3143   Token n8;
3144   NodeSequence n9;
3145   NodeToken n10;
3146   Token n11;
3147   NodeOptional n12;
3148   ArgumentExpressionList n13;
3149   NodeToken n14;
3150   Token n15;
3151   NodeSequence n16;
3152   NodeToken n17;
3153   Token n18;
3154   NodeToken n19;
3155   Token n20;
3156   NodeSequence n21;
3157   NodeToken n22;
3158   Token n23;
3159   NodeToken n24;
3160   Token n25;
3161   NodeToken n26;
3162   Token n27;
3163   NodeToken n28;
3164   Token n29;
3165
3166   {
3167   }
3168    n0 = PrimaryExpression();
3169    label_15:
3170    while (true) {
3171      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3172      case 56:
3173      case 58:
3174      case 90:
3175      case 91:
3176      case 94:
3177      case 95:
3178        ;
3179        break;
3180      default:
3181        jj_la1[76] = jj_gen;
3182        break label_15;
3183      }
3184        n12 = new NodeOptional();
3185      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3186      case 58:
3187           n3 = new NodeSequence(3);
3188        n5 = jj_consume_token(58);
3189                  n4 = JTBToolkit.makeNodeToken(n5);
3190           n3.addNode(n4);
3191        n6 = Expression();
3192           n3.addNode(n6);
3193        n8 = jj_consume_token(59);
3194                  n7 = JTBToolkit.makeNodeToken(n8);
3195           n3.addNode(n7);
3196           n2 = new NodeChoice(n3, 0);
3197        break;
3198      case 56:
3199           n9 = new NodeSequence(3);
3200        n11 = jj_consume_token(56);
3201                   n10 = JTBToolkit.makeNodeToken(n11);
3202           n9.addNode(n10);
3203        if (jj_2_34(2147483647)) {
3204          n13 = ArgumentExpressionList();
3205              n12.addNode(n13);
3206        } else {
3207          ;
3208        }
3209           n9.addNode(n12);
3210        n15 = jj_consume_token(57);
3211                   n14 = JTBToolkit.makeNodeToken(n15);
3212           n9.addNode(n14);
3213           n2 = new NodeChoice(n9, 1);
3214        break;
3215      case 94:
3216           n16 = new NodeSequence(2);
3217        n18 = jj_consume_token(94);
3218                   n17 = JTBToolkit.makeNodeToken(n18);
3219           n16.addNode(n17);
3220        n20 = jj_consume_token(IDENTIFIER);
3221                            n19 = JTBToolkit.makeNodeToken(n20);
3222           n16.addNode(n19);
3223           n2 = new NodeChoice(n16, 2);
3224        break;
3225      case 95:
3226           n21 = new NodeSequence(2);
3227        n23 = jj_consume_token(95);
3228                    n22 = JTBToolkit.makeNodeToken(n23);
3229           n21.addNode(n22);
3230        n25 = jj_consume_token(IDENTIFIER);
3231                            n24 = JTBToolkit.makeNodeToken(n25);
3232           n21.addNode(n24);
3233           n2 = new NodeChoice(n21, 3);
3234        break;
3235      case 90:
3236        n27 = jj_consume_token(90);
3237                    n26 = JTBToolkit.makeNodeToken(n27);
3238           n2 = new NodeChoice(n26, 4);
3239        break;
3240      case 91:
3241        n29 = jj_consume_token(91);
3242                    n28 = JTBToolkit.makeNodeToken(n29);
3243           n2 = new NodeChoice(n28, 5);
3244        break;
3245      default:
3246        jj_la1[77] = jj_gen;
3247        jj_consume_token(-1);
3248        throw new ParseException();
3249      }
3250        n1.addNode(n2);
3251    }
3252     n1.nodes.trimToSize();
3253     {if (true) return new PostfixExpression(n0,n1);}
3254    throw new Error("Missing return statement in function");
3255  }
3256
3257  static public final PrimaryExpression PrimaryExpression() throws ParseException {
3258   NodeChoice n0;
3259   NodeToken n1;
3260   Token n2;
3261   Constant n3;
3262   NodeSequence n4;
3263   NodeToken n5;
3264   Token n6;
3265   Expression n7;
3266   NodeToken n8;
3267   Token n9;
3268
3269   {
3270   }
3271    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3272    case IDENTIFIER:
3273      n2 = jj_consume_token(IDENTIFIER);
3274                           n1 = JTBToolkit.makeNodeToken(n2);
3275           n0 = new NodeChoice(n1, 0);
3276      break;
3277    case INTEGER_LITERAL:
3278    case FLOATING_POINT_LITERAL:
3279    case CHARACTER_LITERAL:
3280    case STRING_LITERAL:
3281      n3 = Constant();
3282           n0 = new NodeChoice(n3, 1);
3283      break;
3284    case 56:
3285           n4 = new NodeSequence(3);
3286      n6 = jj_consume_token(56);
3287                  n5 = JTBToolkit.makeNodeToken(n6);
3288           n4.addNode(n5);
3289      n7 = Expression();
3290           n4.addNode(n7);
3291      n9 = jj_consume_token(57);
3292                  n8 = JTBToolkit.makeNodeToken(n9);
3293           n4.addNode(n8);
3294           n0 = new NodeChoice(n4, 2);
3295      break;
3296    default:
3297      jj_la1[78] = jj_gen;
3298      jj_consume_token(-1);
3299      throw new ParseException();
3300    }
3301     {if (true) return new PrimaryExpression(n0);}
3302    throw new Error("Missing return statement in function");
3303  }
3304
3305  static public final ArgumentExpressionList ArgumentExpressionList() throws ParseException {
3306   AssignmentExpression n0;
3307   NodeListOptional n1 = new NodeListOptional();
3308   NodeSequence n2;
3309   NodeToken n3;
3310   Token n4;
3311   AssignmentExpression n5;
3312
3313   {
3314   }
3315    n0 = AssignmentExpression();
3316    label_16:
3317    while (true) {
3318      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3319      case 53:
3320        ;
3321        break;
3322      default:
3323        jj_la1[79] = jj_gen;
3324        break label_16;
3325      }
3326        n2 = new NodeSequence(2);
3327      n4 = jj_consume_token(53);
3328               n3 = JTBToolkit.makeNodeToken(n4);
3329        n2.addNode(n3);
3330      n5 = AssignmentExpression();
3331        n2.addNode(n5);
3332        n1.addNode(n2);
3333    }
3334     n1.nodes.trimToSize();
3335     {if (true) return new ArgumentExpressionList(n0,n1);}
3336    throw new Error("Missing return statement in function");
3337  }
3338
3339  static public final Constant Constant() throws ParseException {
3340   NodeChoice n0;
3341   NodeToken n1;
3342   Token n2;
3343   NodeToken n3;
3344   Token n4;
3345   NodeToken n5;
3346   Token n6;
3347   NodeToken n7;
3348   Token n8;
3349
3350   {
3351   }
3352    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3353    case INTEGER_LITERAL:
3354      n2 = jj_consume_token(INTEGER_LITERAL);
3355                             n1 = JTBToolkit.makeNodeToken(n2);
3356        n0 = new NodeChoice(n1, 0);
3357      break;
3358    case FLOATING_POINT_LITERAL:
3359      n4 = jj_consume_token(FLOATING_POINT_LITERAL);
3360                                    n3 = JTBToolkit.makeNodeToken(n4);
3361        n0 = new NodeChoice(n3, 1);
3362      break;
3363    case CHARACTER_LITERAL:
3364      n6 = jj_consume_token(CHARACTER_LITERAL);
3365                               n5 = JTBToolkit.makeNodeToken(n6);
3366        n0 = new NodeChoice(n5, 2);
3367      break;
3368    case STRING_LITERAL:
3369      n8 = jj_consume_token(STRING_LITERAL);
3370                            n7 = JTBToolkit.makeNodeToken(n8);
3371        n0 = new NodeChoice(n7, 3);
3372      break;
3373    default:
3374      jj_la1[80] = jj_gen;
3375      jj_consume_token(-1);
3376      throw new ParseException();
3377    }
3378     {if (true) return new Constant(n0);}
3379    throw new Error("Missing return statement in function");
3380  }
3381
3382  static final private boolean jj_2_1(int xla) {
3383    jj_la = xla; jj_lastpos = jj_scanpos = token;
3384    boolean retval = !jj_3_1();
3385    jj_save(0, xla);
3386    return retval;
3387  }
3388
3389  static final private boolean jj_2_2(int xla) {
3390    jj_la = xla; jj_lastpos = jj_scanpos = token;
3391    boolean retval = !jj_3_2();
3392    jj_save(1, xla);
3393    return retval;
3394  }
3395
3396  static final private boolean jj_2_3(int xla) {
3397    jj_la = xla; jj_lastpos = jj_scanpos = token;
3398    boolean retval = !jj_3_3();
3399    jj_save(2, xla);
3400    return retval;
3401  }
3402
3403  static final private boolean jj_2_4(int xla) {
3404    jj_la = xla; jj_lastpos = jj_scanpos = token;
3405    boolean retval = !jj_3_4();
3406    jj_save(3, xla);
3407    return retval;
3408  }
3409
3410  static final private boolean jj_2_5(int xla) {
3411    jj_la = xla; jj_lastpos = jj_scanpos = token;
3412    boolean retval = !jj_3_5();
3413    jj_save(4, xla);
3414    return retval;
3415  }
3416
3417  static final private boolean jj_2_6(int xla) {
3418    jj_la = xla; jj_lastpos = jj_scanpos = token;
3419    boolean retval = !jj_3_6();
3420    jj_save(5, xla);
3421    return retval;
3422  }
3423
3424  static final private boolean jj_2_7(int xla) {
3425    jj_la = xla; jj_lastpos = jj_scanpos = token;
3426    boolean retval = !jj_3_7();
3427    jj_save(6, xla);
3428    return retval;
3429  }
3430
3431  static final private boolean jj_2_8(int xla) {
3432    jj_la = xla; jj_lastpos = jj_scanpos = token;
3433    boolean retval = !jj_3_8();
3434    jj_save(7, xla);
3435    return retval;
3436  }
3437
3438  static final private boolean jj_2_9(int xla) {
3439    jj_la = xla; jj_lastpos = jj_scanpos = token;
3440    boolean retval = !jj_3_9();
3441    jj_save(8, xla);
3442    return retval;
3443  }
3444
3445  static final private boolean jj_2_10(int xla) {
3446    jj_la = xla; jj_lastpos = jj_scanpos = token;
3447    boolean retval = !jj_3_10();
3448    jj_save(9, xla);
3449    return retval;
3450  }
3451
3452  static final private boolean jj_2_11(int xla) {
3453    jj_la = xla; jj_lastpos = jj_scanpos = token;
3454    boolean retval = !jj_3_11();
3455    jj_save(10, xla);
3456    return retval;
3457  }
3458
3459  static final private boolean jj_2_12(int xla) {
3460    jj_la = xla; jj_lastpos = jj_scanpos = token;
3461    boolean retval = !jj_3_12();
3462    jj_save(11, xla);
3463    return retval;
3464  }
3465
3466  static final private boolean jj_2_13(int xla) {
3467    jj_la = xla; jj_lastpos = jj_scanpos = token;
3468    boolean retval = !jj_3_13();
3469    jj_save(12, xla);
3470    return retval;
3471  }
3472
3473  static final private boolean jj_2_14(int xla) {
3474    jj_la = xla; jj_lastpos = jj_scanpos = token;
3475    boolean retval = !jj_3_14();
3476    jj_save(13, xla);
3477    return retval;
3478  }
3479
3480  static final private boolean jj_2_15(int xla) {
3481    jj_la = xla; jj_lastpos = jj_scanpos = token;
3482    boolean retval = !jj_3_15();
3483    jj_save(14, xla);
3484    return retval;
3485  }
3486
3487  static final private boolean jj_2_16(int xla) {
3488    jj_la = xla; jj_lastpos = jj_scanpos = token;
3489    boolean retval = !jj_3_16();
3490    jj_save(15, xla);
3491    return retval;
3492  }
3493
3494  static final private boolean jj_2_17(int xla) {
3495    jj_la = xla; jj_lastpos = jj_scanpos = token;
3496    boolean retval = !jj_3_17();
3497    jj_save(16, xla);
3498    return retval;
3499  }
3500
3501  static final private boolean jj_2_18(int xla) {
3502    jj_la = xla; jj_lastpos = jj_scanpos = token;
3503    boolean retval = !jj_3_18();
3504    jj_save(17, xla);
3505    return retval;
3506  }
3507
3508  static final private boolean jj_2_19(int xla) {
3509    jj_la = xla; jj_lastpos = jj_scanpos = token;
3510    boolean retval = !jj_3_19();
3511    jj_save(18, xla);
3512    return retval;
3513  }
3514
3515  static final private boolean jj_2_20(int xla) {
3516    jj_la = xla; jj_lastpos = jj_scanpos = token;
3517    boolean retval = !jj_3_20();
3518    jj_save(19, xla);
3519    return retval;
3520  }
3521
3522  static final private boolean jj_2_21(int xla) {
3523    jj_la = xla; jj_lastpos = jj_scanpos = token;
3524    boolean retval = !jj_3_21();
3525    jj_save(20, xla);
3526    return retval;
3527  }
3528
3529  static final private boolean jj_2_22(int xla) {
3530    jj_la = xla; jj_lastpos = jj_scanpos = token;
3531    boolean retval = !jj_3_22();
3532    jj_save(21, xla);
3533    return retval;
3534  }
3535
3536  static final private boolean jj_2_23(int xla) {
3537    jj_la = xla; jj_lastpos = jj_scanpos = token;
3538    boolean retval = !jj_3_23();
3539    jj_save(22, xla);
3540    return retval;
3541  }
3542
3543  static final private boolean jj_2_24(int xla) {
3544    jj_la = xla; jj_lastpos = jj_scanpos = token;
3545    boolean retval = !jj_3_24();
3546    jj_save(23, xla);
3547    return retval;
3548  }
3549
3550  static final private boolean jj_2_25(int xla) {
3551    jj_la = xla; jj_lastpos = jj_scanpos = token;
3552    boolean retval = !jj_3_25();
3553    jj_save(24, xla);
3554    return retval;
3555  }
3556
3557  static final private boolean jj_2_26(int xla) {
3558    jj_la = xla; jj_lastpos = jj_scanpos = token;
3559    boolean retval = !jj_3_26();
3560    jj_save(25, xla);
3561    return retval;
3562  }
3563
3564  static final private boolean jj_2_27(int xla) {
3565    jj_la = xla; jj_lastpos = jj_scanpos = token;
3566    boolean retval = !jj_3_27();
3567    jj_save(26, xla);
3568    return retval;
3569  }
3570
3571  static final private boolean jj_2_28(int xla) {
3572    jj_la = xla; jj_lastpos = jj_scanpos = token;
3573    boolean retval = !jj_3_28();
3574    jj_save(27, xla);
3575    return retval;
3576  }
3577
3578  static final private boolean jj_2_29(int xla) {
3579    jj_la = xla; jj_lastpos = jj_scanpos = token;
3580    boolean retval = !jj_3_29();
3581    jj_save(28, xla);
3582    return retval;
3583  }
3584
3585  static final private boolean jj_2_30(int xla) {
3586    jj_la = xla; jj_lastpos = jj_scanpos = token;
3587    boolean retval = !jj_3_30();
3588    jj_save(29, xla);
3589    return retval;
3590  }
3591
3592  static final private boolean jj_2_31(int xla) {
3593    jj_la = xla; jj_lastpos = jj_scanpos = token;
3594    boolean retval = !jj_3_31();
3595    jj_save(30, xla);
3596    return retval;
3597  }
3598
3599  static final private boolean jj_2_32(int xla) {
3600    jj_la = xla; jj_lastpos = jj_scanpos = token;
3601    boolean retval = !jj_3_32();
3602    jj_save(31, xla);
3603    return retval;
3604  }
3605
3606  static final private boolean jj_2_33(int xla) {
3607    jj_la = xla; jj_lastpos = jj_scanpos = token;
3608    boolean retval = !jj_3_33();
3609    jj_save(32, xla);
3610    return retval;
3611  }
3612
3613  static final private boolean jj_2_34(int xla) {
3614    jj_la = xla; jj_lastpos = jj_scanpos = token;
3615    boolean retval = !jj_3_34();
3616    jj_save(33, xla);
3617    return retval;
3618  }
3619
3620  static final private boolean jj_3R_210() {
3621    if (jj_scan_token(53)) return true;
3622    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3623    if (jj_scan_token(IDENTIFIER)) return true;
3624    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3625    return false;
3626  }
3627
3628  static final private boolean jj_3R_128() {
3629    Token xsp;
3630    xsp = jj_scanpos;
3631    if (jj_3R_167()) jj_scanpos = xsp;
3632    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3633    if (jj_scan_token(50)) return true;
3634    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3635    return false;
3636  }
3637
3638  static final private boolean jj_3R_43() {
3639    if (jj_3R_105()) return true;
3640    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3641    Token xsp;
3642    while (true) {
3643      xsp = jj_scanpos;
3644      if (jj_3R_106()) { jj_scanpos = xsp; break; }
3645      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3646    }
3647    return false;
3648  }
3649
3650  static final private boolean jj_3R_209() {
3651    if (jj_3R_27()) return true;
3652    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3653    return false;
3654  }
3655
3656  static final private boolean jj_3R_205() {
3657    if (jj_scan_token(IDENTIFIER)) return true;
3658    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3659    Token xsp;
3660    while (true) {
3661      xsp = jj_scanpos;
3662      if (jj_3R_210()) { jj_scanpos = xsp; break; }
3663      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3664    }
3665    return false;
3666  }
3667
3668  static final private boolean jj_3_29() {
3669    if (jj_3R_37()) return true;
3670    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3671    if (jj_3R_38()) return true;
3672    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3673    return false;
3674  }
3675
3676  static final private boolean jj_3_30() {
3677    if (jj_3R_39()) return true;
3678    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3679    return false;
3680  }
3681
3682  static final private boolean jj_3R_204() {
3683    Token xsp;
3684    xsp = jj_scanpos;
3685    if (jj_3R_209()) jj_scanpos = xsp;
3686    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3687    if (jj_scan_token(55)) return true;
3688    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3689    if (jj_3R_127()) return true;
3690    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3691    return false;
3692  }
3693
3694  static final private boolean jj_3R_153() {
3695    if (jj_scan_token(TYPEDEF)) return true;
3696    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3697    return false;
3698  }
3699
3700  static final private boolean jj_3_16() {
3701    if (jj_3R_27()) return true;
3702    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3703    return false;
3704  }
3705
3706  static final private boolean jj_3R_152() {
3707    if (jj_scan_token(EXTERN)) return true;
3708    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3709    return false;
3710  }
3711
3712  static final private boolean jj_3R_151() {
3713    if (jj_scan_token(STATIC)) return true;
3714    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3715    return false;
3716  }
3717
3718  static final private boolean jj_3R_147() {
3719    if (jj_3R_37()) return true;
3720    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3721    if (jj_3R_38()) return true;
3722    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3723    if (jj_3R_105()) return true;
3724    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3725    return false;
3726  }
3727
3728  static final private boolean jj_3R_239() {
3729    if (jj_scan_token(85)) return true;
3730    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3731    return false;
3732  }
3733
3734  static final private boolean jj_3R_150() {
3735    if (jj_scan_token(REGISTER)) return true;
3736    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3737    return false;
3738  }
3739
3740  static final private boolean jj_3_20() {
3741    if (jj_3R_27()) return true;
3742    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3743    return false;
3744  }
3745
3746  static final private boolean jj_3R_191() {
3747    Token xsp;
3748    xsp = jj_scanpos;
3749    if (jj_3_16()) {
3750    jj_scanpos = xsp;
3751    if (jj_3R_204()) return true;
3752    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3753    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3754    return false;
3755  }
3756
3757  static final private boolean jj_3R_194() {
3758    if (jj_3R_34()) return true;
3759    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3760    return false;
3761  }
3762
3763  static final private boolean jj_3R_77() {
3764    if (jj_scan_token(DFLT)) return true;
3765    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3766    if (jj_scan_token(55)) return true;
3767    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3768    if (jj_3R_36()) return true;
3769    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3770    return false;
3771  }
3772
3773  static final private boolean jj_3R_105() {
3774    Token xsp;
3775    xsp = jj_scanpos;
3776    if (jj_3R_147()) {
3777    jj_scanpos = xsp;
3778    if (jj_3_30()) return true;
3779    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3780    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3781    return false;
3782  }
3783
3784  static final private boolean jj_3R_238() {
3785    if (jj_scan_token(84)) return true;
3786    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3787    return false;
3788  }
3789
3790  static final private boolean jj_3R_149() {
3791    if (jj_scan_token(AUTO)) return true;
3792    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3793    return false;
3794  }
3795
3796  static final private boolean jj_3R_140() {
3797    if (jj_scan_token(56)) return true;
3798    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3799    if (jj_3R_137()) return true;
3800    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3801    if (jj_scan_token(57)) return true;
3802    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3803    return false;
3804  }
3805
3806  static final private boolean jj_3R_163() {
3807    Token xsp;
3808    xsp = jj_scanpos;
3809    if (jj_3R_194()) jj_scanpos = xsp;
3810    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3811    return false;
3812  }
3813
3814  static final private boolean jj_3R_139() {
3815    if (jj_3R_185()) return true;
3816    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3817    return false;
3818  }
3819
3820  static final private boolean jj_3R_162() {
3821    if (jj_3R_27()) return true;
3822    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3823    return false;
3824  }
3825
3826  static final private boolean jj_3R_138() {
3827    if (jj_scan_token(IDENTIFIER)) return true;
3828    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3829    return false;
3830  }
3831
3832  static final private boolean jj_3R_109() {
3833    Token xsp;
3834    xsp = jj_scanpos;
3835    if (jj_3R_149()) {
3836    jj_scanpos = xsp;
3837    if (jj_3R_150()) {
3838    jj_scanpos = xsp;
3839    if (jj_3R_151()) {
3840    jj_scanpos = xsp;
3841    if (jj_3R_152()) {
3842    jj_scanpos = xsp;
3843    if (jj_3R_153()) return true;
3844    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3845    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3846    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3847    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3848    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3849    return false;
3850  }
3851
3852  static final private boolean jj_3R_230() {
3853    Token xsp;
3854    xsp = jj_scanpos;
3855    if (jj_3R_238()) {
3856    jj_scanpos = xsp;
3857    if (jj_3R_239()) return true;
3858    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3859    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3860    if (jj_3R_221()) return true;
3861    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3862    return false;
3863  }
3864
3865  static final private boolean jj_3R_76() {
3866    if (jj_scan_token(CASE)) return true;
3867    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3868    if (jj_3R_127()) return true;
3869    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3870    if (jj_scan_token(55)) return true;
3871    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3872    if (jj_3R_36()) return true;
3873    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3874    return false;
3875  }
3876
3877  static final private boolean jj_3R_221() {
3878    if (jj_3R_229()) return true;
3879    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3880    Token xsp;
3881    xsp = jj_scanpos;
3882    if (jj_3R_230()) jj_scanpos = xsp;
3883    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3884    return false;
3885  }
3886
3887  static final private boolean jj_3R_103() {
3888    Token xsp;
3889    xsp = jj_scanpos;
3890    if (jj_3R_138()) {
3891    jj_scanpos = xsp;
3892    if (jj_3R_139()) {
3893    jj_scanpos = xsp;
3894    if (jj_3R_140()) return true;
3895    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3896    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3897    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3898    return false;
3899  }
3900
3901  static final private boolean jj_3R_31() {
3902    if (jj_3R_20()) return true;
3903    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3904    Token xsp;
3905    xsp = jj_scanpos;
3906    if (jj_3R_162()) {
3907    jj_scanpos = xsp;
3908    if (jj_3R_163()) return true;
3909    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3910    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3911    return false;
3912  }
3913
3914  static final private boolean jj_3R_75() {
3915    if (jj_scan_token(IDENTIFIER)) return true;
3916    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3917    if (jj_scan_token(55)) return true;
3918    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3919    if (jj_3R_36()) return true;
3920    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3921    return false;
3922  }
3923
3924  static final private boolean jj_3R_201() {
3925    if (jj_scan_token(53)) return true;
3926    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3927    if (jj_3R_105()) return true;
3928    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3929    return false;
3930  }
3931
3932  static final private boolean jj_3_9() {
3933    if (jj_3R_20()) return true;
3934    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3935    return false;
3936  }
3937
3938  static final private boolean jj_3R_235() {
3939    if (jj_scan_token(53)) return true;
3940    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3941    if (jj_3R_191()) return true;
3942    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3943    return false;
3944  }
3945
3946  static final private boolean jj_3R_137() {
3947    if (jj_3R_105()) return true;
3948    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3949    Token xsp;
3950    while (true) {
3951      xsp = jj_scanpos;
3952      if (jj_3R_201()) { jj_scanpos = xsp; break; }
3953      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3954    }
3955    return false;
3956  }
3957
3958  static final private boolean jj_3R_159() {
3959    if (jj_3R_191()) return true;
3960    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3961    Token xsp;
3962    while (true) {
3963      xsp = jj_scanpos;
3964      if (jj_3R_235()) { jj_scanpos = xsp; break; }
3965      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3966    }
3967    return false;
3968  }
3969
3970  static final private boolean jj_3R_35() {
3971    Token xsp;
3972    xsp = jj_scanpos;
3973    if (jj_3R_75()) {
3974    jj_scanpos = xsp;
3975    if (jj_3R_76()) {
3976    jj_scanpos = xsp;
3977    if (jj_3R_77()) return true;
3978    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3979    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3980    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3981    return false;
3982  }
3983
3984  static final private boolean jj_3R_113() {
3985    if (jj_3R_20()) return true;
3986    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3987    return false;
3988  }
3989
3990  static final private boolean jj_3_8() {
3991    if (jj_3R_20()) return true;
3992    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3993    return false;
3994  }
3995
3996  static final private boolean jj_3R_234() {
3997    if (jj_scan_token(83)) return true;
3998    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3999    return false;
4000  }
4001
4002  static final private boolean jj_3_14() {
4003    if (jj_3R_26()) return true;
4004    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4005    return false;
4006  }
4007
4008  static final private boolean jj_3R_146() {
4009    if (jj_scan_token(91)) return true;
4010    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4011    return false;
4012  }
4013
4014  static final private boolean jj_3R_233() {
4015    if (jj_scan_token(82)) return true;
4016    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4017    return false;
4018  }
4019
4020  static final private boolean jj_3R_48() {
4021    if (jj_3R_112()) return true;
4022    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4023    Token xsp;
4024    xsp = jj_scanpos;
4025    if (jj_3R_113()) jj_scanpos = xsp;
4026    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4027    return false;
4028  }
4029
4030  static final private boolean jj_3_19() {
4031    if (jj_scan_token(53)) return true;
4032    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4033    if (jj_3R_31()) return true;
4034    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4035    return false;
4036  }
4037
4038  static final private boolean jj_3R_145() {
4039    if (jj_scan_token(90)) return true;
4040    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4041    return false;
4042  }
4043
4044  static final private boolean jj_3R_232() {
4045    if (jj_scan_token(81)) return true;
4046    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4047    return false;
4048  }
4049
4050  static final private boolean jj_3R_111() {
4051    if (jj_3R_20()) return true;
4052    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4053    return false;
4054  }
4055
4056  static final private boolean jj_3_7() {
4057    if (jj_3R_20()) return true;
4058    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4059    return false;
4060  }
4061
4062  static final private boolean jj_3R_68() {
4063    if (jj_3R_31()) return true;
4064    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4065    Token xsp;
4066    while (true) {
4067      xsp = jj_scanpos;
4068      if (jj_3_19()) { jj_scanpos = xsp; break; }
4069      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4070    }
4071    return false;
4072  }
4073
4074  static final private boolean jj_3R_231() {
4075    if (jj_scan_token(80)) return true;
4076    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4077    return false;
4078  }
4079
4080  static final private boolean jj_3R_228() {
4081    if (jj_3R_137()) return true;
4082    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4083    return false;
4084  }
4085
4086  static final private boolean jj_3R_119() {
4087    if (jj_3R_26()) return true;
4088    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4089    return false;
4090  }
4091
4092  static final private boolean jj_3R_144() {
4093    if (jj_scan_token(95)) return true;
4094    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4095    if (jj_scan_token(IDENTIFIER)) return true;
4096    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4097    return false;
4098  }
4099
4100  static final private boolean jj_3_13() {
4101    if (jj_3R_26()) return true;
4102    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4103    return false;
4104  }
4105
4106  static final private boolean jj_3_10() {
4107    if (jj_3R_22()) return true;
4108    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4109    Token xsp;
4110    xsp = jj_scanpos;
4111    if (jj_3R_111()) jj_scanpos = xsp;
4112    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4113    return false;
4114  }
4115
4116  static final private boolean jj_3_34() {
4117    if (jj_3R_43()) return true;
4118    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4119    return false;
4120  }
4121
4122  static final private boolean jj_3R_176() {
4123    if (jj_scan_token(RETURN)) return true;
4124    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4125    Token xsp;
4126    xsp = jj_scanpos;
4127    if (jj_3R_228()) jj_scanpos = xsp;
4128    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4129    if (jj_scan_token(50)) return true;
4130    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4131    return false;
4132  }
4133
4134  static final private boolean jj_3R_63() {
4135    if (jj_3R_112()) return true;
4136    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4137    Token xsp;
4138    xsp = jj_scanpos;
4139    if (jj_3R_119()) jj_scanpos = xsp;
4140    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4141    return false;
4142  }
4143
4144  static final private boolean jj_3R_222() {
4145    Token xsp;
4146    xsp = jj_scanpos;
4147    if (jj_3R_231()) {
4148    jj_scanpos = xsp;
4149    if (jj_3R_232()) {
4150    jj_scanpos = xsp;
4151    if (jj_3R_233()) {
4152    jj_scanpos = xsp;
4153    if (jj_3R_234()) return true;
4154    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4155    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4156    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4157    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4158    if (jj_3R_218()) return true;
4159    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4160    return false;
4161  }
4162
4163  static final private boolean jj_3R_143() {
4164    if (jj_scan_token(94)) return true;
4165    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4166    if (jj_scan_token(IDENTIFIER)) return true;
4167    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4168    return false;
4169  }
4170
4171  static final private boolean jj_3R_110() {
4172    if (jj_3R_20()) return true;
4173    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4174    return false;
4175  }
4176
4177  static final private boolean jj_3R_118() {
4178    if (jj_3R_26()) return true;
4179    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4180    return false;
4181  }
4182
4183  static final private boolean jj_3R_82() {
4184    if (jj_3R_131()) return true;
4185    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4186    return false;
4187  }
4188
4189  static final private boolean jj_3R_218() {
4190    if (jj_3R_221()) return true;
4191    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4192    Token xsp;
4193    xsp = jj_scanpos;
4194    if (jj_3R_222()) jj_scanpos = xsp;
4195    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4196    return false;
4197  }
4198
4199  static final private boolean jj_3R_175() {
4200    if (jj_scan_token(BREAK)) return true;
4201    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4202    if (jj_scan_token(50)) return true;
4203    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4204    return false;
4205  }
4206
4207  static final private boolean jj_3R_186() {
4208    if (jj_3R_43()) return true;
4209    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4210    return false;
4211  }
4212
4213  static final private boolean jj_3R_47() {
4214    if (jj_3R_109()) return true;
4215    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4216    Token xsp;
4217    xsp = jj_scanpos;
4218    if (jj_3R_110()) jj_scanpos = xsp;
4219    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4220    return false;
4221  }
4222
4223  static final private boolean jj_3R_81() {
4224    if (jj_3R_130()) return true;
4225    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4226    return false;
4227  }
4228
4229  static final private boolean jj_3_15() {
4230    if (jj_3R_22()) return true;
4231    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4232    Token xsp;
4233    xsp = jj_scanpos;
4234    if (jj_3R_118()) jj_scanpos = xsp;
4235    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4236    return false;
4237  }
4238
4239  static final private boolean jj_3R_80() {
4240    if (jj_3R_129()) return true;
4241    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4242    return false;
4243  }
4244
4245  static final private boolean jj_3R_20() {
4246    Token xsp;
4247    xsp = jj_scanpos;
4248    if (jj_3R_47()) {
4249    jj_scanpos = xsp;
4250    if (jj_3_10()) {
4251    jj_scanpos = xsp;
4252    if (jj_3R_48()) return true;
4253    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4254    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4255    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4256    return false;
4257  }
4258
4259  static final private boolean jj_3R_69() {
4260    if (jj_scan_token(53)) return true;
4261    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4262    if (jj_scan_token(61)) return true;
4263    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4264    return false;
4265  }
4266
4267  static final private boolean jj_3R_174() {
4268    if (jj_scan_token(CONTINUE)) return true;
4269    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4270    if (jj_scan_token(50)) return true;
4271    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4272    return false;
4273  }
4274
4275  static final private boolean jj_3R_142() {
4276    if (jj_scan_token(56)) return true;
4277    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4278    Token xsp;
4279    xsp = jj_scanpos;
4280    if (jj_3R_186()) jj_scanpos = xsp;
4281    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4282    if (jj_scan_token(57)) return true;
4283    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4284    return false;
4285  }
4286
4287  static final private boolean jj_3R_79() {
4288    if (jj_3R_46()) return true;
4289    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4290    return false;
4291  }
4292
4293  static final private boolean jj_3R_26() {
4294    Token xsp;
4295    xsp = jj_scanpos;
4296    if (jj_3_15()) {
4297    jj_scanpos = xsp;
4298    if (jj_3R_63()) return true;
4299    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4300    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4301    return false;
4302  }
4303
4304  static final private boolean jj_3R_30() {
4305    if (jj_3R_68()) return true;
4306    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4307    Token xsp;
4308    xsp = jj_scanpos;
4309    if (jj_3R_69()) jj_scanpos = xsp;
4310    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4311    return false;
4312  }
4313
4314  static final private boolean jj_3R_78() {
4315    if (jj_3R_128()) return true;
4316    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4317    return false;
4318  }
4319
4320  static final private boolean jj_3_26() {
4321    if (jj_3R_35()) return true;
4322    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4323    return false;
4324  }
4325
4326  static final private boolean jj_3R_173() {
4327    if (jj_scan_token(GOTO)) return true;
4328    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4329    if (jj_scan_token(IDENTIFIER)) return true;
4330    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4331    if (jj_scan_token(50)) return true;
4332    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4333    return false;
4334  }
4335
4336  static final private boolean jj_3R_141() {
4337    if (jj_scan_token(58)) return true;
4338    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4339    if (jj_3R_137()) return true;
4340    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4341    if (jj_scan_token(59)) return true;
4342    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4343    return false;
4344  }
4345
4346  static final private boolean jj_3_6() {
4347    if (jj_3R_19()) return true;
4348    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4349    return false;
4350  }
4351
4352  static final private boolean jj_3R_104() {
4353    Token xsp;
4354    xsp = jj_scanpos;
4355    if (jj_3R_141()) {
4356    jj_scanpos = xsp;
4357    if (jj_3R_142()) {
4358    jj_scanpos = xsp;
4359    if (jj_3R_143()) {
4360    jj_scanpos = xsp;
4361    if (jj_3R_144()) {
4362    jj_scanpos = xsp;
4363    if (jj_3R_145()) {
4364    jj_scanpos = xsp;
4365    if (jj_3R_146()) return true;
4366    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4367    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4368    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4369    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4370    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4371    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4372    return false;
4373  }
4374
4375  static final private boolean jj_3R_36() {
4376    Token xsp;
4377    xsp = jj_scanpos;
4378    if (jj_3_26()) {
4379    jj_scanpos = xsp;
4380    if (jj_3R_78()) {
4381    jj_scanpos = xsp;
4382    if (jj_3R_79()) {
4383    jj_scanpos = xsp;
4384    if (jj_3R_80()) {
4385    jj_scanpos = xsp;
4386    if (jj_3R_81()) {
4387    jj_scanpos = xsp;
4388    if (jj_3R_82()) return true;
4389    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4390    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4391    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4392    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4393    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4394    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4395    return false;
4396  }
4397
4398  static final private boolean jj_3R_131() {
4399    Token xsp;
4400    xsp = jj_scanpos;
4401    if (jj_3R_173()) {
4402    jj_scanpos = xsp;
4403    if (jj_3R_174()) {
4404    jj_scanpos = xsp;
4405    if (jj_3R_175()) {
4406    jj_scanpos = xsp;
4407    if (jj_3R_176()) return true;
4408    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4409    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4410    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4411    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4412    return false;
4413  }
4414
4415  static final private boolean jj_3R_224() {
4416    if (jj_scan_token(79)) return true;
4417    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4418    return false;
4419  }
4420
4421  static final private boolean jj_3R_42() {
4422    if (jj_3R_103()) return true;
4423    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4424    Token xsp;
4425    while (true) {
4426      xsp = jj_scanpos;
4427      if (jj_3R_104()) { jj_scanpos = xsp; break; }
4428      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4429    }
4430    return false;
4431  }
4432
4433  static final private boolean jj_3R_223() {
4434    if (jj_scan_token(78)) return true;
4435    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4436    return false;
4437  }
4438
4439  static final private boolean jj_3R_164() {
4440    if (jj_3R_112()) return true;
4441    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4442    return false;
4443  }
4444
4445  static final private boolean jj_3R_49() {
4446    if (jj_3R_19()) return true;
4447    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4448    return false;
4449  }
4450
4451  static final private boolean jj_3R_25() {
4452    if (jj_3R_26()) return true;
4453    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4454    if (jj_3R_159()) return true;
4455    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4456    if (jj_scan_token(50)) return true;
4457    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4458    return false;
4459  }
4460
4461  static final private boolean jj_3R_124() {
4462    Token xsp;
4463    if (jj_3R_164()) return true;
4464    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4465    while (true) {
4466      xsp = jj_scanpos;
4467      if (jj_3R_164()) { jj_scanpos = xsp; break; }
4468      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4469    }
4470    return false;
4471  }
4472
4473  static final private boolean jj_3R_21() {
4474    Token xsp;
4475    if (jj_3R_49()) return true;
4476    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4477    while (true) {
4478      xsp = jj_scanpos;
4479      if (jj_3R_49()) { jj_scanpos = xsp; break; }
4480      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4481    }
4482    return false;
4483  }
4484
4485  static final private boolean jj_3R_219() {
4486    Token xsp;
4487    xsp = jj_scanpos;
4488    if (jj_3R_223()) {
4489    jj_scanpos = xsp;
4490    if (jj_3R_224()) return true;
4491    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4492    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4493    if (jj_3R_211()) return true;
4494    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4495    return false;
4496  }
4497
4498  static final private boolean jj_3R_211() {
4499    if (jj_3R_218()) return true;
4500    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4501    Token xsp;
4502    xsp = jj_scanpos;
4503    if (jj_3R_219()) jj_scanpos = xsp;
4504    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4505    return false;
4506  }
4507
4508  static final private boolean jj_3R_117() {
4509    if (jj_scan_token(IDENTIFIER)) return true;
4510    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4511    return false;
4512  }
4513
4514  static final private boolean jj_3R_73() {
4515    if (jj_3R_33()) return true;
4516    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4517    return false;
4518  }
4519
4520  static final private boolean jj_3R_50() {
4521    if (jj_3R_114()) return true;
4522    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4523    return false;
4524  }
4525
4526  static final private boolean jj_3R_188() {
4527    if (jj_scan_token(54)) return true;
4528    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4529    if (jj_3R_32()) return true;
4530    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4531    return false;
4532  }
4533
4534  static final private boolean jj_3R_72() {
4535    if (jj_3R_124()) return true;
4536    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4537    return false;
4538  }
4539
4540  static final private boolean jj_3R_19() {
4541    if (jj_3R_20()) return true;
4542    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4543    Token xsp;
4544    xsp = jj_scanpos;
4545    if (jj_3R_50()) jj_scanpos = xsp;
4546    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4547    if (jj_scan_token(50)) return true;
4548    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4549    return false;
4550  }
4551
4552  static final private boolean jj_3R_156() {
4553    if (jj_3R_27()) return true;
4554    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4555    Token xsp;
4556    xsp = jj_scanpos;
4557    if (jj_3R_188()) jj_scanpos = xsp;
4558    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4559    return false;
4560  }
4561
4562  static final private boolean jj_3R_33() {
4563    if (jj_scan_token(60)) return true;
4564    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4565    Token xsp;
4566    xsp = jj_scanpos;
4567    if (jj_3R_72()) jj_scanpos = xsp;
4568    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4569    xsp = jj_scanpos;
4570    if (jj_3R_73()) jj_scanpos = xsp;
4571    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4572    return false;
4573  }
4574
4575  static final private boolean jj_3_25() {
4576    if (jj_3R_30()) return true;
4577    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4578    return false;
4579  }
4580
4581  static final private boolean jj_3R_227() {
4582    if (jj_3R_137()) return true;
4583    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4584    return false;
4585  }
4586
4587  static final private boolean jj_3R_215() {
4588    if (jj_scan_token(56)) return true;
4589    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4590    Token xsp;
4591    xsp = jj_scanpos;
4592    if (jj_3_25()) jj_scanpos = xsp;
4593    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4594    if (jj_scan_token(57)) return true;
4595    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4596    return false;
4597  }
4598
4599  static final private boolean jj_3R_212() {
4600    if (jj_scan_token(77)) return true;
4601    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4602    if (jj_3R_206()) return true;
4603    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4604    return false;
4605  }
4606
4607  static final private boolean jj_3R_182() {
4608    if (jj_scan_token(93)) return true;
4609    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4610    return false;
4611  }
4612
4613  static final private boolean jj_3_4() {
4614    if (jj_3R_20()) return true;
4615    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4616    return false;
4617  }
4618
4619  static final private boolean jj_3R_220() {
4620    if (jj_3R_127()) return true;
4621    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4622    return false;
4623  }
4624
4625  static final private boolean jj_3R_226() {
4626    if (jj_3R_137()) return true;
4627    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4628    return false;
4629  }
4630
4631  static final private boolean jj_3R_181() {
4632    if (jj_scan_token(92)) return true;
4633    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4634    return false;
4635  }
4636
4637  static final private boolean jj_3R_206() {
4638    if (jj_3R_211()) return true;
4639    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4640    Token xsp;
4641    xsp = jj_scanpos;
4642    if (jj_3R_212()) jj_scanpos = xsp;
4643    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4644    return false;
4645  }
4646
4647  static final private boolean jj_3_5() {
4648    if (jj_3R_21()) return true;
4649    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4650    return false;
4651  }
4652
4653  static final private boolean jj_3R_180() {
4654    if (jj_scan_token(87)) return true;
4655    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4656    return false;
4657  }
4658
4659  static final private boolean jj_3R_193() {
4660    if (jj_3R_205()) return true;
4661    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4662    return false;
4663  }
4664
4665  static final private boolean jj_3R_214() {
4666    if (jj_scan_token(58)) return true;
4667    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4668    Token xsp;
4669    xsp = jj_scanpos;
4670    if (jj_3R_220()) jj_scanpos = xsp;
4671    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4672    if (jj_scan_token(59)) return true;
4673    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4674    return false;
4675  }
4676
4677  static final private boolean jj_3R_179() {
4678    if (jj_scan_token(86)) return true;
4679    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4680    return false;
4681  }
4682
4683  static final private boolean jj_3R_225() {
4684    if (jj_3R_137()) return true;
4685    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4686    return false;
4687  }
4688
4689  static final private boolean jj_3R_45() {
4690    if (jj_3R_20()) return true;
4691    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4692    return false;
4693  }
4694
4695  static final private boolean jj_3R_178() {
4696    if (jj_scan_token(60)) return true;
4697    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4698    return false;
4699  }
4700
4701  static final private boolean jj_3R_208() {
4702    Token xsp;
4703    xsp = jj_scanpos;
4704    if (jj_3R_214()) {
4705    jj_scanpos = xsp;
4706    if (jj_3R_215()) return true;
4707    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4708    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4709    return false;
4710  }
4711
4712  static final private boolean jj_3R_177() {
4713    if (jj_scan_token(77)) return true;
4714    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4715    return false;
4716  }
4717
4718  static final private boolean jj_3R_161() {
4719    if (jj_scan_token(56)) return true;
4720    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4721    Token xsp;
4722    xsp = jj_scanpos;
4723    if (jj_3R_193()) jj_scanpos = xsp;
4724    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4725    if (jj_scan_token(57)) return true;
4726    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4727    return false;
4728  }
4729
4730  static final private boolean jj_3R_18() {
4731    Token xsp;
4732    xsp = jj_scanpos;
4733    if (jj_3R_45()) jj_scanpos = xsp;
4734    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4735    if (jj_3R_27()) return true;
4736    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4737    xsp = jj_scanpos;
4738    if (jj_3_5()) jj_scanpos = xsp;
4739    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4740    if (jj_3R_46()) return true;
4741    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4742    return false;
4743  }
4744
4745  static final private boolean jj_3R_172() {
4746    if (jj_scan_token(FOR)) return true;
4747    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4748    if (jj_scan_token(56)) return true;
4749    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4750    Token xsp;
4751    xsp = jj_scanpos;
4752    if (jj_3R_225()) jj_scanpos = xsp;
4753    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4754    if (jj_scan_token(50)) return true;
4755    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4756    xsp = jj_scanpos;
4757    if (jj_3R_226()) jj_scanpos = xsp;
4758    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4759    if (jj_scan_token(50)) return true;
4760    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4761    xsp = jj_scanpos;
4762    if (jj_3R_227()) jj_scanpos = xsp;
4763    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4764    if (jj_scan_token(57)) return true;
4765    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4766    if (jj_3R_36()) return true;
4767    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4768    return false;
4769  }
4770
4771  static final private boolean jj_3R_157() {
4772    if (jj_scan_token(53)) return true;
4773    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4774    if (jj_3R_156()) return true;
4775    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4776    return false;
4777  }
4778
4779  static final private boolean jj_3_23() {
4780    if (jj_3R_30()) return true;
4781    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4782    return false;
4783  }
4784
4785  static final private boolean jj_3R_132() {
4786    Token xsp;
4787    xsp = jj_scanpos;
4788    if (jj_3R_177()) {
4789    jj_scanpos = xsp;
4790    if (jj_3R_178()) {
4791    jj_scanpos = xsp;
4792    if (jj_3R_179()) {
4793    jj_scanpos = xsp;
4794    if (jj_3R_180()) {
4795    jj_scanpos = xsp;
4796    if (jj_3R_181()) {
4797    jj_scanpos = xsp;
4798    if (jj_3R_182()) return true;
4799    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4800    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4801    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4802    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4803    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4804    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4805    return false;
4806  }
4807
4808  static final private boolean jj_3R_114() {
4809    if (jj_3R_156()) return true;
4810    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4811    Token xsp;
4812    while (true) {
4813      xsp = jj_scanpos;
4814      if (jj_3R_157()) { jj_scanpos = xsp; break; }
4815      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4816    }
4817    return false;
4818  }
4819
4820  static final private boolean jj_3R_207() {
4821    if (jj_scan_token(76)) return true;
4822    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4823    if (jj_3R_195()) return true;
4824    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4825    return false;
4826  }
4827
4828  static final private boolean jj_3_2() {
4829    if (jj_3R_18()) return true;
4830    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4831    return false;
4832  }
4833
4834  static final private boolean jj_3_18() {
4835    if (jj_scan_token(56)) return true;
4836    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4837    if (jj_3R_30()) return true;
4838    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4839    if (jj_scan_token(57)) return true;
4840    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4841    return false;
4842  }
4843
4844  static final private boolean jj_3R_166() {
4845    if (jj_scan_token(56)) return true;
4846    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4847    Token xsp;
4848    xsp = jj_scanpos;
4849    if (jj_3_23()) jj_scanpos = xsp;
4850    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4851    if (jj_scan_token(57)) return true;
4852    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4853    return false;
4854  }
4855
4856  static final private boolean jj_3R_195() {
4857    if (jj_3R_206()) return true;
4858    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4859    Token xsp;
4860    xsp = jj_scanpos;
4861    if (jj_3R_207()) jj_scanpos = xsp;
4862    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4863    return false;
4864  }
4865
4866  static final private boolean jj_3R_192() {
4867    if (jj_3R_127()) return true;
4868    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4869    return false;
4870  }
4871
4872  static final private boolean jj_3_3() {
4873    if (jj_3R_19()) return true;
4874    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4875    return false;
4876  }
4877
4878  static final private boolean jj_3R_213() {
4879    if (jj_3R_127()) return true;
4880    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4881    return false;
4882  }
4883
4884  static final private boolean jj_3R_44() {
4885    if (jj_3R_18()) return true;
4886    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4887    return false;
4888  }
4889
4890  static final private boolean jj_3R_171() {
4891    if (jj_scan_token(DO)) return true;
4892    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4893    if (jj_3R_36()) return true;
4894    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4895    if (jj_scan_token(WHILE)) return true;
4896    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4897    if (jj_scan_token(56)) return true;
4898    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4899    if (jj_3R_137()) return true;
4900    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4901    if (jj_scan_token(57)) return true;
4902    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4903    if (jj_scan_token(50)) return true;
4904    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4905    return false;
4906  }
4907
4908  static final private boolean jj_3R_160() {
4909    if (jj_scan_token(58)) return true;
4910    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4911    Token xsp;
4912    xsp = jj_scanpos;
4913    if (jj_3R_192()) jj_scanpos = xsp;
4914    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4915    if (jj_scan_token(59)) return true;
4916    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4917    return false;
4918  }
4919
4920  static final private boolean jj_3R_165() {
4921    if (jj_scan_token(58)) return true;
4922    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4923    Token xsp;
4924    xsp = jj_scanpos;
4925    if (jj_3R_213()) jj_scanpos = xsp;
4926    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4927    if (jj_scan_token(59)) return true;
4928    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4929    return false;
4930  }
4931
4932  static final private boolean jj_3_12() {
4933    if (jj_3R_25()) return true;
4934    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4935    return false;
4936  }
4937
4938  static final private boolean jj_3R_17() {
4939    Token xsp;
4940    xsp = jj_scanpos;
4941    if (jj_3R_44()) {
4942    jj_scanpos = xsp;
4943    if (jj_3_3()) return true;
4944    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4945    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4946    return false;
4947  }
4948
4949  static final private boolean jj_3R_122() {
4950    Token xsp;
4951    xsp = jj_scanpos;
4952    if (jj_3R_160()) {
4953    jj_scanpos = xsp;
4954    if (jj_3_18()) {
4955    jj_scanpos = xsp;
4956    if (jj_3R_161()) return true;
4957    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4958    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4959    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4960    return false;
4961  }
4962
4963  static final private boolean jj_3_32() {
4964    if (jj_3R_37()) return true;
4965    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4966    return false;
4967  }
4968
4969  static final private boolean jj_3R_24() {
4970    Token xsp;
4971    if (jj_3_12()) return true;
4972    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4973    while (true) {
4974      xsp = jj_scanpos;
4975      if (jj_3_12()) { jj_scanpos = xsp; break; }
4976      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4977    }
4978    return false;
4979  }
4980
4981  static final private boolean jj_3R_170() {
4982    if (jj_scan_token(WHILE)) return true;
4983    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4984    if (jj_scan_token(56)) return true;
4985    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4986    if (jj_3R_137()) return true;
4987    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4988    if (jj_scan_token(57)) return true;
4989    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4990    if (jj_3R_36()) return true;
4991    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4992    return false;
4993  }
4994
4995  static final private boolean jj_3_24() {
4996    if (jj_scan_token(56)) return true;
4997    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4998    if (jj_3R_34()) return true;
4999    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5000    if (jj_scan_token(57)) return true;
5001    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5002    return false;
5003  }
5004
5005  static final private boolean jj_3R_196() {
5006    if (jj_scan_token(75)) return true;
5007    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5008    if (jj_3R_183()) return true;
5009    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5010    return false;
5011  }
5012
5013  static final private boolean jj_3R_134() {
5014    if (jj_scan_token(56)) return true;
5015    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5016    if (jj_3R_40()) return true;
5017    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5018    if (jj_scan_token(57)) return true;
5019    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5020    return false;
5021  }
5022
5023  static final private boolean jj_3R_121() {
5024    if (jj_scan_token(56)) return true;
5025    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5026    if (jj_3R_27()) return true;
5027    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5028    if (jj_scan_token(57)) return true;
5029    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5030    return false;
5031  }
5032
5033  static final private boolean jj_3R_133() {
5034    if (jj_3R_37()) return true;
5035    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5036    return false;
5037  }
5038
5039  static final private boolean jj_3R_183() {
5040    if (jj_3R_195()) return true;
5041    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5042    Token xsp;
5043    xsp = jj_scanpos;
5044    if (jj_3R_196()) jj_scanpos = xsp;
5045    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5046    return false;
5047  }
5048
5049  static final private boolean jj_3R_130() {
5050    Token xsp;
5051    xsp = jj_scanpos;
5052    if (jj_3R_170()) {
5053    jj_scanpos = xsp;
5054    if (jj_3R_171()) {
5055    jj_scanpos = xsp;
5056    if (jj_3R_172()) return true;
5057    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5058    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5059    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5060    return false;
5061  }
5062
5063  static final private boolean jj_3R_126() {
5064    Token xsp;
5065    xsp = jj_scanpos;
5066    if (jj_3_24()) {
5067    jj_scanpos = xsp;
5068    if (jj_3R_165()) {
5069    jj_scanpos = xsp;
5070    if (jj_3R_166()) return true;
5071    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5072    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5073    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5074    while (true) {
5075      xsp = jj_scanpos;
5076      if (jj_3R_208()) { jj_scanpos = xsp; break; }
5077      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5078    }
5079    return false;
5080  }
5081
5082  static final private boolean jj_3R_190() {
5083    if (jj_scan_token(UNION)) return true;
5084    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5085    return false;
5086  }
5087
5088  static final private boolean jj_3_1() {
5089    if (jj_3R_17()) return true;
5090    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5091    return false;
5092  }
5093
5094  static final private boolean jj_3R_189() {
5095    if (jj_scan_token(STRUCT)) return true;
5096    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5097    return false;
5098  }
5099
5100  static final private boolean jj_3R_120() {
5101    if (jj_scan_token(IDENTIFIER)) return true;
5102    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5103    return false;
5104  }
5105
5106  static final private boolean jj_3R_86() {
5107    if (jj_scan_token(SIZEOF)) return true;
5108    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5109    Token xsp;
5110    xsp = jj_scanpos;
5111    if (jj_3R_133()) {
5112    jj_scanpos = xsp;
5113    if (jj_3R_134()) return true;
5114    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5115    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5116    return false;
5117  }
5118
5119  static final private boolean jj_3R_158() {
5120    Token xsp;
5121    xsp = jj_scanpos;
5122    if (jj_3R_189()) {
5123    jj_scanpos = xsp;
5124    if (jj_3R_190()) return true;
5125    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5126    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5127    return false;
5128  }
5129
5130  static final private boolean jj_3R_65() {
5131    Token xsp;
5132    xsp = jj_scanpos;
5133    if (jj_3R_120()) {
5134    jj_scanpos = xsp;
5135    if (jj_3R_121()) return true;
5136    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5137    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5138    while (true) {
5139      xsp = jj_scanpos;
5140      if (jj_3R_122()) { jj_scanpos = xsp; break; }
5141      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5142    }
5143    return false;
5144  }
5145
5146  static final private boolean jj_3R_85() {
5147    if (jj_3R_132()) return true;
5148    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5149    if (jj_3R_41()) return true;
5150    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5151    return false;
5152  }
5153
5154  static final private boolean jj_3R_184() {
5155    if (jj_scan_token(74)) return true;
5156    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5157    if (jj_3R_135()) return true;
5158    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5159    return false;
5160  }
5161
5162  static final private boolean jj_3R_84() {
5163    if (jj_scan_token(91)) return true;
5164    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5165    if (jj_3R_37()) return true;
5166    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5167    return false;
5168  }
5169
5170  static final private boolean jj_3R_135() {
5171    if (jj_3R_183()) return true;
5172    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5173    Token xsp;
5174    xsp = jj_scanpos;
5175    if (jj_3R_184()) jj_scanpos = xsp;
5176    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5177    return false;
5178  }
5179
5180  static final private boolean jj_3R_83() {
5181    if (jj_scan_token(90)) return true;
5182    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5183    if (jj_3R_37()) return true;
5184    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5185    return false;
5186  }
5187
5188  static final private boolean jj_3R_202() {
5189    if (jj_scan_token(IDENTIFIER)) return true;
5190    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5191    return false;
5192  }
5193
5194  static final private boolean jj_3_33() {
5195    if (jj_3R_42()) return true;
5196    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5197    return false;
5198  }
5199
5200  static final private boolean jj_3R_23() {
5201    if (jj_scan_token(IDENTIFIER)) return true;
5202    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5203    return false;
5204  }
5205
5206  static final private boolean jj_3R_37() {
5207    Token xsp;
5208    xsp = jj_scanpos;
5209    if (jj_3_33()) {
5210    jj_scanpos = xsp;
5211    if (jj_3R_83()) {
5212    jj_scanpos = xsp;
5213    if (jj_3R_84()) {
5214    jj_scanpos = xsp;
5215    if (jj_3R_85()) {
5216    jj_scanpos = xsp;
5217    if (jj_3R_86()) return true;
5218    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5219    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5220    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5221    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5222    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5223    return false;
5224  }
5225
5226  static final private boolean jj_3R_136() {
5227    if (jj_scan_token(73)) return true;
5228    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5229    if (jj_3R_98()) return true;
5230    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5231    return false;
5232  }
5233
5234  static final private boolean jj_3_11() {
5235    Token xsp;
5236    xsp = jj_scanpos;
5237    if (jj_3R_23()) jj_scanpos = xsp;
5238    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5239    if (jj_scan_token(51)) return true;
5240    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5241    if (jj_3R_24()) return true;
5242    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5243    if (jj_scan_token(52)) return true;
5244    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5245    return false;
5246  }
5247
5248  static final private boolean jj_3R_125() {
5249    if (jj_3R_33()) return true;
5250    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5251    return false;
5252  }
5253
5254  static final private boolean jj_3R_98() {
5255    if (jj_3R_135()) return true;
5256    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5257    Token xsp;
5258    xsp = jj_scanpos;
5259    if (jj_3R_136()) jj_scanpos = xsp;
5260    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5261    return false;
5262  }
5263
5264  static final private boolean jj_3R_74() {
5265    Token xsp;
5266    xsp = jj_scanpos;
5267    if (jj_3R_125()) jj_scanpos = xsp;
5268    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5269    if (jj_3R_126()) return true;
5270    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5271    return false;
5272  }
5273
5274  static final private boolean jj_3_22() {
5275    if (jj_3R_33()) return true;
5276    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5277    return false;
5278  }
5279
5280  static final private boolean jj_3R_64() {
5281    if (jj_3R_33()) return true;
5282    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5283    return false;
5284  }
5285
5286  static final private boolean jj_3R_115() {
5287    if (jj_3R_158()) return true;
5288    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5289    Token xsp;
5290    xsp = jj_scanpos;
5291    if (jj_3_11()) {
5292    jj_scanpos = xsp;
5293    if (jj_3R_202()) return true;
5294    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5295    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5296    return false;
5297  }
5298
5299  static final private boolean jj_3R_169() {
5300    if (jj_scan_token(SWITCH)) return true;
5301    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5302    if (jj_scan_token(56)) return true;
5303    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5304    if (jj_3R_137()) return true;
5305    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5306    if (jj_scan_token(57)) return true;
5307    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5308    if (jj_3R_36()) return true;
5309    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5310    return false;
5311  }
5312
5313  static final private boolean jj_3R_27() {
5314    Token xsp;
5315    xsp = jj_scanpos;
5316    if (jj_3R_64()) jj_scanpos = xsp;
5317    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5318    if (jj_3R_65()) return true;
5319    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5320    return false;
5321  }
5322
5323  static final private boolean jj_3R_34() {
5324    Token xsp;
5325    xsp = jj_scanpos;
5326    if (jj_3_22()) {
5327    jj_scanpos = xsp;
5328    if (jj_3R_74()) return true;
5329    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5330    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5331    return false;
5332  }
5333
5334  static final private boolean jj_3R_127() {
5335    if (jj_3R_39()) return true;
5336    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5337    return false;
5338  }
5339
5340  static final private boolean jj_3_28() {
5341    if (jj_scan_token(ELSE)) return true;
5342    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5343    if (jj_3R_36()) return true;
5344    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5345    return false;
5346  }
5347
5348  static final private boolean jj_3R_102() {
5349    if (jj_3R_37()) return true;
5350    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5351    return false;
5352  }
5353
5354  static final private boolean jj_3_31() {
5355    if (jj_scan_token(56)) return true;
5356    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5357    if (jj_3R_40()) return true;
5358    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5359    if (jj_scan_token(57)) return true;
5360    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5361    if (jj_3R_41()) return true;
5362    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5363    return false;
5364  }
5365
5366  static final private boolean jj_3R_123() {
5367    if (jj_scan_token(54)) return true;
5368    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5369    if (jj_3R_127()) return true;
5370    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5371    return false;
5372  }
5373
5374  static final private boolean jj_3R_100() {
5375    if (jj_3R_34()) return true;
5376    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5377    return false;
5378  }
5379
5380  static final private boolean jj_3R_168() {
5381    if (jj_scan_token(IF)) return true;
5382    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5383    if (jj_scan_token(56)) return true;
5384    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5385    if (jj_3R_137()) return true;
5386    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5387    if (jj_scan_token(57)) return true;
5388    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5389    if (jj_3R_36()) return true;
5390    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5391    Token xsp;
5392    xsp = jj_scanpos;
5393    if (jj_3_28()) jj_scanpos = xsp;
5394    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5395    return false;
5396  }
5397
5398  static final private boolean jj_3R_155() {
5399    if (jj_scan_token(VOLATILE)) return true;
5400    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5401    return false;
5402  }
5403
5404  static final private boolean jj_3R_66() {
5405    if (jj_scan_token(IDENTIFIER)) return true;
5406    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5407    Token xsp;
5408    xsp = jj_scanpos;
5409    if (jj_3R_123()) jj_scanpos = xsp;
5410    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5411    return false;
5412  }
5413
5414  static final private boolean jj_3R_154() {
5415    if (jj_scan_token(CONST)) return true;
5416    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5417    return false;
5418  }
5419
5420  static final private boolean jj_3R_40() {
5421    if (jj_3R_26()) return true;
5422    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5423    Token xsp;
5424    xsp = jj_scanpos;
5425    if (jj_3R_100()) jj_scanpos = xsp;
5426    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5427    return false;
5428  }
5429
5430  static final private boolean jj_3R_101() {
5431    if (jj_scan_token(56)) return true;
5432    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5433    if (jj_3R_40()) return true;
5434    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5435    if (jj_scan_token(57)) return true;
5436    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5437    if (jj_3R_41()) return true;
5438    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5439    return false;
5440  }
5441
5442  static final private boolean jj_3R_99() {
5443    if (jj_scan_token(72)) return true;
5444    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5445    if (jj_3R_137()) return true;
5446    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5447    if (jj_scan_token(55)) return true;
5448    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5449    if (jj_3R_39()) return true;
5450    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5451    return false;
5452  }
5453
5454  static final private boolean jj_3R_129() {
5455    Token xsp;
5456    xsp = jj_scanpos;
5457    if (jj_3R_168()) {
5458    jj_scanpos = xsp;
5459    if (jj_3R_169()) return true;
5460    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5461    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5462    return false;
5463  }
5464
5465  static final private boolean jj_3R_39() {
5466    if (jj_3R_98()) return true;
5467    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5468    Token xsp;
5469    xsp = jj_scanpos;
5470    if (jj_3R_99()) jj_scanpos = xsp;
5471    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5472    return false;
5473  }
5474
5475  static final private boolean jj_3R_112() {
5476    Token xsp;
5477    xsp = jj_scanpos;
5478    if (jj_3R_154()) {
5479    jj_scanpos = xsp;
5480    if (jj_3R_155()) return true;
5481    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5482    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5483    return false;
5484  }
5485
5486  static final private boolean jj_3R_41() {
5487    Token xsp;
5488    xsp = jj_scanpos;
5489    if (jj_3R_101()) {
5490    jj_scanpos = xsp;
5491    if (jj_3R_102()) return true;
5492    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5493    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5494    return false;
5495  }
5496
5497  static final private boolean jj_3_21() {
5498    if (jj_scan_token(53)) return true;
5499    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5500    if (jj_3R_32()) return true;
5501    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5502    return false;
5503  }
5504
5505  static final private boolean jj_3R_67() {
5506    if (jj_scan_token(53)) return true;
5507    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5508    if (jj_3R_66()) return true;
5509    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5510    return false;
5511  }
5512
5513  static final private boolean jj_3R_62() {
5514    if (jj_3R_117()) return true;
5515    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5516    return false;
5517  }
5518
5519  static final private boolean jj_3R_216() {
5520    if (jj_3R_32()) return true;
5521    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5522    Token xsp;
5523    while (true) {
5524      xsp = jj_scanpos;
5525      if (jj_3_21()) { jj_scanpos = xsp; break; }
5526      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5527    }
5528    return false;
5529  }
5530
5531  static final private boolean jj_3R_97() {
5532    if (jj_scan_token(71)) return true;
5533    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5534    return false;
5535  }
5536
5537  static final private boolean jj_3R_61() {
5538    if (jj_3R_116()) return true;
5539    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5540    return false;
5541  }
5542
5543  static final private boolean jj_3R_29() {
5544    if (jj_3R_66()) return true;
5545    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5546    Token xsp;
5547    while (true) {
5548      xsp = jj_scanpos;
5549      if (jj_3R_67()) { jj_scanpos = xsp; break; }
5550      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5551    }
5552    return false;
5553  }
5554
5555  static final private boolean jj_3R_96() {
5556    if (jj_scan_token(70)) return true;
5557    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5558    return false;
5559  }
5560
5561  static final private boolean jj_3R_245() {
5562    if (jj_scan_token(89)) return true;
5563    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5564    return false;
5565  }
5566
5567  static final private boolean jj_3R_60() {
5568    if (jj_3R_115()) return true;
5569    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5570    return false;
5571  }
5572
5573  static final private boolean jj_3R_95() {
5574    if (jj_scan_token(69)) return true;
5575    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5576    return false;
5577  }
5578
5579  static final private boolean jj_3R_244() {
5580    if (jj_scan_token(88)) return true;
5581    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5582    return false;
5583  }
5584
5585  static final private boolean jj_3R_59() {
5586    if (jj_scan_token(UNSIGNED)) return true;
5587    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5588    return false;
5589  }
5590
5591  static final private boolean jj_3R_94() {
5592    if (jj_scan_token(68)) return true;
5593    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5594    return false;
5595  }
5596
5597  static final private boolean jj_3R_243() {
5598    if (jj_scan_token(60)) return true;
5599    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5600    return false;
5601  }
5602
5603  static final private boolean jj_3R_58() {
5604    if (jj_scan_token(SIGNED)) return true;
5605    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5606    return false;
5607  }
5608
5609  static final private boolean jj_3R_93() {
5610    if (jj_scan_token(67)) return true;
5611    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5612    return false;
5613  }
5614
5615  static final private boolean jj_3R_57() {
5616    if (jj_scan_token(DOUBLE)) return true;
5617    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5618    return false;
5619  }
5620
5621  static final private boolean jj_3R_187() {
5622    if (jj_3R_36()) return true;
5623    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5624    return false;
5625  }
5626
5627  static final private boolean jj_3R_92() {
5628    if (jj_scan_token(66)) return true;
5629    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5630    return false;
5631  }
5632
5633  static final private boolean jj_3R_56() {
5634    if (jj_scan_token(FLOAT)) return true;
5635    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5636    return false;
5637  }
5638
5639  static final private boolean jj_3R_203() {
5640    if (jj_scan_token(IDENTIFIER)) return true;
5641    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5642    return false;
5643  }
5644
5645  static final private boolean jj_3R_217() {
5646    if (jj_scan_token(53)) return true;
5647    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5648    return false;
5649  }
5650
5651  static final private boolean jj_3R_91() {
5652    if (jj_scan_token(65)) return true;
5653    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5654    return false;
5655  }
5656
5657  static final private boolean jj_3R_240() {
5658    Token xsp;
5659    xsp = jj_scanpos;
5660    if (jj_3R_243()) {
5661    jj_scanpos = xsp;
5662    if (jj_3R_244()) {
5663    jj_scanpos = xsp;
5664    if (jj_3R_245()) return true;
5665    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5666    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5667    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5668    if (jj_3R_236()) return true;
5669    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5670    return false;
5671  }
5672
5673  static final private boolean jj_3R_148() {
5674    Token xsp;
5675    if (jj_3R_187()) return true;
5676    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5677    while (true) {
5678      xsp = jj_scanpos;
5679      if (jj_3R_187()) { jj_scanpos = xsp; break; }
5680      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5681    }
5682    return false;
5683  }
5684
5685  static final private boolean jj_3R_55() {
5686    if (jj_scan_token(LONG)) return true;
5687    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5688    return false;
5689  }
5690
5691  static final private boolean jj_3R_90() {
5692    if (jj_scan_token(64)) return true;
5693    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5694    return false;
5695  }
5696
5697  static final private boolean jj_3R_54() {
5698    if (jj_scan_token(INT)) return true;
5699    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5700    return false;
5701  }
5702
5703  static final private boolean jj_3R_236() {
5704    if (jj_3R_41()) return true;
5705    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5706    Token xsp;
5707    xsp = jj_scanpos;
5708    if (jj_3R_240()) jj_scanpos = xsp;
5709    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5710    return false;
5711  }
5712
5713  static final private boolean jj_3R_200() {
5714    if (jj_scan_token(STRING_LITERAL)) return true;
5715    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5716    return false;
5717  }
5718
5719  static final private boolean jj_3R_89() {
5720    if (jj_scan_token(63)) return true;
5721    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5722    return false;
5723  }
5724
5725  static final private boolean jj_3R_53() {
5726    if (jj_scan_token(SHORT)) return true;
5727    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5728    return false;
5729  }
5730
5731  static final private boolean jj_3R_28() {
5732    if (jj_scan_token(IDENTIFIER)) return true;
5733    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5734    return false;
5735  }
5736
5737  static final private boolean jj_3R_199() {
5738    if (jj_scan_token(CHARACTER_LITERAL)) return true;
5739    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5740    return false;
5741  }
5742
5743  static final private boolean jj_3R_71() {
5744    if (jj_scan_token(51)) return true;
5745    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5746    if (jj_3R_216()) return true;
5747    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5748    Token xsp;
5749    xsp = jj_scanpos;
5750    if (jj_3R_217()) jj_scanpos = xsp;
5751    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5752    if (jj_scan_token(52)) return true;
5753    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5754    return false;
5755  }
5756
5757  static final private boolean jj_3R_88() {
5758    if (jj_scan_token(62)) return true;
5759    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5760    return false;
5761  }
5762
5763  static final private boolean jj_3R_52() {
5764    if (jj_scan_token(CHAR)) return true;
5765    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5766    return false;
5767  }
5768
5769  static final private boolean jj_3_27() {
5770    if (jj_3R_21()) return true;
5771    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5772    return false;
5773  }
5774
5775  static final private boolean jj_3R_198() {
5776    if (jj_scan_token(FLOATING_POINT_LITERAL)) return true;
5777    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5778    return false;
5779  }
5780
5781  static final private boolean jj_3R_70() {
5782    if (jj_3R_105()) return true;
5783    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5784    return false;
5785  }
5786
5787  static final private boolean jj_3R_87() {
5788    if (jj_scan_token(54)) return true;
5789    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5790    return false;
5791  }
5792
5793  static final private boolean jj_3R_51() {
5794    if (jj_scan_token(VOID)) return true;
5795    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5796    return false;
5797  }
5798
5799  static final private boolean jj_3_17() {
5800    Token xsp;
5801    xsp = jj_scanpos;
5802    if (jj_3R_28()) jj_scanpos = xsp;
5803    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5804    if (jj_scan_token(51)) return true;
5805    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5806    if (jj_3R_29()) return true;
5807    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5808    if (jj_scan_token(52)) return true;
5809    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5810    return false;
5811  }
5812
5813  static final private boolean jj_3R_197() {
5814    if (jj_scan_token(INTEGER_LITERAL)) return true;
5815    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5816    return false;
5817  }
5818
5819  static final private boolean jj_3R_108() {
5820    if (jj_3R_148()) return true;
5821    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5822    return false;
5823  }
5824
5825  static final private boolean jj_3R_185() {
5826    Token xsp;
5827    xsp = jj_scanpos;
5828    if (jj_3R_197()) {
5829    jj_scanpos = xsp;
5830    if (jj_3R_198()) {
5831    jj_scanpos = xsp;
5832    if (jj_3R_199()) {
5833    jj_scanpos = xsp;
5834    if (jj_3R_200()) return true;
5835    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5836    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5837    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5838    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5839    return false;
5840  }
5841
5842  static final private boolean jj_3R_32() {
5843    Token xsp;
5844    xsp = jj_scanpos;
5845    if (jj_3R_70()) {
5846    jj_scanpos = xsp;
5847    if (jj_3R_71()) return true;
5848    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5849    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5850    return false;
5851  }
5852
5853  static final private boolean jj_3R_107() {
5854    if (jj_3R_21()) return true;
5855    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5856    return false;
5857  }
5858
5859  static final private boolean jj_3R_38() {
5860    Token xsp;
5861    xsp = jj_scanpos;
5862    if (jj_3R_87()) {
5863    jj_scanpos = xsp;
5864    if (jj_3R_88()) {
5865    jj_scanpos = xsp;
5866    if (jj_3R_89()) {
5867    jj_scanpos = xsp;
5868    if (jj_3R_90()) {
5869    jj_scanpos = xsp;
5870    if (jj_3R_91()) {
5871    jj_scanpos = xsp;
5872    if (jj_3R_92()) {
5873    jj_scanpos = xsp;
5874    if (jj_3R_93()) {
5875    jj_scanpos = xsp;
5876    if (jj_3R_94()) {
5877    jj_scanpos = xsp;
5878    if (jj_3R_95()) {
5879    jj_scanpos = xsp;
5880    if (jj_3R_96()) {
5881    jj_scanpos = xsp;
5882    if (jj_3R_97()) return true;
5883    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5884    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5885    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5886    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5887    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5888    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5889    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5890    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5891    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5892    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5893    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5894    return false;
5895  }
5896
5897  static final private boolean jj_3R_22() {
5898    Token xsp;
5899    xsp = jj_scanpos;
5900    if (jj_3R_51()) {
5901    jj_scanpos = xsp;
5902    if (jj_3R_52()) {
5903    jj_scanpos = xsp;
5904    if (jj_3R_53()) {
5905    jj_scanpos = xsp;
5906    if (jj_3R_54()) {
5907    jj_scanpos = xsp;
5908    if (jj_3R_55()) {
5909    jj_scanpos = xsp;
5910    if (jj_3R_56()) {
5911    jj_scanpos = xsp;
5912    if (jj_3R_57()) {
5913    jj_scanpos = xsp;
5914    if (jj_3R_58()) {
5915    jj_scanpos = xsp;
5916    if (jj_3R_59()) {
5917    jj_scanpos = xsp;
5918    if (jj_3R_60()) {
5919    jj_scanpos = xsp;
5920    if (jj_3R_61()) {
5921    jj_scanpos = xsp;
5922    lookingAhead = true;
5923    jj_semLA = isType(getToken(1).image);
5924    lookingAhead = false;
5925    if (!jj_semLA || jj_3R_62()) return true;
5926    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5927    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5928    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5929    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5930    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5931    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5932    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5933    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5934    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5935    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5936    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5937    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5938    return false;
5939  }
5940
5941  static final private boolean jj_3R_116() {
5942    if (jj_scan_token(ENUM)) return true;
5943    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5944    Token xsp;
5945    xsp = jj_scanpos;
5946    if (jj_3_17()) {
5947    jj_scanpos = xsp;
5948    if (jj_3R_203()) return true;
5949    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5950    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5951    return false;
5952  }
5953
5954  static final private boolean jj_3R_46() {
5955    if (jj_scan_token(51)) return true;
5956    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5957    Token xsp;
5958    xsp = jj_scanpos;
5959    if (jj_3R_107()) jj_scanpos = xsp;
5960    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5961    xsp = jj_scanpos;
5962    if (jj_3R_108()) jj_scanpos = xsp;
5963    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5964    if (jj_scan_token(52)) return true;
5965    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5966    return false;
5967  }
5968
5969  static final private boolean jj_3R_242() {
5970    if (jj_scan_token(87)) return true;
5971    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5972    return false;
5973  }
5974
5975  static final private boolean jj_3R_241() {
5976    if (jj_scan_token(86)) return true;
5977    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5978    return false;
5979  }
5980
5981  static final private boolean jj_3R_237() {
5982    Token xsp;
5983    xsp = jj_scanpos;
5984    if (jj_3R_241()) {
5985    jj_scanpos = xsp;
5986    if (jj_3R_242()) return true;
5987    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5988    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5989    if (jj_3R_229()) return true;
5990    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5991    return false;
5992  }
5993
5994  static final private boolean jj_3R_106() {
5995    if (jj_scan_token(53)) return true;
5996    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5997    if (jj_3R_105()) return true;
5998    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5999    return false;
6000  }
6001
6002  static final private boolean jj_3R_167() {
6003    if (jj_3R_137()) return true;
6004    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6005    return false;
6006  }
6007
6008  static final private boolean jj_3R_229() {
6009    if (jj_3R_236()) return true;
6010    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6011    Token xsp;
6012    xsp = jj_scanpos;
6013    if (jj_3R_237()) jj_scanpos = xsp;
6014    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6015    return false;
6016  }
6017
6018  static private boolean jj_initialized_once = false;
6019  static public CParserTokenManager token_source;
6020  static ASCII_CharStream jj_input_stream;
6021  static public Token token, jj_nt;
6022  static private int jj_ntk;
6023  static private Token jj_scanpos, jj_lastpos;
6024  static private int jj_la;
6025  static public boolean lookingAhead = false;
6026  static private boolean jj_semLA;
6027  static private int jj_gen;
6028  static final private int[] jj_la1 = new int[81];
6029  static final private int[] jj_la1_0 = {0x0,0xa0a0000,0x10000,0xa0a0000,0x94240000,0x10000,0x0,0x0,0x84000000,0x0,0x0,0x10000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x406880,0x0,0x0,0x0,0x10000,0x0,0x10000,0x0,0x0,0x0,0x0,0x406880,0x0,0x0,0x0,0x406880,0x0,0x0,0x406880,0x0,0x61c0e880,0x100000,0x406880,0x61d0e880,0x61d0e880,0x800000,0x406880,0x406880,0x406880,0x20000000,0x406880,0x41008000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x406880,0x0,0x400000,0x0,0x0,0x0,0x6880,0x0,0x6880,};
6030  static final private int[] jj_la1_1 = {0x11008000,0x80,0x1,0x80,0x1366,0x1,0x8000,0x8000,0x0,0x200000,0x400000,0x1,0x200000,0x11008000,0x11808000,0x8000,0x8000,0x200000,0x400000,0x10000000,0x1008000,0x5000000,0x11008000,0x8000,0x4000000,0x1000000,0x1,0x10000000,0x1,0x200000,0x15000000,0x200000,0x200000,0x11088000,0x15000000,0x10000000,0x15000000,0x11008000,0x5000000,0x5000000,0x11008000,0x5000000,0x110cec00,0x8010,0x11008000,0x110cec10,0x110cec10,0x2000,0x11008000,0x11008000,0x11008000,0x4800,0x11008000,0x400,0x200000,0xc0400000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10000000,0x10000000,0x11008000,0x1000000,0x10000000,0x10000000,0x5000000,0x5000000,0x1008000,0x200000,0x0,};
6031  static final private int[] jj_la1_2 = {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3cc02000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3cc02000,0x0,0x0,0x0,0x3cc02000,0x0,0x0,0x3cc02000,0x0,0x3cc02000,0x0,0x3cc02000,0x3cc02000,0x3cc02000,0x0,0x3cc02000,0x3cc02000,0x3cc02000,0x0,0x3cc02000,0x0,0x0,0xff,0x100,0x200,0x400,0x800,0x1000,0x2000,0xc000,0xc000,0xf0000,0xf0000,0x300000,0x300000,0xc00000,0xc00000,0x3000000,0x3000000,0x3cc02000,0x0,0x3cc02000,0x30c02000,0xcc000000,0xcc000000,0x0,0x0,0x0,};
6032  static final private JJCalls[] jj_2_rtns = new JJCalls[34];
6033  static private boolean jj_rescan = false;
6034  static private int jj_gc = 0;
6035
6036  public CParser(java.io.InputStream stream) {
6037    if (jj_initialized_once) {
6038       // System.out.println("ERROR: Second call to constructor of static parser.  You must");
6039       // System.out.println("       either use ReInit() or set the JavaCC option STATIC to false");
6040       // System.out.println("       during parser generation.");
6041      throw new Error();
6042    }
6043    jj_initialized_once = true;
6044    jj_input_stream = new ASCII_CharStream(stream, 1, 1);
6045    token_source = new CParserTokenManager(jj_input_stream);
6046    token = new Token();
6047    jj_ntk = -1;
6048    jj_gen = 0;
6049    for (int i = 0; i < 81; i++) jj_la1[i] = -1;
6050    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6051  }
6052
6053  static public void ReInit(java.io.InputStream stream) {
6054    ASCII_CharStream.ReInit(stream, 1, 1);
6055    CParserTokenManager.ReInit(jj_input_stream);
6056    token = new Token();
6057    jj_ntk = -1;
6058    jj_gen = 0;
6059    for (int i = 0; i < 81; i++) jj_la1[i] = -1;
6060    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6061  }
6062
6063  public CParser(java.io.Reader stream) {
6064    if (jj_initialized_once) {
6065       // System.out.println("ERROR: Second call to constructor of static parser.  You must");
6066       // System.out.println("       either use ReInit() or set the JavaCC option STATIC to false");
6067       // System.out.println("       during parser generation.");
6068      throw new Error();
6069    }
6070    jj_initialized_once = true;
6071    jj_input_stream = new ASCII_CharStream(stream, 1, 1);
6072    token_source = new CParserTokenManager(jj_input_stream);
6073    token = new Token();
6074    jj_ntk = -1;
6075    jj_gen = 0;
6076    for (int i = 0; i < 81; i++) jj_la1[i] = -1;
6077    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6078  }
6079
6080  static public void ReInit(java.io.Reader stream) {
6081    ASCII_CharStream.ReInit(stream, 1, 1);
6082    CParserTokenManager.ReInit(jj_input_stream);
6083    token = new Token();
6084    jj_ntk = -1;
6085    jj_gen = 0;
6086    for (int i = 0; i < 81; i++) jj_la1[i] = -1;
6087    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6088  }
6089
6090  public CParser(CParserTokenManager tm) {
6091    if (jj_initialized_once) {
6092       //  System.out.println("ERROR: Second call to constructor of static parser.  You must");
6093       // System.out.println("       either use ReInit() or set the JavaCC option STATIC to false");
6094       // System.out.println("       during parser generation.");
6095      throw new Error();
6096    }
6097    jj_initialized_once = true;
6098    token_source = tm;
6099    token = new Token();
6100    jj_ntk = -1;
6101    jj_gen = 0;
6102    for (int i = 0; i < 81; i++) jj_la1[i] = -1;
6103    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6104  }
6105
6106  public void ReInit(CParserTokenManager tm) {
6107    token_source = tm;
6108    token = new Token();
6109    jj_ntk = -1;
6110    jj_gen = 0;
6111    for (int i = 0; i < 81; i++) jj_la1[i] = -1;
6112    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6113  }
6114
6115  static final private Token jj_consume_token(int kind) throws ParseException {
6116    Token oldToken;
6117    if ((oldToken = token).next != null) token = token.next;
6118    else token = token.next = CParserTokenManager.getNextToken();
6119    jj_ntk = -1;
6120    if (token.kind == kind) {
6121      jj_gen++;
6122      if (++jj_gc > 100) {
6123        jj_gc = 0;
6124        for (int i = 0; i < jj_2_rtns.length; i++) {
6125          JJCalls c = jj_2_rtns[i];
6126          while (c != null) {
6127            if (c.gen < jj_gen) c.first = null;
6128            c = c.next;
6129          }
6130        }
6131      }
6132      return token;
6133    }
6134    token = oldToken;
6135    jj_kind = kind;
6136    throw generateParseException();
6137  }
6138
6139  static final private boolean jj_scan_token(int kind) {
6140    if (jj_scanpos == jj_lastpos) {
6141      jj_la--;
6142      if (jj_scanpos.next == null) {
6143        jj_lastpos = jj_scanpos = jj_scanpos.next = CParserTokenManager.getNextToken();
6144      } else {
6145        jj_lastpos = jj_scanpos = jj_scanpos.next;
6146      }
6147    } else {
6148      jj_scanpos = jj_scanpos.next;
6149    }
6150    if (jj_rescan) {
6151      int i = 0; Token tok = token;
6152      while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; }
6153      if (tok != null) jj_add_error_token(kind, i);
6154    }
6155    return (jj_scanpos.kind != kind);
6156  }
6157
6158  static public final Token getNextToken() {
6159    if (token.next != null) token = token.next;
6160    else token = token.next = CParserTokenManager.getNextToken();
6161    jj_ntk = -1;
6162    jj_gen++;
6163    return token;
6164  }
6165
6166  static public final Token getToken(int index) {
6167    Token t = lookingAhead ? jj_scanpos : token;
6168    for (int i = 0; i < index; i++) {
6169      if (t.next != null) t = t.next;
6170      else t = t.next = CParserTokenManager.getNextToken();
6171    }
6172    return t;
6173  }
6174
6175  static final private int jj_ntk() {
6176    if ((jj_nt=token.next) == null)
6177      return (jj_ntk = (token.next=CParserTokenManager.getNextToken()).kind);
6178    else
6179      return (jj_ntk = jj_nt.kind);
6180  }
6181
6182  static private java.util.Vector<int[]> jj_expentries = new java.util.Vector<int[]>();
6183  static private int[] jj_expentry;
6184  static private int jj_kind = -1;
6185  static private int[] jj_lasttokens = new int[100];
6186  static private int jj_endpos;
6187
6188  static private void jj_add_error_token(int kind, int pos) {
6189    if (pos >= 100) return;
6190    if (pos == jj_endpos + 1) {
6191      jj_lasttokens[jj_endpos++] = kind;
6192    } else if (jj_endpos != 0) {
6193      jj_expentry = new int[jj_endpos];
6194      for (int i = 0; i < jj_endpos; i++) {
6195        jj_expentry[i] = jj_lasttokens[i];
6196      }
6197      boolean exists = false;
6198      for (java.util.Enumeration e = jj_expentries.elements(); e.hasMoreElements(); ) {
6199        int[] oldentry = (int[])(e.nextElement());
6200        if (oldentry.length == jj_expentry.length) {
6201          exists = true;
6202          for (int i = 0; i < jj_expentry.length; i++) {
6203            if (oldentry[i] != jj_expentry[i]) {
6204              exists = false;
6205              break;
6206            }
6207          }
6208          if (exists) break;
6209        }
6210      }
6211      if (!exists) jj_expentries.addElement(jj_expentry);
6212      if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind;
6213    }
6214  }
6215
6216  static public final ParseException generateParseException() {
6217    jj_expentries.removeAllElements();
6218    boolean[] la1tokens = new boolean[96];
6219    for (int i = 0; i < 96; i++) {
6220      la1tokens[i] = false;
6221    }
6222    if (jj_kind >= 0) {
6223      la1tokens[jj_kind] = true;
6224      jj_kind = -1;
6225    }
6226    for (int i = 0; i < 81; i++) {
6227      if (jj_la1[i] == jj_gen) {
6228        for (int j = 0; j < 32; j++) {
6229          if ((jj_la1_0[i] & (1<<j)) != 0) {
6230            la1tokens[j] = true;
6231          }
6232          if ((jj_la1_1[i] & (1<<j)) != 0) {
6233            la1tokens[32+j] = true;
6234          }
6235          if ((jj_la1_2[i] & (1<<j)) != 0) {
6236            la1tokens[64+j] = true;
6237          }
6238        }
6239      }
6240    }
6241    for (int i = 0; i < 96; i++) {
6242      if (la1tokens[i]) {
6243        jj_expentry = new int[1];
6244        jj_expentry[0] = i;
6245        jj_expentries.addElement(jj_expentry);
6246      }
6247    }
6248    jj_endpos = 0;
6249    jj_rescan_token();
6250    jj_add_error_token(0, 0);
6251    int[][] exptokseq = new int[jj_expentries.size()][];
6252    for (int i = 0; i < jj_expentries.size(); i++) {
6253      exptokseq[i] = jj_expentries.elementAt(i);
6254    }
6255    return new ParseException(token, exptokseq, tokenImage);
6256  }
6257
6258  static public final void enable_tracing() {
6259  }
6260
6261  static public final void disable_tracing() {
6262  }
6263
6264  static final private void jj_rescan_token() {
6265    jj_rescan = true;
6266    for (int i = 0; i < 34; i++) {
6267      JJCalls p = jj_2_rtns[i];
6268      do {
6269        if (p.gen > jj_gen) {
6270          jj_la = p.arg; jj_lastpos = jj_scanpos = p.first;
6271          switch (i) {
6272            case 0: jj_3_1(); break;
6273            case 1: jj_3_2(); break;
6274            case 2: jj_3_3(); break;
6275            case 3: jj_3_4(); break;
6276            case 4: jj_3_5(); break;
6277            case 5: jj_3_6(); break;
6278            case 6: jj_3_7(); break;
6279            case 7: jj_3_8(); break;
6280            case 8: jj_3_9(); break;
6281            case 9: jj_3_10(); break;
6282            case 10: jj_3_11(); break;
6283            case 11: jj_3_12(); break;
6284            case 12: jj_3_13(); break;
6285            case 13: jj_3_14(); break;
6286            case 14: jj_3_15(); break;
6287            case 15: jj_3_16(); break;
6288            case 16: jj_3_17(); break;
6289            case 17: jj_3_18(); break;
6290            case 18: jj_3_19(); break;
6291            case 19: jj_3_20(); break;
6292            case 20: jj_3_21(); break;
6293            case 21: jj_3_22(); break;
6294            case 22: jj_3_23(); break;
6295            case 23: jj_3_24(); break;
6296            case 24: jj_3_25(); break;
6297            case 25: jj_3_26(); break;
6298            case 26: jj_3_27(); break;
6299            case 27: jj_3_28(); break;
6300            case 28: jj_3_29(); break;
6301            case 29: jj_3_30(); break;
6302            case 30: jj_3_31(); break;
6303            case 31: jj_3_32(); break;
6304            case 32: jj_3_33(); break;
6305            case 33: jj_3_34(); break;
6306          }
6307        }
6308        p = p.next;
6309      } while (p != null);
6310    }
6311    jj_rescan = false;
6312  }
6313
6314  static final private void jj_save(int index, int xla) {
6315    JJCalls p = jj_2_rtns[index];
6316    while (p.gen > jj_gen) {
6317      if (p.next == null) { p = p.next = new JJCalls(); break; }
6318      p = p.next;
6319    }
6320    p.gen = jj_gen + xla - jj_la; p.first = token; p.arg = xla;
6321  }
6322
6323  static final class JJCalls {
6324    int gen;
6325    Token first;
6326    int arg;
6327    JJCalls next;
6328  }
6329
6330}
6331
6332class JTBToolkit {
6333   static NodeToken makeNodeToken(Token t) {
6334      return new NodeToken(t.image.intern(), t.kind, t.beginLine, t.beginColumn, t.endLine, t.endColumn);
6335   }
6336}