/*   Generated by AspectJ version 0.7beta7 */
import Any_vertex;
import Syntax_vertex;
import Labeled_vertex;
import ParserTokenManager;
import Vertex;
import Adj_list;
import CountingVisitor;
import ASCII_UCodeESC_CharStream;
import ParserConstants;
import Empty;
import Any_vertex_list;
import Neighbors;
import Cd_graph;
import Construct;
import Empty_cd_graph;
import Main;
import Adj;
import ParseException;
import Token;
import Nany_vertex_list;
import Alternat;
public class Parser extends java.lang.Object implements ParserConstants  {  //from Parser.java:3
  static char unescapifyChar(java.lang.String s)  {         //from Parser.java:5
    char c = s.charAt(0);                                   //from Parser.java:6
    if (c == '\\')  {                                       //from Parser.java:7
      switch (s.charAt(1)) {                                //from Parser.java:8
        case 'n':                                           //from Parser.java:9
          c = '\n';                                         //from Parser.java:9
          break;                                            //from Parser.java:9
        case 't':                                           //from Parser.java:10
          c = '\t';                                         //from Parser.java:10
          break;                                            //from Parser.java:10
        case 'b':                                           //from Parser.java:11
          c = '\b';                                         //from Parser.java:11
          break;                                            //from Parser.java:11
        case 'r':                                           //from Parser.java:12
          c = '\r';                                         //from Parser.java:12
          break;                                            //from Parser.java:12
        case 'f':                                           //from Parser.java:13
          c = '\f';                                         //from Parser.java:13
          break;                                            //from Parser.java:13
        case '\\':                                          //from Parser.java:14
          c = '\\';                                         //from Parser.java:14
          break;                                            //from Parser.java:14
        case '\'':                                          //from Parser.java:15
          c = '\'';                                         //from Parser.java:15
          break;                                            //from Parser.java:15
        case '\"':                                          //from Parser.java:16
          c = '\"';                                         //from Parser.java:16
          break;                                            //from Parser.java:16
        default: 
          c = (char)java.lang.Integer.parseInt(s.substring(1, s.length()), 8);  //from Parser.java:18
          break;                                            //from Parser.java:19
      }
    }
    return c;                                               //from Parser.java:22
  }

  static java.lang.String unescapify(java.lang.String s)  {  //from Parser.java:25
    char[] str = new char[s.length()];                      //from Parser.java:26
    int i = 0;                                              //from Parser.java:27
    int o = 0;                                              //from Parser.java:27
    while (i < s.length()) {                                //from Parser.java:28
      char c = s.charAt(i++);                               //from Parser.java:29
      if (c == '\\')  {                                     //from Parser.java:30
        int j = i + 1;                                      //from Parser.java:31
        while (j < s.length() && java.lang.Character.digit(s.charAt(j), 8) != -1) {  //from Parser.java:33
          j++;                                              //from Parser.java:34
        }
        c = unescapifyChar(s.substring(i - 1, j));          //from Parser.java:36
        i = j;                                              //from Parser.java:37
      }
      str[o++] = c;                                         //from Parser.java:39
    }
    return java.lang.String.valueOf(str, 0, o);             //from Parser.java:41
  }

  public final Cd_graph _Cd_graph() throws ParseException  {  //from Parser.java:44
    Cd_graph it = null;                                     //from Parser.java:45
    Adj _first;                                             //from Parser.java:46
    Adj_list _rest;                                         //from Parser.java:47
    it = new Cd_graph();                                    //from Parser.java:48
    _first = _Adj();                                        //from Parser.java:49
    it.set_first(_first);                                   //from Parser.java:50
    _rest = _Adj_list();                                    //from Parser.java:51
    it.set_rest(_rest);                                     //from Parser.java:52
    common_Adj_list(it);                                    //from Parser.java:53
    {                                                       //from Parser.java:54
      if (true) return it;                                  //from Parser.java:54
    }
    throw new java.lang.Error("Missing return statement in function");  //from Parser.java:55
  }

  public final Adj _Adj() throws ParseException  {          //from Parser.java:58
    Adj it = null;                                          //from Parser.java:59
    Vertex _vertex;                                         //from Parser.java:60
    Neighbors _ns;                                          //from Parser.java:61
    it = new Adj();                                         //from Parser.java:62
    _vertex = _Vertex();                                    //from Parser.java:63
    it.set_vertex(_vertex);                                 //from Parser.java:64
    _ns = _Neighbors();                                     //from Parser.java:65
    it.set_ns(_ns);                                         //from Parser.java:66
    jj_consume_token(1);                                    //from Parser.java:67
    {                                                       //from Parser.java:68
      if (true) return it;                                  //from Parser.java:68
    }
    throw new java.lang.Error("Missing return statement in function");  //from Parser.java:69
  }

