public virtual void OutStart(Start node) { DefaultOut(node); }
public virtual void InStart(Start node) { DefaultIn(node); }
public override void CaseStart(Start node) { InStart(node); node.GetEOF().Apply(this); node.GetPSourceFile().Apply(this); OutStart(node); }
public virtual void CaseStart(Start node) { DefaultCase(node); }
public Start Parse() { Push(0, null); IList ign = null; while(true) { while(Index(lexer.Peek()) == -1) { if(ign == null) { ign = new TypedList(NodeCast.Instance); } ign.Add(lexer.Next()); } if(ign != null) { ignoredTokens.SetIn(lexer.Peek(), ign); ign = null; } last_pos = lexer.Peek().Pos; last_line = lexer.Peek().Line; last_token = lexer.Peek(); int index = Index(lexer.Peek()); action[0] = actionTable[State()][0][1]; action[1] = actionTable[State()][0][2]; int low = 1; int high = actionTable[State()].Length - 1; while(low <= high) { int middle = (low + high) / 2; if(index < actionTable[State()][middle][0]) { high = middle - 1; } else if(index > actionTable[State()][middle][0]) { low = middle + 1; } else { action[0] = actionTable[State()][middle][1]; action[1] = actionTable[State()][middle][2]; break; } } switch(action[0]) { case SHIFT: { ArrayList list = new ArrayList(); list.Add(lexer.Next()); Push(action[1], list); last_shift = action[1]; } break; case REDUCE: switch(action[1]) { case 0: { ArrayList list = New0(); Push(GoTo(0), list); } break; case 1: { ArrayList list = New1(); Push(GoTo(0), list); } break; case 2: { ArrayList list = New2(); Push(GoTo(0), list); } break; case 3: { ArrayList list = New3(); Push(GoTo(0), list); } break; case 4: { ArrayList list = New4(); Push(GoTo(0), list); } break; case 5: { ArrayList list = New5(); Push(GoTo(0), list); } break; case 6: { ArrayList list = New6(); Push(GoTo(0), list); } break; case 7: { ArrayList list = New7(); Push(GoTo(0), list); } break; case 8: { ArrayList list = New8(); Push(GoTo(1), list); } break; case 9: { ArrayList list = New9(); Push(GoTo(2), list); } break; case 10: { ArrayList list = New10(); Push(GoTo(2), list); } break; case 11: { ArrayList list = New11(); Push(GoTo(3), list); } break; case 12: { ArrayList list = New12(); Push(GoTo(3), list); } break; case 13: { ArrayList list = New13(); Push(GoTo(3), list); } break; case 14: { ArrayList list = New14(); Push(GoTo(3), list); } break; case 15: { ArrayList list = New15(); Push(GoTo(3), list); } break; case 16: { ArrayList list = New16(); Push(GoTo(3), list); } break; case 17: { ArrayList list = New17(); Push(GoTo(3), list); } break; case 18: { ArrayList list = New18(); Push(GoTo(3), list); } break; case 19: { ArrayList list = New19(); Push(GoTo(3), list); } break; case 20: { ArrayList list = New20(); Push(GoTo(3), list); } break; case 21: { ArrayList list = New21(); Push(GoTo(3), list); } break; case 22: { ArrayList list = New22(); Push(GoTo(3), list); } break; case 23: { ArrayList list = New23(); Push(GoTo(3), list); } break; case 24: { ArrayList list = New24(); Push(GoTo(3), list); } break; case 25: { ArrayList list = New25(); Push(GoTo(4), list); } break; case 26: { ArrayList list = New26(); Push(GoTo(4), list); } break; case 27: { ArrayList list = New27(); Push(GoTo(4), list); } break; case 28: { ArrayList list = New28(); Push(GoTo(4), list); } break; case 29: { ArrayList list = New29(); Push(GoTo(5), list); } break; case 30: { ArrayList list = New30(); Push(GoTo(5), list); } break; case 31: { ArrayList list = New31(); Push(GoTo(6), list); } break; case 32: { ArrayList list = New32(); Push(GoTo(6), list); } break; case 33: { ArrayList list = New33(); Push(GoTo(7), list); } break; case 34: { ArrayList list = New34(); Push(GoTo(8), list); } break; case 35: { ArrayList list = New35(); Push(GoTo(8), list); } break; case 36: { ArrayList list = New36(); Push(GoTo(8), list); } break; case 37: { ArrayList list = New37(); Push(GoTo(8), list); } break; case 38: { ArrayList list = New38(); Push(GoTo(9), list); } break; case 39: { ArrayList list = New39(); Push(GoTo(9), list); } break; case 40: { ArrayList list = New40(); Push(GoTo(9), list); } break; case 41: { ArrayList list = New41(); Push(GoTo(9), list); } break; case 42: { ArrayList list = New42(); Push(GoTo(9), list); } break; case 43: { ArrayList list = New43(); Push(GoTo(9), list); } break; case 44: { ArrayList list = New44(); Push(GoTo(9), list); } break; case 45: { ArrayList list = New45(); Push(GoTo(9), list); } break; case 46: { ArrayList list = New46(); Push(GoTo(9), list); } break; case 47: { ArrayList list = New47(); Push(GoTo(9), list); } break; case 48: { ArrayList list = New48(); Push(GoTo(9), list); } break; case 49: { ArrayList list = New49(); Push(GoTo(9), list); } break; case 50: { ArrayList list = New50(); Push(GoTo(9), list); } break; case 51: { ArrayList list = New51(); Push(GoTo(9), list); } break; case 52: { ArrayList list = New52(); Push(GoTo(9), list); } break; case 53: { ArrayList list = New53(); Push(GoTo(9), list); } break; case 54: { ArrayList list = New54(); Push(GoTo(10), list); } break; case 55: { ArrayList list = New55(); Push(GoTo(10), list); } break; case 56: { ArrayList list = New56(); Push(GoTo(11), list); } break; case 57: { ArrayList list = New57(); Push(GoTo(11), list); } break; case 58: { ArrayList list = New58(); Push(GoTo(11), list); } break; case 59: { ArrayList list = New59(); Push(GoTo(11), list); } break; case 60: { ArrayList list = New60(); Push(GoTo(11), list); } break; case 61: { ArrayList list = New61(); Push(GoTo(11), list); } break; case 62: { ArrayList list = New62(); Push(GoTo(11), list); } break; case 63: { ArrayList list = New63(); Push(GoTo(11), list); } break; case 64: { ArrayList list = New64(); Push(GoTo(11), list); } break; case 65: { ArrayList list = New65(); Push(GoTo(11), list); } break; case 66: { ArrayList list = New66(); Push(GoTo(11), list); } break; case 67: { ArrayList list = New67(); Push(GoTo(11), list); } break; case 68: { ArrayList list = New68(); Push(GoTo(11), list); } break; case 69: { ArrayList list = New69(); Push(GoTo(11), list); } break; case 70: { ArrayList list = New70(); Push(GoTo(12), list); } break; case 71: { ArrayList list = New71(); Push(GoTo(13), list); } break; case 72: { ArrayList list = New72(); Push(GoTo(14), list); } break; case 73: { ArrayList list = New73(); Push(GoTo(14), list); } break; case 74: { ArrayList list = New74(); Push(GoTo(14), list); } break; case 75: { ArrayList list = New75(); Push(GoTo(14), list); } break; case 76: { ArrayList list = New76(); Push(GoTo(15), list); } break; case 77: { ArrayList list = New77(); Push(GoTo(15), list); } break; case 78: { ArrayList list = New78(); Push(GoTo(15), list); } break; case 79: { ArrayList list = New79(); Push(GoTo(15), list); } break; case 80: { ArrayList list = New80(); Push(GoTo(15), list); } break; case 81: { ArrayList list = New81(); Push(GoTo(15), list); } break; case 82: { ArrayList list = New82(); Push(GoTo(15), list); } break; case 83: { ArrayList list = New83(); Push(GoTo(15), list); } break; case 84: { ArrayList list = New84(); Push(GoTo(16), list); } break; case 85: { ArrayList list = New85(); Push(GoTo(17), list); } break; case 86: { ArrayList list = New86(); Push(GoTo(18), list); } break; case 87: { ArrayList list = New87(); Push(GoTo(19), list); } break; case 88: { ArrayList list = New88(); Push(GoTo(20), list); } break; case 89: { ArrayList list = New89(); Push(GoTo(20), list); } break; case 90: { ArrayList list = New90(); Push(GoTo(21), list); } break; case 91: { ArrayList list = New91(); Push(GoTo(21), list); } break; case 92: { ArrayList list = New92(); Push(GoTo(22), list); } break; case 93: { ArrayList list = New93(); Push(GoTo(22), list); } break; case 94: { ArrayList list = New94(); Push(GoTo(22), list); } break; case 95: { ArrayList list = New95(); Push(GoTo(23), list); } break; case 96: { ArrayList list = New96(); Push(GoTo(23), list); } break; case 97: { ArrayList list = New97(); Push(GoTo(23), list); } break; case 98: { ArrayList list = New98(); Push(GoTo(23), list); } break; case 99: { ArrayList list = New99(); Push(GoTo(24), list); } break; case 100: { ArrayList list = New100(); Push(GoTo(25), list); } break; case 101: { ArrayList list = New101(); Push(GoTo(25), list); } break; case 102: { ArrayList list = New102(); Push(GoTo(25), list); } break; case 103: { ArrayList list = New103(); Push(GoTo(25), list); } break; case 104: { ArrayList list = New104(); Push(GoTo(25), list); } break; case 105: { ArrayList list = New105(); Push(GoTo(25), list); } break; case 106: { ArrayList list = New106(); Push(GoTo(25), list); } break; case 107: { ArrayList list = New107(); Push(GoTo(25), list); } break; case 108: { ArrayList list = New108(); Push(GoTo(26), list); } break; case 109: { ArrayList list = New109(); Push(GoTo(27), list); } break; case 110: { ArrayList list = New110(); Push(GoTo(27), list); } break; case 111: { ArrayList list = New111(); Push(GoTo(27), list); } break; case 112: { ArrayList list = New112(); Push(GoTo(27), list); } break; case 113: { ArrayList list = New113(); Push(GoTo(27), list); } break; case 114: { ArrayList list = New114(); Push(GoTo(27), list); } break; case 115: { ArrayList list = New115(); Push(GoTo(27), list); } break; case 116: { ArrayList list = New116(); Push(GoTo(27), list); } break; case 117: { ArrayList list = New117(); Push(GoTo(28), list); } break; case 118: { ArrayList list = New118(); Push(GoTo(28), list); } break; case 119: { ArrayList list = New119(); Push(GoTo(29), list); } break; case 120: { ArrayList list = New120(); Push(GoTo(29), list); } break; case 121: { ArrayList list = New121(); Push(GoTo(30), list); } break; case 122: { ArrayList list = New122(); Push(GoTo(30), list); } break; case 123: { ArrayList list = New123(); Push(GoTo(30), list); } break; case 124: { ArrayList list = New124(); Push(GoTo(30), list); } break; case 125: { ArrayList list = New125(); Push(GoTo(31), list); } break; case 126: { ArrayList list = New126(); Push(GoTo(31), list); } break; case 127: { ArrayList list = New127(); Push(GoTo(32), list); } break; case 128: { ArrayList list = New128(); Push(GoTo(32), list); } break; case 129: { ArrayList list = New129(); Push(GoTo(32), list); } break; case 130: { ArrayList list = New130(); Push(GoTo(32), list); } break; case 131: { ArrayList list = New131(); Push(GoTo(33), list); } break; case 132: { ArrayList list = New132(); Push(GoTo(34), list); } break; case 133: { ArrayList list = New133(); Push(GoTo(34), list); } break; case 134: { ArrayList list = New134(); Push(GoTo(35), list); } break; case 135: { ArrayList list = New135(); Push(GoTo(35), list); } break; case 136: { ArrayList list = New136(); Push(GoTo(36), list); } break; case 137: { ArrayList list = New137(); Push(GoTo(36), list); } break; case 138: { ArrayList list = New138(); Push(GoTo(36), list); } break; case 139: { ArrayList list = New139(); Push(GoTo(36), list); } break; case 140: { ArrayList list = New140(); Push(GoTo(36), list); } break; case 141: { ArrayList list = New141(); Push(GoTo(36), list); } break; case 142: { ArrayList list = New142(); Push(GoTo(36), list); } break; case 143: { ArrayList list = New143(); Push(GoTo(36), list); } break; case 144: { ArrayList list = New144(); Push(GoTo(36), list); } break; case 145: { ArrayList list = New145(); Push(GoTo(36), list); } break; case 146: { ArrayList list = New146(); Push(GoTo(36), list); } break; case 147: { ArrayList list = New147(); Push(GoTo(36), list); } break; case 148: { ArrayList list = New148(); Push(GoTo(37), list); } break; case 149: { ArrayList list = New149(); Push(GoTo(37), list); } break; case 150: { ArrayList list = New150(); Push(GoTo(37), list); } break; case 151: { ArrayList list = New151(); Push(GoTo(37), list); } break; case 152: { ArrayList list = New152(); Push(GoTo(37), list); } break; case 153: { ArrayList list = New153(); Push(GoTo(37), list); } break; case 154: { ArrayList list = New154(); Push(GoTo(37), list); } break; case 155: { ArrayList list = New155(); Push(GoTo(37), list); } break; case 156: { ArrayList list = New156(); Push(GoTo(38), list); } break; case 157: { ArrayList list = New157(); Push(GoTo(38), list); } break; case 158: { ArrayList list = New158(); Push(GoTo(38), list); } break; case 159: { ArrayList list = New159(); Push(GoTo(38), list); } break; case 160: { ArrayList list = New160(); Push(GoTo(39), list); } break; case 161: { ArrayList list = New161(); Push(GoTo(39), list); } break; case 162: { ArrayList list = New162(); Push(GoTo(39), list); } break; case 163: { ArrayList list = New163(); Push(GoTo(39), list); } break; case 164: { ArrayList list = New164(); Push(GoTo(39), list); } break; case 165: { ArrayList list = New165(); Push(GoTo(39), list); } break; case 166: { ArrayList list = New166(); Push(GoTo(39), list); } break; case 167: { ArrayList list = New167(); Push(GoTo(39), list); } break; case 168: { ArrayList list = New168(); Push(GoTo(39), list); } break; case 169: { ArrayList list = New169(); Push(GoTo(39), list); } break; case 170: { ArrayList list = New170(); Push(GoTo(39), list); } break; case 171: { ArrayList list = New171(); Push(GoTo(39), list); } break; case 172: { ArrayList list = New172(); Push(GoTo(39), list); } break; case 173: { ArrayList list = New173(); Push(GoTo(39), list); } break; case 174: { ArrayList list = New174(); Push(GoTo(39), list); } break; case 175: { ArrayList list = New175(); Push(GoTo(39), list); } break; case 176: { ArrayList list = New176(); Push(GoTo(39), list); } break; case 177: { ArrayList list = New177(); Push(GoTo(39), list); } break; case 178: { ArrayList list = New178(); Push(GoTo(39), list); } break; case 179: { ArrayList list = New179(); Push(GoTo(39), list); } break; case 180: { ArrayList list = New180(); Push(GoTo(39), list); } break; case 181: { ArrayList list = New181(); Push(GoTo(39), list); } break; case 182: { ArrayList list = New182(); Push(GoTo(39), list); } break; case 183: { ArrayList list = New183(); Push(GoTo(39), list); } break; case 184: { ArrayList list = New184(); Push(GoTo(39), list); } break; case 185: { ArrayList list = New185(); Push(GoTo(39), list); } break; case 186: { ArrayList list = New186(); Push(GoTo(39), list); } break; case 187: { ArrayList list = New187(); Push(GoTo(39), list); } break; case 188: { ArrayList list = New188(); Push(GoTo(39), list); } break; case 189: { ArrayList list = New189(); Push(GoTo(39), list); } break; case 190: { ArrayList list = New190(); Push(GoTo(39), list); } break; case 191: { ArrayList list = New191(); Push(GoTo(39), list); } break; case 192: { ArrayList list = New192(); Push(GoTo(39), list); } break; case 193: { ArrayList list = New193(); Push(GoTo(39), list); } break; case 194: { ArrayList list = New194(); Push(GoTo(39), list); } break; case 195: { ArrayList list = New195(); Push(GoTo(39), list); } break; case 196: { ArrayList list = New196(); Push(GoTo(39), list); } break; case 197: { ArrayList list = New197(); Push(GoTo(39), list); } break; case 198: { ArrayList list = New198(); Push(GoTo(39), list); } break; case 199: { ArrayList list = New199(); Push(GoTo(39), list); } break; case 200: { ArrayList list = New200(); Push(GoTo(39), list); } break; case 201: { ArrayList list = New201(); Push(GoTo(39), list); } break; case 202: { ArrayList list = New202(); Push(GoTo(39), list); } break; case 203: { ArrayList list = New203(); Push(GoTo(39), list); } break; case 204: { ArrayList list = New204(); Push(GoTo(39), list); } break; case 205: { ArrayList list = New205(); Push(GoTo(39), list); } break; case 206: { ArrayList list = New206(); Push(GoTo(39), list); } break; case 207: { ArrayList list = New207(); Push(GoTo(39), list); } break; case 208: { ArrayList list = New208(); Push(GoTo(39), list); } break; case 209: { ArrayList list = New209(); Push(GoTo(39), list); } break; case 210: { ArrayList list = New210(); Push(GoTo(39), list); } break; case 211: { ArrayList list = New211(); Push(GoTo(39), list); } break; case 212: { ArrayList list = New212(); Push(GoTo(39), list); } break; case 213: { ArrayList list = New213(); Push(GoTo(39), list); } break; case 214: { ArrayList list = New214(); Push(GoTo(39), list); } break; case 215: { ArrayList list = New215(); Push(GoTo(39), list); } break; case 216: { ArrayList list = New216(); Push(GoTo(39), list); } break; case 217: { ArrayList list = New217(); Push(GoTo(39), list); } break; case 218: { ArrayList list = New218(); Push(GoTo(39), list); } break; case 219: { ArrayList list = New219(); Push(GoTo(39), list); } break; case 220: { ArrayList list = New220(); Push(GoTo(39), list); } break; case 221: { ArrayList list = New221(); Push(GoTo(39), list); } break; case 222: { ArrayList list = New222(); Push(GoTo(39), list); } break; case 223: { ArrayList list = New223(); Push(GoTo(39), list); } break; case 224: { ArrayList list = New224(); Push(GoTo(40), list); } break; case 225: { ArrayList list = New225(); Push(GoTo(41), list); } break; case 226: { ArrayList list = New226(); Push(GoTo(42), list); } break; case 227: { ArrayList list = New227(); Push(GoTo(42), list); } break; case 228: { ArrayList list = New228(); Push(GoTo(43), list); } break; case 229: { ArrayList list = New229(); Push(GoTo(43), list); } break; case 230: { ArrayList list = New230(); Push(GoTo(43), list); } break; case 231: { ArrayList list = New231(); Push(GoTo(43), list); } break; case 232: { ArrayList list = New232(); Push(GoTo(43), list); } break; case 233: { ArrayList list = New233(); Push(GoTo(43), list); } break; case 234: { ArrayList list = New234(); Push(GoTo(43), list); } break; case 235: { ArrayList list = New235(); Push(GoTo(43), list); } break; case 236: { ArrayList list = New236(); Push(GoTo(44), list); } break; case 237: { ArrayList list = New237(); Push(GoTo(45), list); } break; case 238: { ArrayList list = New238(); Push(GoTo(45), list); } break; case 239: { ArrayList list = New239(); Push(GoTo(46), list); } break; case 240: { ArrayList list = New240(); Push(GoTo(46), list); } break; case 241: { ArrayList list = New241(); Push(GoTo(47), list); } break; case 242: { ArrayList list = New242(); Push(GoTo(47), list); } break; case 243: { ArrayList list = New243(); Push(GoTo(47), list); } break; case 244: { ArrayList list = New244(); Push(GoTo(47), list); } break; case 245: { ArrayList list = New245(); Push(GoTo(48), list); } break; case 246: { ArrayList list = New246(); Push(GoTo(49), list); } break; case 247: { ArrayList list = New247(); Push(GoTo(49), list); } break; case 248: { ArrayList list = New248(); Push(GoTo(50), list); } break; case 249: { ArrayList list = New249(); Push(GoTo(50), list); } break; case 250: { ArrayList list = New250(); Push(GoTo(50), list); } break; case 251: { ArrayList list = New251(); Push(GoTo(51), list); } break; case 252: { ArrayList list = New252(); Push(GoTo(51), list); } break; case 253: { ArrayList list = New253(); Push(GoTo(52), list); } break; case 254: { ArrayList list = New254(); Push(GoTo(53), list); } break; case 255: { ArrayList list = New255(); Push(GoTo(54), list); } break; case 256: { ArrayList list = New256(); Push(GoTo(55), list); } break; case 257: { ArrayList list = New257(); Push(GoTo(56), list); } break; case 258: { ArrayList list = New258(); Push(GoTo(56), list); } break; case 259: { ArrayList list = New259(); Push(GoTo(57), list); } break; case 260: { ArrayList list = New260(); Push(GoTo(58), list); } break; case 261: { ArrayList list = New261(); Push(GoTo(59), list); } break; case 262: { ArrayList list = New262(); Push(GoTo(59), list); } break; case 263: { ArrayList list = New263(); Push(GoTo(59), list); } break; case 264: { ArrayList list = New264(); Push(GoTo(59), list); } break; case 265: { ArrayList list = New265(); Push(GoTo(60), list); } break; case 266: { ArrayList list = New266(); Push(GoTo(60), list); } break; case 267: { ArrayList list = New267(); Push(GoTo(61), list); } break; case 268: { ArrayList list = New268(); Push(GoTo(62), list); } break; case 269: { ArrayList list = New269(); Push(GoTo(63), list); } break; case 270: { ArrayList list = New270(); Push(GoTo(64), list); } break; case 271: { ArrayList list = New271(); Push(GoTo(64), list); } break; case 272: { ArrayList list = New272(); Push(GoTo(64), list); } break; case 273: { ArrayList list = New273(); Push(GoTo(64), list); } break; case 274: { ArrayList list = New274(); Push(GoTo(64), list); } break; case 275: { ArrayList list = New275(); Push(GoTo(64), list); } break; case 276: { ArrayList list = New276(); Push(GoTo(64), list); } break; case 277: { ArrayList list = New277(); Push(GoTo(65), list); } break; case 278: { ArrayList list = New278(); Push(GoTo(66), list); } break; case 279: { ArrayList list = New279(); Push(GoTo(66), list); } break; case 280: { ArrayList list = New280(); Push(GoTo(67), list); } break; case 281: { ArrayList list = New281(); Push(GoTo(67), list); } break; case 282: { ArrayList list = New282(); Push(GoTo(68), list); } break; case 283: { ArrayList list = New283(); Push(GoTo(68), list); } break; case 284: { ArrayList list = New284(); Push(GoTo(69), list); } break; case 285: { ArrayList list = New285(); Push(GoTo(69), list); } break; case 286: { ArrayList list = New286(); Push(GoTo(70), list); } break; case 287: { ArrayList list = New287(); Push(GoTo(71), list); } break; case 288: { ArrayList list = New288(); Push(GoTo(72), list); } break; case 289: { ArrayList list = New289(); Push(GoTo(72), list); } break; case 290: { ArrayList list = New290(); Push(GoTo(72), list); } break; case 291: { ArrayList list = New291(); Push(GoTo(72), list); } break; case 292: { ArrayList list = New292(); Push(GoTo(73), list); } break; case 293: { ArrayList list = New293(); Push(GoTo(73), list); } break; case 294: { ArrayList list = New294(); Push(GoTo(73), list); } break; case 295: { ArrayList list = New295(); Push(GoTo(73), list); } break; case 296: { ArrayList list = New296(); Push(GoTo(73), list); } break; case 297: { ArrayList list = New297(); Push(GoTo(73), list); } break; case 298: { ArrayList list = New298(); Push(GoTo(73), list); } break; case 299: { ArrayList list = New299(); Push(GoTo(74), list); } break; case 300: { ArrayList list = New300(); Push(GoTo(75), list); } break; case 301: { ArrayList list = New301(); Push(GoTo(76), list); } break; case 302: { ArrayList list = New302(); Push(GoTo(76), list); } break; case 303: { ArrayList list = New303(); Push(GoTo(77), list); } break; case 304: { ArrayList list = New304(); Push(GoTo(78), list); } break; case 305: { ArrayList list = New305(); Push(GoTo(79), list); } break; case 306: { ArrayList list = New306(); Push(GoTo(80), list); } break; case 307: { ArrayList list = New307(); Push(GoTo(81), list); } break; case 308: { ArrayList list = New308(); Push(GoTo(82), list); } break; case 309: { ArrayList list = New309(); Push(GoTo(83), list); } break; case 310: { ArrayList list = New310(); Push(GoTo(83), list); } break; case 311: { ArrayList list = New311(); Push(GoTo(84), list); } break; case 312: { ArrayList list = New312(); Push(GoTo(84), list); } break; case 313: { ArrayList list = New313(); Push(GoTo(85), list); } break; case 314: { ArrayList list = New314(); Push(GoTo(85), list); } break; case 315: { ArrayList list = New315(); Push(GoTo(86), list); } break; case 316: { ArrayList list = New316(); Push(GoTo(86), list); } break; case 317: { ArrayList list = New317(); Push(GoTo(87), list); } break; case 318: { ArrayList list = New318(); Push(GoTo(88), list); } break; case 319: { ArrayList list = New319(); Push(GoTo(89), list); } break; case 320: { ArrayList list = New320(); Push(GoTo(89), list); } break; case 321: { ArrayList list = New321(); Push(GoTo(89), list); } break; case 322: { ArrayList list = New322(); Push(GoTo(89), list); } break; case 323: { ArrayList list = New323(); Push(GoTo(89), list); } break; case 324: { ArrayList list = New324(); Push(GoTo(89), list); } break; case 325: { ArrayList list = New325(); Push(GoTo(89), list); } break; case 326: { ArrayList list = New326(); Push(GoTo(89), list); } break; case 327: { ArrayList list = New327(); Push(GoTo(90), list); } break; case 328: { ArrayList list = New328(); Push(GoTo(90), list); } break; case 329: { ArrayList list = New329(); Push(GoTo(90), list); } break; case 330: { ArrayList list = New330(); Push(GoTo(91), list); } break; case 331: { ArrayList list = New331(); Push(GoTo(91), list); } break; case 332: { ArrayList list = New332(); Push(GoTo(92), list); } break; case 333: { ArrayList list = New333(); Push(GoTo(93), list); } break; case 334: { ArrayList list = New334(); Push(GoTo(93), list); } break; case 335: { ArrayList list = New335(); Push(GoTo(94), list); } break; case 336: { ArrayList list = New336(); Push(GoTo(94), list); } break; case 337: { ArrayList list = New337(); Push(GoTo(94), list); } break; case 338: { ArrayList list = New338(); Push(GoTo(94), list); } break; case 339: { ArrayList list = New339(); Push(GoTo(94), list); } break; case 340: { ArrayList list = New340(); Push(GoTo(94), list); } break; case 341: { ArrayList list = New341(); Push(GoTo(94), list); } break; case 342: { ArrayList list = New342(); Push(GoTo(94), list); } break; case 343: { ArrayList list = New343(); Push(GoTo(94), list); } break; case 344: { ArrayList list = New344(); Push(GoTo(94), list); } break; case 345: { ArrayList list = New345(); Push(GoTo(95), list); } break; case 346: { ArrayList list = New346(); Push(GoTo(95), list); } break; case 347: { ArrayList list = New347(); Push(GoTo(96), list); } break; case 348: { ArrayList list = New348(); Push(GoTo(96), list); } break; case 349: { ArrayList list = New349(); Push(GoTo(96), list); } break; case 350: { ArrayList list = New350(); Push(GoTo(96), list); } break; case 351: { ArrayList list = New351(); Push(GoTo(96), list); } break; case 352: { ArrayList list = New352(); Push(GoTo(96), list); } break; case 353: { ArrayList list = New353(); Push(GoTo(96), list); } break; case 354: { ArrayList list = New354(); Push(GoTo(96), list); } break; case 355: { ArrayList list = New355(); Push(GoTo(96), list); } break; case 356: { ArrayList list = New356(); Push(GoTo(96), list); } break; case 357: { ArrayList list = New357(); Push(GoTo(96), list); } break; case 358: { ArrayList list = New358(); Push(GoTo(96), list); } break; case 359: { ArrayList list = New359(); Push(GoTo(96), list); } break; case 360: { ArrayList list = New360(); Push(GoTo(97), list); } break; case 361: { ArrayList list = New361(); Push(GoTo(97), list); } break; case 362: { ArrayList list = New362(); Push(GoTo(97), list); } break; case 363: { ArrayList list = New363(); Push(GoTo(97), list); } break; case 364: { ArrayList list = New364(); Push(GoTo(97), list); } break; case 365: { ArrayList list = New365(); Push(GoTo(97), list); } break; case 366: { ArrayList list = New366(); Push(GoTo(97), list); } break; case 367: { ArrayList list = New367(); Push(GoTo(97), list); } break; case 368: { ArrayList list = New368(); Push(GoTo(97), list); } break; case 369: { ArrayList list = New369(); Push(GoTo(97), list); } break; case 370: { ArrayList list = New370(); Push(GoTo(97), list); } break; case 371: { ArrayList list = New371(); Push(GoTo(98), list); } break; case 372: { ArrayList list = New372(); Push(GoTo(99), list); } break; case 373: { ArrayList list = New373(); Push(GoTo(100), list); } break; case 374: { ArrayList list = New374(); Push(GoTo(100), list); } break; case 375: { ArrayList list = New375(); Push(GoTo(101), list); } break; case 376: { ArrayList list = New376(); Push(GoTo(101), list); } break; case 377: { ArrayList list = New377(); Push(GoTo(102), list); } break; case 378: { ArrayList list = New378(); Push(GoTo(102), list); } break; case 379: { ArrayList list = New379(); Push(GoTo(102), list); } break; case 380: { ArrayList list = New380(); Push(GoTo(102), list); } break; case 381: { ArrayList list = New381(); Push(GoTo(102), list); } break; case 382: { ArrayList list = New382(); Push(GoTo(102), list); } break; case 383: { ArrayList list = New383(); Push(GoTo(102), list); } break; case 384: { ArrayList list = New384(); Push(GoTo(102), list); } break; case 385: { ArrayList list = New385(); Push(GoTo(102), list); } break; case 386: { ArrayList list = New386(); Push(GoTo(102), list); } break; case 387: { ArrayList list = New387(); Push(GoTo(102), list); } break; case 388: { ArrayList list = New388(); Push(GoTo(102), list); } break; case 389: { ArrayList list = New389(); Push(GoTo(102), list); } break; case 390: { ArrayList list = New390(); Push(GoTo(102), list); } break; case 391: { ArrayList list = New391(); Push(GoTo(102), list); } break; case 392: { ArrayList list = New392(); Push(GoTo(102), list); } break; case 393: { ArrayList list = New393(); Push(GoTo(102), list); } break; case 394: { ArrayList list = New394(); Push(GoTo(102), list); } break; case 395: { ArrayList list = New395(); Push(GoTo(102), list); } break; case 396: { ArrayList list = New396(); Push(GoTo(102), list); } break; case 397: { ArrayList list = New397(); Push(GoTo(102), list); } break; case 398: { ArrayList list = New398(); Push(GoTo(102), list); } break; case 399: { ArrayList list = New399(); Push(GoTo(102), list); } break; case 400: { ArrayList list = New400(); Push(GoTo(102), list); } break; case 401: { ArrayList list = New401(); Push(GoTo(102), list); } break; case 402: { ArrayList list = New402(); Push(GoTo(102), list); } break; case 403: { ArrayList list = New403(); Push(GoTo(103), list); } break; case 404: { ArrayList list = New404(); Push(GoTo(103), list); } break; case 405: { ArrayList list = New405(); Push(GoTo(104), list); } break; case 406: { ArrayList list = New406(); Push(GoTo(104), list); } break; case 407: { ArrayList list = New407(); Push(GoTo(104), list); } break; case 408: { ArrayList list = New408(); Push(GoTo(104), list); } break; case 409: { ArrayList list = New409(); Push(GoTo(104), list); } break; case 410: { ArrayList list = New410(); Push(GoTo(104), list); } break; case 411: { ArrayList list = New411(); Push(GoTo(104), list); } break; case 412: { ArrayList list = New412(); Push(GoTo(104), list); } break; case 413: { ArrayList list = New413(); Push(GoTo(104), list); } break; case 414: { ArrayList list = New414(); Push(GoTo(104), list); } break; case 415: { ArrayList list = New415(); Push(GoTo(104), list); } break; case 416: { ArrayList list = New416(); Push(GoTo(104), list); } break; case 417: { ArrayList list = New417(); Push(GoTo(104), list); } break; case 418: { ArrayList list = New418(); Push(GoTo(104), list); } break; case 419: { ArrayList list = New419(); Push(GoTo(104), list); } break; case 420: { ArrayList list = New420(); Push(GoTo(104), list); } break; case 421: { ArrayList list = New421(); Push(GoTo(105), list); } break; case 422: { ArrayList list = New422(); Push(GoTo(105), list); } break; case 423: { ArrayList list = New423(); Push(GoTo(105), list); } break; case 424: { ArrayList list = New424(); Push(GoTo(105), list); } break; case 425: { ArrayList list = New425(); Push(GoTo(105), list); } break; case 426: { ArrayList list = New426(); Push(GoTo(105), list); } break; case 427: { ArrayList list = New427(); Push(GoTo(105), list); } break; case 428: { ArrayList list = New428(); Push(GoTo(105), list); } break; case 429: { ArrayList list = New429(); Push(GoTo(105), list); } break; case 430: { ArrayList list = New430(); Push(GoTo(105), list); } break; case 431: { ArrayList list = New431(); Push(GoTo(105), list); } break; case 432: { ArrayList list = New432(); Push(GoTo(105), list); } break; case 433: { ArrayList list = New433(); Push(GoTo(105), list); } break; case 434: { ArrayList list = New434(); Push(GoTo(106), list); } break; case 435: { ArrayList list = New435(); Push(GoTo(106), list); } break; case 436: { ArrayList list = New436(); Push(GoTo(106), list); } break; case 437: { ArrayList list = New437(); Push(GoTo(106), list); } break; case 438: { ArrayList list = New438(); Push(GoTo(106), list); } break; case 439: { ArrayList list = New439(); Push(GoTo(106), list); } break; case 440: { ArrayList list = New440(); Push(GoTo(106), list); } break; case 441: { ArrayList list = New441(); Push(GoTo(106), list); } break; case 442: { ArrayList list = New442(); Push(GoTo(106), list); } break; case 443: { ArrayList list = New443(); Push(GoTo(106), list); } break; case 444: { ArrayList list = New444(); Push(GoTo(106), list); } break; case 445: { ArrayList list = New445(); Push(GoTo(106), list); } break; case 446: { ArrayList list = New446(); Push(GoTo(106), list); } break; case 447: { ArrayList list = New447(); Push(GoTo(106), list); } break; case 448: { ArrayList list = New448(); Push(GoTo(107), list); } break; case 449: { ArrayList list = New449(); Push(GoTo(107), list); } break; case 450: { ArrayList list = New450(); Push(GoTo(107), list); } break; case 451: { ArrayList list = New451(); Push(GoTo(107), list); } break; case 452: { ArrayList list = New452(); Push(GoTo(107), list); } break; case 453: { ArrayList list = New453(); Push(GoTo(108), list); } break; case 454: { ArrayList list = New454(); Push(GoTo(108), list); } break; case 455: { ArrayList list = New455(); Push(GoTo(108), list); } break; case 456: { ArrayList list = New456(); Push(GoTo(108), list); } break; case 457: { ArrayList list = New457(); Push(GoTo(108), list); } break; case 458: { ArrayList list = New458(); Push(GoTo(109), list); } break; case 459: { ArrayList list = New459(); Push(GoTo(110), list); } break; case 460: { ArrayList list = New460(); Push(GoTo(110), list); } break; case 461: { ArrayList list = New461(); Push(GoTo(110), list); } break; case 462: { ArrayList list = New462(); Push(GoTo(111), list); } break; case 463: { ArrayList list = New463(); Push(GoTo(111), list); } break; case 464: { ArrayList list = New464(); Push(GoTo(111), list); } break; case 465: { ArrayList list = New465(); Push(GoTo(111), list); } break; case 466: { ArrayList list = New466(); Push(GoTo(111), list); } break; case 467: { ArrayList list = New467(); Push(GoTo(111), list); } break; case 468: { ArrayList list = New468(); Push(GoTo(111), list); } break; case 469: { ArrayList list = New469(); Push(GoTo(111), list); } break; case 470: { ArrayList list = New470(); Push(GoTo(111), list); } break; case 471: { ArrayList list = New471(); Push(GoTo(111), list); } break; case 472: { ArrayList list = New472(); Push(GoTo(111), list); } break; case 473: { ArrayList list = New473(); Push(GoTo(111), list); } break; case 474: { ArrayList list = New474(); Push(GoTo(111), list); } break; case 475: { ArrayList list = New475(); Push(GoTo(111), list); } break; case 476: { ArrayList list = New476(); Push(GoTo(111), list); } break; case 477: { ArrayList list = New477(); Push(GoTo(111), list); } break; case 478: { ArrayList list = New478(); Push(GoTo(112), list); } break; case 479: { ArrayList list = New479(); Push(GoTo(112), list); } break; case 480: { ArrayList list = New480(); Push(GoTo(112), list); } break; case 481: { ArrayList list = New481(); Push(GoTo(112), list); } break; case 482: { ArrayList list = New482(); Push(GoTo(113), list); } break; case 483: { ArrayList list = New483(); Push(GoTo(113), list); } break; case 484: { ArrayList list = New484(); Push(GoTo(113), list); } break; case 485: { ArrayList list = New485(); Push(GoTo(114), list); } break; case 486: { ArrayList list = New486(); Push(GoTo(114), list); } break; case 487: { ArrayList list = New487(); Push(GoTo(114), list); } break; case 488: { ArrayList list = New488(); Push(GoTo(115), list); } break; case 489: { ArrayList list = New489(); Push(GoTo(115), list); } break; case 490: { ArrayList list = New490(); Push(GoTo(115), list); } break; case 491: { ArrayList list = New491(); Push(GoTo(115), list); } break; case 492: { ArrayList list = New492(); Push(GoTo(115), list); } break; case 493: { ArrayList list = New493(); Push(GoTo(116), list); } break; case 494: { ArrayList list = New494(); Push(GoTo(116), list); } break; case 495: { ArrayList list = New495(); Push(GoTo(116), list); } break; case 496: { ArrayList list = New496(); Push(GoTo(117), list); } break; case 497: { ArrayList list = New497(); Push(GoTo(117), list); } break; case 498: { ArrayList list = New498(); Push(GoTo(118), list); } break; case 499: { ArrayList list = New499(); Push(GoTo(118), list); } break; case 500: { ArrayList list = New500(); Push(GoTo(119), list); } break; case 501: { ArrayList list = New501(); Push(GoTo(119), list); } break; case 502: { ArrayList list = New502(); Push(GoTo(120), list); } break; case 503: { ArrayList list = New503(); Push(GoTo(120), list); } break; case 504: { ArrayList list = New504(); Push(GoTo(121), list); } break; case 505: { ArrayList list = New505(); Push(GoTo(121), list); } break; case 506: { ArrayList list = New506(); Push(GoTo(122), list); } break; case 507: { ArrayList list = New507(); Push(GoTo(122), list); } break; case 508: { ArrayList list = New508(); Push(GoTo(123), list); } break; case 509: { ArrayList list = New509(); Push(GoTo(123), list); } break; case 510: { ArrayList list = New510(); Push(GoTo(123), list); } break; case 511: { ArrayList list = New511(); Push(GoTo(123), list); } break; case 512: { ArrayList list = New512(); Push(GoTo(123), list); } break; case 513: { ArrayList list = New513(); Push(GoTo(123), list); } break; case 514: { ArrayList list = New514(); Push(GoTo(123), list); } break; case 515: { ArrayList list = New515(); Push(GoTo(123), list); } break; case 516: { ArrayList list = New516(); Push(GoTo(123), list); } break; case 517: { ArrayList list = New517(); Push(GoTo(124), list); } break; case 518: { ArrayList list = New518(); Push(GoTo(124), list); } break; case 519: { ArrayList list = New519(); Push(GoTo(124), list); } break; case 520: { ArrayList list = New520(); Push(GoTo(124), list); } break; case 521: { ArrayList list = New521(); Push(GoTo(124), list); } break; case 522: { ArrayList list = New522(); Push(GoTo(124), list); } break; case 523: { ArrayList list = New523(); Push(GoTo(124), list); } break; case 524: { ArrayList list = New524(); Push(GoTo(124), list); } break; case 525: { ArrayList list = New525(); Push(GoTo(124), list); } break; case 526: { ArrayList list = New526(); Push(GoTo(124), list); } break; case 527: { ArrayList list = New527(); Push(GoTo(124), list); } break; case 528: { ArrayList list = New528(); Push(GoTo(124), list); } break; case 529: { ArrayList list = New529(); Push(GoTo(124), list); } break; case 530: { ArrayList list = New530(); Push(GoTo(124), list); } break; case 531: { ArrayList list = New531(); Push(GoTo(124), list); } break; case 532: { ArrayList list = New532(); Push(GoTo(124), list); } break; case 533: { ArrayList list = New533(); Push(GoTo(124), list); } break; case 534: { ArrayList list = New534(); Push(GoTo(124), list); } break; case 535: { ArrayList list = New535(); Push(GoTo(124), list); } break; case 536: { ArrayList list = New536(); Push(GoTo(124), list); } break; case 537: { ArrayList list = New537(); Push(GoTo(124), list); } break; case 538: { ArrayList list = New538(); Push(GoTo(124), list); } break; case 539: { ArrayList list = New539(); Push(GoTo(124), list); } break; case 540: { ArrayList list = New540(); Push(GoTo(124), list); } break; case 541: { ArrayList list = New541(); Push(GoTo(124), list); } break; case 542: { ArrayList list = New542(); Push(GoTo(124), list); } break; case 543: { ArrayList list = New543(); Push(GoTo(124), list); } break; case 544: { ArrayList list = New544(); Push(GoTo(124), list); } break; case 545: { ArrayList list = New545(); Push(GoTo(124), list); } break; case 546: { ArrayList list = New546(); Push(GoTo(124), list); } break; case 547: { ArrayList list = New547(); Push(GoTo(124), list); } break; case 548: { ArrayList list = New548(); Push(GoTo(125), list); } break; case 549: { ArrayList list = New549(); Push(GoTo(125), list); } break; case 550: { ArrayList list = New550(); Push(GoTo(126), list); } break; case 551: { ArrayList list = New551(); Push(GoTo(126), list); } break; case 552: { ArrayList list = New552(); Push(GoTo(127), list); } break; case 553: { ArrayList list = New553(); Push(GoTo(127), list); } break; case 554: { ArrayList list = New554(); Push(GoTo(128), list); } break; case 555: { ArrayList list = New555(); Push(GoTo(128), list); } break; case 556: { ArrayList list = New556(); Push(GoTo(129), list); } break; case 557: { ArrayList list = New557(); Push(GoTo(129), list); } break; case 558: { ArrayList list = New558(); Push(GoTo(130), list); } break; case 559: { ArrayList list = New559(); Push(GoTo(130), list); } break; case 560: { ArrayList list = New560(); Push(GoTo(130), list); } break; case 561: { ArrayList list = New561(); Push(GoTo(130), list); } break; case 562: { ArrayList list = New562(); Push(GoTo(131), list); } break; case 563: { ArrayList list = New563(); Push(GoTo(132), list); } break; case 564: { ArrayList list = New564(); Push(GoTo(132), list); } break; case 565: { ArrayList list = New565(); Push(GoTo(132), list); } break; case 566: { ArrayList list = New566(); Push(GoTo(132), list); } break; case 567: { ArrayList list = New567(); Push(GoTo(132), list); } break; case 568: { ArrayList list = New568(); Push(GoTo(132), list); } break; case 569: { ArrayList list = New569(); Push(GoTo(133), list); } break; case 570: { ArrayList list = New570(); Push(GoTo(133), list); } break; case 571: { ArrayList list = New571(); Push(GoTo(134), list); } break; case 572: { ArrayList list = New572(); Push(GoTo(134), list); } break; case 573: { ArrayList list = New573(); Push(GoTo(134), list); } break; case 574: { ArrayList list = New574(); Push(GoTo(134), list); } break; case 575: { ArrayList list = New575(); Push(GoTo(134), list); } break; case 576: { ArrayList list = New576(); Push(GoTo(134), list); } break; case 577: { ArrayList list = New577(); Push(GoTo(134), list); } break; case 578: { ArrayList list = New578(); Push(GoTo(134), list); } break; case 579: { ArrayList list = New579(); Push(GoTo(134), list); } break; case 580: { ArrayList list = New580(); Push(GoTo(134), list); } break; case 581: { ArrayList list = New581(); Push(GoTo(134), list); } break; case 582: { ArrayList list = New582(); Push(GoTo(134), list); } break; case 583: { ArrayList list = New583(); Push(GoTo(134), list); } break; case 584: { ArrayList list = New584(); Push(GoTo(134), list); } break; case 585: { ArrayList list = New585(); Push(GoTo(134), list); } break; case 586: { ArrayList list = New586(); Push(GoTo(134), list); } break; case 587: { ArrayList list = New587(); Push(GoTo(134), list); } break; case 588: { ArrayList list = New588(); Push(GoTo(134), list); } break; case 589: { ArrayList list = New589(); Push(GoTo(134), list); } break; case 590: { ArrayList list = New590(); Push(GoTo(134), list); } break; case 591: { ArrayList list = New591(); Push(GoTo(134), list); } break; case 592: { ArrayList list = New592(); Push(GoTo(134), list); } break; case 593: { ArrayList list = New593(); Push(GoTo(134), list); } break; case 594: { ArrayList list = New594(); Push(GoTo(135), list); } break; case 595: { ArrayList list = New595(); Push(GoTo(135), list); } break; case 596: { ArrayList list = New596(); Push(GoTo(136), list); } break; case 597: { ArrayList list = New597(); Push(GoTo(136), list); } break; case 598: { ArrayList list = New598(); Push(GoTo(137), list); } break; case 599: { ArrayList list = New599(); Push(GoTo(137), list); } break; case 600: { ArrayList list = New600(); Push(GoTo(138), list); } break; case 601: { ArrayList list = New601(); Push(GoTo(138), list); } break; case 602: { ArrayList list = New602(); Push(GoTo(139), list); } break; case 603: { ArrayList list = New603(); Push(GoTo(139), list); } break; case 604: { ArrayList list = New604(); Push(GoTo(140), list); } break; case 605: { ArrayList list = New605(); Push(GoTo(140), list); } break; case 606: { ArrayList list = New606(); Push(GoTo(141), list); } break; case 607: { ArrayList list = New607(); Push(GoTo(141), list); } break; case 608: { ArrayList list = New608(); Push(GoTo(142), list); } break; case 609: { ArrayList list = New609(); Push(GoTo(142), list); } break; } break; case ACCEPT: { EOF node2 = (EOF) lexer.Next(); PSourceFile node1 = (PSourceFile) ((ArrayList)Pop())[0]; Start node = new Start(node1, node2); return node; } case ERROR: throw new ParserException(last_token, "[" + last_line + "," + last_pos + LocRM.GetString("ErrorText220") + errorMessages[errors[action[1]]]); } } }
public bool Parse(Start ast, GalaxyCompiler compiler) { this.compiler = compiler; Parser parser = new Parser(ast); //Includes = parser.Includes; //To save time, only update if there has been changes //I assume that the Elements are in the same order //Check if recouluring is needed List<StructDescription> preUpdateStructs = GetAllStructs(); List<StructDescription> postUpdateStructs = new List<StructDescription>(); postUpdateStructs.AddRange(parser.Structs); List<IDeclContainer> list = new List<IDeclContainer>(); list.AddRange(parser.Namespaces); while (list.Count > 0) { List<IDeclContainer> nextList = new List<IDeclContainer>(); foreach (IDeclContainer declContainer in list) { postUpdateStructs.AddRange(declContainer.Structs); nextList.AddRange(declContainer.Namespaces); } list = nextList; } bool restyle = preUpdateStructs.Count != postUpdateStructs.Count; if (!restyle) { for (int i = 0; i < preUpdateStructs.Count; i++) { if (preUpdateStructs[i].Name != postUpdateStructs[i].Name) { restyle = true; break; } } } if (restyle && Form1.Form.CurrentOpenFile != null && Form1.Form.CurrentOpenFile.OpenFile != null) Form1.Form.CurrentOpenFile.OpenFile.Editor.Restyle(); bool needUpdate = Methods.Count != parser.Methods.Count || Fields.Count != parser.Fields.Count || Structs.Count != parser.Structs.Count || Enrichments.Count != parser.Enrichments.Count || Usings.Count != parser.Usings.Count || Typedefs.Count != parser.Typedefs.Count || Namespaces.Count != parser.Namespaces.Count; if (!needUpdate) { needUpdate = Methods.Where((t, i) => !t.Equals(parser.Methods[i])).Any() || Fields.Where((t, i) => !t.Equals(parser.Fields[i])).Any() || Structs.Where((t, i) => !t.Equals(parser.Structs[i])).Any() || Enrichments.Where((t, i) => !t.Equals(parser.Enrichments[i])).Any() || Usings.Where((t, i) => t != parser.Usings[i]).Any() || Typedefs.Where((t, i) => !t.Equals(parser.Typedefs[i])).Any() || Namespaces.Where((t, i) => !t.Equals(parser.Namespaces[i])).Any(); } if (needUpdate) { Methods = parser.Methods; foreach (MethodDescription method in Methods) { method.ParentFile = this; } Fields = parser.Fields; foreach (VariableDescription field in Fields) { field.ParentFile = this; } Structs = parser.Structs; foreach (StructDescription structDescription in Structs) { foreach (MethodDescription method in structDescription.Methods) { method.ParentFile = this; } foreach (VariableDescription field in structDescription.Fields) { field.ParentFile = this; } structDescription.ParentFile = this; } Enrichments = parser.Enrichments; foreach (EnrichmentDescription structDescription in Enrichments) { structDescription.ParentFile = this; foreach (MethodDescription method in structDescription.Methods) { method.ParentFile = this; } foreach (VariableDescription field in structDescription.Fields) { field.ParentFile = this; } } Typedefs = parser.Typedefs; foreach (TypedefDescription typedef in Typedefs) { typedef.ParentFile = this; } Usings = parser.Usings; Namespaces = parser.Namespaces; foreach (NamespaceDescription namespaceDescription in Namespaces) { namespaceDescription.Parent = this; } if (SourceFileChanged != null) SourceFileChanged(this); } return needUpdate; }