protected override void CloneTo(CloneContext clonectx, Expression t) { AsIn target = (AsIn)t; target.expr = expr.Clone(clonectx); target.objExpr = objExpr.Clone(clonectx); }
void case_593() #line 5013 "ps-parser.jay" { Error_SyntaxError (yyToken); yyVal = new AsIn ((Expression) yyVals[-2+yyTop], null, GetLocation (yyVals[-1+yyTop])); }
/** the generated parser. Maintains a state and a value stack, currently with fixed maximum size. @param yyLex scanner. @return result of the last reduction, if any. @throws yyException on irrecoverable parse error. */ internal Object yyparse (yyParser.yyInput yyLex) { if (yyMax <= 0) yyMax = 256; // initial size int yyState = 0; // state stack ptr int [] yyStates; // state stack yyVal = null; yyToken = -1; int yyErrorFlag = 0; // #tks to shift if (use_global_stacks && global_yyStates != null) { yyVals = global_yyVals; yyStates = global_yyStates; } else { yyVals = new object [yyMax]; yyStates = new int [yyMax]; if (use_global_stacks) { global_yyVals = yyVals; global_yyStates = yyStates; } } /*yyLoop:*/ for (yyTop = 0;; ++ yyTop) { if (yyTop >= yyStates.Length) { // dynamically increase global::System.Array.Resize (ref yyStates, yyStates.Length+yyMax); global::System.Array.Resize (ref yyVals, yyVals.Length+yyMax); } yyStates[yyTop] = yyState; yyVals[yyTop] = yyVal; //t if (debug != null) debug.push(yyState, yyVal); /*yyDiscarded:*/ while (true) { // discarding a token does not change stack int yyN; if ((yyN = yyDefRed[yyState]) == 0) { // else [default] reduce (yyN) if (yyToken < 0) { yyToken = yyLex.advance() ? yyLex.token() : 0; //t if (debug != null) //t debug.lex(yyState, yyToken, yyname(yyToken), yyLex.value()); } if ((yyN = yySindex[yyState]) != 0 && ((yyN += yyToken) >= 0) && (yyN < yyTable.Length) && (yyCheck[yyN] == yyToken)) { //t if (debug != null) //t debug.shift(yyState, yyTable[yyN], yyErrorFlag-1); yyState = yyTable[yyN]; // shift to yyN yyVal = yyLex.value(); yyToken = -1; if (yyErrorFlag > 0) -- yyErrorFlag; goto continue_yyLoop; } if ((yyN = yyRindex[yyState]) != 0 && (yyN += yyToken) >= 0 && yyN < yyTable.Length && yyCheck[yyN] == yyToken) yyN = yyTable[yyN]; // reduce (yyN) else switch (yyErrorFlag) { case 0: yyExpectingState = yyState; // yyerror(String.Format ("syntax error, got token `{0}'", yyname (yyToken)), yyExpecting(yyState)); //t if (debug != null) debug.error("syntax error"); if (yyToken == 0 /*eof*/ || yyToken == eof_token) throw new yyParser.yyUnexpectedEof (); goto case 1; case 1: case 2: yyErrorFlag = 3; do { if ((yyN = yySindex[yyStates[yyTop]]) != 0 && (yyN += Token.yyErrorCode) >= 0 && yyN < yyTable.Length && yyCheck[yyN] == Token.yyErrorCode) { //t if (debug != null) //t debug.shift(yyStates[yyTop], yyTable[yyN], 3); yyState = yyTable[yyN]; yyVal = yyLex.value(); goto continue_yyLoop; } //t if (debug != null) debug.pop(yyStates[yyTop]); } while (-- yyTop >= 0); //t if (debug != null) debug.reject(); throw new yyParser.yyException("irrecoverable syntax error"); case 3: if (yyToken == 0) { //t if (debug != null) debug.reject(); throw new yyParser.yyException("irrecoverable syntax error at end-of-file"); } //t if (debug != null) //t debug.discard(yyState, yyToken, yyname(yyToken), //t yyLex.value()); yyToken = -1; goto continue_yyDiscarded; // leave stack alone } } int yyV = yyTop + 1-yyLen[yyN]; //t if (debug != null) //t debug.reduce(yyState, yyStates[yyV-1], yyN, YYRules.getRule (yyN), yyLen[yyN]); yyVal = yyV > yyTop ? null : yyVals[yyV]; // yyVal = yyDefault(yyV > yyTop ? null : yyVals[yyV]); switch (yyN) { case 1: #line 445 "ps-parser.jay" { Lexer.check_incorrect_doc_comment (); } break; case 2: #line 446 "ps-parser.jay" { Lexer.CompleteOnEOF = false; } break; case 6: case_6(); break; case 7: #line 465 "ps-parser.jay" { module.AddAttributes ((Attributes) yyVals[0+yyTop], current_namespace); } break; case 8: case_8(); break; case 13: case_13(); break; case 14: #line 510 "ps-parser.jay" { Error_SyntaxError (yyToken); } break; case 19: case_19(); break; case 20: case_20(); break; case 21: case_21(); break; case 22: case_22(); break; case 25: case_25(); break; case 27: case_27(); break; case 28: #line 575 "ps-parser.jay" { Lexer.AllowAutoSemiAfterToken(Token.DOT_STAR, true); } break; case 29: case_29(); break; case 30: case_30(); break; case 31: case_31(); break; case 32: case_32(); break; case 33: #line 627 "ps-parser.jay" { Lexer.AutoSemiInsertion = false; } break; case 34: case_34(); break; case 35: case_35(); break; case 36: case_36(); break; case 37: case_37(); break; case 40: case_40(); break; case 41: case_41(); break; case 42: case_42(); break; case 59: case_59(); break; case 60: case_60(); break; case 61: case_61(); break; case 63: case_63(); break; case 64: case_64(); break; case 65: case_65(); break; case 66: case_66(); break; case 75: case_75(); break; case 76: case_76(); break; case 77: #line 888 "ps-parser.jay" { lexer.parsing_attribute_section = true; } break; case 78: case_78(); break; case 79: case_79(); break; case 80: case_80(); break; case 81: case_81(); break; case 82: case_82(); break; case 83: #line 929 "ps-parser.jay" { yyVal = "event"; } break; case 84: #line 930 "ps-parser.jay" { yyVal = "return"; } break; case 85: case_85(); break; case 86: #line 947 "ps-parser.jay" { yyVal = new List<Attribute> (4) { (Attribute) yyVals[0+yyTop] }; } break; case 87: case_87(); break; case 88: #line 961 "ps-parser.jay" { ++lexer.parsing_block; } break; case 89: case_89(); break; case 91: #line 980 "ps-parser.jay" { yyVal = null; } break; case 92: case_92(); break; case 93: #line 990 "ps-parser.jay" { yyVal = null; } break; case 94: case_94(); break; case 95: case_95(); break; case 96: case_96(); break; case 97: case_97(); break; case 98: #line 1032 "ps-parser.jay" { yyVal = new Argument ((Expression) yyVals[0+yyTop]); } break; case 100: #line 1040 "ps-parser.jay" { ++lexer.parsing_block; } break; case 101: case_101(); break; case 102: case_102(); break; case 103: #line 1066 "ps-parser.jay" { yyVal = null; } break; case 104: case_104(); break; case 105: case_105(); break; case 108: #line 1088 "ps-parser.jay" { lexer.parsing_modifiers = true; } break; case 109: #line 1092 "ps-parser.jay" { lexer.parsing_modifiers = true; } break; case 124: case_124(); break; case 125: case_125(); break; case 126: case_126(); break; case 127: case_127(); break; case 128: case_128(); break; case 129: case_129(); break; case 130: case_130(); break; case 131: #line 1176 "ps-parser.jay" { lexer.AutoSemiInsertion = false; } break; case 132: case_132(); break; case 133: case_133(); break; case 134: case_134(); break; case 135: case_135(); break; case 136: case_136(); break; case 137: #line 1225 "ps-parser.jay" { Error_SyntaxError (yyToken); } break; case 138: case_138(); break; case 139: case_139(); break; case 142: #line 1266 "ps-parser.jay" { current_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]); } break; case 143: #line 1270 "ps-parser.jay" { current_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]); } break; case 144: case_144(); break; case 145: #line 1283 "ps-parser.jay" { yyVal = null; } break; case 147: #line 1291 "ps-parser.jay" { ++lexer.parsing_block; } break; case 148: case_148(); break; case 149: case_149(); break; case 151: case_151(); break; case 152: case_152(); break; case 153: case_153(); break; case 154: case_154(); break; case 155: #line 1374 "ps-parser.jay" { report.Error (1641, GetLocation (yyVals[0+yyTop]), "A fixed size buffer field must have the array size specifier after the field name"); } break; case 157: case_157(); break; case 158: case_158(); break; case 161: #line 1403 "ps-parser.jay" { current_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]); } break; case 162: #line 1407 "ps-parser.jay" { current_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]); } break; case 163: case_163(); break; case 164: #line 1420 "ps-parser.jay" { ++lexer.parsing_block; } break; case 165: case_165(); break; case 168: #line 1439 "ps-parser.jay" { current_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]); } break; case 169: #line 1443 "ps-parser.jay" { current_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]); } break; case 170: case_170(); break; case 171: #line 1459 "ps-parser.jay" { ++lexer.parsing_block; } break; case 172: case_172(); break; case 173: case_173(); break; case 175: case_175(); break; case 176: case_176(); break; case 177: case_177(); break; case 178: case_178(); break; case 179: #line 1603 "ps-parser.jay" { lexer.ConstraintsParsing = true; } break; case 180: case_180(); break; case 181: #line 1672 "ps-parser.jay" { valid_param_mod = ParameterModifierType.All; } break; case 182: case_182(); break; case 183: #line 1733 "ps-parser.jay" { valid_param_mod = ParameterModifierType.All; } break; case 184: case_184(); break; case 185: #line 1801 "ps-parser.jay" { lexer.parsing_generic_declaration = true; } break; case 186: case_186(); break; case 187: #line 1811 "ps-parser.jay" { lexer.ConstraintsParsing = true; } break; case 188: case_188(); break; case 189: case_189(); break; case 190: case_190(); break; case 192: #line 1882 "ps-parser.jay" { yyVal = yyVals[0+yyTop]; } break; case 193: case_193(); break; case 195: case_195(); break; case 196: #line 1904 "ps-parser.jay" { yyVal = ParametersCompiled.EmptyReadOnlyParameters; } break; case 198: case_198(); break; case 199: case_199(); break; case 200: case_200(); break; case 201: case_201(); break; case 202: #line 1976 "ps-parser.jay" { yyVal = new ParametersCompiled (new Parameter[] { (Parameter) yyVals[0+yyTop] } ); } break; case 203: case_203(); break; case 204: case_204(); break; case 205: case_205(); break; case 206: case_206(); break; case 207: case_207(); break; case 208: case_208(); break; case 209: #line 2055 "ps-parser.jay" { ++lexer.parsing_block; } break; case 210: case_210(); break; case 211: #line 2096 "ps-parser.jay" { yyVal = Parameter.Modifier.NONE; } break; case 213: #line 2104 "ps-parser.jay" { yyVal = yyVals[0+yyTop]; } break; case 214: case_214(); break; case 215: case_215(); break; case 216: case_216(); break; case 217: case_217(); break; case 218: case_218(); break; case 219: case_219(); break; case 220: case_220(); break; case 221: case_221(); break; case 222: case_222(); break; case 223: case_223(); break; case 224: case_224(); break; case 225: #line 2270 "ps-parser.jay" { valid_param_mod = ParameterModifierType.Params | ParameterModifierType.DefaultValue; } break; case 226: case_226(); break; case 227: #line 2311 "ps-parser.jay" { lexer.PropertyParsing = false; } break; case 228: case_228(); break; case 233: case_233(); break; case 234: case_234(); break; case 235: case_235(); break; case 236: case_236(); break; case 237: case_237(); break; case 239: case_239(); break; case 240: case_240(); break; case 241: #line 2463 "ps-parser.jay" { Lexer.AutoSemiInsertion = false; } break; case 242: case_242(); break; case 243: case_243(); break; case 244: #line 2490 "ps-parser.jay" { Lexer.AutoSemiInsertion = true; } break; case 245: case_245(); break; case 246: case_246(); break; case 247: #line 2505 "ps-parser.jay" { Error_SyntaxError (yyToken); } break; case 250: #line 2517 "ps-parser.jay" { lexer.parsing_modifiers = true; } break; case 251: #line 2521 "ps-parser.jay" { lexer.parsing_modifiers = true; } break; case 252: #line 2528 "ps-parser.jay" { report.Error (525, GetLocation (yyVals[0+yyTop]), "Interfaces cannot contain fields or constants"); } break; case 253: #line 2532 "ps-parser.jay" { report.Error (525, GetLocation (yyVals[0+yyTop]), "Interfaces cannot contain fields or constants"); } break; case 258: #line 2540 "ps-parser.jay" { report.Error (567, GetLocation (yyVals[0+yyTop]), "Interfaces cannot contain operators"); } break; case 259: #line 2548 "ps-parser.jay" { report.Error (524, GetLocation (yyVals[0+yyTop]), "Interfaces cannot declare classes, structs, interfaces, delegates, or enumerations"); } break; case 260: #line 2554 "ps-parser.jay" { } break; case 261: case_261(); break; case 263: #line 2603 "ps-parser.jay" { savedLocation = GetLocation (yyVals[0+yyTop]); yyVal = null; } break; case 265: case_265(); break; case 266: #line 2619 "ps-parser.jay" { valid_param_mod = ParameterModifierType.DefaultValue; } break; case 267: case_267(); break; case 269: #line 2667 "ps-parser.jay" { yyVal = Operator.OpType.LogicalNot; } break; case 270: #line 2668 "ps-parser.jay" { yyVal = Operator.OpType.OnesComplement; } break; case 271: #line 2669 "ps-parser.jay" { yyVal = Operator.OpType.Increment; } break; case 272: #line 2670 "ps-parser.jay" { yyVal = Operator.OpType.Decrement; } break; case 273: #line 2671 "ps-parser.jay" { yyVal = Operator.OpType.True; } break; case 274: #line 2672 "ps-parser.jay" { yyVal = Operator.OpType.False; } break; case 275: #line 2674 "ps-parser.jay" { yyVal = Operator.OpType.Addition; } break; case 276: #line 2675 "ps-parser.jay" { yyVal = Operator.OpType.Subtraction; } break; case 277: #line 2677 "ps-parser.jay" { yyVal = Operator.OpType.Multiply; } break; case 278: #line 2678 "ps-parser.jay" { yyVal = Operator.OpType.Division; } break; case 279: #line 2679 "ps-parser.jay" { yyVal = Operator.OpType.Modulus; } break; case 280: #line 2680 "ps-parser.jay" { yyVal = Operator.OpType.BitwiseAnd; } break; case 281: #line 2681 "ps-parser.jay" { yyVal = Operator.OpType.BitwiseOr; } break; case 282: #line 2682 "ps-parser.jay" { yyVal = Operator.OpType.ExclusiveOr; } break; case 283: #line 2683 "ps-parser.jay" { yyVal = Operator.OpType.LeftShift; } break; case 284: #line 2684 "ps-parser.jay" { yyVal = Operator.OpType.RightShift; } break; case 285: #line 2685 "ps-parser.jay" { yyVal = Operator.OpType.AsURightShift; } break; case 286: #line 2686 "ps-parser.jay" { yyVal = Operator.OpType.Equality; } break; case 287: #line 2687 "ps-parser.jay" { yyVal = Operator.OpType.Inequality; } break; case 288: #line 2688 "ps-parser.jay" { yyVal = Operator.OpType.GreaterThan; } break; case 289: #line 2689 "ps-parser.jay" { yyVal = Operator.OpType.LessThan; } break; case 290: #line 2690 "ps-parser.jay" { yyVal = Operator.OpType.GreaterThanOrEqual; } break; case 291: #line 2691 "ps-parser.jay" { yyVal = Operator.OpType.LessThanOrEqual; } break; case 292: #line 2692 "ps-parser.jay" { yyVal = Operator.OpType.AsIn; } break; case 293: #line 2699 "ps-parser.jay" { valid_param_mod = ParameterModifierType.DefaultValue; } break; case 294: case_294(); break; case 295: #line 2718 "ps-parser.jay" { valid_param_mod = ParameterModifierType.DefaultValue; } break; case 296: case_296(); break; case 297: case_297(); break; case 298: case_298(); break; case 299: case_299(); break; case 300: case_300(); break; case 301: case_301(); break; case 302: case_302(); break; case 303: case_303(); break; case 304: case_304(); break; case 305: case_305(); break; case 307: #line 2985 "ps-parser.jay" { ++lexer.parsing_block; } break; case 308: case_308(); break; case 311: #line 3002 "ps-parser.jay" { current_event_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]); } break; case 312: #line 3006 "ps-parser.jay" { current_event_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]); } break; case 313: case_313(); break; case 314: #line 3019 "ps-parser.jay" { ++lexer.parsing_block; } break; case 315: case_315(); break; case 316: case_316(); break; case 317: #line 3044 "ps-parser.jay" { yyVal = yyVals[0+yyTop]; } break; case 320: case_320(); break; case 321: case_321(); break; case 322: case_322(); break; case 323: case_323(); break; case 324: case_324(); break; case 325: case_325(); break; case 326: case_326(); break; case 327: case_327(); break; case 329: case_329(); break; case 330: case_330(); break; case 331: case_331(); break; case 332: case_332(); break; case 333: case_333(); break; case 335: case_335(); break; case 336: case_336(); break; case 339: #line 3208 "ps-parser.jay" { lbag.AddLocation (yyVals[-1+yyTop], GetLocation (yyVals[0+yyTop])); } break; case 341: case_341(); break; case 342: case_342(); break; case 343: case_343(); break; case 344: case_344(); break; case 345: case_345(); break; case 347: #line 3282 "ps-parser.jay" { valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out | ParameterModifierType.Params | ParameterModifierType.DefaultValue; } break; case 348: case_348(); break; case 349: #line 3301 "ps-parser.jay" { lexer.ConstraintsParsing = false; } break; case 350: case_350(); break; case 351: case_351(); break; case 354: case_354(); break; case 356: case_356(); break; case 359: case_359(); break; case 360: case_360(); break; case 362: case_362(); break; case 363: case_363(); break; case 364: case_364(); break; case 365: case_365(); break; case 366: #line 3437 "ps-parser.jay" { lexer.parsing_generic_declaration = true; } break; case 367: case_367(); break; case 368: case_368(); break; case 370: case_370(); break; case 371: case_371(); break; case 372: case_372(); break; case 373: case_373(); break; case 374: case_374(); break; case 376: case_376(); break; case 377: case_377(); break; case 378: case_378(); break; case 379: case_379(); break; case 380: case_380(); break; case 382: #line 3555 "ps-parser.jay" { yyVal = new TypeExpression (compiler.BuiltinTypes.Void, GetLocation (yyVals[0+yyTop])); } break; case 383: #line 3562 "ps-parser.jay" { lexer.parsing_generic_declaration = true; } break; case 385: case_385(); break; case 387: case_387(); break; case 389: case_389(); break; case 391: case_391(); break; case 392: case_392(); break; case 393: #line 3620 "ps-parser.jay" { yyVal = new TypeExpression (compiler.BuiltinTypes.Dynamic, GetLocation (yyVals[0+yyTop])); } break; case 394: case_394(); break; case 395: case_395(); break; case 396: case_396(); break; case 397: case_397(); break; case 398: #line 3673 "ps-parser.jay" { CheckIsPlayScript("decimal", GetLocation(yyVals[0+yyTop])); yyVal = new TypeExpression (compiler.BuiltinTypes.Decimal, GetLocation (yyVals[0+yyTop])); } break; case 399: #line 3674 "ps-parser.jay" { CheckIsPlayScript("float", GetLocation(yyVals[0+yyTop])); yyVal = new TypeExpression (compiler.BuiltinTypes.Float, GetLocation (yyVals[0+yyTop])); } break; case 400: #line 3678 "ps-parser.jay" { CheckIsPlayScript("double", GetLocation(yyVals[0+yyTop])); yyVal = new TypeExpression (compiler.BuiltinTypes.Double, GetLocation (yyVals[0+yyTop])); } break; case 402: #line 3686 "ps-parser.jay" { CheckIsPlayScript("sbyte", GetLocation(yyVals[0+yyTop])); yyVal = new TypeExpression (compiler.BuiltinTypes.SByte, GetLocation (yyVals[0+yyTop])); } break; case 403: #line 3687 "ps-parser.jay" { CheckIsPlayScript("byte", GetLocation(yyVals[0+yyTop])); yyVal = new TypeExpression (compiler.BuiltinTypes.Byte, GetLocation (yyVals[0+yyTop])); } break; case 404: #line 3688 "ps-parser.jay" { CheckIsPlayScript("short", GetLocation(yyVals[0+yyTop])); yyVal = new TypeExpression (compiler.BuiltinTypes.Short, GetLocation (yyVals[0+yyTop])); } break; case 405: #line 3689 "ps-parser.jay" { CheckIsPlayScript("ushort", GetLocation(yyVals[0+yyTop])); yyVal = new TypeExpression (compiler.BuiltinTypes.UShort, GetLocation (yyVals[0+yyTop])); } break; case 406: #line 3690 "ps-parser.jay" { yyVal = new TypeExpression (compiler.BuiltinTypes.Int, GetLocation (yyVals[0+yyTop])); } break; case 407: #line 3691 "ps-parser.jay" { yyVal = new TypeExpression (compiler.BuiltinTypes.UInt, GetLocation (yyVals[0+yyTop])); } break; case 408: #line 3692 "ps-parser.jay" { CheckIsPlayScript("long", GetLocation(yyVals[0+yyTop])); yyVal = new TypeExpression (compiler.BuiltinTypes.Long, GetLocation (yyVals[0+yyTop])); } break; case 409: #line 3693 "ps-parser.jay" { CheckIsPlayScript("ulong", GetLocation(yyVals[0+yyTop])); yyVal = new TypeExpression (compiler.BuiltinTypes.ULong, GetLocation (yyVals[0+yyTop])); } break; case 410: #line 3694 "ps-parser.jay" { CheckIsPlayScript("char", GetLocation(yyVals[0+yyTop])); yyVal = new TypeExpression (compiler.BuiltinTypes.Char, GetLocation (yyVals[0+yyTop])); } break; case 428: case_428(); break; case 429: case_429(); break; case 433: #line 3745 "ps-parser.jay" { yyVal = new AsUndefinedLiteral (GetLocation (yyVals[0+yyTop])); } break; case 434: #line 3746 "ps-parser.jay" { yyVal = new NullLiteral (GetLocation (yyVals[0+yyTop])); } break; case 435: #line 3750 "ps-parser.jay" { yyVal = new BoolLiteral (compiler.BuiltinTypes, true, GetLocation (yyVals[0+yyTop])); } break; case 436: #line 3751 "ps-parser.jay" { yyVal = new BoolLiteral (compiler.BuiltinTypes, false, GetLocation (yyVals[0+yyTop])); } break; case 441: case_441(); break; case 442: #line 3784 "ps-parser.jay" { yyVal = new ParenthesizedExpression ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop])); } break; case 443: case_443(); break; case 444: case_444(); break; case 445: case_445(); break; case 446: case_446(); break; case 447: case_447(); break; case 448: case_448(); break; case 449: case_449(); break; case 450: case_450(); break; case 451: case_451(); break; case 452: case_452(); break; case 453: case_453(); break; case 454: #line 3877 "ps-parser.jay" { yyVal = new CompletionMemberAccess ((Expression) yyVals[-2+yyTop], null,GetLocation (yyVals[0+yyTop])); } break; case 455: case_455(); break; case 456: #line 3885 "ps-parser.jay" { yyVal = new CompletionMemberAccess ((Expression) yyVals[-2+yyTop], null, lexer.Location); } break; case 457: case_457(); break; case 458: case_458(); break; case 459: case_459(); break; case 460: case_460(); break; case 461: case_461(); break; case 462: case_462(); break; case 463: case_463(); break; case 464: case_464(); break; case 465: case_465(); break; case 466: case_466(); break; case 468: #line 3984 "ps-parser.jay" { yyVal = null; } break; case 469: #line 3988 "ps-parser.jay" { yyVal = yyVals[0+yyTop]; } break; case 470: case_470(); break; case 471: case_471(); break; case 472: case_472(); break; case 473: case_473(); break; case 474: case_474(); break; case 475: case_475(); break; case 476: #line 4044 "ps-parser.jay" { yyVal = new CompletionElementInitializer (null, GetLocation (yyVals[0+yyTop])); } break; case 478: #line 4071 "ps-parser.jay" { yyVal = null; } break; case 480: case_480(); break; case 481: case_481(); break; case 482: case_482(); break; case 483: case_483(); break; case 484: case_484(); break; case 485: #line 4122 "ps-parser.jay" { yyVal = new Argument ((Expression) yyVals[0+yyTop]); } break; case 489: case_489(); break; case 490: case_490(); break; case 492: case_492(); break; case 493: case_493(); break; case 494: case_494(); break; case 495: case_495(); break; case 496: case_496(); break; case 497: case_497(); break; case 498: case_498(); break; case 499: case_499(); break; case 500: case_500(); break; case 501: case_501(); break; case 502: case_502(); break; case 503: #line 4240 "ps-parser.jay" { yyVal = new Argument ((Expression) yyVals[0+yyTop]); } break; case 505: #line 4248 "ps-parser.jay" { yyVal = new This (GetLocation (yyVals[0+yyTop])); } break; case 506: case_506(); break; case 507: case_507(); break; case 508: #line 4268 "ps-parser.jay" { yyVal = new UnaryMutator (UnaryMutator.Mode.PostIncrement, (Expression) yyVals[-1+yyTop], GetLocation (yyVals[0+yyTop])); } break; case 509: #line 4275 "ps-parser.jay" { yyVal = new UnaryMutator (UnaryMutator.Mode.PostDecrement, (Expression) yyVals[-1+yyTop], GetLocation (yyVals[0+yyTop])); } break; case 510: #line 4339 "ps-parser.jay" { yyVal = new AsNew ((Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } break; case 511: #line 4343 "ps-parser.jay" { yyVal = new AsNew ((Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } break; case 512: #line 4347 "ps-parser.jay" { yyVal = new AsNew ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop])); } break; case 513: case_513(); break; case 515: case_515(); break; case 516: case_516(); break; case 517: case_517(); break; case 518: #line 4451 "ps-parser.jay" { yyVal = 2; } break; case 519: #line 4455 "ps-parser.jay" { yyVal = ((int) yyVals[-1+yyTop]) + 1; } break; case 520: case_520(); break; case 521: case_521(); break; case 522: case_522(); break; case 523: case_523(); break; case 524: #line 4514 "ps-parser.jay" { Lexer.AutoSemiInsertion = (bool) oob_stack.Pop (); } break; case 525: case_525(); break; case 526: case_526(); break; case 529: case_529(); break; case 530: case_530(); break; case 531: case_531(); break; case 532: case_532(); break; case 533: case_533(); break; case 534: case_534(); break; case 535: case_535(); break; case 536: case_536(); break; case 537: case_537(); break; case 538: case_538(); break; case 539: case_539(); break; case 540: case_540(); break; case 541: #line 4673 "ps-parser.jay" { valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out; } break; case 542: case_542(); break; case 543: #line 4682 "ps-parser.jay" { yyVal = end_anonymous ((ParametersBlock) yyVals[0+yyTop]); } break; case 544: #line 4686 "ps-parser.jay" { valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out; } break; case 545: case_545(); break; case 546: #line 4695 "ps-parser.jay" { yyVal = end_anonymous ((ParametersBlock) yyVals[0+yyTop]); } break; case 547: #line 4702 "ps-parser.jay" { valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out; } break; case 548: case_548(); break; case 549: case_549(); break; case 550: #line 4723 "ps-parser.jay" { valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out; } break; case 551: case_551(); break; case 552: case_552(); break; case 553: case_553(); break; case 555: #line 4773 "ps-parser.jay" { yyVal = new Unary (Unary.Operator.LogicalNot, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } break; case 556: #line 4777 "ps-parser.jay" { yyVal = new Unary (Unary.Operator.OnesComplement, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } break; case 557: case_557(); break; case 558: #line 4807 "ps-parser.jay" { yyVal = new Unary (Unary.Operator.AsE4xAttribute, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } break; case 559: #line 4811 "ps-parser.jay" { yyVal = new AsTypeOf ((Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } break; case 560: case_560(); break; case 561: case_561(); break; case 562: case_562(); break; case 563: case_563(); break; case 564: case_564(); break; case 565: case_565(); break; case 566: case_566(); break; case 568: #line 4875 "ps-parser.jay" { yyVal = new Unary (Unary.Operator.UnaryPlus, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } break; case 569: #line 4879 "ps-parser.jay" { yyVal = new Unary (Unary.Operator.UnaryNegation, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } break; case 570: #line 4883 "ps-parser.jay" { yyVal = new UnaryMutator (UnaryMutator.Mode.PreIncrement, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } break; case 571: #line 4887 "ps-parser.jay" { yyVal = new UnaryMutator (UnaryMutator.Mode.PreDecrement, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } break; case 572: #line 4895 "ps-parser.jay" { yyVal = new Unary (Unary.Operator.AddressOf, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } break; case 573: case_573(); break; case 574: case_574(); break; case 575: case_575(); break; case 576: case_576(); break; case 577: case_577(); break; case 579: case_579(); break; case 580: case_580(); break; case 581: case_581(); break; case 582: case_582(); break; case 583: case_583(); break; case 584: case_584(); break; case 586: case_586(); break; case 587: case_587(); break; case 588: #line 4989 "ps-parser.jay" { yyVal = new AsIn ((Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } break; case 589: #line 4993 "ps-parser.jay" { yyVal = new As ((Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } break; case 590: #line 4997 "ps-parser.jay" { yyVal = new Is ((Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } break; case 591: case_591(); break; case 592: case_592(); break; case 593: case_593(); break; case 594: case_594(); break; case 595: case_595(); break; case 597: case_597(); break; case 598: case_598(); break; case 599: case_599(); break; case 600: case_600(); break; case 601: case_601(); break; case 602: case_602(); break; case 604: case_604(); break; case 605: case_605(); break; case 606: case_606(); break; case 607: case_607(); break; case 608: case_608(); break; case 609: case_609(); break; case 610: case_610(); break; case 611: case_611(); break; case 613: case_613(); break; case 614: case_614(); break; case 615: case_615(); break; case 616: case_616(); break; case 618: case_618(); break; case 619: case_619(); break; case 621: case_621(); break; case 622: case_622(); break; case 624: case_624(); break; case 625: case_625(); break; case 627: case_627(); break; case 628: case_628(); break; case 630: case_630(); break; case 631: case_631(); break; case 633: case_633(); break; case 635: case_635(); break; case 636: case_636(); break; case 637: case_637(); break; case 638: case_638(); break; case 639: case_639(); break; case 640: case_640(); break; case 641: case_641(); break; case 642: case_642(); break; case 643: case_643(); break; case 644: case_644(); break; case 645: case_645(); break; case 646: case_646(); break; case 647: case_647(); break; case 648: case_648(); break; case 649: case_649(); break; case 650: case_650(); break; case 651: case_651(); break; case 652: case_652(); break; case 653: case_653(); break; case 654: case_654(); break; case 655: case_655(); break; case 656: case_656(); break; case 657: case_657(); break; case 658: #line 5397 "ps-parser.jay" { yyVal = ParametersCompiled.EmptyReadOnlyParameters; } break; case 659: case_659(); break; case 660: #line 5408 "ps-parser.jay" { start_block (Location.Null); } break; case 661: case_661(); break; case 663: case_663(); break; case 665: case_665(); break; case 666: case_666(); break; case 667: case_667(); break; case 668: case_668(); break; case 669: case_669(); break; case 670: case_670(); break; case 671: case_671(); break; case 672: #line 5478 "ps-parser.jay" { valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out; } break; case 673: case_673(); break; case 674: case_674(); break; case 675: #line 5493 "ps-parser.jay" { valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out; } break; case 676: case_676(); break; case 677: case_677(); break; case 684: #line 5548 "ps-parser.jay" { yyVal = new BooleanExpression ((Expression) yyVals[0+yyTop]); } break; case 685: #line 5561 "ps-parser.jay" { lexer.AutoSemiInsertion = false; } break; case 686: case_686(); break; case 687: case_687(); break; case 688: #line 5596 "ps-parser.jay" { lexer.AutoSemiInsertion = true; } break; case 689: case_689(); break; case 690: case_690(); break; case 691: #line 5617 "ps-parser.jay" { yyVal = null; } break; case 692: #line 5619 "ps-parser.jay" { yyVal = yyVals[0+yyTop]; StoreModifierLocation (Modifiers.PARTIAL, GetLocation (yyVals[0+yyTop])); } break; case 693: case_693(); break; case 694: #line 5632 "ps-parser.jay" { lexer.parsing_modifiers = false; } break; case 696: case_696(); break; case 697: case_697(); break; case 698: case_698(); break; case 699: case_699(); break; case 700: case_700(); break; case 701: case_701(); break; case 702: case_702(); break; case 703: case_703(); break; case 704: case_704(); break; case 705: case_705(); break; case 706: case_706(); break; case 707: case_707(); break; case 708: case_708(); break; case 709: case_709(); break; case 710: case_710(); break; case 711: case_711(); break; case 712: case_712(); break; case 713: case_713(); break; case 715: #line 5753 "ps-parser.jay" { current_type.AddBaseForPart ((FullNamedExpression) yyVals[0+yyTop]); } break; case 716: case_716(); break; case 718: #line 5767 "ps-parser.jay" { current_type.AddBasesForPart ((List<FullNamedExpression>) yyVals[0+yyTop]); } break; case 719: case_719(); break; case 721: #line 5781 "ps-parser.jay" { yyVal = yyVals[0+yyTop]; } break; case 722: case_722(); break; case 723: case_723(); break; case 724: case_724(); break; case 725: case_725(); break; case 726: case_726(); break; case 727: case_727(); break; case 728: case_728(); break; case 729: case_729(); break; case 730: #line 5873 "ps-parser.jay" { yyVal = new SpecialContraintExpr (SpecialConstraint.Class, GetLocation (yyVals[0+yyTop])); } break; case 731: #line 5877 "ps-parser.jay" { yyVal = new SpecialContraintExpr (SpecialConstraint.Struct, GetLocation (yyVals[0+yyTop])); } break; case 732: #line 5884 "ps-parser.jay" { yyVal = Variance.None; } break; case 733: case_733(); break; case 734: #line 5898 "ps-parser.jay" { yyVal = Variance.Covariant; } break; case 735: #line 5902 "ps-parser.jay" { yyVal = Variance.Contravariant; } break; case 736: case_736(); break; case 737: #line 5928 "ps-parser.jay" { yyVal = yyVals[0+yyTop]; } break; case 738: case_738(); break; case 739: case_739(); break; case 741: case_741(); break; case 742: case_742(); break; case 743: case_743(); break; case 744: case_744(); break; case 745: case_745(); break; case 750: #line 6008 "ps-parser.jay" { current_block.AddStatement ((Statement) yyVals[0+yyTop]); } break; case 751: #line 6012 "ps-parser.jay" { current_block.AddStatement ((Statement) yyVals[0+yyTop]); } break; case 753: case_753(); break; case 756: #line 6036 "ps-parser.jay" { current_block.AddStatement ((Statement) yyVals[0+yyTop]); } break; case 757: #line 6040 "ps-parser.jay" { current_block.AddStatement ((Statement) yyVals[0+yyTop]); } break; case 788: case_788(); break; case 789: case_789(); break; case 790: case_790(); break; case 791: case_791(); break; case 792: case_792(); break; case 794: case_794(); break; case 796: case_796(); break; case 797: case_797(); break; case 798: case_798(); break; case 799: case_799(); break; case 801: case_801(); break; case 802: #line 6246 "ps-parser.jay" { Lexer.AutoSemiInsertion = true; } break; case 803: case_803(); break; case 804: case_804(); break; case 805: case_805(); break; case 806: case_806(); break; case 807: case_807(); break; case 808: case_808(); break; case 810: case_810(); break; case 811: case_811(); break; case 815: case_815(); break; case 818: case_818(); break; case 819: case_819(); break; case 820: case_820(); break; case 821: case_821(); break; case 822: #line 6372 "ps-parser.jay" { report.Error (145, lexer.Location, "A const field requires a value to be provided"); } break; case 823: #line 6376 "ps-parser.jay" { current_variable.Initializer = (Expression) yyVals[0+yyTop]; } break; case 828: case_828(); break; case 830: case_830(); break; case 831: #line 6421 "ps-parser.jay" { yyVal = yyVals[-1+yyTop]; } break; case 832: case_832(); break; case 833: #line 6431 "ps-parser.jay" { yyVal = yyVals[-1+yyTop]; } break; case 834: #line 6432 "ps-parser.jay" { yyVal = yyVals[-1+yyTop]; } break; case 835: #line 6443 "ps-parser.jay" { yyVal = ConvertExpressionToStatement((Expression)yyVals[0+yyTop]); } break; case 836: case_836(); break; case 837: case_837(); break; case 840: #line 6471 "ps-parser.jay" { Lexer.AutoSemiInsertionAfter = 1; } break; case 841: #line 6478 "ps-parser.jay" { Lexer.AutoSemiInsertionAfter = 1; } break; case 842: case_842(); break; case 843: case_843(); break; case 844: case_844(); break; case 845: case_845(); break; case 846: case_846(); break; case 847: case_847(); break; case 848: case_848(); break; case 850: case_850(); break; case 851: case_851(); break; case 852: case_852(); break; case 853: #line 6567 "ps-parser.jay" { current_block = current_block.CreateSwitchBlock (lexer.Location); } break; case 854: #line 6571 "ps-parser.jay" { yyVal = new SwitchSection ((List<SwitchLabel>) yyVals[-2+yyTop], current_block); } break; case 855: case_855(); break; case 856: case_856(); break; case 857: case_857(); break; case 858: case_858(); break; case 859: case_859(); break; case 864: case_864(); break; case 865: case_865(); break; case 866: #line 6639 "ps-parser.jay" { Lexer.AutoSemiInsertionAfter = 1; } break; case 867: #line 6646 "ps-parser.jay" { Lexer.AutoSemiInsertion = true; } break; case 868: case_868(); break; case 869: case_869(); break; case 870: case_870(); break; case 871: case_871(); break; case 872: case_872(); break; case 873: #line 6695 "ps-parser.jay" { lexer.ForInParsing = false; } break; case 874: case_874(); break; case 875: case_875(); break; case 876: case_876(); break; case 877: case_877(); break; case 878: case_878(); break; case 879: #line 6782 "ps-parser.jay" { yyVal = new Tuple<Location,Location> (GetLocation (yyVals[-2+yyTop]), (Location) yyVals[0+yyTop]); } break; case 880: case_880(); break; case 881: case_881(); break; case 882: case_882(); break; case 884: #line 6812 "ps-parser.jay" { lexer.putback ('}'); } break; case 885: #line 6816 "ps-parser.jay" { yyVal = new EmptyStatement (lexer.Location); } break; case 887: case_887(); break; case 888: case_888(); break; case 889: #line 6836 "ps-parser.jay" { } break; case 890: #line 6840 "ps-parser.jay" { yyVal = null; } break; case 892: #line 6845 "ps-parser.jay" { yyVal = new EmptyStatement (lexer.Location); } break; case 896: case_896(); break; case 897: #line 6874 "ps-parser.jay" { lexer.ForInParsing = true; } break; case 898: #line 6878 "ps-parser.jay" { lexer.ForInParsing = false; } break; case 899: case_899(); break; case 900: case_900(); break; case 908: case_908(); break; case 909: case_909(); break; case 910: case_910(); break; case 911: case_911(); break; case 912: case_912(); break; case 913: case_913(); break; case 914: case_914(); break; case 915: case_915(); break; case 916: case_916(); break; case 917: case_917(); break; case 918: case_918(); break; case 919: case_919(); break; case 920: case_920(); break; case 921: case_921(); break; case 924: #line 7064 "ps-parser.jay" { yyVal = new TryCatch ((Block) yyVals[-1+yyTop], (List<Catch>) yyVals[0+yyTop], GetLocation (yyVals[-2+yyTop]), false); } break; case 925: case_925(); break; case 926: case_926(); break; case 927: case_927(); break; case 928: case_928(); break; case 929: case_929(); break; case 932: #line 7113 "ps-parser.jay" { yyVal = new Catch ((Block) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } break; case 933: case_933(); break; case 934: #line 7131 "ps-parser.jay" { yyVal = yyVals[-1+yyTop]; } break; case 935: case_935(); break; case 936: case_936(); break; case 937: #line 7167 "ps-parser.jay" { yyVal = new Checked ((Block) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } break; case 938: #line 7174 "ps-parser.jay" { yyVal = new Unchecked ((Block) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } break; case 939: case_939(); break; case 940: #line 7184 "ps-parser.jay" { yyVal = new Unsafe ((Block) yyVals[0+yyTop], GetLocation (yyVals[-2+yyTop])); } break; case 941: case_941(); break; case 942: case_942(); break; case 943: case_943(); break; case 944: case_944(); break; case 945: case_945(); break; case 946: case_946(); break; case 947: case_947(); break; case 948: case_948(); break; case 949: case_949(); break; case 950: case_950(); break; case 952: case_952(); break; case 953: #line 7295 "ps-parser.jay" { Error_MissingInitializer (lexer.Location); } break; case 954: case_954(); break; case 955: case_955(); break; case 956: case_956(); break; case 957: case_957(); break; case 958: case_958(); break; case 959: case_959(); break; case 960: case_960(); break; case 961: case_961(); break; case 962: case_962(); break; case 963: #line 7408 "ps-parser.jay" { current_block = new Linq.QueryBlock (current_block, lexer.Location); } break; case 964: case_964(); break; case 965: #line 7423 "ps-parser.jay" { current_block = new Linq.QueryBlock (current_block, lexer.Location); } break; case 966: case_966(); break; case 967: case_967(); break; case 968: case_968(); break; case 970: case_970(); break; case 971: case_971(); break; case 972: #line 7485 "ps-parser.jay" { current_block = new Linq.QueryBlock (current_block, lexer.Location); } break; case 973: case_973(); break; case 974: case_974(); break; case 975: case_975(); break; case 976: case_976(); break; case 978: case_978(); break; case 984: #line 7539 "ps-parser.jay" { current_block = new Linq.QueryBlock (current_block, lexer.Location); } break; case 985: case_985(); break; case 986: #line 7558 "ps-parser.jay" { current_block = new Linq.QueryBlock (current_block, lexer.Location); } break; case 987: case_987(); break; case 988: case_988(); break; case 989: case_989(); break; case 990: case_990(); break; case 991: case_991(); break; case 992: case_992(); break; case 993: case_993(); break; case 994: case_994(); break; case 995: case_995(); break; case 997: #line 7702 "ps-parser.jay" { yyVal = yyVals[0+yyTop]; } break; case 998: #line 7709 "ps-parser.jay" { current_block = new Linq.QueryBlock (current_block, lexer.Location); } break; case 999: case_999(); break; case 1001: case_1001(); break; case 1002: case_1002(); break; case 1004: case_1004(); break; case 1005: case_1005(); break; case 1006: #line 7755 "ps-parser.jay" { yyVal = new Linq.OrderByAscending ((Linq.QueryBlock) current_block, (Expression)yyVals[0+yyTop]); } break; case 1007: case_1007(); break; case 1008: case_1008(); break; case 1009: #line 7772 "ps-parser.jay" { yyVal = new Linq.ThenByAscending ((Linq.QueryBlock) current_block, (Expression)yyVals[0+yyTop]); } break; case 1010: case_1010(); break; case 1011: case_1011(); break; case 1013: case_1013(); break; case 1014: case_1014(); break; case 1017: case_1017(); break; case 1018: case_1018(); break; case 1024: #line 7897 "ps-parser.jay" { module.DocumentationBuilder.ParsedName = (MemberName) yyVals[0+yyTop]; } break; case 1025: #line 7904 "ps-parser.jay" { module.DocumentationBuilder.ParsedParameters = (List<DocumentationParameter>)yyVals[0+yyTop]; } break; case 1026: case_1026(); break; case 1027: case_1027(); break; case 1028: #line 7921 "ps-parser.jay" { yyVal = new MemberName ((MemberName) yyVals[-2+yyTop], MemberCache.IndexerNameAlias, Location.Null); } break; case 1029: #line 7925 "ps-parser.jay" { valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out; } break; case 1030: case_1030(); break; case 1031: case_1031(); break; case 1032: case_1032(); break; case 1033: case_1033(); break; case 1035: #line 7961 "ps-parser.jay" { yyVal = new MemberName (((MemberName) yyVals[-2+yyTop]), (MemberName) yyVals[0+yyTop]); } break; case 1037: #line 7969 "ps-parser.jay" { valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out; } break; case 1038: #line 7973 "ps-parser.jay" { yyVal = yyVals[-1+yyTop]; } break; case 1039: #line 7980 "ps-parser.jay" { yyVal = new List<DocumentationParameter> (0); } break; case 1041: case_1041(); break; case 1042: case_1042(); break; case 1043: case_1043(); break; #line default } yyTop -= yyLen[yyN]; yyState = yyStates[yyTop]; int yyM = yyLhs[yyN]; if (yyState == 0 && yyM == 0) { //t if (debug != null) debug.shift(0, yyFinal); yyState = yyFinal; if (yyToken < 0) { yyToken = yyLex.advance() ? yyLex.token() : 0; //t if (debug != null) //t debug.lex(yyState, yyToken,yyname(yyToken), yyLex.value()); } if (yyToken == 0) { //t if (debug != null) debug.accept(yyVal); return yyVal; } goto continue_yyLoop; } if (((yyN = yyGindex[yyM]) != 0) && ((yyN += yyState) >= 0) && (yyN < yyTable.Length) && (yyCheck[yyN] == yyState)) yyState = yyTable[yyN]; else yyState = yyDgoto[yyM]; //t if (debug != null) debug.shift(yyStates[yyTop], yyState); goto continue_yyLoop; continue_yyDiscarded: ; // implements the named-loop continue: 'continue yyDiscarded' } continue_yyLoop: ; // implements the named-loop continue: 'continue yyLoop' } }