  public final Neighbors _Neighbors() throws ParseException  {  //from Parser.java:72
    Neighbors it = null;                                    //from Parser.java:73
    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {           //from Parser.java:74
      case 2:                                               //from Parser.java:75
        it = _Construct();                                  //from Parser.java:76
        break;                                              //from Parser.java:77
      case 3:                                               //from Parser.java:78
        it = _Alternat();                                   //from Parser.java:79
        break;                                              //from Parser.java:80
      default: 
        jj_la1[0] = jj_gen;                                 //from Parser.java:82
        jj_consume_token(-1);                               //from Parser.java:83
        throw new ParseException();                         //from Parser.java:84
    }
    {                                                       //from Parser.java:86
      if (true) return it;                                  //from Parser.java:86
    }
    throw new java.lang.Error("Missing return statement in function");  //from Parser.java:87
  }

  public final void common_Neighbors(Neighbors it) throws ParseException  {  //from Parser.java:90
  }                                                         //from Parser.java:92

  public final Construct _Construct() throws ParseException  {  //from Parser.java:94
    Construct it = null;                                    //from Parser.java:95
    Any_vertex_list _c_ns;                                  //from Parser.java:96
    it = new Construct();                                   //from Parser.java:97
    jj_consume_token(2);                                    //from Parser.java:98
    _c_ns = _Any_vertex_list();                             //from Parser.java:99
    it.set_c_ns(_c_ns);                                     //from Parser.java:100
    common_Neighbors(it);                                   //from Parser.java:101
    {                                                       //from Parser.java:102
      if (true) return it;                                  //from Parser.java:102
    }
    throw new java.lang.Error("Missing return statement in function");  //from Parser.java:103
  }

  public final Alternat _Alternat() throws ParseException  {  //from Parser.java:106
    Alternat it = null;                                     //from Parser.java:107
    Vertex _first;                                          //from Parser.java:108
    Vertex _second;                                         //from Parser.java:109
    it = new Alternat();                                    //from Parser.java:110
    jj_consume_token(3);                                    //from Parser.java:111
    _first = _Vertex();                                     //from Parser.java:112
    it.set_first(_first);                                   //from Parser.java:113
    jj_consume_token(4);                                    //from Parser.java:114
    _second = _Vertex();                                    //from Parser.java:115
    it.set_second(_second);                                 //from Parser.java:116
    common_Neighbors(it);                                   //from Parser.java:117
    {                                                       //from Parser.java:118
      if (true) return it;                                  //from Parser.java:118
    }
    throw new java.lang.Error("Missing return statement in function");  //from Parser.java:119
  }

  public final Any_vertex _Any_vertex() throws ParseException  {  //from Parser.java:122
    Any_vertex it = null;                                   //from Parser.java:123
    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {           //from Parser.java:124
      case 5:                                               //from Parser.java:125
        it = _Labeled_vertex();                             //from Parser.java:126
        break;                                              //from Parser.java:127
      case ParserConstants.STRING_LITERAL:                  //from Parser.java:128
        it = _Syntax_vertex();                              //from Parser.java:129
        break;                                              //from Parser.java:130
      default: 
        jj_la1[1] = jj_gen;                                 //from Parser.java:132
        jj_consume_token(-1);                               //from Parser.java:133
        throw new ParseException();                         //from Parser.java:134
    }
    {                                                       //from Parser.java:136
      if (true) return it;                                  //from Parser.java:136
    }
    throw new java.lang.Error("Missing return statement in function");  //from Parser.java:137
  }

  public final void common_Any_vertex(Any_vertex it) throws ParseException  {  //from Parser.java:140
  }                                                         //from Parser.java:142

  public final Syntax_vertex _Syntax_vertex() throws ParseException  {  //from Parser.java:144
    Syntax_vertex it = null;                                //from Parser.java:145
    java.lang.String _string;                               //from Parser.java:146
    it = new Syntax_vertex();                               //from Parser.java:147
    _string = _String();                                    //from Parser.java:148
    it.set_string(_string);                                 //from Parser.java:149
    common_Any_vertex(it);                                  //from Parser.java:150
    {                                                       //from Parser.java:151
      if (true) return it;                                  //from Parser.java:151
    }
    throw new java.lang.Error("Missing return statement in function");  //from Parser.java:152
  }

