/** 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 5:
#line 374 "cs-parser.jay"
{ Lexer.CompleteOnEOF = false; }
break;
case 7:
#line 381 "cs-parser.jay"
{
Lexer.check_incorrect_doc_comment ();
}
break;
case 8:
#line 385 "cs-parser.jay"
{
Lexer.check_incorrect_doc_comment ();
}
break;
case 16:
case_16();
break;
case 17:
#line 421 "cs-parser.jay"
{
syntax_error (GetLocation (yyVals[-1+yyTop]), "`alias' expected"); /* TODO: better*/
}
break;
case 20:
case_20();
break;
case 21:
case_21();
break;
case 22:
case_22();
break;
case 23:
case_23();
break;
case 24:
case_24();
break;
case 25:
case_25();
break;
case 26:
case_26();
break;
case 27:
case_27();
break;
case 28:
case_28();
break;
case 29:
case_29();
break;
case 34:
case_34();
break;
case 35:
case_35();
break;
case 36:
#line 546 "cs-parser.jay"
{
ubag.CloseNamespace (GetLocation (yyVals[-2+yyTop]));
}
break;
case 45:
case_45();
break;
case 46:
#line 583 "cs-parser.jay"
{
current_namespace.DeclarationFound = true;
}
break;
case 47:
#line 587 "cs-parser.jay"
{
Report.Error (116, ((MemberCore) yyVals[0+yyTop]).Location, "A namespace can only contain types and namespace declarations");
}
break;
case 48:
#line 590 "cs-parser.jay"
{
Report.Error (116, ((MemberCore) yyVals[0+yyTop]).Location, "A namespace can only contain types and namespace declarations");
}
break;
case 49:
#line 594 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
}
break;
case 55:
case_55();
break;
case 56:
case_56();
break;
case 57:
case_57();
break;
case 58:
case_58();
break;
case 59:
case_59();
break;
case 60:
#line 715 "cs-parser.jay"
{
yyVal = yyVals[-2+yyTop];
}
break;
case 61:
#line 719 "cs-parser.jay"
{
yyVal = yyVals[-2+yyTop];
}
break;
case 62:
case_62();
break;
case 63:
case_63();
break;
case 64:
#line 736 "cs-parser.jay"
{ yyVal = "event"; }
break;
case 65:
#line 737 "cs-parser.jay"
{ yyVal = "return"; }
break;
case 66:
case_66();
break;
case 67:
#line 749 "cs-parser.jay"
{
yyVal = new List<Attribute> (4) { (Attribute) yyVals[0+yyTop] };
}
break;
case 68:
case_68();
break;
case 69:
#line 763 "cs-parser.jay"
{
++lexer.parsing_block;
}
break;
case 70:
case_70();
break;
case 71:
#line 788 "cs-parser.jay"
{ /* reserved attribute name or identifier: 17.4 */ }
break;
case 72:
#line 792 "cs-parser.jay"
{ yyVal = null; }
break;
case 73:
#line 796 "cs-parser.jay"
{
yyVal = yyVals[-1+yyTop];
}
break;
case 74:
#line 801 "cs-parser.jay"
{ yyVal = null; }
break;
case 75:
case_75();
break;
case 76:
case_76();
break;
case 77:
case_77();
break;
case 78:
case_78();
break;
case 79:
#line 845 "cs-parser.jay"
{
yyVal = new Argument ((Expression) yyVals[0+yyTop]);
}
break;
case 81:
#line 853 "cs-parser.jay"
{
++lexer.parsing_block;
}
break;
case 82:
case_82();
break;
case 83:
case_83();
break;
case 84:
#line 877 "cs-parser.jay"
{ yyVal = null; }
break;
case 85:
#line 881 "cs-parser.jay"
{
yyVal = Argument.AType.Ref;
}
break;
case 86:
#line 885 "cs-parser.jay"
{
yyVal = Argument.AType.Out;
}
break;
case 101:
case_101();
break;
case 102:
#line 926 "cs-parser.jay"
{
lexer.ConstraintsParsing = true;
}
break;
case 103:
case_103();
break;
case 104:
case_104();
break;
case 105:
case_105();
break;
case 106:
case_106();
break;
case 107:
#line 958 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
}
break;
case 108:
case_108();
break;
case 109:
#line 970 "cs-parser.jay"
{
lbag.AppendToMember (current_class, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[0+yyTop]));
}
break;
case 124:
case_124();
break;
case 125:
case_125();
break;
case 128:
#line 1039 "cs-parser.jay"
{
current_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]);
}
break;
case 129:
#line 1043 "cs-parser.jay"
{
current_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]);
}
break;
case 130:
case_130();
break;
case 131:
#line 1059 "cs-parser.jay"
{
++lexer.parsing_block;
}
break;
case 132:
case_132();
break;
case 133:
case_133();
break;
case 136:
case_136();
break;
case 137:
case_137();
break;
case 138:
case_138();
break;
case 139:
case_139();
break;
case 140:
#line 1137 "cs-parser.jay"
{
Report.Error (1641, GetLocation (yyVals[-1+yyTop]), "A fixed size buffer field must have the array size specifier after the field name");
}
break;
case 142:
case_142();
break;
case 143:
case_143();
break;
case 146:
#line 1167 "cs-parser.jay"
{
current_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]);
}
break;
case 147:
#line 1171 "cs-parser.jay"
{
current_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]);
}
break;
case 148:
case_148();
break;
case 149:
#line 1184 "cs-parser.jay"
{
++lexer.parsing_block;
}
break;
case 150:
case_150();
break;
case 153:
#line 1203 "cs-parser.jay"
{
current_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]);
}
break;
case 154:
#line 1207 "cs-parser.jay"
{
current_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]);
}
break;
case 155:
case_155();
break;
case 156:
#line 1223 "cs-parser.jay"
{
++lexer.parsing_block;
}
break;
case 157:
case_157();
break;
case 158:
case_158();
break;
case 161:
case_161();
break;
case 162:
case_162();
break;
case 163:
case_163();
break;
case 164:
#line 1277 "cs-parser.jay"
{
valid_param_mod = ParameterModifierType.All;
}
break;
case 165:
#line 1281 "cs-parser.jay"
{
lexer.ConstraintsParsing = true;
}
break;
case 166:
case_166();
break;
case 167:
#line 1322 "cs-parser.jay"
{
valid_param_mod = ParameterModifierType.All;
}
break;
case 168:
#line 1326 "cs-parser.jay"
{
lexer.ConstraintsParsing = true;
}
break;
case 169:
case_169();
break;
case 170:
case_170();
break;
case 172:
#line 1402 "cs-parser.jay"
{ yyVal = null; }
break;
case 173:
#line 1406 "cs-parser.jay"
{ yyVal = ParametersCompiled.EmptyReadOnlyParameters; }
break;
case 175:
case_175();
break;
case 176:
case_176();
break;
case 177:
case_177();
break;
case 178:
case_178();
break;
case 179:
case_179();
break;
case 180:
case_180();
break;
case 181:
case_181();
break;
case 182:
#line 1465 "cs-parser.jay"
{
yyVal = new ParametersCompiled (new Parameter[] { (Parameter) yyVals[0+yyTop] } );
}
break;
case 183:
#line 1469 "cs-parser.jay"
{
yyVal = new ParametersCompiled (new Parameter [] { new ArglistParameter (GetLocation (yyVals[0+yyTop])) }, true);
}
break;
case 184:
case_184();
break;
case 185:
case_185();
break;
case 186:
case_186();
break;
case 187:
case_187();
break;
case 188:
case_188();
break;
case 189:
case_189();
break;
case 190:
#line 1544 "cs-parser.jay"
{
++lexer.parsing_block;
}
break;
case 191:
case_191();
break;
case 192:
#line 1585 "cs-parser.jay"
{ yyVal = Parameter.Modifier.NONE; }
break;
case 194:
case_194();
break;
case 195:
case_195();
break;
case 196:
case_196();
break;
case 197:
case_197();
break;
case 198:
case_198();
break;
case 199:
case_199();
break;
case 200:
case_200();
break;
case 201:
case_201();
break;
case 202:
case_202();
break;
case 203:
case_203();
break;
case 204:
#line 1683 "cs-parser.jay"
{
Error_DuplicateParameterModifier (GetLocation (yyVals[-1+yyTop]), Parameter.Modifier.PARAMS);
}
break;
case 205:
case_205();
break;
case 206:
case_206();
break;
case 207:
case_207();
break;
case 208:
case_208();
break;
case 209:
case_209();
break;
case 210:
#line 1736 "cs-parser.jay"
{
valid_param_mod = ParameterModifierType.Params | ParameterModifierType.DefaultValue;
}
break;
case 211:
case_211();
break;
case 212:
#line 1766 "cs-parser.jay"
{
lexer.PropertyParsing = false;
}
break;
case 213:
case_213();
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 224:
case_224();
break;
case 225:
case_225();
break;
case 226:
#line 1908 "cs-parser.jay"
{
lexer.ConstraintsParsing = true;
}
break;
case 227:
case_227();
break;
case 228:
case_228();
break;
case 229:
case_229();
break;
case 230:
case_230();
break;
case 231:
#line 1941 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
}
break;
case 236:
#line 1958 "cs-parser.jay"
{
Report.Error (525, GetLocation (yyVals[0+yyTop]), "Interfaces cannot contain fields or constants");
}
break;
case 237:
#line 1962 "cs-parser.jay"
{
Report.Error (525, GetLocation (yyVals[0+yyTop]), "Interfaces cannot contain fields or constants");
}
break;
case 242:
#line 1970 "cs-parser.jay"
{
Report.Error (567, GetLocation (yyVals[0+yyTop]), "Interfaces cannot contain operators");
}
break;
case 243:
#line 1974 "cs-parser.jay"
{
Report.Error (526, GetLocation (yyVals[0+yyTop]), "Interfaces cannot contain contructors");
}
break;
case 244:
#line 1978 "cs-parser.jay"
{
Report.Error (524, GetLocation (yyVals[0+yyTop]), "Interfaces cannot declare classes, structs, interfaces, delegates, or enumerations");
}
break;
case 245:
#line 1984 "cs-parser.jay"
{
}
break;
case 246:
case_246();
break;
case 248:
#line 2011 "cs-parser.jay"
{ yyVal = null; }
break;
case 250:
case_250();
break;
case 251:
#line 2027 "cs-parser.jay"
{
valid_param_mod = ParameterModifierType.DefaultValue;
}
break;
case 252:
case_252();
break;
case 254:
#line 2073 "cs-parser.jay"
{ yyVal = Operator.OpType.LogicalNot; }
break;
case 255:
#line 2074 "cs-parser.jay"
{ yyVal = Operator.OpType.OnesComplement; }
break;
case 256:
#line 2075 "cs-parser.jay"
{ yyVal = Operator.OpType.Increment; }
break;
case 257:
#line 2076 "cs-parser.jay"
{ yyVal = Operator.OpType.Decrement; }
break;
case 258:
#line 2077 "cs-parser.jay"
{ yyVal = Operator.OpType.True; }
break;
case 259:
#line 2078 "cs-parser.jay"
{ yyVal = Operator.OpType.False; }
break;
case 260:
#line 2080 "cs-parser.jay"
{ yyVal = Operator.OpType.Addition; }
break;
case 261:
#line 2081 "cs-parser.jay"
{ yyVal = Operator.OpType.Subtraction; }
break;
case 262:
#line 2083 "cs-parser.jay"
{ yyVal = Operator.OpType.Multiply; }
break;
case 263:
#line 2084 "cs-parser.jay"
{ yyVal = Operator.OpType.Division; }
break;
case 264:
#line 2085 "cs-parser.jay"
{ yyVal = Operator.OpType.Modulus; }
break;
case 265:
#line 2086 "cs-parser.jay"
{ yyVal = Operator.OpType.BitwiseAnd; }
break;
case 266:
#line 2087 "cs-parser.jay"
{ yyVal = Operator.OpType.BitwiseOr; }
break;
case 267:
#line 2088 "cs-parser.jay"
{ yyVal = Operator.OpType.ExclusiveOr; }
break;
case 268:
#line 2089 "cs-parser.jay"
{ yyVal = Operator.OpType.LeftShift; }
break;
case 269:
#line 2090 "cs-parser.jay"
{ yyVal = Operator.OpType.RightShift; }
break;
case 270:
#line 2091 "cs-parser.jay"
{ yyVal = Operator.OpType.Equality; }
break;
case 271:
#line 2092 "cs-parser.jay"
{ yyVal = Operator.OpType.Inequality; }
break;
case 272:
#line 2093 "cs-parser.jay"
{ yyVal = Operator.OpType.GreaterThan; }
break;
case 273:
#line 2094 "cs-parser.jay"
{ yyVal = Operator.OpType.LessThan; }
break;
case 274:
#line 2095 "cs-parser.jay"
{ yyVal = Operator.OpType.GreaterThanOrEqual; }
break;
case 275:
#line 2096 "cs-parser.jay"
{ yyVal = Operator.OpType.LessThanOrEqual; }
break;
case 276:
#line 2103 "cs-parser.jay"
{
valid_param_mod = ParameterModifierType.DefaultValue;
}
break;
case 277:
case_277();
break;
case 278:
#line 2122 "cs-parser.jay"
{
valid_param_mod = ParameterModifierType.DefaultValue;
}
break;
case 279:
case_279();
break;
case 280:
case_280();
break;
case 281:
case_281();
break;
case 282:
case_282();
break;
case 283:
case_283();
break;
case 284:
case_284();
break;
case 285:
case_285();
break;
case 287:
#line 2225 "cs-parser.jay"
{ current_block = null; yyVal = null; }
break;
case 290:
#line 2237 "cs-parser.jay"
{
++lexer.parsing_block;
}
break;
case 291:
case_291();
break;
case 292:
#line 2247 "cs-parser.jay"
{
++lexer.parsing_block;
}
break;
case 293:
case_293();
break;
case 294:
case_294();
break;
case 295:
case_295();
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 303:
#line 2356 "cs-parser.jay"
{
++lexer.parsing_block;
}
break;
case 304:
case_304();
break;
case 307:
#line 2373 "cs-parser.jay"
{
current_event_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]);
}
break;
case 308:
#line 2377 "cs-parser.jay"
{
current_event_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]);
}
break;
case 309:
case_309();
break;
case 310:
#line 2390 "cs-parser.jay"
{
++lexer.parsing_block;
}
break;
case 311:
case_311();
break;
case 312:
case_312();
break;
case 313:
#line 2415 "cs-parser.jay"
{
yyVal = yyVals[0+yyTop];
}
break;
case 316:
case_316();
break;
case 317:
case_317();
break;
case 318:
case_318();
break;
case 319:
case_319();
break;
case 320:
case_320();
break;
case 321:
case_321();
break;
case 322:
case_322();
break;
case 323:
case_323();
break;
case 325:
case_325();
break;
case 326:
case_326();
break;
case 327:
case_327();
break;
case 328:
case_328();
break;
case 330:
case_330();
break;
case 331:
case_331();
break;
case 334:
#line 2574 "cs-parser.jay"
{
lbag.AddLocation (yyVals[-1+yyTop], GetLocation (yyVals[0+yyTop]));
}
break;
case 336:
case_336();
break;
case 337:
case_337();
break;
case 338:
case_338();
break;
case 339:
case_339();
break;
case 340:
#line 2632 "cs-parser.jay"
{
valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out | ParameterModifierType.Params | ParameterModifierType.DefaultValue;
}
break;
case 341:
case_341();
break;
case 342:
#line 2655 "cs-parser.jay"
{
lexer.ConstraintsParsing = false;
}
break;
case 343:
case_343();
break;
case 345:
case_345();
break;
case 347:
case_347();
break;
case 349:
case_349();
break;
case 350:
case_350();
break;
case 352:
case_352();
break;
case 353:
case_353();
break;
case 354:
case_354();
break;
case 355:
case_355();
break;
case 356:
#line 2752 "cs-parser.jay"
{
lexer.parsing_generic_declaration = true;
}
break;
case 357:
case_357();
break;
case 358:
case_358();
break;
case 360:
case_360();
break;
case 361:
case_361();
break;
case 362:
case_362();
break;
case 363:
case_363();
break;
case 364:
case_364();
break;
case 365:
case_365();
break;
case 367:
case_367();
break;
case 368:
case_368();
break;
case 369:
case_369();
break;
case 370:
case_370();
break;
case 371:
case_371();
break;
case 373:
#line 2872 "cs-parser.jay"
{
yyVal = new TypeExpression (TypeManager.void_type, GetLocation (yyVals[0+yyTop]));
}
break;
case 374:
#line 2879 "cs-parser.jay"
{
lexer.parsing_generic_declaration = true;
}
break;
case 376:
case_376();
break;
case 378:
case_378();
break;
case 380:
case_380();
break;
case 382:
#line 2917 "cs-parser.jay"
{
yyVal = new ComposedCast ((FullNamedExpression) yyVals[-1+yyTop], (ComposedTypeSpecifier) yyVals[0+yyTop]);
}
break;
case 383:
case_383();
break;
case 384:
#line 2937 "cs-parser.jay"
{
yyVal = new ComposedCast (((MemberName) yyVals[-1+yyTop]).GetTypeExpression (), (ComposedTypeSpecifier) yyVals[0+yyTop]);
}
break;
case 385:
case_385();
break;
case 386:
#line 2946 "cs-parser.jay"
{
yyVal = new ComposedCast ((FullNamedExpression) yyVals[-1+yyTop], (ComposedTypeSpecifier) yyVals[0+yyTop]);
}
break;
case 387:
#line 2950 "cs-parser.jay"
{
yyVal = new ComposedCast (new TypeExpression (TypeManager.void_type, GetLocation (yyVals[-1+yyTop])), (ComposedTypeSpecifier) yyVals[0+yyTop]);
}
break;
case 388:
case_388();
break;
case 389:
case_389();
break;
case 390:
case_390();
break;
case 391:
case_391();
break;
case 392:
#line 2988 "cs-parser.jay"
{ yyVal = new TypeExpression (TypeManager.object_type, GetLocation (yyVals[0+yyTop])); }
break;
case 393:
#line 2989 "cs-parser.jay"
{ yyVal = new TypeExpression (TypeManager.string_type, GetLocation (yyVals[0+yyTop])); }
break;
case 394:
#line 2990 "cs-parser.jay"
{ yyVal = new TypeExpression (TypeManager.bool_type, GetLocation (yyVals[0+yyTop])); }
break;
case 395:
#line 2991 "cs-parser.jay"
{ yyVal = new TypeExpression (TypeManager.decimal_type, GetLocation (yyVals[0+yyTop])); }
break;
case 396:
#line 2992 "cs-parser.jay"
{ yyVal = new TypeExpression (TypeManager.float_type, GetLocation (yyVals[0+yyTop])); }
break;
case 397:
#line 2993 "cs-parser.jay"
{ yyVal = new TypeExpression (TypeManager.double_type, GetLocation (yyVals[0+yyTop])); }
break;
case 399:
#line 2998 "cs-parser.jay"
{ yyVal = new TypeExpression (TypeManager.sbyte_type, GetLocation (yyVals[0+yyTop])); }
break;
case 400:
#line 2999 "cs-parser.jay"
{ yyVal = new TypeExpression (TypeManager.byte_type, GetLocation (yyVals[0+yyTop])); }
break;
case 401:
#line 3000 "cs-parser.jay"
{ yyVal = new TypeExpression (TypeManager.short_type, GetLocation (yyVals[0+yyTop])); }
break;
case 402:
#line 3001 "cs-parser.jay"
{ yyVal = new TypeExpression (TypeManager.ushort_type, GetLocation (yyVals[0+yyTop])); }
break;
case 403:
#line 3002 "cs-parser.jay"
{ yyVal = new TypeExpression (TypeManager.int32_type, GetLocation (yyVals[0+yyTop])); }
break;
case 404:
#line 3003 "cs-parser.jay"
{ yyVal = new TypeExpression (TypeManager.uint32_type, GetLocation (yyVals[0+yyTop])); }
break;
case 405:
#line 3004 "cs-parser.jay"
{ yyVal = new TypeExpression (TypeManager.int64_type, GetLocation (yyVals[0+yyTop])); }
break;
case 406:
#line 3005 "cs-parser.jay"
{ yyVal = new TypeExpression (TypeManager.uint64_type, GetLocation (yyVals[0+yyTop])); }
break;
case 407:
#line 3006 "cs-parser.jay"
{ yyVal = new TypeExpression (TypeManager.char_type, GetLocation (yyVals[0+yyTop])); }
break;
case 427:
case_427();
break;
case 428:
case_428();
break;
case 432:
#line 3052 "cs-parser.jay"
{ yyVal = new NullLiteral (GetLocation (yyVals[0+yyTop])); }
break;
case 433:
#line 3056 "cs-parser.jay"
{ yyVal = new BoolLiteral (true, GetLocation (yyVals[0+yyTop])); }
break;
case 434:
#line 3057 "cs-parser.jay"
{ yyVal = new BoolLiteral (false, GetLocation (yyVals[0+yyTop])); }
break;
case 439:
case_439();
break;
case 440:
#line 3090 "cs-parser.jay"
{
yyVal = new ParenthesizedExpression ((Expression) yyVals[-1+yyTop]);
}
break;
case 441:
case_441();
break;
case 442:
case_442();
break;
case 443:
case_443();
break;
case 444:
case_444();
break;
case 445:
#line 3121 "cs-parser.jay"
{
yyVal = new CompletionMemberAccess ((Expression) yyVals[-2+yyTop], null,GetLocation (yyVals[0+yyTop]));
}
break;
case 446:
case_446();
break;
case 447:
#line 3129 "cs-parser.jay"
{
yyVal = new CompletionMemberAccess ((Expression) yyVals[-2+yyTop], null, lexer.Location);
}
break;
case 448:
case_448();
break;
case 449:
case_449();
break;
case 450:
#line 3145 "cs-parser.jay"
{ yyVal = null; }
break;
case 452:
case_452();
break;
case 453:
case_453();
break;
case 454:
#line 3168 "cs-parser.jay"
{ yyVal = null; }
break;
case 455:
#line 3172 "cs-parser.jay"
{
yyVal = yyVals[0+yyTop];
}
break;
case 456:
case_456();
break;
case 457:
case_457();
break;
case 458:
case_458();
break;
case 459:
case_459();
break;
case 460:
#line 3204 "cs-parser.jay"
{
yyVal = new CompletionElementInitializer (null, GetLocation (yyVals[0+yyTop]));
}
break;
case 461:
case_461();
break;
case 462:
case_462();
break;
case 463:
case_463();
break;
case 466:
#line 3232 "cs-parser.jay"
{ yyVal = null; }
break;
case 468:
case_468();
break;
case 469:
case_469();
break;
case 470:
case_470();
break;
case 471:
case_471();
break;
case 472:
case_472();
break;
case 473:
#line 3284 "cs-parser.jay"
{
yyVal = new Argument ((Expression) yyVals[0+yyTop]);
}
break;
case 477:
case_477();
break;
case 478:
case_478();
break;
case 479:
case_479();
break;
case 480:
case_480();
break;
case 482:
case_482();
break;
case 483:
case_483();
break;
case 484:
case_484();
break;
case 485:
case_485();
break;
case 486:
case_486();
break;
case 487:
case_487();
break;
case 488:
#line 3371 "cs-parser.jay"
{
yyVal = new Argument ((Expression) yyVals[0+yyTop]);
}
break;
case 490:
#line 3379 "cs-parser.jay"
{
yyVal = new This (GetLocation (yyVals[0+yyTop]));
}
break;
case 491:
case_491();
break;
case 492:
case_492();
break;
case 493:
#line 3399 "cs-parser.jay"
{
yyVal = new UnaryMutator (UnaryMutator.Mode.PostIncrement, (Expression) yyVals[-1+yyTop], GetLocation (yyVals[0+yyTop]));
}
break;
case 494:
#line 3406 "cs-parser.jay"
{
yyVal = new UnaryMutator (UnaryMutator.Mode.PostDecrement, (Expression) yyVals[-1+yyTop], GetLocation (yyVals[0+yyTop]));
}
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:
#line 3472 "cs-parser.jay"
{
++lexer.parsing_type;
}
break;
case 503:
case_503();
break;
case 504:
case_504();
break;
case 507:
#line 3501 "cs-parser.jay"
{ yyVal = null; }
break;
case 509:
case_509();
break;
case 510:
case_510();
break;
case 511:
case_511();
break;
case 512:
case_512();
break;
case 513:
case_513();
break;
case 514:
case_514();
break;
case 518:
case_518();
break;
case 519:
case_519();
break;
case 520:
case_520();
break;
case 521:
#line 3577 "cs-parser.jay"
{
yyVal = 2;
}
break;
case 522:
#line 3581 "cs-parser.jay"
{
yyVal = ((int) yyVals[-1+yyTop]) + 1;
}
break;
case 523:
#line 3588 "cs-parser.jay"
{
yyVal = null;
}
break;
case 524:
#line 3592 "cs-parser.jay"
{
yyVal = yyVals[0+yyTop];
}
break;
case 525:
case_525();
break;
case 526:
case_526();
break;
case 527:
case_527();
break;
case 528:
case_528();
break;
case 529:
#line 3636 "cs-parser.jay"
{
lexer.TypeOfParsing = true;
}
break;
case 530:
case_530();
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:
case_541();
break;
case 542:
case_542();
break;
case 543:
case_543();
break;
case 544:
case_544();
break;
case 545:
#line 3751 "cs-parser.jay"
{
start_anonymous (false, (ParametersCompiled) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
}
break;
case 546:
#line 3755 "cs-parser.jay"
{
yyVal = end_anonymous ((ParametersBlock) yyVals[0+yyTop]);
}
break;
case 547:
#line 3762 "cs-parser.jay"
{
yyVal = ParametersCompiled.Undefined;
}
break;
case 549:
#line 3770 "cs-parser.jay"
{
valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out;
}
break;
case 550:
case_550();
break;
case 551:
case_551();
break;
case 553:
#line 3794 "cs-parser.jay"
{
yyVal = new Unary (Unary.Operator.LogicalNot, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
}
break;
case 554:
#line 3798 "cs-parser.jay"
{
yyVal = new Unary (Unary.Operator.OnesComplement, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
}
break;
case 556:
case_556();
break;
case 558:
#line 3819 "cs-parser.jay"
{
yyVal = new Unary (Unary.Operator.UnaryPlus, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
}
break;
case 559:
#line 3823 "cs-parser.jay"
{
yyVal = new Unary (Unary.Operator.UnaryNegation, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
}
break;
case 560:
#line 3827 "cs-parser.jay"
{
yyVal = new UnaryMutator (UnaryMutator.Mode.PreIncrement, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
}
break;
case 561:
#line 3831 "cs-parser.jay"
{
yyVal = new UnaryMutator (UnaryMutator.Mode.PreDecrement, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
}
break;
case 562:
#line 3835 "cs-parser.jay"
{
yyVal = new Indirection ((Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
}
break;
case 563:
#line 3839 "cs-parser.jay"
{
yyVal = new Unary (Unary.Operator.AddressOf, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
}
break;
case 565:
case_565();
break;
case 566:
case_566();
break;
case 567:
case_567();
break;
case 569:
case_569();
break;
case 570:
#line 3871 "cs-parser.jay"
{
yyVal = new Binary (Binary.Operator.Subtraction, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
}
break;
case 571:
case_571();
break;
case 572:
#line 3880 "cs-parser.jay"
{
yyVal = new As ((Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
}
break;
case 573:
#line 3884 "cs-parser.jay"
{
yyVal = new Is ((Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
}
break;
case 575:
case_575();
break;
case 576:
case_576();
break;
case 578:
case_578();
break;
case 579:
case_579();
break;
case 580:
case_580();
break;
case 581:
case_581();
break;
case 583:
case_583();
break;
case 584:
case_584();
break;
case 586:
case_586();
break;
case 588:
case_588();
break;
case 590:
case_590();
break;
case 592:
case_592();
break;
case 594:
case_594();
break;
case 596:
case_596();
break;
case 598:
case_598();
break;
case 599:
#line 4008 "cs-parser.jay"
{
yyVal = new SimpleAssign ((Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
}
break;
case 600:
case_600();
break;
case 601:
case_601();
break;
case 602:
case_602();
break;
case 603:
case_603();
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 612:
case_612();
break;
case 613:
case_613();
break;
case 614:
case_614();
break;
case 615:
#line 4103 "cs-parser.jay"
{ yyVal = ParametersCompiled.EmptyReadOnlyParameters; }
break;
case 616:
case_616();
break;
case 619:
#line 4118 "cs-parser.jay"
{
start_block (lexer.Location);
}
break;
case 620:
case_620();
break;
case 622:
case_622();
break;
case 623:
case_623();
break;
case 624:
case_624();
break;
case 625:
case_625();
break;
case 626:
case_626();
break;
case 627:
case_627();
break;
case 633:
#line 4179 "cs-parser.jay"
{
yyVal = new ArglistAccess (GetLocation (yyVals[0+yyTop]));
}
break;
case 635:
#line 4190 "cs-parser.jay"
{
yyVal = new BooleanExpression ((Expression) yyVals[0+yyTop]);
}
break;
case 636:
#line 4203 "cs-parser.jay"
{
lexer.ConstraintsParsing = true;
}
break;
case 637:
case_637();
break;
case 638:
case_638();
break;
case 639:
case_639();
break;
case 640:
case_640();
break;
case 641:
#line 4237 "cs-parser.jay"
{ yyVal = null; }
break;
case 642:
#line 4239 "cs-parser.jay"
{ yyVal = yyVals[0+yyTop]; }
break;
case 643:
case_643();
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:
case_658();
break;
case 659:
case_659();
break;
case 660:
case_660();
break;
case 662:
#line 4354 "cs-parser.jay"
{
current_container.AddBasesForPart (current_class, (List<FullNamedExpression>) yyVals[0+yyTop]);
}
break;
case 664:
#line 4362 "cs-parser.jay"
{
yyVal = yyVals[0+yyTop];
}
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 4446 "cs-parser.jay"
{
yyVal = new SpecialContraintExpr (SpecialConstraint.Class, GetLocation (yyVals[0+yyTop]));
}
break;
case 673:
#line 4450 "cs-parser.jay"
{
yyVal = new SpecialContraintExpr (SpecialConstraint.Struct, GetLocation (yyVals[0+yyTop]));
}
break;
case 674:
#line 4457 "cs-parser.jay"
{
yyVal = Variance.None;
}
break;
case 675:
case_675();
break;
case 676:
#line 4473 "cs-parser.jay"
{
yyVal = Variance.Covariant;
}
break;
case 677:
#line 4477 "cs-parser.jay"
{
yyVal = Variance.Contravariant;
}
break;
case 678:
case_678();
break;
case 679:
#line 4502 "cs-parser.jay"
{
yyVal = yyVals[0+yyTop];
}
break;
case 680:
case_680();
break;
case 681:
case_681();
break;
case 682:
case_682();
break;
case 683:
case_683();
break;
case 688:
#line 4546 "cs-parser.jay"
{
current_block.AddStatement ((Statement) yyVals[0+yyTop]);
}
break;
case 689:
#line 4550 "cs-parser.jay"
{
current_block.AddStatement ((Statement) yyVals[0+yyTop]);
}
break;
case 691:
case_691();
break;
case 694:
#line 4574 "cs-parser.jay"
{
current_block.AddStatement ((Statement) yyVals[0+yyTop]);
}
break;
case 695:
#line 4578 "cs-parser.jay"
{
current_block.AddStatement ((Statement) yyVals[0+yyTop]);
}
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 731:
case_731();
break;
case 732:
case_732();
break;
case 733:
case_733();
break;
case 734:
case_734();
break;
case 735:
#line 4722 "cs-parser.jay"
{
yyVal = new ComposedCast ((FullNamedExpression) yyVals[-1+yyTop], (ComposedTypeSpecifier) yyVals[0+yyTop]);
}
break;
case 736:
#line 4726 "cs-parser.jay"
{
yyVal = new ComposedCast (new TypeExpression (TypeManager.void_type, GetLocation (yyVals[-1+yyTop])), (ComposedTypeSpecifier) yyVals[0+yyTop]);
}
break;
case 737:
case_737();
break;
case 739:
case_739();
break;
case 740:
#line 4747 "cs-parser.jay"
{
yyVal = ComposedTypeSpecifier.CreatePointer (GetLocation (yyVals[0+yyTop]));
}
break;
case 741:
case_741();
break;
case 742:
case_742();
break;
case 743:
case_743();
break;
case 744:
case_744();
break;
case 746:
case_746();
break;
case 747:
case_747();
break;
case 752:
case_752();
break;
case 753:
case_753();
break;
case 754:
#line 4832 "cs-parser.jay"
{
Report.Error (145, lexer.Location, "A const field requires a value to be provided");
}
break;
case 755:
#line 4836 "cs-parser.jay"
{
current_variable.Initializer = (Expression) yyVals[0+yyTop];
}
break;
case 760:
case_760();
break;
case 762:
case_762();
break;
case 763:
case_763();
break;
case 764:
case_764();
break;
case 765:
#line 4881 "cs-parser.jay"
{ yyVal = yyVals[-1+yyTop]; }
break;
case 766:
#line 4885 "cs-parser.jay"
{ yyVal = yyVals[-1+yyTop]; }
break;
case 767:
#line 4886 "cs-parser.jay"
{ yyVal = yyVals[-1+yyTop]; }
break;
case 768:
case_768();
break;
case 769:
case_769();
break;
case 770:
case_770();
break;
case 773:
case_773();
break;
case 774:
case_774();
break;
case 775:
#line 4954 "cs-parser.jay"
{
start_block (GetLocation (yyVals[0+yyTop]));
}
break;
case 776:
case_776();
break;
case 777:
case_777();
break;
case 779:
case_779();
break;
case 780:
case_780();
break;
case 781:
case_781();
break;
case 782:
#line 4998 "cs-parser.jay"
{
current_block = current_block.CreateSwitchBlock (lexer.Location);
}
break;
case 783:
#line 5002 "cs-parser.jay"
{
yyVal = new SwitchSection ((List<SwitchLabel>) yyVals[-2+yyTop], current_block);
}
break;
case 784:
case_784();
break;
case 785:
case_785();
break;
case 786:
case_786();
break;
case 787:
#line 5031 "cs-parser.jay"
{
yyVal = new SwitchLabel (null, GetLocation (yyVals[0+yyTop]));
}
break;
case 792:
case_792();
break;
case 793:
case_793();
break;
case 794:
case_794();
break;
case 795:
case_795();
break;
case 796:
#line 5085 "cs-parser.jay"
{ yyVal = new EmptyStatement (lexer.Location); }
break;
case 798:
case_798();
break;
case 799:
case_799();
break;
case 801:
#line 5106 "cs-parser.jay"
{ yyVal = null; }
break;
case 803:
#line 5111 "cs-parser.jay"
{ yyVal = new EmptyStatement (lexer.Location); }
break;
case 807:
case_807();
break;
case 808:
case_808();
break;
case 809:
case_809();
break;
case 810:
case_810();
break;
case 817:
case_817();
break;
case 818:
case_818();
break;
case 819:
case_819();
break;
case 820:
case_820();
break;
case 821:
case_821();
break;
case 822:
case_822();
break;
case 823:
case_823();
break;
case 824:
case_824();
break;
case 825:
case_825();
break;
case 828:
#line 5266 "cs-parser.jay"
{
yyVal = new TryCatch ((Block) yyVals[-1+yyTop], (List<Catch>) yyVals[0+yyTop], GetLocation (yyVals[-2+yyTop]), false);
}
break;
case 829:
case_829();
break;
case 830:
case_830();
break;
case 831:
case_831();
break;
case 832:
case_832();
break;
case 833:
case_833();
break;
case 836:
#line 5319 "cs-parser.jay"
{
yyVal = new Catch ((Block) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
}
break;
case 837:
case_837();
break;
case 838:
#line 5338 "cs-parser.jay"
{
yyVal = yyVals[-1+yyTop];
}
break;
case 839:
case_839();
break;
case 840:
#line 5356 "cs-parser.jay"
{
yyVal = new Checked ((Block) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
}
break;
case 841:
#line 5363 "cs-parser.jay"
{
yyVal = new Unchecked ((Block) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
}
break;
case 842:
case_842();
break;
case 843:
#line 5373 "cs-parser.jay"
{
yyVal = new Unsafe ((Block) yyVals[0+yyTop], GetLocation (yyVals[-2+yyTop]));
}
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 849:
case_849();
break;
case 850:
case_850();
break;
case 851:
case_851();
break;
case 852:
#line 5455 "cs-parser.jay"
{
Report.Error (210, lexer.Location, "You must provide an initializer in a fixed or using statement declaration");
}
break;
case 853:
case_853();
break;
case 854:
case_854();
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 860:
case_860();
break;
case 861:
case_861();
break;
case 862:
#line 5555 "cs-parser.jay"
{
current_block = new Linq.QueryBlock (compiler, current_block, lexer.Location);
}
break;
case 863:
case_863();
break;
case 864:
#line 5570 "cs-parser.jay"
{
current_block = new Linq.QueryBlock (compiler, current_block, lexer.Location);
}
break;
case 865:
case_865();
break;
case 866:
case_866();
break;
case 868:
#line 5610 "cs-parser.jay"
{
current_block = new Linq.QueryBlock (compiler, current_block, lexer.Location);
}
break;
case 869:
case_869();
break;
case 870:
case_870();
break;
case 871:
case_871();
break;
case 872:
case_872();
break;
case 876:
case_876();
break;
case 882:
#line 5668 "cs-parser.jay"
{
current_block = new Linq.QueryBlock (compiler, current_block, lexer.Location);
}
break;
case 883:
case_883();
break;
case 884:
#line 5686 "cs-parser.jay"
{
current_block = new Linq.QueryBlock (compiler, current_block, lexer.Location);
}
break;
case 885:
case_885();
break;
case 886:
case_886();
break;
case 887:
case_887();
break;
case 888:
case_888();
break;
case 889:
case_889();
break;
case 890:
case_890();
break;
case 891:
case_891();
break;
case 892:
case_892();
break;
case 893:
case_893();
break;
case 895:
#line 5828 "cs-parser.jay"
{
yyVal = yyVals[0+yyTop];
}
break;
case 896:
#line 5835 "cs-parser.jay"
{
current_block = new Linq.QueryBlock (compiler, current_block, lexer.Location);
}
break;
case 897:
case_897();
break;
case 899:
case_899();
break;
case 900:
case_900();
break;
case 902:
case_902();
break;
case 903:
case_903();
break;
case 904:
#line 5881 "cs-parser.jay"
{
yyVal = new Linq.OrderByAscending ((Linq.QueryBlock) current_block, (Expression)yyVals[0+yyTop]);
}
break;
case 905:
#line 5885 "cs-parser.jay"
{
yyVal = new Linq.OrderByAscending ((Linq.QueryBlock) current_block, (Expression)yyVals[-1+yyTop]);
}
break;
case 906:
#line 5889 "cs-parser.jay"
{
yyVal = new Linq.OrderByDescending ((Linq.QueryBlock) current_block, (Expression)yyVals[-1+yyTop]);
}
break;
case 907:
#line 5896 "cs-parser.jay"
{
yyVal = new Linq.ThenByAscending ((Linq.QueryBlock) current_block, (Expression)yyVals[0+yyTop]);
}
break;
case 908:
#line 5900 "cs-parser.jay"
{
yyVal = new Linq.ThenByAscending ((Linq.QueryBlock) current_block, (Expression)yyVals[-1+yyTop]);
}
break;
case 909:
#line 5904 "cs-parser.jay"
{
yyVal = new Linq.ThenByDescending ((Linq.QueryBlock) current_block, (Expression)yyVals[-1+yyTop]);
}
break;
case 911:
case_911();
break;
case 912:
case_912();
break;
case 915:
case_915();
break;
case 916:
case_916();
break;
case 917:
#line 5996 "cs-parser.jay"
{
Evaluator.LoadAliases (current_namespace);
}
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'
}
}