  public final Labeled_vertex _Labeled_vertex() throws ParseException  {  //from Parser.java:155
    Labeled_vertex it = null;                               //from Parser.java:156
    edu.neu.ccs.demeter.Ident _label_name;                  //from Parser.java:157
    Vertex _class_name;                                     //from Parser.java:158
    it = new Labeled_vertex();                              //from Parser.java:159
    jj_consume_token(5);                                    //from Parser.java:160
    _label_name = _Ident();                                 //from Parser.java:161
    it.set_label_name(_label_name);                         //from Parser.java:162
    jj_consume_token(6);                                    //from Parser.java:163
    _class_name = _Vertex();                                //from Parser.java:164
    it.set_class_name(_class_name);                         //from Parser.java:165
    common_Any_vertex(it);                                  //from Parser.java:166
    {                                                       //from Parser.java:167
      if (true) return it;                                  //from Parser.java:167
    }
    throw new java.lang.Error("Missing return statement in function");  //from Parser.java:168
  }

  public final Adj_list _Adj_list() throws ParseException  {  //from Parser.java:171
    Adj_list it = null;                                     //from Parser.java:172
    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {           //from Parser.java:173
      case ParserConstants.IDENTIFIER:                      //from Parser.java:174
        it = _Cd_graph();                                   //from Parser.java:175
        break;                                              //from Parser.java:176
      default: 
        jj_la1[2] = jj_gen;                                 //from Parser.java:178
        it = _Empty_cd_graph();                             //from Parser.java:179
    }
    {                                                       //from Parser.java:181
      if (true) return it;                                  //from Parser.java:181
    }
    throw new java.lang.Error("Missing return statement in function");  //from Parser.java:182
  }

  public final void common_Adj_list(Adj_list it) throws ParseException  {  //from Parser.java:185
  }                                                         //from Parser.java:187

  public final Any_vertex_list _Any_vertex_list() throws ParseException  {  //from Parser.java:189
    Any_vertex_list it = null;                              //from Parser.java:190
    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {           //from Parser.java:191
      case 5:                                               //from Parser.java:192
      case ParserConstants.STRING_LITERAL:                  //from Parser.java:193
        it = _Nany_vertex_list();                           //from Parser.java:194
        break;                                              //from Parser.java:195
      default: 
        jj_la1[3] = jj_gen;                                 //from Parser.java:197
        it = _Empty();                                      //from Parser.java:198
    }
    {                                                       //from Parser.java:200
      if (true) return it;                                  //from Parser.java:200
    }
    throw new java.lang.Error("Missing return statement in function");  //from Parser.java:201
  }

  public final void common_Any_vertex_list(Any_vertex_list it) throws ParseException  {  //from Parser.java:204
  }                                                         //from Parser.java:206

  public final Nany_vertex_list _Nany_vertex_list() throws ParseException  {  //from Parser.java:208
    Nany_vertex_list it = null;                             //from Parser.java:209
    Any_vertex _first;                                      //from Parser.java:210
    Any_vertex_list _rest;                                  //from Parser.java:211
    it = new Nany_vertex_list();                            //from Parser.java:212
    _first = _Any_vertex();                                 //from Parser.java:213
    it.set_first(_first);                                   //from Parser.java:214
    _rest = _Any_vertex_list();                             //from Parser.java:215
    it.set_rest(_rest);                                     //from Parser.java:216
    common_Any_vertex_list(it);                             //from Parser.java:217
    {                                                       //from Parser.java:218
      if (true) return it;                                  //from Parser.java:218
    }
    throw new java.lang.Error("Missing return statement in function");  //from Parser.java:219
  }

  public final Empty _Empty() throws ParseException  {      //from Parser.java:222
    Empty it = null;                                        //from Parser.java:223
    it = new Empty();                                       //from Parser.java:224
    common_Any_vertex_list(it);                             //from Parser.java:225
    {                                                       //from Parser.java:226
      if (true) return it;                                  //from Parser.java:226
    }
    throw new java.lang.Error("Missing return statement in function");  //from Parser.java:227
  }

  public final Empty_cd_graph _Empty_cd_graph() throws ParseException  {  //from Parser.java:230
    Empty_cd_graph it = null;                               //from Parser.java:231
    it = new Empty_cd_graph();                              //from Parser.java:232
    common_Adj_list(it);                                    //from Parser.java:233
    {                                                       //from Parser.java:234
      if (true) return it;                                  //from Parser.java:234
    }
    throw new java.lang.Error("Missing return statement in function");  //from Parser.java:235
  }

  public final Vertex _Vertex() throws ParseException  {    //from Parser.java:238
    Vertex it = null;                                       //from Parser.java:239
    edu.neu.ccs.demeter.Ident _name;                        //from Parser.java:240
    it = new Vertex();                                      //from Parser.java:241
    _name = _Ident();                                       //from Parser.java:242
    it.set_name(_name);                                     //from Parser.java:243
    {                                                       //from Parser.java:244
      if (true) return it;                                  //from Parser.java:244
    }
    throw new java.lang.Error("Missing return statement in function");  //from Parser.java:245
  }

  public final CountingVisitor _CountingVisitor() throws ParseException  {  //from Parser.java:248
    CountingVisitor it = null;                              //from Parser.java:249
    int _total;                                             //from Parser.java:250
    it = new CountingVisitor();                             //from Parser.java:251
    _total = _int();                                        //from Parser.java:252
    it.set_total(_total);                                   //from Parser.java:253
    {                                                       //from Parser.java:254
      if (true) return it;                                  //from Parser.java:254
    }
    throw new java.lang.Error("Missing return statement in function");  //from Parser.java:255
  }

  public final Main _Main() throws ParseException  {        //from Parser.java:258
    Main it = null;                                         //from Parser.java:259
    it = new Main();                                        //from Parser.java:260
    {                                                       //from Parser.java:261
      if (true) return it;                                  //from Parser.java:261
    }
    throw new java.lang.Error("Missing return statement in function");  //from Parser.java:262
  }

  public final boolean _boolean() throws ParseException  {  //from Parser.java:265
    Token t;                                                //from Parser.java:266
    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {           //from Parser.java:267
      case ParserConstants.TRUE:                            //from Parser.java:268
        t = jj_consume_token(ParserConstants.TRUE);         //from Parser.java:269
        {                                                   //from Parser.java:270
          if (true) return true;                            //from Parser.java:270
        }
        break;                                              //from Parser.java:271
      case ParserConstants.FALSE:                           //from Parser.java:272
        t = jj_consume_token(ParserConstants.FALSE);        //from Parser.java:273
        {                                                   //from Parser.java:274
          if (true) return false;                           //from Parser.java:274
        }
        break;                                              //from Parser.java:275
      default: 
        jj_la1[4] = jj_gen;                                 //from Parser.java:277
        jj_consume_token(-1);                               //from Parser.java:278
        throw new ParseException();                         //from Parser.java:279
    }
    throw new java.lang.Error("Missing return statement in function");  //from Parser.java:281
  }

  public final char _char() throws ParseException  {        //from Parser.java:284
    Token t;                                                //from Parser.java:285
    t = jj_consume_token(ParserConstants.CHARACTER_LITERAL);  //from Parser.java:286
    java.lang.String s = t.image;                           //from Parser.java:287
    {                                                       //from Parser.java:288
      if (true) return unescapifyChar(s.substring(1, s.length() - 1));  //from Parser.java:288
    }
    throw new java.lang.Error("Missing return statement in function");  //from Parser.java:289
  }

  public final byte _byte() throws ParseException  {        //from Parser.java:292
    int i;                                                  //from Parser.java:293
    i = _int();                                             //from Parser.java:294
    {                                                       //from Parser.java:295
      if (true) return (byte)i;                             //from Parser.java:295
    }
    throw new java.lang.Error("Missing return statement in function");  //from Parser.java:296
  }

  public final short _short() throws ParseException  {      //from Parser.java:299
    int i;                                                  //from Parser.java:300
    i = _int();                                             //from Parser.java:301
    {                                                       //from Parser.java:302
      if (true) return (short)i;                            //from Parser.java:302
    }
    throw new java.lang.Error("Missing return statement in function");  //from Parser.java:303
  }

  public final int _int() throws ParseException  {          //from Parser.java:306
    java.lang.Number num;                                   //from Parser.java:307
    num = _Number();                                        //from Parser.java:308
    {                                                       //from Parser.java:309
      if (true) return num.intValue();                      //from Parser.java:309
    }
    throw new java.lang.Error("Missing return statement in function");  //from Parser.java:310
  }

  public final long _long() throws ParseException  {        //from Parser.java:313
    java.lang.Number num;                                   //from Parser.java:314
    num = _Number();                                        //from Parser.java:315
    {                                                       //from Parser.java:316
      if (true) return num.longValue();                     //from Parser.java:316
    }
    throw new java.lang.Error("Missing return statement in function");  //from Parser.java:317
  }

  public final float _float() throws ParseException  {      //from Parser.java:320
    java.lang.Number num;                                   //from Parser.java:321
    num = _Number();                                        //from Parser.java:322
    {                                                       //from Parser.java:323
      if (true) return num.floatValue();                    //from Parser.java:323
    }
    throw new java.lang.Error("Missing return statement in function");  //from Parser.java:324
  }

  public final double _double() throws ParseException  {    //from Parser.java:327
    java.lang.Number num;                                   //from Parser.java:328
    num = _Number();                                        //from Parser.java:329
    {                                                       //from Parser.java:330
      if (true) return num.doubleValue();                   //from Parser.java:330
    }
    throw new java.lang.Error("Missing return statement in function");  //from Parser.java:331
  }

  public final java.lang.Boolean _Boolean() throws ParseException  {  //from Parser.java:334
    Token t;                                                //from Parser.java:335
    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {           //from Parser.java:336
      case ParserConstants.TRUE:                            //from Parser.java:337
        t = jj_consume_token(ParserConstants.TRUE);         //from Parser.java:338
        {                                                   //from Parser.java:339
          if (true) return java.lang.Boolean.TRUE;          //from Parser.java:339
        }
        break;                                              //from Parser.java:340
      case ParserConstants.FALSE:                           //from Parser.java:341
        t = jj_consume_token(ParserConstants.FALSE);        //from Parser.java:342
        {                                                   //from Parser.java:343
          if (true) return java.lang.Boolean.FALSE;         //from Parser.java:343
        }
        break;                                              //from Parser.java:344
      default: 
        jj_la1[5] = jj_gen;                                 //from Parser.java:346
        jj_consume_token(-1);                               //from Parser.java:347
        throw new ParseException();                         //from Parser.java:348
    }
    throw new java.lang.Error("Missing return statement in function");  //from Parser.java:350
  }

  public final java.lang.Character _Character() throws ParseException  {  //from Parser.java:353
    char c;                                                 //from Parser.java:354
    c = _char();                                            //from Parser.java:355
    {                                                       //from Parser.java:356
      if (true) return new java.lang.Character(c);          //from Parser.java:356
    }
    throw new java.lang.Error("Missing return statement in function");  //from Parser.java:357
  }

  public final java.lang.Integer _Integer() throws ParseException  {  //from Parser.java:360
    int i;                                                  //from Parser.java:361
    i = _int();                                             //from Parser.java:362
    {                                                       //from Parser.java:363
      if (true) return new java.lang.Integer(i);            //from Parser.java:363
    }
    throw new java.lang.Error("Missing return statement in function");  //from Parser.java:364
  }

  public final java.lang.Long _Long() throws ParseException  {  //from Parser.java:367
    long l;                                                 //from Parser.java:368
    l = _long();                                            //from Parser.java:369
    {                                                       //from Parser.java:370
      if (true) return new java.lang.Long(l);               //from Parser.java:370
    }
    throw new java.lang.Error("Missing return statement in function");  //from Parser.java:371
  }

  public final java.lang.Float _Float() throws ParseException  {  //from Parser.java:374
    float f;                                                //from Parser.java:375
    f = _float();                                           //from Parser.java:376
    {                                                       //from Parser.java:377
      if (true) return new java.lang.Float(f);              //from Parser.java:377
    }
    throw new java.lang.Error("Missing return statement in function");  //from Parser.java:378
  }

  public final java.lang.Double _Double() throws ParseException  {  //from Parser.java:381
    double d;                                               //from Parser.java:382
    d = _double();                                          //from Parser.java:383
    {                                                       //from Parser.java:384
      if (true) return new java.lang.Double(d);             //from Parser.java:384
    }
    throw new java.lang.Error("Missing return statement in function");  //from Parser.java:385
  }

  public final java.lang.Number _Number() throws ParseException  {  //from Parser.java:388
    Token t;                                                //from Parser.java:389
    java.lang.String s = null;                              //from Parser.java:390
    int radix = 0;                                          //from Parser.java:391
    java.lang.Number num = null;                            //from Parser.java:392
    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {           //from Parser.java:393
      case ParserConstants.DECIMAL_LITERAL:                 //from Parser.java:394
      case ParserConstants.HEX_LITERAL:                     //from Parser.java:395
      case ParserConstants.OCTAL_LITERAL:                   //from Parser.java:396
        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {       //from Parser.java:397
          case ParserConstants.DECIMAL_LITERAL:             //from Parser.java:398
            t = jj_consume_token(ParserConstants.DECIMAL_LITERAL);  //from Parser.java:399
            s = t.image;                                    //from Parser.java:400
            radix = 10;                                     //from Parser.java:401
            break;                                          //from Parser.java:402
          case ParserConstants.HEX_LITERAL:                 //from Parser.java:403
            t = jj_consume_token(ParserConstants.HEX_LITERAL);  //from Parser.java:404
            s = t.image.substring(2, t.image.length());     //from Parser.java:406
            radix = 16;                                     //from Parser.java:407
            break;                                          //from Parser.java:408
          case ParserConstants.OCTAL_LITERAL:               //from Parser.java:409
            t = jj_consume_token(ParserConstants.OCTAL_LITERAL);  //from Parser.java:410
            s = t.image;                                    //from Parser.java:411
            radix = 8;                                      //from Parser.java:412
            break;                                          //from Parser.java:413
          default: 
            jj_la1[6] = jj_gen;                             //from Parser.java:415
            jj_consume_token(-1);                           //from Parser.java:416
            throw new ParseException();                     //from Parser.java:417
        }
        switch (s.charAt(s.length() - 1)) {                 //from Parser.java:419
          case 'l':                                         //from Parser.java:420
          case 'L':                                         //from Parser.java:420
            num = java.lang.Long.valueOf(s.substring(0, s.length() - 1), radix);  //from Parser.java:421
            break;                                          //from Parser.java:422
          default: 
            num = java.lang.Integer.valueOf(s, radix);      //from Parser.java:424
            break;                                          //from Parser.java:425
        }
        break;                                              //from Parser.java:427
      case ParserConstants.FLOATING_POINT_LITERAL:          //from Parser.java:428
        t = jj_consume_token(ParserConstants.FLOATING_POINT_LITERAL);  //from Parser.java:429
        s = t.image;                                        //from Parser.java:430
        switch (s.charAt(s.length() - 1)) {                 //from Parser.java:431
          case 'd':                                         //from Parser.java:432
          case 'D':                                         //from Parser.java:432
            num = java.lang.Double.valueOf(s.substring(0, s.length() - 1));  //from Parser.java:433
            break;                                          //from Parser.java:434
          case 'f':                                         //from Parser.java:435
          case 'F':                                         //from Parser.java:435
            num = java.lang.Float.valueOf(s.substring(0, s.length() - 1));  //from Parser.java:436
            break;                                          //from Parser.java:437
          default: 
            num = java.lang.Float.valueOf(s);               //from Parser.java:439
            break;                                          //from Parser.java:440
        }
        break;                                              //from Parser.java:442
      default: 
        jj_la1[7] = jj_gen;                                 //from Parser.java:444
        jj_consume_token(-1);                               //from Parser.java:445
        throw new ParseException();                         //from Parser.java:446
    }
    {                                                       //from Parser.java:448
      if (true) return num;                                 //from Parser.java:448
    }
    throw new java.lang.Error("Missing return statement in function");  //from Parser.java:449
  }

  public final java.lang.String _String() throws ParseException  {  //from Parser.java:452
    Token t;                                                //from Parser.java:453
    t = jj_consume_token(ParserConstants.STRING_LITERAL);   //from Parser.java:454
    java.lang.String s = t.image;                           //from Parser.java:455
    {                                                       //from Parser.java:456
      if (true) return unescapify(s.substring(1, s.length() - 1));  //from Parser.java:456
    }
    throw new java.lang.Error("Missing return statement in function");  //from Parser.java:457
  }

  public final java.lang.StringBuffer _StringBuffer() throws ParseException  {  //from Parser.java:460
    java.lang.String s;                                     //from Parser.java:461
    s = _String();                                          //from Parser.java:462
    {                                                       //from Parser.java:463
      if (true) return new java.lang.StringBuffer(s);       //from Parser.java:463
    }
    throw new java.lang.Error("Missing return statement in function");  //from Parser.java:464
  }

  public final edu.neu.ccs.demeter.Ident _Ident() throws ParseException  {  //from Parser.java:467
    Token t;                                                //from Parser.java:468
    t = jj_consume_token(ParserConstants.IDENTIFIER);       //from Parser.java:469
    {                                                       //from Parser.java:470
      if (true) return new edu.neu.ccs.demeter.Ident(t.image);  //from Parser.java:470
    }
    throw new java.lang.Error("Missing return statement in function");  //from Parser.java:471
  }

  public final edu.neu.ccs.demeter.Text _Text() throws ParseException  {  //from Parser.java:474
    Token t;                                                //from Parser.java:475
    t = jj_consume_token(ParserConstants.TEXT_LITERAL);     //from Parser.java:476
    java.lang.String s = t.image;                           //from Parser.java:477
    {                                                       //from Parser.java:478
      if (true) return new edu.neu.ccs.demeter.Text(s.substring(2, s.length() - 2));  //from Parser.java:478
    }
    throw new java.lang.Error("Missing return statement in function");  //from Parser.java:479
  }

  public final edu.neu.ccs.demeter.Line _Line() throws ParseException  {  //from Parser.java:482
    Token t;                                                //from Parser.java:483
    token_source.SwitchTo(1);                               //from Parser.java:484
    t = jj_consume_token(ParserConstants.LINE);             //from Parser.java:485
    {                                                       //from Parser.java:486
      if (true) return new edu.neu.ccs.demeter.Line(t.image);  //from Parser.java:486
    }
    throw new java.lang.Error("Missing return statement in function");  //from Parser.java:487
  }

  public final edu.neu.ccs.demeter.Word _Word() throws ParseException  {  //from Parser.java:490
    Token t;                                                //from Parser.java:491
    token_source.SwitchTo(2);                               //from Parser.java:492
    t = jj_consume_token(ParserConstants.WORD);             //from Parser.java:493
    {                                                       //from Parser.java:494
      if (true) return new edu.neu.ccs.demeter.Word(t.image);  //from Parser.java:494
    }
    throw new java.lang.Error("Missing return statement in function");  //from Parser.java:495
  }

  public ParserTokenManager token_source;                   //from Parser.java:498
  ASCII_UCodeESC_CharStream jj_input_stream;                //from Parser.java:499
  public Token token;                                       //from Parser.java:500
  public Token jj_nt;                                       //from Parser.java:500
  private int jj_ntk;                                       //from Parser.java:501
  private int jj_gen;                                       //from Parser.java:502
  private final int[] jj_la1 = new int[8];                  //from Parser.java:503
  private final int[] jj_la1_0 = {12, 524320, 8388608, 524320, 6291456, 6291456, 57344, 122880};  //from Parser.java:504
  public Parser(java.io.InputStream stream)  {              //from Parser.java:506
    jj_input_stream = new ASCII_UCodeESC_CharStream(stream, 1, 1);  //from Parser.java:507
    token_source = new ParserTokenManager(jj_input_stream);  //from Parser.java:508
    token = new Token();                                    //from Parser.java:509
    jj_ntk = -1;                                            //from Parser.java:510
    jj_gen = 0;                                             //from Parser.java:511
    for (int i = 0; i < 8; i++) jj_la1[i] = -1;             //from Parser.java:512
  }

  public void ReInit(java.io.InputStream stream)  {         //from Parser.java:515
    jj_input_stream.ReInit(stream, 1, 1);                   //from Parser.java:516
    token_source.ReInit(jj_input_stream);                   //from Parser.java:517
    token = new Token();                                    //from Parser.java:518
    jj_ntk = -1;                                            //from Parser.java:519
    jj_gen = 0;                                             //from Parser.java:520
    for (int i = 0; i < 8; i++) jj_la1[i] = -1;             //from Parser.java:521
  }

  public Parser(java.io.Reader stream)  {                   //from Parser.java:524
    jj_input_stream = new ASCII_UCodeESC_CharStream(stream, 1, 1);  //from Parser.java:525
    token_source = new ParserTokenManager(jj_input_stream);  //from Parser.java:526
    token = new Token();                                    //from Parser.java:527
    jj_ntk = -1;                                            //from Parser.java:528
    jj_gen = 0;                                             //from Parser.java:529
    for (int i = 0; i < 8; i++) jj_la1[i] = -1;             //from Parser.java:530
  }

  public void ReInit(java.io.Reader stream)  {              //from Parser.java:533
    jj_input_stream.ReInit(stream, 1, 1);                   //from Parser.java:534
    token_source.ReInit(jj_input_stream);                   //from Parser.java:535
    token = new Token();                                    //from Parser.java:536
    jj_ntk = -1;                                            //from Parser.java:537
    jj_gen = 0;                                             //from Parser.java:538
    for (int i = 0; i < 8; i++) jj_la1[i] = -1;             //from Parser.java:539
  }

  public Parser(ParserTokenManager tm)  {                   //from Parser.java:542
    token_source = tm;                                      //from Parser.java:543
    token = new Token();                                    //from Parser.java:544
    jj_ntk = -1;                                            //from Parser.java:545
    jj_gen = 0;                                             //from Parser.java:546
    for (int i = 0; i < 8; i++) jj_la1[i] = -1;             //from Parser.java:547
  }

  public void ReInit(ParserTokenManager tm)  {              //from Parser.java:550
    token_source = tm;                                      //from Parser.java:551
    token = new Token();                                    //from Parser.java:552
    jj_ntk = -1;                                            //from Parser.java:553
    jj_gen = 0;                                             //from Parser.java:554
    for (int i = 0; i < 8; i++) jj_la1[i] = -1;             //from Parser.java:555
  }

  private final Token jj_consume_token(int kind) throws ParseException  {  //from Parser.java:558
    Token oldToken;                                         //from Parser.java:559
    if ((oldToken = token).next != null) token = token.next;  //from Parser.java:560
    else token = token.next = token_source.getNextToken();  //from Parser.java:561
    jj_ntk = -1;                                            //from Parser.java:562
    if (token.kind == kind)  {                              //from Parser.java:563
      jj_gen++;                                             //from Parser.java:564
      return token;                                         //from Parser.java:565
    }
    token = oldToken;                                       //from Parser.java:567
    jj_kind = kind;                                         //from Parser.java:568
    throw generateParseException();                         //from Parser.java:569
  }

  public final Token getNextToken()  {                      //from Parser.java:572
    if (token.next != null) token = token.next;             //from Parser.java:573
    else token = token.next = token_source.getNextToken();  //from Parser.java:574
    jj_ntk = -1;                                            //from Parser.java:575
    jj_gen++;                                               //from Parser.java:576
    return token;                                           //from Parser.java:577
  }

  public final Token getToken(int index)  {                 //from Parser.java:580
    Token t = token;                                        //from Parser.java:581
    for (int i = 0; i < index; i++)  {                      //from Parser.java:582
      if (t.next != null) t = t.next;                       //from Parser.java:583
      else t = t.next = token_source.getNextToken();        //from Parser.java:584
    }
    return t;                                               //from Parser.java:586
  }

  private final int jj_ntk()  {                             //from Parser.java:589
    if ((jj_nt = token.next) == null) return (jj_ntk = (token.next = token_source.getNextToken()).kind);  //from Parser.java:591
    else return (jj_ntk = jj_nt.kind);                      //from Parser.java:593
  }

  private java.util.Vector jj_expentries = new java.util.Vector();  //from Parser.java:596
  private int[] jj_expentry;                                //from Parser.java:597
  private int jj_kind = -1;                                 //from Parser.java:598
  public final ParseException generateParseException()  {   //from Parser.java:600
    jj_expentries.removeAllElements();                      //from Parser.java:601
    boolean[] la1tokens = new boolean[32];                  //from Parser.java:602
    for (int i = 0; i < 32; i++)  {                         //from Parser.java:603
      la1tokens[i] = false;                                 //from Parser.java:604
    }
    if (jj_kind >= 0)  {                                    //from Parser.java:606
      la1tokens[jj_kind] = true;                            //from Parser.java:607
      jj_kind = -1;                                         //from Parser.java:608
    }
    for (int i = 0; i < 8; i++)  {                          //from Parser.java:610
      if (jj_la1[i] == jj_gen)  {                           //from Parser.java:611
        for (int j = 0; j < 32; j++)  {                     //from Parser.java:612
          if ((jj_la1_0[i] & (1 << j)) != 0)  {             //from Parser.java:613
            la1tokens[j] = true;                            //from Parser.java:614
          }
        }
      }
    }
    for (int i = 0; i < 32; i++)  {                         //from Parser.java:619
      if (la1tokens[i])  {                                  //from Parser.java:620
        jj_expentry = new int[1];                           //from Parser.java:621
        jj_expentry[0] = i;                                 //from Parser.java:622
        jj_expentries.addElement(jj_expentry);              //from Parser.java:623
      }
    }
    int[][] exptokseq = new int[jj_expentries.size()][];    //from Parser.java:626
    for (int i = 0; i < jj_expentries.size(); i++)  {       //from Parser.java:627
      exptokseq[i] = (int[])jj_expentries.elementAt(i);     //from Parser.java:628
    }
    return new ParseException(token, exptokseq, ParserConstants.tokenImage);  //from Parser.java:630
  }

  public final void enable_tracing()  {                     //from Parser.java:633
  }                                                         //from Parser.java:634

  public final void disable_tracing()  {                    //from Parser.java:636
  }                                                         //from Parser.java:637

}