diff --git a/ICSharpCode.NRefactory/CSharp/Ast/DepthFirstAstVisitor.cs b/ICSharpCode.NRefactory/CSharp/Ast/DepthFirstAstVisitor.cs index 044571bcc2..ecc5210a1b 100644 --- a/ICSharpCode.NRefactory/CSharp/Ast/DepthFirstAstVisitor.cs +++ b/ICSharpCode.NRefactory/CSharp/Ast/DepthFirstAstVisitor.cs @@ -565,9 +565,9 @@ namespace ICSharpCode.NRefactory.CSharp return VisitChildren (defaultValueExpression, data); } - public virtual S VisitArgListExpression (ArgListExpression argListExpression, T data) + public virtual S VisitUndocumentedExpression (UndocumentedExpression undocumentedExpression, T data) { - return VisitChildren (argListExpression, data); + return VisitChildren (undocumentedExpression, data); } public virtual S VisitArrayInitializerExpression (ArrayInitializerExpression arrayInitializerExpression, T data) diff --git a/ICSharpCode.NRefactory/CSharp/Ast/Expressions/ArgListExpression.cs b/ICSharpCode.NRefactory/CSharp/Ast/Expressions/UndocumentedExpression.cs similarity index 72% rename from ICSharpCode.NRefactory/CSharp/Ast/Expressions/ArgListExpression.cs rename to ICSharpCode.NRefactory/CSharp/Ast/Expressions/UndocumentedExpression.cs index c84f87389f..8bbd81a5f0 100644 --- a/ICSharpCode.NRefactory/CSharp/Ast/Expressions/ArgListExpression.cs +++ b/ICSharpCode.NRefactory/CSharp/Ast/Expressions/UndocumentedExpression.cs @@ -1,5 +1,5 @@ // -// ArgListExpression.cs +// UndocumentedExpression.cs // // Author: // Mike Krüger @@ -28,16 +28,25 @@ using System.Collections.Generic; namespace ICSharpCode.NRefactory.CSharp { + public enum UndocumentedExpressionType + { + ArgListAccess, // __arglist + ArgList, // __arglist (a1, a2, ..., an) + RefValue, // __refvalue (expr , type) + RefType, // __reftype (expr) + MakeRef // __makeref (expr) + } + /// - /// Represents the undocumented __arglist keyword. + /// Represents undocumented expressions. /// - public class ArgListExpression : Expression + public class UndocumentedExpression : Expression { - public bool IsAccess { // access is __arglist, otherwise it's __arglist (a1, a2, ..., an) + public UndocumentedExpressionType UndocumentedExpressionType { get; set; } - public CSharpTokenNode ArgListToken { + public CSharpTokenNode UndocumentedToken { get { return GetChildByRole (Roles.Keyword); } } @@ -55,13 +64,13 @@ namespace ICSharpCode.NRefactory.CSharp public override S AcceptVisitor (IAstVisitor visitor, T data) { - return visitor.VisitArgListExpression (this, data); + return visitor.VisitUndocumentedExpression (this, data); } protected internal override bool DoMatch(AstNode other, PatternMatching.Match match) { - ArgListExpression o = other as ArgListExpression; - return o != null && this.IsAccess == o.IsAccess && this.Arguments.DoMatch(o.Arguments, match); + UndocumentedExpression o = other as UndocumentedExpression; + return o != null && this.UndocumentedExpressionType == o.UndocumentedExpressionType && this.Arguments.DoMatch(o.Arguments, match); } } } diff --git a/ICSharpCode.NRefactory/CSharp/Ast/IAstVisitor.cs b/ICSharpCode.NRefactory/CSharp/Ast/IAstVisitor.cs index cb140b7829..4092d56713 100644 --- a/ICSharpCode.NRefactory/CSharp/Ast/IAstVisitor.cs +++ b/ICSharpCode.NRefactory/CSharp/Ast/IAstVisitor.cs @@ -11,7 +11,7 @@ namespace ICSharpCode.NRefactory.CSharp public interface IAstVisitor { S VisitAnonymousMethodExpression(AnonymousMethodExpression anonymousMethodExpression, T data); - S VisitArgListExpression(ArgListExpression argListExpression, T data); + S VisitUndocumentedExpression(UndocumentedExpression undocumentedExpression, T data); S VisitArrayCreateExpression(ArrayCreateExpression arrayCreateExpression, T data); S VisitArrayInitializerExpression(ArrayInitializerExpression arrayInitializerExpression, T data); S VisitAsExpression(AsExpression asExpression, T data); diff --git a/ICSharpCode.NRefactory/CSharp/OutputVisitor/OutputVisitor.cs b/ICSharpCode.NRefactory/CSharp/OutputVisitor/OutputVisitor.cs index 81466bdf44..e1cfcf64a1 100644 --- a/ICSharpCode.NRefactory/CSharp/OutputVisitor/OutputVisitor.cs +++ b/ICSharpCode.NRefactory/CSharp/OutputVisitor/OutputVisitor.cs @@ -468,15 +468,29 @@ namespace ICSharpCode.NRefactory.CSharp return EndNode(anonymousMethodExpression); } - public object VisitArgListExpression(ArgListExpression argListExpression, object data) - { - StartNode(argListExpression); - WriteKeyword("__arglist"); - if (!argListExpression.IsAccess) { + public object VisitUndocumentedExpression(UndocumentedExpression undocumentedExpression, object data) + { + StartNode(undocumentedExpression); + switch (undocumentedExpression.UndocumentedExpressionType) { + case UndocumentedExpressionType.ArgList: + case UndocumentedExpressionType.ArgListAccess: + WriteKeyword("__arglist"); + break; + case UndocumentedExpressionType.MakeRef: + WriteKeyword("__makeref"); + break; + case UndocumentedExpressionType.RefType: + WriteKeyword("__reftype"); + break; + case UndocumentedExpressionType.RefValue: + WriteKeyword("__refvalue"); + break; + } + if (undocumentedExpression.Arguments.Count > 0) { Space(policy.SpaceBeforeMethodCallParentheses); - WriteCommaSeparatedListInParenthesis(argListExpression.Arguments, policy.SpaceWithinMethodCallParentheses); + WriteCommaSeparatedListInParenthesis(undocumentedExpression.Arguments, policy.SpaceWithinMethodCallParentheses); } - return EndNode(argListExpression); + return EndNode(undocumentedExpression); } public object VisitArrayCreateExpression(ArrayCreateExpression arrayCreateExpression, object data) diff --git a/ICSharpCode.NRefactory/CSharp/Parser/CSharpParser.cs b/ICSharpCode.NRefactory/CSharp/Parser/CSharpParser.cs index 6de3ff32d7..c5218377b7 100644 --- a/ICSharpCode.NRefactory/CSharp/Parser/CSharpParser.cs +++ b/ICSharpCode.NRefactory/CSharp/Parser/CSharpParser.cs @@ -2320,27 +2320,80 @@ namespace ICSharpCode.NRefactory.CSharp public override object Visit (ArglistAccess argListAccessExpression) { - var result = new ArgListExpression (); - result.IsAccess = true; - result.AddChild (new CSharpTokenNode (Convert (argListAccessExpression.Location), "__arglist".Length), ArgListExpression.Roles.Keyword); + var result = new UndocumentedExpression () { + UndocumentedExpressionType = UndocumentedExpressionType.ArgListAccess + }; + result.AddChild (new CSharpTokenNode (Convert (argListAccessExpression.Location), "__arglist".Length), UndocumentedExpression.Roles.Keyword); return result; } + #region Undocumented expressions public override object Visit (Arglist argListExpression) { - var result = new ArgListExpression (); - result.AddChild (new CSharpTokenNode (Convert (argListExpression.Location), "__arglist".Length), ArgListExpression.Roles.Keyword); + var result = new UndocumentedExpression () { UndocumentedExpressionType = UndocumentedExpressionType.ArgListAccess }; + result.AddChild (new CSharpTokenNode (Convert (argListExpression.Location), "__arglist".Length), UndocumentedExpression.Roles.Keyword); var location = LocationsBag.GetLocations (argListExpression); if (location != null) - result.AddChild (new CSharpTokenNode (Convert (location[0]), 1), ArgListExpression.Roles.LPar); + result.AddChild (new CSharpTokenNode (Convert (location[0]), 1), UndocumentedExpression.Roles.LPar); AddArguments (result, location, argListExpression.Arguments); if (location != null) - result.AddChild (new CSharpTokenNode (Convert (location[1]), 1), ArgListExpression.Roles.RPar); + result.AddChild (new CSharpTokenNode (Convert (location[1]), 1), UndocumentedExpression.Roles.RPar); return result; } + public override object Visit (MakeRefExpr makeRefExpr) + { + var result = new UndocumentedExpression () { UndocumentedExpressionType = UndocumentedExpressionType.RefValue }; + result.AddChild (new CSharpTokenNode (Convert (makeRefExpr.Location), "__makeref".Length), UndocumentedExpression.Roles.Keyword); + var location = LocationsBag.GetLocations (makeRefExpr); + if (location != null) + result.AddChild (new CSharpTokenNode (Convert (location[0]), 1), UndocumentedExpression.Roles.LPar); + if (makeRefExpr.Expr != null) + result.AddChild ((Expression)makeRefExpr.Expr.Accept (this), UndocumentedExpression.Roles.Argument); + if (location != null) + result.AddChild (new CSharpTokenNode (Convert (location[1]), 1), UndocumentedExpression.Roles.RPar); + return result; + } + + public override object Visit (RefTypeExpr refTypeExpr) + { + var result = new UndocumentedExpression () { UndocumentedExpressionType = UndocumentedExpressionType.RefValue }; + result.AddChild (new CSharpTokenNode (Convert (refTypeExpr.Location), "__reftype".Length), UndocumentedExpression.Roles.Keyword); + var location = LocationsBag.GetLocations (refTypeExpr); + if (location != null) + result.AddChild (new CSharpTokenNode (Convert (location[0]), 1), UndocumentedExpression.Roles.LPar); + + if (refTypeExpr.Expr != null) + result.AddChild ((Expression)refTypeExpr.Expr.Accept (this), UndocumentedExpression.Roles.Argument); + + if (location != null) + result.AddChild (new CSharpTokenNode (Convert (location[1]), 1), UndocumentedExpression.Roles.RPar); + return result; + } + + public override object Visit (RefValueExpr refValueExpr) + { + var result = new UndocumentedExpression () { UndocumentedExpressionType = UndocumentedExpressionType.RefValue }; + result.AddChild (new CSharpTokenNode (Convert (refValueExpr.Location), "__refvalue".Length), UndocumentedExpression.Roles.Keyword); + var location = LocationsBag.GetLocations (refValueExpr); + if (location != null) + result.AddChild (new CSharpTokenNode (Convert (location[0]), 1), UndocumentedExpression.Roles.LPar); + + + if (refValueExpr.Expr != null) + result.AddChild ((Expression)refValueExpr.Expr.Accept (this), UndocumentedExpression.Roles.Argument); + + if (refValueExpr.FullNamedExpression != null) + result.AddChild ((Expression)refValueExpr.FullNamedExpression.Accept (this), UndocumentedExpression.Roles.Argument); + + if (location != null) + result.AddChild (new CSharpTokenNode (Convert (location[1]), 1), UndocumentedExpression.Roles.RPar); + return result; + } + #endregion + public override object Visit (TypeOf typeOfExpression) { var result = new TypeOfExpression (); diff --git a/ICSharpCode.NRefactory/CSharp/Parser/mcs/cs-parser.cs b/ICSharpCode.NRefactory/CSharp/Parser/mcs/cs-parser.cs index cdd44d3ae7..e0dc4b1012 100644 --- a/ICSharpCode.NRefactory/CSharp/Parser/mcs/cs-parser.cs +++ b/ICSharpCode.NRefactory/CSharp/Parser/mcs/cs-parser.cs @@ -1443,7 +1443,7 @@ case 41: case_41(); break; case 42: -#line 624 "cs-parser.jay" +#line 628 "cs-parser.jay" { current_namespace.DeclarationFound = true; } @@ -1473,18 +1473,18 @@ case 57: case_57(); break; case 58: -#line 717 "cs-parser.jay" +#line 721 "cs-parser.jay" { yyVal = "event"; } break; case 59: -#line 718 "cs-parser.jay" +#line 722 "cs-parser.jay" { yyVal = "return"; } break; case 60: case_60(); break; case 61: -#line 735 "cs-parser.jay" +#line 739 "cs-parser.jay" { yyVal = new List (4) { (Attribute) yyVals[0+yyTop] }; } @@ -1493,7 +1493,7 @@ case 62: case_62(); break; case 63: -#line 749 "cs-parser.jay" +#line 753 "cs-parser.jay" { ++lexer.parsing_block; } @@ -1502,17 +1502,17 @@ case 64: case_64(); break; case 66: -#line 770 "cs-parser.jay" +#line 774 "cs-parser.jay" { yyVal = null; } break; case 67: -#line 774 "cs-parser.jay" +#line 778 "cs-parser.jay" { yyVal = yyVals[-1+yyTop]; } break; case 68: -#line 779 "cs-parser.jay" +#line 783 "cs-parser.jay" { yyVal = null; } break; case 69: @@ -1528,13 +1528,13 @@ case 72: case_72(); break; case 73: -#line 823 "cs-parser.jay" +#line 827 "cs-parser.jay" { yyVal = new Argument ((Expression) yyVals[0+yyTop]); } break; case 75: -#line 831 "cs-parser.jay" +#line 835 "cs-parser.jay" { ++lexer.parsing_block; } @@ -1546,17 +1546,17 @@ case 77: case_77(); break; case 78: -#line 856 "cs-parser.jay" +#line 860 "cs-parser.jay" { yyVal = null; } break; case 79: -#line 860 "cs-parser.jay" +#line 864 "cs-parser.jay" { yyVal = Argument.AType.Ref; } break; case 80: -#line 864 "cs-parser.jay" +#line 868 "cs-parser.jay" { yyVal = Argument.AType.Out; } @@ -1565,7 +1565,7 @@ case 95: case_95(); break; case 96: -#line 905 "cs-parser.jay" +#line 909 "cs-parser.jay" { lexer.ConstraintsParsing = true; } @@ -1583,7 +1583,7 @@ case 100: case_100(); break; case 101: -#line 937 "cs-parser.jay" +#line 941 "cs-parser.jay" { Error_SyntaxError (yyToken); } @@ -1592,7 +1592,7 @@ case 102: case_102(); break; case 103: -#line 949 "cs-parser.jay" +#line 953 "cs-parser.jay" { lbag.AppendToMember (current_class, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[0+yyTop])); } @@ -1604,13 +1604,13 @@ case 119: case_119(); break; case 122: -#line 1018 "cs-parser.jay" +#line 1022 "cs-parser.jay" { current_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]); } break; case 123: -#line 1022 "cs-parser.jay" +#line 1026 "cs-parser.jay" { current_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]); } @@ -1619,7 +1619,7 @@ case 124: case_124(); break; case 125: -#line 1038 "cs-parser.jay" +#line 1042 "cs-parser.jay" { ++lexer.parsing_block; } @@ -1643,7 +1643,7 @@ case 133: case_133(); break; case 134: -#line 1117 "cs-parser.jay" +#line 1121 "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"); } @@ -1655,13 +1655,13 @@ case 137: case_137(); break; case 140: -#line 1147 "cs-parser.jay" +#line 1151 "cs-parser.jay" { current_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]); } break; case 141: -#line 1151 "cs-parser.jay" +#line 1155 "cs-parser.jay" { current_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]); } @@ -1670,7 +1670,7 @@ case 142: case_142(); break; case 143: -#line 1164 "cs-parser.jay" +#line 1168 "cs-parser.jay" { ++lexer.parsing_block; } @@ -1679,13 +1679,13 @@ case 144: case_144(); break; case 147: -#line 1183 "cs-parser.jay" +#line 1187 "cs-parser.jay" { current_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]); } break; case 148: -#line 1187 "cs-parser.jay" +#line 1191 "cs-parser.jay" { current_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]); } @@ -1694,7 +1694,7 @@ case 149: case_149(); break; case 150: -#line 1203 "cs-parser.jay" +#line 1207 "cs-parser.jay" { ++lexer.parsing_block; } @@ -1715,13 +1715,13 @@ case 157: case_157(); break; case 158: -#line 1260 "cs-parser.jay" +#line 1264 "cs-parser.jay" { valid_param_mod = ParameterModifierType.All; } break; case 159: -#line 1264 "cs-parser.jay" +#line 1268 "cs-parser.jay" { lexer.ConstraintsParsing = true; } @@ -1730,13 +1730,13 @@ case 160: case_160(); break; case 161: -#line 1305 "cs-parser.jay" +#line 1309 "cs-parser.jay" { valid_param_mod = ParameterModifierType.All; } break; case 162: -#line 1309 "cs-parser.jay" +#line 1313 "cs-parser.jay" { lexer.ConstraintsParsing = true; } @@ -1748,11 +1748,11 @@ case 164: case_164(); break; case 166: -#line 1385 "cs-parser.jay" +#line 1389 "cs-parser.jay" { yyVal = null; } break; case 167: -#line 1389 "cs-parser.jay" +#line 1393 "cs-parser.jay" { yyVal = ParametersCompiled.EmptyReadOnlyParameters; } break; case 169: @@ -1777,13 +1777,13 @@ case 175: case_175(); break; case 176: -#line 1448 "cs-parser.jay" +#line 1452 "cs-parser.jay" { yyVal = new ParametersCompiled (new Parameter[] { (Parameter) yyVals[0+yyTop] } ); } break; case 177: -#line 1452 "cs-parser.jay" +#line 1456 "cs-parser.jay" { yyVal = new ParametersCompiled (new Parameter [] { new ArglistParameter (GetLocation (yyVals[0+yyTop])) }, true); } @@ -1807,7 +1807,7 @@ case 183: case_183(); break; case 184: -#line 1527 "cs-parser.jay" +#line 1531 "cs-parser.jay" { ++lexer.parsing_block; } @@ -1816,7 +1816,7 @@ case 185: case_185(); break; case 186: -#line 1568 "cs-parser.jay" +#line 1572 "cs-parser.jay" { yyVal = Parameter.Modifier.NONE; } break; case 188: @@ -1850,7 +1850,7 @@ case 197: case_197(); break; case 198: -#line 1666 "cs-parser.jay" +#line 1670 "cs-parser.jay" { Error_DuplicateParameterModifier (GetLocation (yyVals[-1+yyTop]), Parameter.Modifier.PARAMS); } @@ -1871,7 +1871,7 @@ case 203: case_203(); break; case 204: -#line 1720 "cs-parser.jay" +#line 1724 "cs-parser.jay" { valid_param_mod = ParameterModifierType.Params | ParameterModifierType.DefaultValue; } @@ -1880,7 +1880,7 @@ case 205: case_205(); break; case 206: -#line 1750 "cs-parser.jay" +#line 1754 "cs-parser.jay" { lexer.PropertyParsing = false; } @@ -1910,7 +1910,7 @@ case 219: case_219(); break; case 220: -#line 1892 "cs-parser.jay" +#line 1896 "cs-parser.jay" { lexer.ConstraintsParsing = true; } @@ -1928,43 +1928,43 @@ case 224: case_224(); break; case 225: -#line 1925 "cs-parser.jay" +#line 1929 "cs-parser.jay" { Error_SyntaxError (yyToken); } break; case 230: -#line 1942 "cs-parser.jay" +#line 1946 "cs-parser.jay" { report.Error (525, GetLocation (yyVals[0+yyTop]), "Interfaces cannot contain fields or constants"); } break; case 231: -#line 1946 "cs-parser.jay" +#line 1950 "cs-parser.jay" { report.Error (525, GetLocation (yyVals[0+yyTop]), "Interfaces cannot contain fields or constants"); } break; case 236: -#line 1954 "cs-parser.jay" +#line 1958 "cs-parser.jay" { report.Error (567, GetLocation (yyVals[0+yyTop]), "Interfaces cannot contain operators"); } break; case 237: -#line 1958 "cs-parser.jay" +#line 1962 "cs-parser.jay" { report.Error (526, GetLocation (yyVals[0+yyTop]), "Interfaces cannot contain contructors"); } break; case 238: -#line 1962 "cs-parser.jay" +#line 1966 "cs-parser.jay" { report.Error (524, GetLocation (yyVals[0+yyTop]), "Interfaces cannot declare classes, structs, interfaces, delegates, or enumerations"); } break; case 239: -#line 1968 "cs-parser.jay" +#line 1972 "cs-parser.jay" { } break; @@ -1972,14 +1972,14 @@ case 240: case_240(); break; case 242: -#line 1995 "cs-parser.jay" +#line 1999 "cs-parser.jay" { yyVal = null; } break; case 244: case_244(); break; case 245: -#line 2011 "cs-parser.jay" +#line 2015 "cs-parser.jay" { valid_param_mod = ParameterModifierType.DefaultValue; } @@ -1988,95 +1988,95 @@ case 246: case_246(); break; case 248: -#line 2057 "cs-parser.jay" +#line 2061 "cs-parser.jay" { yyVal = Operator.OpType.LogicalNot; } break; case 249: -#line 2058 "cs-parser.jay" +#line 2062 "cs-parser.jay" { yyVal = Operator.OpType.OnesComplement; } break; case 250: -#line 2059 "cs-parser.jay" +#line 2063 "cs-parser.jay" { yyVal = Operator.OpType.Increment; } break; case 251: -#line 2060 "cs-parser.jay" +#line 2064 "cs-parser.jay" { yyVal = Operator.OpType.Decrement; } break; case 252: -#line 2061 "cs-parser.jay" +#line 2065 "cs-parser.jay" { yyVal = Operator.OpType.True; } break; case 253: -#line 2062 "cs-parser.jay" +#line 2066 "cs-parser.jay" { yyVal = Operator.OpType.False; } break; case 254: -#line 2064 "cs-parser.jay" +#line 2068 "cs-parser.jay" { yyVal = Operator.OpType.Addition; } break; case 255: -#line 2065 "cs-parser.jay" +#line 2069 "cs-parser.jay" { yyVal = Operator.OpType.Subtraction; } break; case 256: -#line 2067 "cs-parser.jay" +#line 2071 "cs-parser.jay" { yyVal = Operator.OpType.Multiply; } break; case 257: -#line 2068 "cs-parser.jay" +#line 2072 "cs-parser.jay" { yyVal = Operator.OpType.Division; } break; case 258: -#line 2069 "cs-parser.jay" +#line 2073 "cs-parser.jay" { yyVal = Operator.OpType.Modulus; } break; case 259: -#line 2070 "cs-parser.jay" +#line 2074 "cs-parser.jay" { yyVal = Operator.OpType.BitwiseAnd; } break; case 260: -#line 2071 "cs-parser.jay" +#line 2075 "cs-parser.jay" { yyVal = Operator.OpType.BitwiseOr; } break; case 261: -#line 2072 "cs-parser.jay" +#line 2076 "cs-parser.jay" { yyVal = Operator.OpType.ExclusiveOr; } break; case 262: -#line 2073 "cs-parser.jay" +#line 2077 "cs-parser.jay" { yyVal = Operator.OpType.LeftShift; } break; case 263: -#line 2074 "cs-parser.jay" +#line 2078 "cs-parser.jay" { yyVal = Operator.OpType.RightShift; } break; case 264: -#line 2075 "cs-parser.jay" +#line 2079 "cs-parser.jay" { yyVal = Operator.OpType.Equality; } break; case 265: -#line 2076 "cs-parser.jay" +#line 2080 "cs-parser.jay" { yyVal = Operator.OpType.Inequality; } break; case 266: -#line 2077 "cs-parser.jay" +#line 2081 "cs-parser.jay" { yyVal = Operator.OpType.GreaterThan; } break; case 267: -#line 2078 "cs-parser.jay" +#line 2082 "cs-parser.jay" { yyVal = Operator.OpType.LessThan; } break; case 268: -#line 2079 "cs-parser.jay" +#line 2083 "cs-parser.jay" { yyVal = Operator.OpType.GreaterThanOrEqual; } break; case 269: -#line 2080 "cs-parser.jay" +#line 2084 "cs-parser.jay" { yyVal = Operator.OpType.LessThanOrEqual; } break; case 270: -#line 2087 "cs-parser.jay" +#line 2091 "cs-parser.jay" { valid_param_mod = ParameterModifierType.DefaultValue; } @@ -2085,7 +2085,7 @@ case 271: case_271(); break; case 272: -#line 2106 "cs-parser.jay" +#line 2110 "cs-parser.jay" { valid_param_mod = ParameterModifierType.DefaultValue; } @@ -2112,11 +2112,11 @@ case 279: case_279(); break; case 281: -#line 2209 "cs-parser.jay" +#line 2213 "cs-parser.jay" { current_block = null; yyVal = null; } break; case 284: -#line 2221 "cs-parser.jay" +#line 2225 "cs-parser.jay" { ++lexer.parsing_block; } @@ -2125,7 +2125,7 @@ case 285: case_285(); break; case 286: -#line 2231 "cs-parser.jay" +#line 2235 "cs-parser.jay" { ++lexer.parsing_block; } @@ -2158,7 +2158,7 @@ case 295: case_295(); break; case 297: -#line 2340 "cs-parser.jay" +#line 2344 "cs-parser.jay" { ++lexer.parsing_block; } @@ -2167,13 +2167,13 @@ case 298: case_298(); break; case 301: -#line 2357 "cs-parser.jay" +#line 2361 "cs-parser.jay" { current_event_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]); } break; case 302: -#line 2361 "cs-parser.jay" +#line 2365 "cs-parser.jay" { current_event_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]); } @@ -2182,7 +2182,7 @@ case 303: case_303(); break; case 304: -#line 2374 "cs-parser.jay" +#line 2378 "cs-parser.jay" { ++lexer.parsing_block; } @@ -2194,7 +2194,7 @@ case 306: case_306(); break; case 307: -#line 2399 "cs-parser.jay" +#line 2403 "cs-parser.jay" { yyVal = yyVals[0+yyTop]; } @@ -2242,7 +2242,7 @@ case 325: case_325(); break; case 328: -#line 2554 "cs-parser.jay" +#line 2558 "cs-parser.jay" { lbag.AddLocation (yyVals[-1+yyTop], GetLocation (yyVals[0+yyTop])); } @@ -2260,7 +2260,7 @@ case 333: case_333(); break; case 334: -#line 2612 "cs-parser.jay" +#line 2616 "cs-parser.jay" { valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out | ParameterModifierType.Params | ParameterModifierType.DefaultValue; } @@ -2269,7 +2269,7 @@ case 335: case_335(); break; case 336: -#line 2632 "cs-parser.jay" +#line 2636 "cs-parser.jay" { lexer.ConstraintsParsing = false; } @@ -2302,7 +2302,7 @@ case 349: case_349(); break; case 350: -#line 2730 "cs-parser.jay" +#line 2734 "cs-parser.jay" { lexer.parsing_generic_declaration = true; } @@ -2347,13 +2347,13 @@ case 365: case_365(); break; case 367: -#line 2848 "cs-parser.jay" +#line 2852 "cs-parser.jay" { yyVal = new TypeExpression (compiler.BuiltinTypes.Void, GetLocation (yyVals[0+yyTop])); } break; case 368: -#line 2855 "cs-parser.jay" +#line 2859 "cs-parser.jay" { lexer.parsing_generic_declaration = true; } @@ -2368,7 +2368,7 @@ case 374: case_374(); break; case 376: -#line 2893 "cs-parser.jay" +#line 2897 "cs-parser.jay" { yyVal = new ComposedCast ((FullNamedExpression) yyVals[-1+yyTop], (ComposedTypeSpecifier) yyVals[0+yyTop]); } @@ -2377,7 +2377,7 @@ case 377: case_377(); break; case 378: -#line 2913 "cs-parser.jay" +#line 2917 "cs-parser.jay" { yyVal = new ComposedCast (((MemberName) yyVals[-1+yyTop]).GetTypeExpression (), (ComposedTypeSpecifier) yyVals[0+yyTop]); } @@ -2386,13 +2386,13 @@ case 379: case_379(); break; case 380: -#line 2922 "cs-parser.jay" +#line 2926 "cs-parser.jay" { yyVal = new ComposedCast ((FullNamedExpression) yyVals[-1+yyTop], (ComposedTypeSpecifier) yyVals[0+yyTop]); } break; case 381: -#line 2926 "cs-parser.jay" +#line 2930 "cs-parser.jay" { yyVal = new ComposedCast (new TypeExpression (compiler.BuiltinTypes.Void, GetLocation (yyVals[-1+yyTop])), (ComposedTypeSpecifier) yyVals[0+yyTop]); } @@ -2410,63 +2410,63 @@ case 385: case_385(); break; case 386: -#line 2964 "cs-parser.jay" +#line 2968 "cs-parser.jay" { yyVal = new TypeExpression (compiler.BuiltinTypes.Object, GetLocation (yyVals[0+yyTop])); } break; case 387: -#line 2965 "cs-parser.jay" +#line 2969 "cs-parser.jay" { yyVal = new TypeExpression (compiler.BuiltinTypes.String, GetLocation (yyVals[0+yyTop])); } break; case 388: -#line 2966 "cs-parser.jay" +#line 2970 "cs-parser.jay" { yyVal = new TypeExpression (compiler.BuiltinTypes.Bool, GetLocation (yyVals[0+yyTop])); } break; case 389: -#line 2967 "cs-parser.jay" +#line 2971 "cs-parser.jay" { yyVal = new TypeExpression (compiler.BuiltinTypes.Decimal, GetLocation (yyVals[0+yyTop])); } break; case 390: -#line 2968 "cs-parser.jay" +#line 2972 "cs-parser.jay" { yyVal = new TypeExpression (compiler.BuiltinTypes.Float, GetLocation (yyVals[0+yyTop])); } break; case 391: -#line 2969 "cs-parser.jay" +#line 2973 "cs-parser.jay" { yyVal = new TypeExpression (compiler.BuiltinTypes.Double, GetLocation (yyVals[0+yyTop])); } break; case 393: -#line 2974 "cs-parser.jay" +#line 2978 "cs-parser.jay" { yyVal = new TypeExpression (compiler.BuiltinTypes.SByte, GetLocation (yyVals[0+yyTop])); } break; case 394: -#line 2975 "cs-parser.jay" +#line 2979 "cs-parser.jay" { yyVal = new TypeExpression (compiler.BuiltinTypes.Byte, GetLocation (yyVals[0+yyTop])); } break; case 395: -#line 2976 "cs-parser.jay" +#line 2980 "cs-parser.jay" { yyVal = new TypeExpression (compiler.BuiltinTypes.Short, GetLocation (yyVals[0+yyTop])); } break; case 396: -#line 2977 "cs-parser.jay" +#line 2981 "cs-parser.jay" { yyVal = new TypeExpression (compiler.BuiltinTypes.UShort, GetLocation (yyVals[0+yyTop])); } break; case 397: -#line 2978 "cs-parser.jay" +#line 2982 "cs-parser.jay" { yyVal = new TypeExpression (compiler.BuiltinTypes.Int, GetLocation (yyVals[0+yyTop])); } break; case 398: -#line 2979 "cs-parser.jay" +#line 2983 "cs-parser.jay" { yyVal = new TypeExpression (compiler.BuiltinTypes.UInt, GetLocation (yyVals[0+yyTop])); } break; case 399: -#line 2980 "cs-parser.jay" +#line 2984 "cs-parser.jay" { yyVal = new TypeExpression (compiler.BuiltinTypes.Long, GetLocation (yyVals[0+yyTop])); } break; case 400: -#line 2981 "cs-parser.jay" +#line 2985 "cs-parser.jay" { yyVal = new TypeExpression (compiler.BuiltinTypes.ULong, GetLocation (yyVals[0+yyTop])); } break; case 401: -#line 2982 "cs-parser.jay" +#line 2986 "cs-parser.jay" { yyVal = new TypeExpression (compiler.BuiltinTypes.Char, GetLocation (yyVals[0+yyTop])); } break; case 422: @@ -2476,22 +2476,22 @@ case 423: case_423(); break; case 427: -#line 3029 "cs-parser.jay" +#line 3033 "cs-parser.jay" { yyVal = new NullLiteral (GetLocation (yyVals[0+yyTop])); } break; case 428: -#line 3033 "cs-parser.jay" +#line 3037 "cs-parser.jay" { yyVal = new BoolLiteral (compiler.BuiltinTypes, true, GetLocation (yyVals[0+yyTop])); } break; case 429: -#line 3034 "cs-parser.jay" +#line 3038 "cs-parser.jay" { yyVal = new BoolLiteral (compiler.BuiltinTypes, false, GetLocation (yyVals[0+yyTop])); } break; case 434: case_434(); break; case 435: -#line 3067 "cs-parser.jay" +#line 3071 "cs-parser.jay" { yyVal = new ParenthesizedExpression ((Expression) yyVals[-1+yyTop]); } @@ -2509,7 +2509,7 @@ case 439: case_439(); break; case 440: -#line 3098 "cs-parser.jay" +#line 3102 "cs-parser.jay" { yyVal = new CompletionMemberAccess ((Expression) yyVals[-2+yyTop], null,GetLocation (yyVals[0+yyTop])); } @@ -2518,7 +2518,7 @@ case 441: case_441(); break; case 442: -#line 3106 "cs-parser.jay" +#line 3110 "cs-parser.jay" { yyVal = new CompletionMemberAccess ((Expression) yyVals[-2+yyTop], null, lexer.Location); } @@ -2530,7 +2530,7 @@ case 444: case_444(); break; case 445: -#line 3122 "cs-parser.jay" +#line 3126 "cs-parser.jay" { yyVal = null; } break; case 447: @@ -2540,11 +2540,11 @@ case 448: case_448(); break; case 449: -#line 3145 "cs-parser.jay" +#line 3149 "cs-parser.jay" { yyVal = null; } break; case 450: -#line 3149 "cs-parser.jay" +#line 3153 "cs-parser.jay" { yyVal = yyVals[0+yyTop]; } @@ -2562,7 +2562,7 @@ case 454: case_454(); break; case 455: -#line 3181 "cs-parser.jay" +#line 3185 "cs-parser.jay" { yyVal = new CompletionElementInitializer (null, GetLocation (yyVals[0+yyTop])); } @@ -2577,7 +2577,7 @@ case 458: case_458(); break; case 461: -#line 3209 "cs-parser.jay" +#line 3213 "cs-parser.jay" { yyVal = null; } break; case 463: @@ -2596,7 +2596,7 @@ case 467: case_467(); break; case 468: -#line 3261 "cs-parser.jay" +#line 3265 "cs-parser.jay" { yyVal = new Argument ((Expression) yyVals[0+yyTop]); } @@ -2632,13 +2632,13 @@ case 482: case_482(); break; case 483: -#line 3348 "cs-parser.jay" +#line 3352 "cs-parser.jay" { yyVal = new Argument ((Expression) yyVals[0+yyTop]); } break; case 485: -#line 3356 "cs-parser.jay" +#line 3360 "cs-parser.jay" { yyVal = new This (GetLocation (yyVals[0+yyTop])); } @@ -2650,13 +2650,13 @@ case 487: case_487(); break; case 488: -#line 3376 "cs-parser.jay" +#line 3380 "cs-parser.jay" { yyVal = new UnaryMutator (UnaryMutator.Mode.PostIncrement, (Expression) yyVals[-1+yyTop], GetLocation (yyVals[0+yyTop])); } break; case 489: -#line 3383 "cs-parser.jay" +#line 3387 "cs-parser.jay" { yyVal = new UnaryMutator (UnaryMutator.Mode.PostDecrement, (Expression) yyVals[-1+yyTop], GetLocation (yyVals[0+yyTop])); } @@ -2683,7 +2683,7 @@ case 496: case_496(); break; case 497: -#line 3449 "cs-parser.jay" +#line 3453 "cs-parser.jay" { ++lexer.parsing_type; } @@ -2695,7 +2695,7 @@ case 499: case_499(); break; case 502: -#line 3476 "cs-parser.jay" +#line 3480 "cs-parser.jay" { yyVal = null; } break; case 504: @@ -2726,25 +2726,25 @@ case 515: case_515(); break; case 516: -#line 3552 "cs-parser.jay" +#line 3556 "cs-parser.jay" { yyVal = 2; } break; case 517: -#line 3556 "cs-parser.jay" +#line 3560 "cs-parser.jay" { yyVal = ((int) yyVals[-1+yyTop]) + 1; } break; case 518: -#line 3563 "cs-parser.jay" +#line 3567 "cs-parser.jay" { yyVal = null; } break; case 519: -#line 3567 "cs-parser.jay" +#line 3571 "cs-parser.jay" { yyVal = yyVals[0+yyTop]; } @@ -2762,7 +2762,7 @@ case 523: case_523(); break; case 524: -#line 3611 "cs-parser.jay" +#line 3615 "cs-parser.jay" { lexer.TypeOfParsing = true; } @@ -2807,7 +2807,7 @@ case 539: case_539(); break; case 540: -#line 3724 "cs-parser.jay" +#line 3728 "cs-parser.jay" { start_anonymous (false, (ParametersCompiled) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } @@ -2816,13 +2816,13 @@ case 541: case_541(); break; case 542: -#line 3740 "cs-parser.jay" +#line 3744 "cs-parser.jay" { yyVal = ParametersCompiled.Undefined; } break; case 544: -#line 3748 "cs-parser.jay" +#line 3752 "cs-parser.jay" { valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out; } @@ -2834,13 +2834,13 @@ case 546: case_546(); break; case 548: -#line 3774 "cs-parser.jay" +#line 3778 "cs-parser.jay" { yyVal = new Unary (Unary.Operator.LogicalNot, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } break; case 549: -#line 3778 "cs-parser.jay" +#line 3782 "cs-parser.jay" { yyVal = new Unary (Unary.Operator.OnesComplement, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } @@ -2849,37 +2849,37 @@ case 551: case_551(); break; case 553: -#line 3799 "cs-parser.jay" +#line 3803 "cs-parser.jay" { yyVal = new Unary (Unary.Operator.UnaryPlus, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } break; case 554: -#line 3803 "cs-parser.jay" +#line 3807 "cs-parser.jay" { yyVal = new Unary (Unary.Operator.UnaryNegation, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } break; case 555: -#line 3807 "cs-parser.jay" +#line 3811 "cs-parser.jay" { yyVal = new UnaryMutator (UnaryMutator.Mode.PreIncrement, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } break; case 556: -#line 3811 "cs-parser.jay" +#line 3815 "cs-parser.jay" { yyVal = new UnaryMutator (UnaryMutator.Mode.PreDecrement, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } break; case 557: -#line 3815 "cs-parser.jay" +#line 3819 "cs-parser.jay" { yyVal = new Indirection ((Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } break; case 558: -#line 3819 "cs-parser.jay" +#line 3823 "cs-parser.jay" { yyVal = new Unary (Unary.Operator.AddressOf, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } @@ -2897,7 +2897,7 @@ case 564: case_564(); break; case 565: -#line 3851 "cs-parser.jay" +#line 3855 "cs-parser.jay" { yyVal = new Binary (Binary.Operator.Subtraction, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } @@ -2906,13 +2906,13 @@ case 566: case_566(); break; case 567: -#line 3860 "cs-parser.jay" +#line 3864 "cs-parser.jay" { yyVal = new As ((Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } break; case 568: -#line 3864 "cs-parser.jay" +#line 3868 "cs-parser.jay" { yyVal = new Is ((Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } @@ -2963,7 +2963,7 @@ case 593: case_593(); break; case 594: -#line 3988 "cs-parser.jay" +#line 3992 "cs-parser.jay" { yyVal = new SimpleAssign ((Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } @@ -3014,14 +3014,14 @@ case 609: case_609(); break; case 610: -#line 4083 "cs-parser.jay" +#line 4087 "cs-parser.jay" { yyVal = ParametersCompiled.EmptyReadOnlyParameters; } break; case 611: case_611(); break; case 614: -#line 4098 "cs-parser.jay" +#line 4102 "cs-parser.jay" { start_block (lexer.Location); } @@ -3048,7 +3048,7 @@ case 622: case_622(); break; case 628: -#line 4160 "cs-parser.jay" +#line 4164 "cs-parser.jay" { yyVal = new ArglistAccess (GetLocation (yyVals[0+yyTop])); } @@ -3063,13 +3063,13 @@ case 631: case_631(); break; case 633: -#line 4189 "cs-parser.jay" +#line 4193 "cs-parser.jay" { yyVal = new BooleanExpression ((Expression) yyVals[0+yyTop]); } break; case 634: -#line 4202 "cs-parser.jay" +#line 4206 "cs-parser.jay" { lexer.ConstraintsParsing = true; } @@ -3087,11 +3087,11 @@ case 638: case_638(); break; case 639: -#line 4241 "cs-parser.jay" +#line 4245 "cs-parser.jay" { yyVal = null; } break; case 640: -#line 4243 "cs-parser.jay" +#line 4247 "cs-parser.jay" { yyVal = yyVals[0+yyTop]; StoreModifierLocation (Modifiers.PARTIAL, GetLocation (yyVals[0+yyTop])); } break; case 641: @@ -3146,13 +3146,13 @@ case 659: case_659(); break; case 661: -#line 4363 "cs-parser.jay" +#line 4367 "cs-parser.jay" { current_container.AddBasesForPart (current_class, (List) yyVals[0+yyTop]); } break; case 663: -#line 4371 "cs-parser.jay" +#line 4375 "cs-parser.jay" { yyVal = yyVals[0+yyTop]; } @@ -3182,19 +3182,19 @@ case 671: case_671(); break; case 672: -#line 4460 "cs-parser.jay" +#line 4464 "cs-parser.jay" { yyVal = new SpecialContraintExpr (SpecialConstraint.Class, GetLocation (yyVals[0+yyTop])); } break; case 673: -#line 4464 "cs-parser.jay" +#line 4468 "cs-parser.jay" { yyVal = new SpecialContraintExpr (SpecialConstraint.Struct, GetLocation (yyVals[0+yyTop])); } break; case 674: -#line 4471 "cs-parser.jay" +#line 4475 "cs-parser.jay" { yyVal = Variance.None; } @@ -3203,13 +3203,13 @@ case 675: case_675(); break; case 676: -#line 4485 "cs-parser.jay" +#line 4489 "cs-parser.jay" { yyVal = Variance.Covariant; } break; case 677: -#line 4489 "cs-parser.jay" +#line 4493 "cs-parser.jay" { yyVal = Variance.Contravariant; } @@ -3218,7 +3218,7 @@ case 678: case_678(); break; case 679: -#line 4514 "cs-parser.jay" +#line 4518 "cs-parser.jay" { yyVal = yyVals[0+yyTop]; } @@ -3236,13 +3236,13 @@ case 683: case_683(); break; case 688: -#line 4558 "cs-parser.jay" +#line 4562 "cs-parser.jay" { current_block.AddStatement ((Statement) yyVals[0+yyTop]); } break; case 689: -#line 4562 "cs-parser.jay" +#line 4566 "cs-parser.jay" { current_block.AddStatement ((Statement) yyVals[0+yyTop]); } @@ -3251,13 +3251,13 @@ case 691: case_691(); break; case 694: -#line 4586 "cs-parser.jay" +#line 4590 "cs-parser.jay" { current_block.AddStatement ((Statement) yyVals[0+yyTop]); } break; case 695: -#line 4590 "cs-parser.jay" +#line 4594 "cs-parser.jay" { current_block.AddStatement ((Statement) yyVals[0+yyTop]); } @@ -3290,13 +3290,13 @@ case 734: case_734(); break; case 735: -#line 4734 "cs-parser.jay" +#line 4738 "cs-parser.jay" { yyVal = new ComposedCast ((FullNamedExpression) yyVals[-1+yyTop], (ComposedTypeSpecifier) yyVals[0+yyTop]); } break; case 736: -#line 4738 "cs-parser.jay" +#line 4742 "cs-parser.jay" { yyVal = new ComposedCast (new TypeExpression (compiler.BuiltinTypes.Void, GetLocation (yyVals[-1+yyTop])), (ComposedTypeSpecifier) yyVals[0+yyTop]); } @@ -3308,7 +3308,7 @@ case 739: case_739(); break; case 740: -#line 4759 "cs-parser.jay" +#line 4763 "cs-parser.jay" { yyVal = ComposedTypeSpecifier.CreatePointer (GetLocation (yyVals[0+yyTop])); } @@ -3338,7 +3338,7 @@ case 753: case_753(); break; case 754: -#line 4848 "cs-parser.jay" +#line 4852 "cs-parser.jay" { report.Error (145, lexer.Location, "A const field requires a value to be provided"); } @@ -3359,15 +3359,15 @@ case 764: case_764(); break; case 765: -#line 4898 "cs-parser.jay" +#line 4902 "cs-parser.jay" { yyVal = yyVals[-1+yyTop]; } break; case 766: -#line 4902 "cs-parser.jay" +#line 4906 "cs-parser.jay" { yyVal = yyVals[-1+yyTop]; } break; case 767: -#line 4903 "cs-parser.jay" +#line 4907 "cs-parser.jay" { yyVal = yyVals[-1+yyTop]; } break; case 768: @@ -3386,7 +3386,7 @@ case 774: case_774(); break; case 775: -#line 4971 "cs-parser.jay" +#line 4975 "cs-parser.jay" { start_block (GetLocation (yyVals[0+yyTop])); } @@ -3407,13 +3407,13 @@ case 781: case_781(); break; case 782: -#line 5015 "cs-parser.jay" +#line 5019 "cs-parser.jay" { current_block = current_block.CreateSwitchBlock (lexer.Location); } break; case 783: -#line 5019 "cs-parser.jay" +#line 5023 "cs-parser.jay" { yyVal = new SwitchSection ((List) yyVals[-2+yyTop], current_block); } @@ -3428,7 +3428,7 @@ case 786: case_786(); break; case 787: -#line 5048 "cs-parser.jay" +#line 5052 "cs-parser.jay" { yyVal = new SwitchLabel (null, GetLocation (yyVals[0+yyTop])); } @@ -3443,7 +3443,7 @@ case 794: case_794(); break; case 795: -#line 5087 "cs-parser.jay" +#line 5091 "cs-parser.jay" { yyVal = yyVals[0+yyTop]; } @@ -3455,7 +3455,7 @@ case 797: case_797(); break; case 798: -#line 5115 "cs-parser.jay" +#line 5119 "cs-parser.jay" { yyVal = new EmptyStatement (lexer.Location); } break; case 800: @@ -3465,11 +3465,11 @@ case 801: case_801(); break; case 803: -#line 5136 "cs-parser.jay" +#line 5140 "cs-parser.jay" { yyVal = null; } break; case 805: -#line 5141 "cs-parser.jay" +#line 5145 "cs-parser.jay" { yyVal = new EmptyStatement (lexer.Location); } break; case 809: @@ -3512,7 +3512,7 @@ case 827: case_827(); break; case 830: -#line 5296 "cs-parser.jay" +#line 5300 "cs-parser.jay" { yyVal = new TryCatch ((Block) yyVals[-1+yyTop], (List) yyVals[0+yyTop], GetLocation (yyVals[-2+yyTop]), false); } @@ -3533,7 +3533,7 @@ case 835: case_835(); break; case 838: -#line 5349 "cs-parser.jay" +#line 5353 "cs-parser.jay" { yyVal = new Catch ((Block) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } @@ -3542,7 +3542,7 @@ case 839: case_839(); break; case 840: -#line 5368 "cs-parser.jay" +#line 5372 "cs-parser.jay" { yyVal = yyVals[-1+yyTop]; } @@ -3551,13 +3551,13 @@ case 841: case_841(); break; case 842: -#line 5386 "cs-parser.jay" +#line 5390 "cs-parser.jay" { yyVal = new Checked ((Block) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } break; case 843: -#line 5393 "cs-parser.jay" +#line 5397 "cs-parser.jay" { yyVal = new Unchecked ((Block) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } @@ -3566,7 +3566,7 @@ case 844: case_844(); break; case 845: -#line 5403 "cs-parser.jay" +#line 5407 "cs-parser.jay" { yyVal = new Unsafe ((Block) yyVals[0+yyTop], GetLocation (yyVals[-2+yyTop])); } @@ -3596,7 +3596,7 @@ case 853: case_853(); break; case 854: -#line 5486 "cs-parser.jay" +#line 5490 "cs-parser.jay" { report.Error (210, lexer.Location, "You must provide an initializer in a fixed or using statement declaration"); } @@ -3629,7 +3629,7 @@ case 863: case_863(); break; case 864: -#line 5586 "cs-parser.jay" +#line 5590 "cs-parser.jay" { current_block = new Linq.QueryBlock (current_block, lexer.Location); } @@ -3638,7 +3638,7 @@ case 865: case_865(); break; case 866: -#line 5601 "cs-parser.jay" +#line 5605 "cs-parser.jay" { current_block = new Linq.QueryBlock (current_block, lexer.Location); } @@ -3653,7 +3653,7 @@ case 870: case_870(); break; case 871: -#line 5646 "cs-parser.jay" +#line 5650 "cs-parser.jay" { current_block = new Linq.QueryBlock (current_block, lexer.Location); } @@ -3674,7 +3674,7 @@ case 879: case_879(); break; case 885: -#line 5705 "cs-parser.jay" +#line 5709 "cs-parser.jay" { current_block = new Linq.QueryBlock (current_block, lexer.Location); } @@ -3683,7 +3683,7 @@ case 886: case_886(); break; case 887: -#line 5724 "cs-parser.jay" +#line 5728 "cs-parser.jay" { current_block = new Linq.QueryBlock (current_block, lexer.Location); } @@ -3716,13 +3716,13 @@ case 896: case_896(); break; case 898: -#line 5868 "cs-parser.jay" +#line 5872 "cs-parser.jay" { yyVal = yyVals[0+yyTop]; } break; case 899: -#line 5875 "cs-parser.jay" +#line 5879 "cs-parser.jay" { current_block = new Linq.QueryBlock (current_block, lexer.Location); } @@ -3743,7 +3743,7 @@ case 906: case_906(); break; case 907: -#line 5921 "cs-parser.jay" +#line 5925 "cs-parser.jay" { yyVal = new Linq.OrderByAscending ((Linq.QueryBlock) current_block, (Expression)yyVals[0+yyTop]); } @@ -3755,7 +3755,7 @@ case 909: case_909(); break; case 910: -#line 5938 "cs-parser.jay" +#line 5942 "cs-parser.jay" { yyVal = new Linq.ThenByAscending ((Linq.QueryBlock) current_block, (Expression)yyVals[0+yyTop]); } @@ -3779,13 +3779,13 @@ case 919: case_919(); break; case 927: -#line 6062 "cs-parser.jay" +#line 6066 "cs-parser.jay" { module.DocumentationBuilder.ParsedName = (MemberName) yyVals[0+yyTop]; } break; case 928: -#line 6069 "cs-parser.jay" +#line 6073 "cs-parser.jay" { module.DocumentationBuilder.ParsedParameters = (List)yyVals[0+yyTop]; } @@ -3797,13 +3797,13 @@ case 930: case_930(); break; case 931: -#line 6086 "cs-parser.jay" +#line 6090 "cs-parser.jay" { yyVal = new MemberName ((MemberName) yyVals[-2+yyTop], new MemberName (MemberCache.IndexerNameAlias)); } break; case 932: -#line 6090 "cs-parser.jay" +#line 6094 "cs-parser.jay" { valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out; } @@ -3821,25 +3821,25 @@ case 936: case_936(); break; case 938: -#line 6126 "cs-parser.jay" +#line 6130 "cs-parser.jay" { yyVal = new MemberName (((MemberName) yyVals[-2+yyTop]), (MemberName) yyVals[0+yyTop]); } break; case 940: -#line 6134 "cs-parser.jay" +#line 6138 "cs-parser.jay" { valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out; } break; case 941: -#line 6138 "cs-parser.jay" +#line 6142 "cs-parser.jay" { yyVal = yyVals[-1+yyTop]; } break; case 942: -#line 6145 "cs-parser.jay" +#line 6149 "cs-parser.jay" { yyVal = new List (0); } @@ -4028,21 +4028,21 @@ void case_25() } void case_26() -#line 548 "cs-parser.jay" +#line 552 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop]; yyVal = new MemberName ((MemberName) yyVals[-2+yyTop], lt.Value, lt.Location); } void case_27() -#line 553 "cs-parser.jay" +#line 557 "cs-parser.jay" { Error_SyntaxError (yyToken); yyVal = new MemberName ("", lexer.Location); } void case_32() -#line 571 "cs-parser.jay" +#line 575 "cs-parser.jay" { MemberName name = (MemberName) yyVals[0+yyTop]; @@ -4053,7 +4053,7 @@ void case_32() } void case_41() -#line 603 "cs-parser.jay" +#line 607 "cs-parser.jay" { if (yyVals[0+yyTop] != null) { TypeContainer ds = (TypeContainer)yyVals[0+yyTop]; @@ -4074,7 +4074,7 @@ void case_41() } void case_50() -#line 653 "cs-parser.jay" +#line 657 "cs-parser.jay" { var sect = (List) yyVals[0+yyTop]; yyVal = new Attributes (sect); @@ -4082,7 +4082,7 @@ void case_50() } void case_51() -#line 659 "cs-parser.jay" +#line 663 "cs-parser.jay" { Attributes attrs = yyVals[-1+yyTop] as Attributes; var sect = (List) yyVals[0+yyTop]; @@ -4095,21 +4095,21 @@ void case_51() } void case_52() -#line 673 "cs-parser.jay" +#line 677 "cs-parser.jay" { lexer.parsing_attribute_section = true; savedOpenLocation = GetLocation (yyVals[0+yyTop]); } void case_53() -#line 678 "cs-parser.jay" +#line 682 "cs-parser.jay" { lexer.parsing_attribute_section = false; yyVal = yyVals[0+yyTop]; } void case_54() -#line 686 "cs-parser.jay" +#line 690 "cs-parser.jay" { current_attr_target = (string) yyVals[-1+yyTop]; if (current_attr_target == "assembly" || current_attr_target == "module") { @@ -4118,7 +4118,7 @@ void case_54() } void case_55() -#line 693 "cs-parser.jay" +#line 697 "cs-parser.jay" { /* when attribute target is invalid*/ if (current_attr_target == string.Empty) @@ -4132,21 +4132,21 @@ void case_55() } void case_56() -#line 705 "cs-parser.jay" +#line 709 "cs-parser.jay" { yyVal = yyVals[-2+yyTop]; savedCloseLocation = GetLocation (yyVals[0+yyTop]); } void case_57() -#line 713 "cs-parser.jay" +#line 717 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop]; yyVal = CheckAttributeTarget (lt.Value, lt.Location); } void case_60() -#line 720 "cs-parser.jay" +#line 724 "cs-parser.jay" { if (yyToken == Token.IDENTIFIER) { Error_SyntaxError (yyToken); @@ -4158,7 +4158,7 @@ void case_60() } void case_62() -#line 737 "cs-parser.jay" +#line 741 "cs-parser.jay" { var attrs = (List) yyVals[-2+yyTop]; attrs.Add ((Attribute) yyVals[0+yyTop]); @@ -4167,7 +4167,7 @@ void case_62() } void case_64() -#line 751 "cs-parser.jay" +#line 755 "cs-parser.jay" { --lexer.parsing_block; MemberName mname = (MemberName) yyVals[-2+yyTop]; @@ -4182,7 +4182,7 @@ void case_64() } void case_69() -#line 781 "cs-parser.jay" +#line 785 "cs-parser.jay" { Arguments a = new Arguments (4); a.Add ((Argument) yyVals[0+yyTop]); @@ -4190,7 +4190,7 @@ void case_69() } void case_70() -#line 787 "cs-parser.jay" +#line 791 "cs-parser.jay" { Arguments a = new Arguments (4); a.Add ((Argument) yyVals[0+yyTop]); @@ -4198,7 +4198,7 @@ void case_70() } void case_71() -#line 793 "cs-parser.jay" +#line 797 "cs-parser.jay" { Arguments[] o = (Arguments[]) yyVals[-2+yyTop]; if (o [1] != null) { @@ -4215,7 +4215,7 @@ void case_71() } void case_72() -#line 808 "cs-parser.jay" +#line 812 "cs-parser.jay" { Arguments[] o = (Arguments[]) yyVals[-2+yyTop]; if (o [1] == null) { @@ -4227,7 +4227,7 @@ void case_72() } void case_76() -#line 833 "cs-parser.jay" +#line 837 "cs-parser.jay" { --lexer.parsing_block; var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop]; @@ -4236,7 +4236,7 @@ void case_76() } void case_77() -#line 843 "cs-parser.jay" +#line 847 "cs-parser.jay" { if (lang_version <= LanguageVersion.V_3) FeatureIsNotAvailable (GetLocation (yyVals[-3+yyTop]), "named argument"); @@ -4249,7 +4249,7 @@ void case_77() } void case_95() -#line 890 "cs-parser.jay" +#line 894 "cs-parser.jay" { report.Error (1519, lexer.Location, "Unexpected symbol `{0}' in class, struct, or interface member declaration", GetSymbolName (yyToken)); @@ -4258,14 +4258,14 @@ void case_95() } void case_97() -#line 907 "cs-parser.jay" +#line 911 "cs-parser.jay" { MemberName name = MakeName ((MemberName) yyVals[0+yyTop]); push_current_class (new Struct (current_namespace, current_class, name, (Modifiers) yyVals[-4+yyTop], (Attributes) yyVals[-5+yyTop]), yyVals[-3+yyTop]); } void case_98() -#line 913 "cs-parser.jay" +#line 917 "cs-parser.jay" { lexer.ConstraintsParsing = false; @@ -4278,7 +4278,7 @@ void case_98() } void case_99() -#line 924 "cs-parser.jay" +#line 928 "cs-parser.jay" { --lexer.parsing_declaration; if (doc_support) @@ -4286,21 +4286,21 @@ void case_99() } void case_100() -#line 930 "cs-parser.jay" +#line 934 "cs-parser.jay" { lbag.AppendToMember (current_class, GetLocation (yyVals[0+yyTop])); yyVal = pop_current_class (); } void case_102() -#line 942 "cs-parser.jay" +#line 946 "cs-parser.jay" { if (doc_support) Lexer.doc_state = XmlCommentState.Allowed; } void case_118() -#line 984 "cs-parser.jay" +#line 988 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop]; var mod = (Modifiers) yyVals[-3+yyTop]; @@ -4315,7 +4315,7 @@ void case_118() } void case_119() -#line 997 "cs-parser.jay" +#line 1001 "cs-parser.jay" { if (doc_support) { current_field.DocComment = Lexer.consume_doc_comment (); @@ -4328,7 +4328,7 @@ void case_119() } void case_124() -#line 1027 "cs-parser.jay" +#line 1031 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop]; yyVal = new FieldDeclarator (new SimpleMemberName (lt.Value, lt.Location), (ConstInitializer) yyVals[0+yyTop]); @@ -4336,7 +4336,7 @@ void case_124() } void case_126() -#line 1040 "cs-parser.jay" +#line 1044 "cs-parser.jay" { --lexer.parsing_block; yyVal = new ConstInitializer (current_field, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-2+yyTop])); @@ -4344,14 +4344,14 @@ void case_126() } void case_127() -#line 1046 "cs-parser.jay" +#line 1050 "cs-parser.jay" { report.Error (145, lexer.Location, "A const field requires a value to be provided"); yyVal = null; } void case_130() -#line 1061 "cs-parser.jay" +#line 1065 "cs-parser.jay" { lexer.parsing_generic_declaration = false; @@ -4366,7 +4366,7 @@ void case_130() } void case_131() -#line 1076 "cs-parser.jay" +#line 1080 "cs-parser.jay" { if (doc_support) { current_field.DocComment = Lexer.consume_doc_comment (); @@ -4379,7 +4379,7 @@ void case_131() } void case_132() -#line 1089 "cs-parser.jay" +#line 1093 "cs-parser.jay" { if (lang_version < LanguageVersion.ISO_2) FeatureIsNotAvailable (GetLocation (yyVals[-2+yyTop]), "fixed size buffers"); @@ -4392,7 +4392,7 @@ void case_132() } void case_133() -#line 1100 "cs-parser.jay" +#line 1104 "cs-parser.jay" { if (doc_support) { current_field.DocComment = Lexer.consume_doc_comment (); @@ -4406,7 +4406,7 @@ void case_133() } void case_136() -#line 1123 "cs-parser.jay" +#line 1127 "cs-parser.jay" { ++lexer.parsing_block; current_local_parameters = ParametersCompiled.EmptyReadOnlyParameters; @@ -4414,7 +4414,7 @@ void case_136() } void case_137() -#line 1129 "cs-parser.jay" +#line 1133 "cs-parser.jay" { --lexer.parsing_block; current_field.Initializer = (Expression) yyVals[0+yyTop]; @@ -4424,7 +4424,7 @@ void case_137() } void case_142() -#line 1156 "cs-parser.jay" +#line 1160 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop]; yyVal = new FieldDeclarator (new SimpleMemberName (lt.Value, lt.Location), null); @@ -4432,7 +4432,7 @@ void case_142() } void case_144() -#line 1166 "cs-parser.jay" +#line 1170 "cs-parser.jay" { --lexer.parsing_block; var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop]; @@ -4441,7 +4441,7 @@ void case_144() } void case_149() -#line 1192 "cs-parser.jay" +#line 1196 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop]; yyVal = new FieldDeclarator (new SimpleMemberName (lt.Value, lt.Location), (ConstInitializer) yyVals[0+yyTop]); @@ -4449,7 +4449,7 @@ void case_149() } void case_151() -#line 1205 "cs-parser.jay" +#line 1209 "cs-parser.jay" { --lexer.parsing_block; yyVal = new ConstInitializer (current_field, (Expression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop])); @@ -4457,14 +4457,14 @@ void case_151() } void case_152() -#line 1211 "cs-parser.jay" +#line 1215 "cs-parser.jay" { report.Error (443, lexer.Location, "Value or constant expected"); yyVal = null; } void case_155() -#line 1221 "cs-parser.jay" +#line 1225 "cs-parser.jay" { /* It has to be here for the parent to safely restore artificial block*/ Error_SyntaxError (yyToken); @@ -4472,7 +4472,7 @@ void case_155() } void case_156() -#line 1230 "cs-parser.jay" +#line 1234 "cs-parser.jay" { if (doc_support) Lexer.doc_state = XmlCommentState.NotAllowed; @@ -4482,7 +4482,7 @@ void case_156() } void case_157() -#line 1238 "cs-parser.jay" +#line 1242 "cs-parser.jay" { Method method = (Method) yyVals[-2+yyTop]; method.Block = (ToplevelBlock) yyVals[0+yyTop]; @@ -4498,7 +4498,7 @@ void case_157() } void case_160() -#line 1266 "cs-parser.jay" +#line 1270 "cs-parser.jay" { lexer.ConstraintsParsing = false; valid_param_mod = 0; @@ -4533,7 +4533,7 @@ void case_160() } void case_163() -#line 1311 "cs-parser.jay" +#line 1315 "cs-parser.jay" { lexer.ConstraintsParsing = false; valid_param_mod = 0; @@ -4587,7 +4587,7 @@ void case_163() } void case_164() -#line 1366 "cs-parser.jay" +#line 1370 "cs-parser.jay" { MemberName name = (MemberName) yyVals[-3+yyTop]; report.Error (1585, name.Location, @@ -4605,7 +4605,7 @@ void case_164() } void case_169() -#line 1395 "cs-parser.jay" +#line 1399 "cs-parser.jay" { var pars_list = (List) yyVals[0+yyTop]; yyVal = new ParametersCompiled (pars_list.ToArray ()); @@ -4613,7 +4613,7 @@ void case_169() } void case_170() -#line 1401 "cs-parser.jay" +#line 1405 "cs-parser.jay" { var pars_list = (List) yyVals[-2+yyTop]; pars_list.Add ((Parameter) yyVals[0+yyTop]); @@ -4622,7 +4622,7 @@ void case_170() } void case_171() -#line 1408 "cs-parser.jay" +#line 1412 "cs-parser.jay" { var pars_list = (List) yyVals[-2+yyTop]; pars_list.Add (new ArglistParameter (GetLocation (yyVals[0+yyTop]))); @@ -4630,7 +4630,7 @@ void case_171() } void case_172() -#line 1414 "cs-parser.jay" +#line 1418 "cs-parser.jay" { if (yyVals[-2+yyTop] != null) report.Error (231, ((Parameter) yyVals[-2+yyTop]).Location, "A params parameter must be the last parameter in a formal parameter list"); @@ -4639,7 +4639,7 @@ void case_172() } void case_173() -#line 1421 "cs-parser.jay" +#line 1425 "cs-parser.jay" { if (yyVals[-2+yyTop] != null) report.Error (231, ((Parameter) yyVals[-2+yyTop]).Location, "A params parameter must be the last parameter in a formal parameter list"); @@ -4651,7 +4651,7 @@ void case_173() } void case_174() -#line 1431 "cs-parser.jay" +#line 1435 "cs-parser.jay" { report.Error (257, GetLocation (yyVals[-2+yyTop]), "An __arglist parameter must be the last parameter in a formal parameter list"); @@ -4659,7 +4659,7 @@ void case_174() } void case_175() -#line 1437 "cs-parser.jay" +#line 1441 "cs-parser.jay" { report.Error (257, GetLocation (yyVals[-2+yyTop]), "An __arglist parameter must be the last parameter in a formal parameter list"); @@ -4670,14 +4670,14 @@ void case_175() } void case_178() -#line 1454 "cs-parser.jay" +#line 1458 "cs-parser.jay" { Error_SyntaxError (yyToken); yyVal = ParametersCompiled.EmptyReadOnlyParameters; } void case_179() -#line 1462 "cs-parser.jay" +#line 1466 "cs-parser.jay" { parameters_bucket.Clear (); Parameter p = (Parameter) yyVals[0+yyTop]; @@ -4688,7 +4688,7 @@ void case_179() } void case_180() -#line 1471 "cs-parser.jay" +#line 1475 "cs-parser.jay" { var pars = (List) yyVals[-2+yyTop]; Parameter p = (Parameter) yyVals[0+yyTop]; @@ -4708,7 +4708,7 @@ void case_180() } void case_181() -#line 1495 "cs-parser.jay" +#line 1499 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop]; yyVal = new Parameter ((FullNamedExpression) yyVals[-1+yyTop], lt.Value, (Parameter.Modifier) yyVals[-2+yyTop], (Attributes) yyVals[-3+yyTop], lt.Location); @@ -4716,7 +4716,7 @@ void case_181() } void case_182() -#line 1504 "cs-parser.jay" +#line 1508 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop]; report.Error (1552, lt.Location, "Array type specifier, [], must appear before parameter name"); @@ -4725,7 +4725,7 @@ void case_182() } void case_183() -#line 1514 "cs-parser.jay" +#line 1518 "cs-parser.jay" { Error_SyntaxError (yyToken); Location l = GetLocation (yyVals[0+yyTop]); @@ -4734,7 +4734,7 @@ void case_183() } void case_185() -#line 1529 "cs-parser.jay" +#line 1533 "cs-parser.jay" { --lexer.parsing_block; if (lang_version <= LanguageVersion.V_3) { @@ -4773,14 +4773,14 @@ void case_185() } void case_188() -#line 1574 "cs-parser.jay" +#line 1578 "cs-parser.jay" { yyVal = yyVals[0+yyTop]; parameterModifierLocation = GetLocation (yyVals[0+yyTop]); } void case_189() -#line 1579 "cs-parser.jay" +#line 1583 "cs-parser.jay" { Parameter.Modifier p2 = (Parameter.Modifier)yyVals[0+yyTop]; Parameter.Modifier mod = (Parameter.Modifier)yyVals[-1+yyTop] | p2; @@ -4803,7 +4803,7 @@ void case_189() } void case_190() -#line 1603 "cs-parser.jay" +#line 1607 "cs-parser.jay" { if ((valid_param_mod & ParameterModifierType.Ref) == 0) Error_ParameterModifierNotValid ("ref", GetLocation (yyVals[0+yyTop])); @@ -4812,7 +4812,7 @@ void case_190() } void case_191() -#line 1610 "cs-parser.jay" +#line 1614 "cs-parser.jay" { if ((valid_param_mod & ParameterModifierType.Out) == 0) Error_ParameterModifierNotValid ("out", GetLocation (yyVals[0+yyTop])); @@ -4821,7 +4821,7 @@ void case_191() } void case_192() -#line 1617 "cs-parser.jay" +#line 1621 "cs-parser.jay" { if ((valid_param_mod & ParameterModifierType.This) == 0) Error_ParameterModifierNotValid ("this", GetLocation (yyVals[0+yyTop])); @@ -4833,14 +4833,14 @@ void case_192() } void case_193() -#line 1630 "cs-parser.jay" +#line 1634 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop]; yyVal = new ParamsParameter ((FullNamedExpression) yyVals[-1+yyTop], lt.Value, (Attributes) yyVals[-3+yyTop], lt.Location); } void case_194() -#line 1635 "cs-parser.jay" +#line 1639 "cs-parser.jay" { report.Error (1751, GetLocation (yyVals[-4+yyTop]), "Cannot specify a default value for a parameter array"); @@ -4849,21 +4849,21 @@ void case_194() } void case_195() -#line 1642 "cs-parser.jay" +#line 1646 "cs-parser.jay" { Error_SyntaxError (yyToken); yyVal = null; } void case_196() -#line 1650 "cs-parser.jay" +#line 1654 "cs-parser.jay" { if ((valid_param_mod & ParameterModifierType.Params) == 0) report.Error (1670, (GetLocation (yyVals[0+yyTop])), "The `params' modifier is not allowed in current context"); } void case_197() -#line 1655 "cs-parser.jay" +#line 1659 "cs-parser.jay" { Parameter.Modifier mod = (Parameter.Modifier)yyVals[0+yyTop]; if ((mod & Parameter.Modifier.This) != 0) { @@ -4874,21 +4874,21 @@ void case_197() } void case_199() -#line 1671 "cs-parser.jay" +#line 1675 "cs-parser.jay" { if ((valid_param_mod & ParameterModifierType.Arglist) == 0) report.Error (1669, GetLocation (yyVals[0+yyTop]), "__arglist is not valid in this context"); } void case_200() -#line 1682 "cs-parser.jay" +#line 1686 "cs-parser.jay" { if (doc_support) tmpComment = Lexer.consume_doc_comment (); } void case_201() -#line 1687 "cs-parser.jay" +#line 1691 "cs-parser.jay" { var type = (FullNamedExpression) yyVals[-3+yyTop]; current_property = new Property (current_class, type, (Modifiers) yyVals[-4+yyTop], @@ -4904,7 +4904,7 @@ void case_201() } void case_202() -#line 1701 "cs-parser.jay" +#line 1705 "cs-parser.jay" { lexer.PropertyParsing = false; @@ -4913,14 +4913,14 @@ void case_202() } void case_203() -#line 1708 "cs-parser.jay" +#line 1712 "cs-parser.jay" { lbag.AppendToMember (current_property, GetLocation (yyVals[0+yyTop])); current_property = null; } void case_205() -#line 1722 "cs-parser.jay" +#line 1726 "cs-parser.jay" { valid_param_mod = 0; var type = (FullNamedExpression) yyVals[-6+yyTop]; @@ -4948,7 +4948,7 @@ void case_205() } void case_207() -#line 1752 "cs-parser.jay" +#line 1756 "cs-parser.jay" { if (doc_support) current_property.DocComment = ConsumeStoredComment (); @@ -4958,7 +4958,7 @@ void case_207() } void case_212() -#line 1768 "cs-parser.jay" +#line 1772 "cs-parser.jay" { if (yyToken == Token.CLOSE_BRACE) { report.Error (548, lexer.Location, "`{0}': property or indexer must have at least one accessor", current_property.GetSignatureForError ()); @@ -4971,7 +4971,7 @@ void case_212() } void case_213() -#line 1782 "cs-parser.jay" +#line 1786 "cs-parser.jay" { if (yyVals[-1+yyTop] != ModifierNone && lang_version == LanguageVersion.ISO_1) { FeatureIsNotAvailable (GetLocation (yyVals[-1+yyTop]), "access modifiers on properties"); @@ -4995,7 +4995,7 @@ void case_213() } void case_214() -#line 1804 "cs-parser.jay" +#line 1808 "cs-parser.jay" { if (yyVals[0+yyTop] != null) { current_property.Get.Block = (ToplevelBlock) yyVals[0+yyTop]; @@ -5015,7 +5015,7 @@ void case_214() } void case_215() -#line 1825 "cs-parser.jay" +#line 1829 "cs-parser.jay" { if (yyVals[-1+yyTop] != ModifierNone && lang_version == LanguageVersion.ISO_1) { FeatureIsNotAvailable (GetLocation (yyVals[-1+yyTop]), "access modifiers on properties"); @@ -5044,7 +5044,7 @@ void case_215() } void case_216() -#line 1852 "cs-parser.jay" +#line 1856 "cs-parser.jay" { if (yyVals[0+yyTop] != null) { current_property.Set.Block = (ToplevelBlock) yyVals[0+yyTop]; @@ -5064,21 +5064,21 @@ void case_216() } void case_218() -#line 1874 "cs-parser.jay" +#line 1878 "cs-parser.jay" { lbag.AppendToMember (lbag.LastMember, GetLocation (yyVals[0+yyTop])); yyVal = null; } void case_219() -#line 1879 "cs-parser.jay" +#line 1883 "cs-parser.jay" { Error_SyntaxError (1043, yyToken, "Invalid accessor body"); yyVal = null; } void case_221() -#line 1894 "cs-parser.jay" +#line 1898 "cs-parser.jay" { MemberName name = MakeName ((MemberName) yyVals[0+yyTop]); push_current_class (new Interface (current_namespace, current_class, name, (Modifiers) yyVals[-4+yyTop], (Attributes) yyVals[-5+yyTop]), yyVals[-3+yyTop]); @@ -5086,7 +5086,7 @@ void case_221() } void case_222() -#line 1901 "cs-parser.jay" +#line 1905 "cs-parser.jay" { lexer.ConstraintsParsing = false; @@ -5099,7 +5099,7 @@ void case_222() } void case_223() -#line 1912 "cs-parser.jay" +#line 1916 "cs-parser.jay" { --lexer.parsing_declaration; if (doc_support) @@ -5107,14 +5107,14 @@ void case_223() } void case_224() -#line 1918 "cs-parser.jay" +#line 1922 "cs-parser.jay" { lbag.AppendToMember (current_class, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-2+yyTop])); yyVal = pop_current_class (); } void case_240() -#line 1970 "cs-parser.jay" +#line 1974 "cs-parser.jay" { OperatorDeclaration decl = (OperatorDeclaration) yyVals[-2+yyTop]; if (decl != null) { @@ -5138,14 +5138,14 @@ void case_240() } void case_244() -#line 2001 "cs-parser.jay" +#line 2005 "cs-parser.jay" { report.Error (590, GetLocation (yyVals[0+yyTop]), "User-defined operators cannot return void"); yyVal = new TypeExpression (compiler.BuiltinTypes.Void, GetLocation (yyVals[0+yyTop])); } void case_246() -#line 2013 "cs-parser.jay" +#line 2017 "cs-parser.jay" { valid_param_mod = 0; @@ -5187,7 +5187,7 @@ void case_246() } void case_271() -#line 2089 "cs-parser.jay" +#line 2093 "cs-parser.jay" { valid_param_mod = 0; @@ -5204,7 +5204,7 @@ void case_271() } void case_273() -#line 2108 "cs-parser.jay" +#line 2112 "cs-parser.jay" { valid_param_mod = 0; @@ -5221,7 +5221,7 @@ void case_273() } void case_274() -#line 2123 "cs-parser.jay" +#line 2127 "cs-parser.jay" { Error_SyntaxError (yyToken); current_local_parameters = ParametersCompiled.EmptyReadOnlyParameters; @@ -5229,7 +5229,7 @@ void case_274() } void case_275() -#line 2129 "cs-parser.jay" +#line 2133 "cs-parser.jay" { Error_SyntaxError (yyToken); current_local_parameters = ParametersCompiled.EmptyReadOnlyParameters; @@ -5237,7 +5237,7 @@ void case_275() } void case_276() -#line 2139 "cs-parser.jay" +#line 2143 "cs-parser.jay" { Constructor c = (Constructor) yyVals[-1+yyTop]; c.Block = (ToplevelBlock) yyVals[0+yyTop]; @@ -5253,7 +5253,7 @@ void case_276() } void case_277() -#line 2158 "cs-parser.jay" +#line 2162 "cs-parser.jay" { if (doc_support) { tmpComment = Lexer.consume_doc_comment (); @@ -5264,7 +5264,7 @@ void case_277() } void case_278() -#line 2167 "cs-parser.jay" +#line 2171 "cs-parser.jay" { valid_param_mod = 0; current_local_parameters = (ParametersCompiled) yyVals[-1+yyTop]; @@ -5277,7 +5277,7 @@ void case_278() } void case_279() -#line 2178 "cs-parser.jay" +#line 2182 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken) yyVals[-6+yyTop]; var mods = (Modifiers) yyVals[-7+yyTop]; @@ -5307,7 +5307,7 @@ void case_279() } void case_285() -#line 2223 "cs-parser.jay" +#line 2227 "cs-parser.jay" { --lexer.parsing_block; yyVal = new ConstructorBaseInitializer ((Arguments) yyVals[-1+yyTop], GetLocation (yyVals[-4+yyTop])); @@ -5315,7 +5315,7 @@ void case_285() } void case_287() -#line 2233 "cs-parser.jay" +#line 2237 "cs-parser.jay" { --lexer.parsing_block; yyVal = new ConstructorThisInitializer ((Arguments) yyVals[-1+yyTop], GetLocation (yyVals[-4+yyTop])); @@ -5323,14 +5323,14 @@ void case_287() } void case_288() -#line 2239 "cs-parser.jay" +#line 2243 "cs-parser.jay" { Error_SyntaxError (yyToken); yyVal = null; } void case_289() -#line 2247 "cs-parser.jay" +#line 2251 "cs-parser.jay" { if (doc_support) { tmpComment = Lexer.consume_doc_comment (); @@ -5341,7 +5341,7 @@ void case_289() } void case_290() -#line 2256 "cs-parser.jay" +#line 2260 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop]; if (lt.Value != current_container.MemberName.Name){ @@ -5363,7 +5363,7 @@ void case_290() } void case_291() -#line 2281 "cs-parser.jay" +#line 2285 "cs-parser.jay" { current_event_field = new EventField (current_class, (FullNamedExpression) yyVals[-1+yyTop], (Modifiers) yyVals[-3+yyTop], (MemberName) yyVals[0+yyTop], (Attributes) yyVals[-4+yyTop]); current_container.AddEvent (current_event_field); @@ -5377,7 +5377,7 @@ void case_291() } void case_292() -#line 2295 "cs-parser.jay" +#line 2299 "cs-parser.jay" { if (doc_support) { current_event_field.DocComment = Lexer.consume_doc_comment (); @@ -5389,7 +5389,7 @@ void case_292() } void case_293() -#line 2308 "cs-parser.jay" +#line 2312 "cs-parser.jay" { current_event = new EventProperty (current_class, (FullNamedExpression) yyVals[-2+yyTop], (Modifiers) yyVals[-4+yyTop], (MemberName) yyVals[-1+yyTop], (Attributes) yyVals[-5+yyTop]); current_container.AddEvent (current_event); @@ -5399,7 +5399,7 @@ void case_293() } void case_294() -#line 2316 "cs-parser.jay" +#line 2320 "cs-parser.jay" { if (current_container.Kind == MemberKind.Interface) report.Error (69, GetLocation (yyVals[-2+yyTop]), "Event in interface cannot have add or remove accessors"); @@ -5408,7 +5408,7 @@ void case_294() } void case_295() -#line 2323 "cs-parser.jay" +#line 2327 "cs-parser.jay" { if (doc_support) { current_event.DocComment = Lexer.consume_doc_comment (); @@ -5421,14 +5421,14 @@ void case_295() } void case_298() -#line 2342 "cs-parser.jay" +#line 2346 "cs-parser.jay" { --lexer.parsing_block; current_event_field.Initializer = (Expression) yyVals[0+yyTop]; } void case_303() -#line 2366 "cs-parser.jay" +#line 2370 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop]; yyVal = new FieldDeclarator (new SimpleMemberName (lt.Value, lt.Location), null); @@ -5436,7 +5436,7 @@ void case_303() } void case_305() -#line 2376 "cs-parser.jay" +#line 2380 "cs-parser.jay" { --lexer.parsing_block; var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop]; @@ -5445,7 +5445,7 @@ void case_305() } void case_306() -#line 2385 "cs-parser.jay" +#line 2389 "cs-parser.jay" { if (current_container.Kind == MemberKind.Interface) { report.Error (68, lexer.Location, "`{0}': event in interface cannot have an initializer", @@ -5459,28 +5459,28 @@ void case_306() } void case_310() -#line 2406 "cs-parser.jay" +#line 2410 "cs-parser.jay" { report.Error (65, lexer.Location, "`{0}': event property must have both add and remove accessors", current_event.GetSignatureForError ()); } void case_311() -#line 2411 "cs-parser.jay" +#line 2415 "cs-parser.jay" { report.Error (65, lexer.Location, "`{0}': event property must have both add and remove accessors", current_event.GetSignatureForError ()); } void case_312() -#line 2416 "cs-parser.jay" +#line 2420 "cs-parser.jay" { report.Error (1055, GetLocation (yyVals[0+yyTop]), "An add or remove accessor expected"); yyVal = null; } void case_313() -#line 2424 "cs-parser.jay" +#line 2428 "cs-parser.jay" { if (yyVals[-1+yyTop] != ModifierNone) { report.Error (1609, GetLocation (yyVals[-1+yyTop]), "Modifiers cannot be placed on event accessor declarations"); @@ -5494,7 +5494,7 @@ void case_313() } void case_314() -#line 2436 "cs-parser.jay" +#line 2440 "cs-parser.jay" { lexer.EventParsing = true; @@ -5509,7 +5509,7 @@ void case_314() } void case_315() -#line 2452 "cs-parser.jay" +#line 2456 "cs-parser.jay" { if (yyVals[-1+yyTop] != ModifierNone) { report.Error (1609, GetLocation (yyVals[-1+yyTop]), "Modifiers cannot be placed on event accessor declarations"); @@ -5523,7 +5523,7 @@ void case_315() } void case_316() -#line 2464 "cs-parser.jay" +#line 2468 "cs-parser.jay" { lexer.EventParsing = true; @@ -5538,21 +5538,21 @@ void case_316() } void case_317() -#line 2480 "cs-parser.jay" +#line 2484 "cs-parser.jay" { report.Error (73, lexer.Location, "An add or remove accessor must have a body"); yyVal = null; } void case_319() -#line 2492 "cs-parser.jay" +#line 2496 "cs-parser.jay" { if (doc_support) enumTypeComment = Lexer.consume_doc_comment (); } void case_320() -#line 2497 "cs-parser.jay" +#line 2501 "cs-parser.jay" { if (doc_support) Lexer.doc_state = XmlCommentState.Allowed; @@ -5566,7 +5566,7 @@ void case_320() } void case_321() -#line 2509 "cs-parser.jay" +#line 2513 "cs-parser.jay" { /* here will be evaluated after CLOSE_BLACE is consumed.*/ if (doc_support) @@ -5574,7 +5574,7 @@ void case_321() } void case_322() -#line 2515 "cs-parser.jay" +#line 2519 "cs-parser.jay" { if (doc_support) current_class.DocComment = enumTypeComment; @@ -5589,7 +5589,7 @@ void case_322() } void case_324() -#line 2532 "cs-parser.jay" +#line 2536 "cs-parser.jay" { var te = yyVals[0+yyTop] as TypeExpression; if (te == null || !EnumSpec.IsValidUnderlyingType (te.Type)) { @@ -5601,21 +5601,21 @@ void case_324() } void case_325() -#line 2542 "cs-parser.jay" +#line 2546 "cs-parser.jay" { Error_TypeExpected (GetLocation (yyVals[-1+yyTop])); yyVal = null; } void case_330() -#line 2560 "cs-parser.jay" +#line 2564 "cs-parser.jay" { lbag.AddLocation (yyVals[-2+yyTop], GetLocation (yyVals[-1+yyTop])); yyVal = yyVals[0+yyTop]; } void case_331() -#line 2568 "cs-parser.jay" +#line 2572 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop]; var em = new EnumMember ((Enum) current_class, new MemberName (lt.Value, lt.Location), (Attributes) yyVals[-1+yyTop]); @@ -5630,7 +5630,7 @@ void case_331() } void case_332() -#line 2581 "cs-parser.jay" +#line 2585 "cs-parser.jay" { ++lexer.parsing_block; if (doc_support) { @@ -5640,7 +5640,7 @@ void case_332() } void case_333() -#line 2589 "cs-parser.jay" +#line 2593 "cs-parser.jay" { --lexer.parsing_block; @@ -5656,7 +5656,7 @@ void case_333() } void case_335() -#line 2614 "cs-parser.jay" +#line 2618 "cs-parser.jay" { valid_param_mod = 0; @@ -5674,7 +5674,7 @@ void case_335() } void case_337() -#line 2634 "cs-parser.jay" +#line 2638 "cs-parser.jay" { if (doc_support) { current_delegate.DocComment = Lexer.consume_doc_comment (); @@ -5690,7 +5690,7 @@ void case_337() } void case_339() -#line 2652 "cs-parser.jay" +#line 2656 "cs-parser.jay" { if (lang_version < LanguageVersion.ISO_2) FeatureIsNotAvailable (GetLocation (yyVals[0+yyTop]), "nullable types"); @@ -5699,7 +5699,7 @@ void case_339() } void case_341() -#line 2663 "cs-parser.jay" +#line 2667 "cs-parser.jay" { var lt1 = (Tokenizer.LocatedToken) yyVals[-2+yyTop]; var lt2 = (Tokenizer.LocatedToken) yyVals[-1+yyTop]; @@ -5708,7 +5708,7 @@ void case_341() } void case_343() -#line 2674 "cs-parser.jay" +#line 2678 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop]; yyVal = new MemberName ((MemberName) yyVals[-3+yyTop], lt.Value, (TypeArguments) yyVals[0+yyTop], lt.Location); @@ -5716,14 +5716,14 @@ void case_343() } void case_344() -#line 2683 "cs-parser.jay" +#line 2687 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop]; yyVal = new MemberName (lt.Value, (TypeArguments)yyVals[0+yyTop], lt.Location); } void case_346() -#line 2695 "cs-parser.jay" +#line 2699 "cs-parser.jay" { if (lang_version < LanguageVersion.ISO_2) FeatureIsNotAvailable (GetLocation (yyVals[-2+yyTop]), "generics"); @@ -5732,14 +5732,14 @@ void case_346() } void case_347() -#line 2702 "cs-parser.jay" +#line 2706 "cs-parser.jay" { Error_TypeExpected (lexer.Location); yyVal = new TypeArguments (); } void case_348() -#line 2710 "cs-parser.jay" +#line 2714 "cs-parser.jay" { TypeArguments type_args = new TypeArguments (); type_args.Add ((FullNamedExpression) yyVals[0+yyTop]); @@ -5747,7 +5747,7 @@ void case_348() } void case_349() -#line 2716 "cs-parser.jay" +#line 2720 "cs-parser.jay" { TypeArguments type_args = (TypeArguments) yyVals[-2+yyTop]; type_args.Add ((FullNamedExpression) yyVals[0+yyTop]); @@ -5755,7 +5755,7 @@ void case_349() } void case_351() -#line 2732 "cs-parser.jay" +#line 2736 "cs-parser.jay" { lexer.parsing_generic_declaration = false; var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop]; @@ -5763,7 +5763,7 @@ void case_351() } void case_352() -#line 2741 "cs-parser.jay" +#line 2745 "cs-parser.jay" { MemberName mn = (MemberName)yyVals[0+yyTop]; if (mn.TypeArguments != null) @@ -5772,7 +5772,7 @@ void case_352() } void case_354() -#line 2752 "cs-parser.jay" +#line 2756 "cs-parser.jay" { lexer.parsing_generic_declaration = false; var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop]; @@ -5780,21 +5780,21 @@ void case_354() } void case_355() -#line 2761 "cs-parser.jay" +#line 2765 "cs-parser.jay" { lexer.parsing_generic_declaration = false; yyVal = new MemberName (TypeContainer.DefaultIndexerName, GetLocation (yyVals[0+yyTop])); } void case_356() -#line 2766 "cs-parser.jay" +#line 2770 "cs-parser.jay" { lexer.parsing_generic_declaration = false; yyVal = new MemberName ((MemberName) yyVals[-1+yyTop], TypeContainer.DefaultIndexerName, null, GetLocation (yyVals[-1+yyTop])); } void case_357() -#line 2774 "cs-parser.jay" +#line 2778 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop]; yyVal = new MemberName (lt.Value, (TypeArguments) yyVals[-1+yyTop], lt.Location); @@ -5802,7 +5802,7 @@ void case_357() } void case_358() -#line 2780 "cs-parser.jay" +#line 2784 "cs-parser.jay" { var lt1 = (Tokenizer.LocatedToken) yyVals[-3+yyTop]; var lt2 = (Tokenizer.LocatedToken) yyVals[-2+yyTop]; @@ -5812,7 +5812,7 @@ void case_358() } void case_359() -#line 2788 "cs-parser.jay" +#line 2792 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop]; yyVal = new MemberName ((MemberName) yyVals[-3+yyTop], lt.Value, (TypeArguments) yyVals[-1+yyTop], lt.Location); @@ -5820,7 +5820,7 @@ void case_359() } void case_361() -#line 2798 "cs-parser.jay" +#line 2802 "cs-parser.jay" { if (lang_version < LanguageVersion.ISO_2) FeatureIsNotAvailable (GetLocation (yyVals[-2+yyTop]), "generics"); @@ -5830,7 +5830,7 @@ void case_361() } void case_362() -#line 2809 "cs-parser.jay" +#line 2813 "cs-parser.jay" { TypeArguments type_args = new TypeArguments (); type_args.Add ((FullNamedExpression)yyVals[0+yyTop]); @@ -5838,7 +5838,7 @@ void case_362() } void case_363() -#line 2815 "cs-parser.jay" +#line 2819 "cs-parser.jay" { TypeArguments type_args = (TypeArguments) yyVals[-2+yyTop]; type_args.Add ((FullNamedExpression)yyVals[0+yyTop]); @@ -5847,14 +5847,14 @@ void case_363() } void case_364() -#line 2825 "cs-parser.jay" +#line 2829 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken)yyVals[0+yyTop]; yyVal = new TypeParameterName (lt.Value, (Attributes)yyVals[-2+yyTop], (Variance) yyVals[-1+yyTop], lt.Location); } void case_365() -#line 2830 "cs-parser.jay" +#line 2834 "cs-parser.jay" { if (GetTokenName (yyToken) == "type") report.Error (81, GetLocation (yyVals[0+yyTop]), "Type parameter declaration must be an identifier not a type"); @@ -5865,28 +5865,28 @@ void case_365() } void case_370() -#line 2864 "cs-parser.jay" +#line 2868 "cs-parser.jay" { Expression.Error_VoidInvalidInTheContext (GetLocation (yyVals[0+yyTop]), report); yyVal = new TypeExpression (compiler.BuiltinTypes.Void, GetLocation (yyVals[0+yyTop])); } void case_372() -#line 2873 "cs-parser.jay" +#line 2877 "cs-parser.jay" { Expression.Error_VoidInvalidInTheContext (GetLocation (yyVals[0+yyTop]), report); yyVal = new TypeExpression (compiler.BuiltinTypes.Void, GetLocation (yyVals[0+yyTop])); } void case_374() -#line 2882 "cs-parser.jay" +#line 2886 "cs-parser.jay" { report.Error (1536, GetLocation (yyVals[0+yyTop]), "Invalid parameter type `void'"); yyVal = new TypeExpression (compiler.BuiltinTypes.Void, GetLocation (yyVals[0+yyTop])); } void case_377() -#line 2898 "cs-parser.jay" +#line 2902 "cs-parser.jay" { MemberName name = (MemberName) yyVals[-1+yyTop]; @@ -5901,14 +5901,14 @@ void case_377() } void case_379() -#line 2915 "cs-parser.jay" +#line 2919 "cs-parser.jay" { if (yyVals[0+yyTop] != null) yyVal = new ComposedCast ((FullNamedExpression) yyVals[-1+yyTop], (ComposedTypeSpecifier) yyVals[0+yyTop]); } void case_382() -#line 2931 "cs-parser.jay" +#line 2935 "cs-parser.jay" { var types = new List (2); types.Add ((FullNamedExpression) yyVals[0+yyTop]); @@ -5916,7 +5916,7 @@ void case_382() } void case_383() -#line 2937 "cs-parser.jay" +#line 2941 "cs-parser.jay" { var types = (List) yyVals[-2+yyTop]; types.Add ((FullNamedExpression) yyVals[0+yyTop]); @@ -5924,7 +5924,7 @@ void case_383() } void case_384() -#line 2946 "cs-parser.jay" +#line 2950 "cs-parser.jay" { if (yyVals[0+yyTop] is ComposedCast) { report.Error (1521, GetLocation (yyVals[0+yyTop]), "Invalid base type `{0}'", ((ComposedCast)yyVals[0+yyTop]).GetSignatureForError ()); @@ -5933,35 +5933,35 @@ void case_384() } void case_385() -#line 2953 "cs-parser.jay" +#line 2957 "cs-parser.jay" { Error_TypeExpected (lexer.Location); yyVal = null; } void case_422() -#line 3015 "cs-parser.jay" +#line 3019 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop]; yyVal = new SimpleName (lt.Value, (TypeArguments)yyVals[0+yyTop], lt.Location); } void case_423() -#line 3019 "cs-parser.jay" +#line 3023 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop]; yyVal = new CompletionSimpleName (MemberName.MakeName (lt.Value, null), lt.Location); } void case_434() -#line 3060 "cs-parser.jay" +#line 3064 "cs-parser.jay" { yyVal = new ParenthesizedExpression ((Expression) yyVals[-1+yyTop]); lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop])); } void case_436() -#line 3072 "cs-parser.jay" +#line 3076 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop]; yyVal = new MemberAccess ((Expression) yyVals[-3+yyTop], lt.Value, (TypeArguments) yyVals[0+yyTop], lt.Location); @@ -5969,7 +5969,7 @@ void case_436() } void case_437() -#line 3078 "cs-parser.jay" +#line 3082 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop]; yyVal = new MemberAccess ((Expression) yyVals[-3+yyTop], lt.Value, (TypeArguments) yyVals[0+yyTop], lt.Location); @@ -5977,7 +5977,7 @@ void case_437() } void case_438() -#line 3084 "cs-parser.jay" +#line 3088 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop]; yyVal = new MemberAccess (new BaseThis (GetLocation (yyVals[-3+yyTop])), lt.Value, (TypeArguments) yyVals[0+yyTop], lt.Location); @@ -5985,7 +5985,7 @@ void case_438() } void case_439() -#line 3090 "cs-parser.jay" +#line 3094 "cs-parser.jay" { var lt1 = (Tokenizer.LocatedToken) yyVals[-2+yyTop]; var lt2 = (Tokenizer.LocatedToken) yyVals[-1+yyTop]; @@ -5994,28 +5994,28 @@ void case_439() } void case_441() -#line 3099 "cs-parser.jay" +#line 3103 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop]; yyVal = new CompletionMemberAccess ((Expression) yyVals[-3+yyTop], lt.Value, lt.Location); } void case_443() -#line 3107 "cs-parser.jay" +#line 3111 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop]; yyVal = new CompletionMemberAccess ((Expression) yyVals[-3+yyTop], lt.Value, lt.Location); } void case_444() -#line 3115 "cs-parser.jay" +#line 3119 "cs-parser.jay" { yyVal = new Invocation ((Expression) yyVals[-3+yyTop], (Arguments) yyVals[-1+yyTop]); lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop])); } void case_447() -#line 3128 "cs-parser.jay" +#line 3132 "cs-parser.jay" { if (yyVals[-1+yyTop] == null) { yyVal = CollectionOrObjectInitializers.Empty; @@ -6027,14 +6027,14 @@ void case_447() } void case_448() -#line 3138 "cs-parser.jay" +#line 3142 "cs-parser.jay" { yyVal = new CollectionOrObjectInitializers ((List) yyVals[-2+yyTop], GetLocation (yyVals[-3+yyTop])); lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop])); } void case_451() -#line 3154 "cs-parser.jay" +#line 3158 "cs-parser.jay" { var a = new List (); a.Add ((Expression) yyVals[0+yyTop]); @@ -6042,7 +6042,7 @@ void case_451() } void case_452() -#line 3160 "cs-parser.jay" +#line 3164 "cs-parser.jay" { var a = (List)yyVals[-2+yyTop]; a.Add ((Expression) yyVals[0+yyTop]); @@ -6050,14 +6050,14 @@ void case_452() } void case_453() -#line 3165 "cs-parser.jay" +#line 3169 "cs-parser.jay" { Error_SyntaxError (yyToken); yyVal = yyVals[-1+yyTop]; } void case_454() -#line 3173 "cs-parser.jay" +#line 3177 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop]; yyVal = new ElementInitializer (lt.Value, (Expression)yyVals[0+yyTop], lt.Location); @@ -6065,7 +6065,7 @@ void case_454() } void case_456() -#line 3182 "cs-parser.jay" +#line 3186 "cs-parser.jay" { CompletionSimpleName csn = yyVals[-1+yyTop] as CompletionSimpleName; if (csn == null) @@ -6075,7 +6075,7 @@ void case_456() } void case_457() -#line 3190 "cs-parser.jay" +#line 3194 "cs-parser.jay" { if (yyVals[-1+yyTop] == null) yyVal = null; @@ -6084,14 +6084,14 @@ void case_457() } void case_458() -#line 3197 "cs-parser.jay" +#line 3201 "cs-parser.jay" { report.Error (1920, GetLocation (yyVals[-1+yyTop]), "An element initializer cannot be empty"); yyVal = null; } void case_463() -#line 3215 "cs-parser.jay" +#line 3219 "cs-parser.jay" { Arguments list = new Arguments (4); list.Add ((Argument) yyVals[0+yyTop]); @@ -6099,7 +6099,7 @@ void case_463() } void case_464() -#line 3221 "cs-parser.jay" +#line 3225 "cs-parser.jay" { Arguments list = (Arguments) yyVals[-2+yyTop]; if (list [list.Count - 1] is NamedArgument) @@ -6111,7 +6111,7 @@ void case_464() } void case_465() -#line 3231 "cs-parser.jay" +#line 3235 "cs-parser.jay" { Arguments list = (Arguments) yyVals[-2+yyTop]; NamedArgument a = (NamedArgument) yyVals[0+yyTop]; @@ -6128,56 +6128,56 @@ void case_465() } void case_466() -#line 3246 "cs-parser.jay" +#line 3250 "cs-parser.jay" { report.Error (839, GetLocation (yyVals[0+yyTop]), "An argument is missing"); yyVal = yyVals[-1+yyTop]; } void case_467() -#line 3251 "cs-parser.jay" +#line 3255 "cs-parser.jay" { report.Error (839, GetLocation (yyVals[-1+yyTop]), "An argument is missing"); yyVal = null; } void case_472() -#line 3272 "cs-parser.jay" +#line 3276 "cs-parser.jay" { yyVal = new Argument ((Expression) yyVals[0+yyTop], Argument.AType.Ref); lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop])); } void case_473() -#line 3277 "cs-parser.jay" +#line 3281 "cs-parser.jay" { yyVal = new Argument ((Expression) yyVals[0+yyTop], Argument.AType.Out); lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop])); } void case_474() -#line 3282 "cs-parser.jay" +#line 3286 "cs-parser.jay" { yyVal = new Argument (new Arglist ((Arguments) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop]))); lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop])); } void case_475() -#line 3287 "cs-parser.jay" +#line 3291 "cs-parser.jay" { yyVal = new Argument (new Arglist (GetLocation (yyVals[-2+yyTop]))); lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop])); } void case_477() -#line 3299 "cs-parser.jay" +#line 3303 "cs-parser.jay" { yyVal = new ElementAccess ((Expression) yyVals[-3+yyTop], (Arguments) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop])); lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop])); } void case_478() -#line 3307 "cs-parser.jay" +#line 3311 "cs-parser.jay" { var list = new List (4); list.Add ((Expression) yyVals[0+yyTop]); @@ -6185,7 +6185,7 @@ void case_478() } void case_479() -#line 3313 "cs-parser.jay" +#line 3317 "cs-parser.jay" { var list = (List) yyVals[-2+yyTop]; list.Add ((Expression) yyVals[0+yyTop]); @@ -6194,14 +6194,14 @@ void case_479() } void case_480() -#line 3319 "cs-parser.jay" +#line 3323 "cs-parser.jay" { Error_SyntaxError (yyToken); yyVal = yyVals[-1+yyTop]; } void case_481() -#line 3327 "cs-parser.jay" +#line 3331 "cs-parser.jay" { Arguments args = new Arguments (4); args.Add ((Argument) yyVals[0+yyTop]); @@ -6209,7 +6209,7 @@ void case_481() } void case_482() -#line 3333 "cs-parser.jay" +#line 3337 "cs-parser.jay" { Arguments args = (Arguments) yyVals[-2+yyTop]; if (args [args.Count - 1] is NamedArgument && !(yyVals[0+yyTop] is NamedArgument)) @@ -6221,21 +6221,21 @@ void case_482() } void case_486() -#line 3361 "cs-parser.jay" +#line 3365 "cs-parser.jay" { yyVal = new ElementAccess (new BaseThis (GetLocation (yyVals[-3+yyTop])), (Arguments) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop])); lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop])); } void case_487() -#line 3366 "cs-parser.jay" +#line 3370 "cs-parser.jay" { Error_SyntaxError (yyToken); yyVal = new ElementAccess (null, null, GetLocation (yyVals[-1+yyTop])); } void case_490() -#line 3388 "cs-parser.jay" +#line 3392 "cs-parser.jay" { if (yyVals[0+yyTop] != null) { if (lang_version <= LanguageVersion.ISO_2) @@ -6250,7 +6250,7 @@ void case_490() } void case_491() -#line 3401 "cs-parser.jay" +#line 3405 "cs-parser.jay" { if (lang_version <= LanguageVersion.ISO_2) FeatureIsNotAvailable (GetLocation (yyVals[-2+yyTop]), "collection initializers"); @@ -6259,7 +6259,7 @@ void case_491() } void case_492() -#line 3413 "cs-parser.jay" +#line 3417 "cs-parser.jay" { yyVal = new ArrayCreation ((FullNamedExpression) yyVals[-5+yyTop], (List) yyVals[-3+yyTop], new ComposedTypeSpecifier (((List) yyVals[-3+yyTop]).Count, GetLocation (yyVals[-4+yyTop])) { @@ -6269,7 +6269,7 @@ void case_492() } void case_493() -#line 3421 "cs-parser.jay" +#line 3425 "cs-parser.jay" { if (yyVals[0+yyTop] == null) report.Error (1586, GetLocation (yyVals[-3+yyTop]), "Array creation must have array size or array initializer"); @@ -6278,7 +6278,7 @@ void case_493() } void case_494() -#line 3428 "cs-parser.jay" +#line 3432 "cs-parser.jay" { if (lang_version <= LanguageVersion.ISO_2) FeatureIsNotAvailable (GetLocation (yyVals[-2+yyTop]), "implicitly typed arrays"); @@ -6287,28 +6287,28 @@ void case_494() } void case_495() -#line 3435 "cs-parser.jay" +#line 3439 "cs-parser.jay" { report.Error (178, GetLocation (yyVals[-1+yyTop]), "Invalid rank specifier, expecting `,' or `]'"); yyVal = new ArrayCreation ((FullNamedExpression) yyVals[-5+yyTop], null, GetLocation (yyVals[-6+yyTop])); } void case_496() -#line 3440 "cs-parser.jay" +#line 3444 "cs-parser.jay" { Error_SyntaxError (1526, yyToken, "Unexpected symbol"); yyVal = new ArrayCreation ((FullNamedExpression) yyVals[-1+yyTop], null, GetLocation (yyVals[-2+yyTop])); } void case_498() -#line 3451 "cs-parser.jay" +#line 3455 "cs-parser.jay" { --lexer.parsing_type; yyVal = yyVals[0+yyTop]; } void case_499() -#line 3459 "cs-parser.jay" +#line 3463 "cs-parser.jay" { if (lang_version <= LanguageVersion.ISO_2) FeatureIsNotAvailable (GetLocation (yyVals[-3+yyTop]), "anonymous types"); @@ -6320,7 +6320,7 @@ void case_499() } void case_504() -#line 3482 "cs-parser.jay" +#line 3486 "cs-parser.jay" { var a = new List (4); a.Add ((AnonymousTypeParameter) yyVals[0+yyTop]); @@ -6328,7 +6328,7 @@ void case_504() } void case_505() -#line 3488 "cs-parser.jay" +#line 3492 "cs-parser.jay" { var a = (List) yyVals[-2+yyTop]; a.Add ((AnonymousTypeParameter) yyVals[0+yyTop]); @@ -6336,7 +6336,7 @@ void case_505() } void case_506() -#line 3497 "cs-parser.jay" +#line 3501 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken)yyVals[-2+yyTop]; yyVal = new AnonymousTypeParameter ((Expression)yyVals[0+yyTop], lt.Value, lt.Location); @@ -6344,7 +6344,7 @@ void case_506() } void case_507() -#line 3503 "cs-parser.jay" +#line 3507 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken)yyVals[0+yyTop]; yyVal = new AnonymousTypeParameter (new SimpleName (lt.Value, lt.Location), @@ -6352,14 +6352,14 @@ void case_507() } void case_508() -#line 3509 "cs-parser.jay" +#line 3513 "cs-parser.jay" { MemberAccess ma = (MemberAccess) yyVals[0+yyTop]; yyVal = new AnonymousTypeParameter (ma, ma.Name, ma.Location); } void case_509() -#line 3514 "cs-parser.jay" +#line 3518 "cs-parser.jay" { report.Error (746, lexer.Location, "Invalid anonymous type member declarator. Anonymous type members must be a member assignment, simple name or member access expression"); @@ -6367,28 +6367,28 @@ void case_509() } void case_513() -#line 3529 "cs-parser.jay" +#line 3533 "cs-parser.jay" { ((ComposedTypeSpecifier) yyVals[-1+yyTop]).Next = (ComposedTypeSpecifier) yyVals[0+yyTop]; yyVal = yyVals[-1+yyTop]; } void case_514() -#line 3537 "cs-parser.jay" +#line 3541 "cs-parser.jay" { yyVal = ComposedTypeSpecifier.CreateArrayDimension (1, GetLocation (yyVals[-1+yyTop])); lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop])); } void case_515() -#line 3542 "cs-parser.jay" +#line 3546 "cs-parser.jay" { yyVal = ComposedTypeSpecifier.CreateArrayDimension ((int)yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop])); lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop])); } void case_520() -#line 3572 "cs-parser.jay" +#line 3576 "cs-parser.jay" { var ai = new ArrayInitializer (0, GetLocation (yyVals[-1+yyTop])); ai.VariableDeclaration = current_variable; @@ -6397,7 +6397,7 @@ void case_520() } void case_521() -#line 3579 "cs-parser.jay" +#line 3583 "cs-parser.jay" { var ai = new ArrayInitializer ((List) yyVals[-2+yyTop], GetLocation (yyVals[-3+yyTop])); ai.VariableDeclaration = current_variable; @@ -6410,7 +6410,7 @@ void case_521() } void case_522() -#line 3593 "cs-parser.jay" +#line 3597 "cs-parser.jay" { var list = new List (4); list.Add ((Expression) yyVals[0+yyTop]); @@ -6418,7 +6418,7 @@ void case_522() } void case_523() -#line 3599 "cs-parser.jay" +#line 3603 "cs-parser.jay" { var list = (List) yyVals[-2+yyTop]; list.Add ((Expression) yyVals[0+yyTop]); @@ -6427,7 +6427,7 @@ void case_523() } void case_525() -#line 3613 "cs-parser.jay" +#line 3617 "cs-parser.jay" { lexer.TypeOfParsing = false; yyVal = new TypeOf ((FullNamedExpression) yyVals[-1+yyTop], GetLocation (yyVals[-4+yyTop])); @@ -6435,14 +6435,14 @@ void case_525() } void case_528() -#line 3624 "cs-parser.jay" +#line 3628 "cs-parser.jay" { Error_TypeExpected (lexer.Location); yyVal = null; } void case_529() -#line 3632 "cs-parser.jay" +#line 3636 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop]; @@ -6450,7 +6450,7 @@ void case_529() } void case_530() -#line 3638 "cs-parser.jay" +#line 3642 "cs-parser.jay" { var lt1 = (Tokenizer.LocatedToken) yyVals[-2+yyTop]; var lt2 = (Tokenizer.LocatedToken) yyVals[-1+yyTop]; @@ -6459,7 +6459,7 @@ void case_530() } void case_531() -#line 3645 "cs-parser.jay" +#line 3649 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop]; @@ -6467,7 +6467,7 @@ void case_531() } void case_532() -#line 3651 "cs-parser.jay" +#line 3655 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop]; @@ -6475,7 +6475,7 @@ void case_532() } void case_533() -#line 3657 "cs-parser.jay" +#line 3661 "cs-parser.jay" { var te = ((MemberName) yyVals[-3+yyTop]).GetTypeExpression (); if (te.HasTypeArguments) @@ -6486,7 +6486,7 @@ void case_533() } void case_534() -#line 3669 "cs-parser.jay" +#line 3673 "cs-parser.jay" { if (lang_version < LanguageVersion.ISO_2) FeatureIsNotAvailable (GetLocation (yyVals[0+yyTop]), "generics"); @@ -6495,7 +6495,7 @@ void case_534() } void case_535() -#line 3679 "cs-parser.jay" +#line 3683 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop]; if (lang_version == LanguageVersion.ISO_1) @@ -6505,35 +6505,35 @@ void case_535() } void case_536() -#line 3690 "cs-parser.jay" +#line 3694 "cs-parser.jay" { yyVal = new SizeOf ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop])); lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop])); } void case_537() -#line 3698 "cs-parser.jay" +#line 3702 "cs-parser.jay" { yyVal = new CheckedExpr ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop])); lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop])); } void case_538() -#line 3706 "cs-parser.jay" +#line 3710 "cs-parser.jay" { yyVal = new UnCheckedExpr ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop])); lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop])); } void case_539() -#line 3714 "cs-parser.jay" +#line 3718 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop]; yyVal = new MemberAccess (new Indirection ((Expression) yyVals[-3+yyTop], GetLocation (yyVals[-2+yyTop])), lt.Value, (TypeArguments) yyVals[0+yyTop], lt.Location); } void case_541() -#line 3726 "cs-parser.jay" +#line 3730 "cs-parser.jay" { yyVal = end_anonymous ((ParametersBlock) yyVals[0+yyTop]); if ((ParametersCompiled) yyVals[-2+yyTop] != ParametersCompiled.Undefined) { @@ -6544,7 +6544,7 @@ void case_541() } void case_545() -#line 3750 "cs-parser.jay" +#line 3754 "cs-parser.jay" { valid_param_mod = 0; yyVal = yyVals[-1+yyTop]; @@ -6553,7 +6553,7 @@ void case_545() } void case_546() -#line 3760 "cs-parser.jay" +#line 3764 "cs-parser.jay" { if (lang_version < LanguageVersion.ISO_2) FeatureIsNotAvailable (GetLocation (yyVals[-3+yyTop]), "default value expression"); @@ -6563,140 +6563,140 @@ void case_546() } void case_551() -#line 3784 "cs-parser.jay" +#line 3788 "cs-parser.jay" { yyVal = new Cast ((FullNamedExpression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-3+yyTop])); lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop])); } void case_560() -#line 3825 "cs-parser.jay" +#line 3829 "cs-parser.jay" { yyVal = new Binary (Binary.Operator.Multiply, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } void case_561() -#line 3830 "cs-parser.jay" +#line 3834 "cs-parser.jay" { yyVal = new Binary (Binary.Operator.Division, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } void case_562() -#line 3835 "cs-parser.jay" +#line 3839 "cs-parser.jay" { yyVal = new Binary (Binary.Operator.Modulus, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } void case_564() -#line 3844 "cs-parser.jay" +#line 3848 "cs-parser.jay" { yyVal = new Binary (Binary.Operator.Addition, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } void case_566() -#line 3853 "cs-parser.jay" +#line 3857 "cs-parser.jay" { /* Shift/Reduce conflict*/ yyVal = new Binary (Binary.Operator.Subtraction, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } void case_570() -#line 3870 "cs-parser.jay" +#line 3874 "cs-parser.jay" { yyVal = new Binary (Binary.Operator.LeftShift, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } void case_571() -#line 3875 "cs-parser.jay" +#line 3879 "cs-parser.jay" { yyVal = new Binary (Binary.Operator.RightShift, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } void case_573() -#line 3884 "cs-parser.jay" +#line 3888 "cs-parser.jay" { yyVal = new Binary (Binary.Operator.LessThan, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } void case_574() -#line 3889 "cs-parser.jay" +#line 3893 "cs-parser.jay" { yyVal = new Binary (Binary.Operator.GreaterThan, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } void case_575() -#line 3894 "cs-parser.jay" +#line 3898 "cs-parser.jay" { yyVal = new Binary (Binary.Operator.LessThanOrEqual, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } void case_576() -#line 3899 "cs-parser.jay" +#line 3903 "cs-parser.jay" { yyVal = new Binary (Binary.Operator.GreaterThanOrEqual, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } void case_578() -#line 3908 "cs-parser.jay" +#line 3912 "cs-parser.jay" { yyVal = new Binary (Binary.Operator.Equality, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } void case_579() -#line 3913 "cs-parser.jay" +#line 3917 "cs-parser.jay" { yyVal = new Binary (Binary.Operator.Inequality, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } void case_581() -#line 3922 "cs-parser.jay" +#line 3926 "cs-parser.jay" { yyVal = new Binary (Binary.Operator.BitwiseAnd, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } void case_583() -#line 3931 "cs-parser.jay" +#line 3935 "cs-parser.jay" { yyVal = new Binary (Binary.Operator.ExclusiveOr, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } void case_585() -#line 3940 "cs-parser.jay" +#line 3944 "cs-parser.jay" { yyVal = new Binary (Binary.Operator.BitwiseOr, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } void case_587() -#line 3949 "cs-parser.jay" +#line 3953 "cs-parser.jay" { yyVal = new Binary (Binary.Operator.LogicalAnd, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } void case_589() -#line 3958 "cs-parser.jay" +#line 3962 "cs-parser.jay" { yyVal = new Binary (Binary.Operator.LogicalOr, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } void case_591() -#line 3967 "cs-parser.jay" +#line 3971 "cs-parser.jay" { if (lang_version < LanguageVersion.ISO_2) FeatureIsNotAvailable (GetLocation (yyVals[-1+yyTop]), "null coalescing operator"); @@ -6705,84 +6705,84 @@ void case_591() } void case_593() -#line 3978 "cs-parser.jay" +#line 3982 "cs-parser.jay" { yyVal = new Conditional (new BooleanExpression ((Expression) yyVals[-4+yyTop]), (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-3+yyTop])); lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop])); } void case_595() -#line 3990 "cs-parser.jay" +#line 3994 "cs-parser.jay" { yyVal = new CompoundAssign ( Binary.Operator.Multiply, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } void case_596() -#line 3995 "cs-parser.jay" +#line 3999 "cs-parser.jay" { yyVal = new CompoundAssign ( Binary.Operator.Division, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } void case_597() -#line 4000 "cs-parser.jay" +#line 4004 "cs-parser.jay" { yyVal = new CompoundAssign ( Binary.Operator.Modulus, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } void case_598() -#line 4005 "cs-parser.jay" +#line 4009 "cs-parser.jay" { yyVal = new CompoundAssign ( Binary.Operator.Addition, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } void case_599() -#line 4010 "cs-parser.jay" +#line 4014 "cs-parser.jay" { yyVal = new CompoundAssign ( Binary.Operator.Subtraction, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } void case_600() -#line 4015 "cs-parser.jay" +#line 4019 "cs-parser.jay" { yyVal = new CompoundAssign ( Binary.Operator.LeftShift, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } void case_601() -#line 4020 "cs-parser.jay" +#line 4024 "cs-parser.jay" { yyVal = new CompoundAssign ( Binary.Operator.RightShift, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } void case_602() -#line 4025 "cs-parser.jay" +#line 4029 "cs-parser.jay" { yyVal = new CompoundAssign ( Binary.Operator.BitwiseAnd, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } void case_603() -#line 4030 "cs-parser.jay" +#line 4034 "cs-parser.jay" { yyVal = new CompoundAssign ( Binary.Operator.BitwiseOr, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } void case_604() -#line 4035 "cs-parser.jay" +#line 4039 "cs-parser.jay" { yyVal = new CompoundAssign ( Binary.Operator.ExclusiveOr, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop])); } void case_605() -#line 4043 "cs-parser.jay" +#line 4047 "cs-parser.jay" { var pars = new List (4); pars.Add ((Parameter) yyVals[0+yyTop]); @@ -6791,7 +6791,7 @@ void case_605() } void case_606() -#line 4050 "cs-parser.jay" +#line 4054 "cs-parser.jay" { var pars = (List) yyVals[-2+yyTop]; Parameter p = (Parameter)yyVals[0+yyTop]; @@ -6804,7 +6804,7 @@ void case_606() } void case_607() -#line 4064 "cs-parser.jay" +#line 4068 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop]; @@ -6812,7 +6812,7 @@ void case_607() } void case_608() -#line 4070 "cs-parser.jay" +#line 4074 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop]; @@ -6820,21 +6820,21 @@ void case_608() } void case_609() -#line 4076 "cs-parser.jay" +#line 4080 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop]; yyVal = new ImplicitLambdaParameter (lt.Value, lt.Location); } void case_611() -#line 4084 "cs-parser.jay" +#line 4088 "cs-parser.jay" { var pars_list = (List) yyVals[0+yyTop]; yyVal = new ParametersCompiled (pars_list.ToArray ()); } void case_615() -#line 4100 "cs-parser.jay" +#line 4104 "cs-parser.jay" { Block b = end_block (lexer.Location); b.IsCompilerGenerated = true; @@ -6843,14 +6843,14 @@ void case_615() } void case_617() -#line 4111 "cs-parser.jay" +#line 4115 "cs-parser.jay" { Error_SyntaxError (yyToken); yyVal = EmptyExpression.Null; } void case_618() -#line 4119 "cs-parser.jay" +#line 4123 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop]; Parameter p = new ImplicitLambdaParameter (lt.Value, lt.Location); @@ -6858,14 +6858,14 @@ void case_618() } void case_619() -#line 4125 "cs-parser.jay" +#line 4129 "cs-parser.jay" { yyVal = end_anonymous ((ParametersBlock) yyVals[0+yyTop]); lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop])); } void case_620() -#line 4130 "cs-parser.jay" +#line 4134 "cs-parser.jay" { if (lang_version <= LanguageVersion.ISO_2) FeatureIsNotAvailable (GetLocation (yyVals[0+yyTop]), "lambda expressions"); @@ -6874,42 +6874,42 @@ void case_620() } void case_621() -#line 4137 "cs-parser.jay" +#line 4141 "cs-parser.jay" { valid_param_mod = 0; start_anonymous (true, (ParametersCompiled) yyVals[-2+yyTop], GetLocation (yyVals[-4+yyTop])); } void case_622() -#line 4142 "cs-parser.jay" +#line 4146 "cs-parser.jay" { yyVal = end_anonymous ((ParametersBlock) yyVals[0+yyTop]); lbag.AddLocation (yyVal, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-2+yyTop])); } void case_629() -#line 4165 "cs-parser.jay" +#line 4169 "cs-parser.jay" { yyVal = new RefValueExpr ((Expression) yyVals[-3+yyTop], (FullNamedExpression) yyVals[-1+yyTop], GetLocation (yyVals[-5+yyTop])); lbag.AddLocation (yyVal, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop])); } void case_630() -#line 4170 "cs-parser.jay" +#line 4174 "cs-parser.jay" { yyVal = new RefTypeExpr ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop])); lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop])); } void case_631() -#line 4175 "cs-parser.jay" +#line 4179 "cs-parser.jay" { yyVal = new MakeRefExpr ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop])); lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop])); } void case_635() -#line 4204 "cs-parser.jay" +#line 4208 "cs-parser.jay" { MemberName name = MakeName ((MemberName) yyVals[0+yyTop]); Class c = new Class (current_namespace, current_class, name, (Modifiers) yyVals[-4+yyTop], (Attributes) yyVals[-5+yyTop]); @@ -6921,7 +6921,7 @@ void case_635() } void case_636() -#line 4215 "cs-parser.jay" +#line 4219 "cs-parser.jay" { lexer.ConstraintsParsing = false; @@ -6935,7 +6935,7 @@ void case_636() } void case_637() -#line 4227 "cs-parser.jay" +#line 4231 "cs-parser.jay" { --lexer.parsing_declaration; if (doc_support) @@ -6943,21 +6943,21 @@ void case_637() } void case_638() -#line 4233 "cs-parser.jay" +#line 4237 "cs-parser.jay" { lbag.AppendToMember (current_class, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop])); yyVal = pop_current_class (); } void case_641() -#line 4248 "cs-parser.jay" +#line 4252 "cs-parser.jay" { mod_locations = null; yyVal = ModifierNone; } void case_644() -#line 4258 "cs-parser.jay" +#line 4262 "cs-parser.jay" { var m1 = (Modifiers) yyVals[-1+yyTop]; var m2 = (Modifiers) yyVals[0+yyTop]; @@ -6975,7 +6975,7 @@ void case_644() } void case_645() -#line 4277 "cs-parser.jay" +#line 4281 "cs-parser.jay" { yyVal = Modifiers.NEW; StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop])); @@ -6985,91 +6985,91 @@ void case_645() } void case_646() -#line 4285 "cs-parser.jay" +#line 4289 "cs-parser.jay" { yyVal = Modifiers.PUBLIC; StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop])); } void case_647() -#line 4290 "cs-parser.jay" +#line 4294 "cs-parser.jay" { yyVal = Modifiers.PROTECTED; StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop])); } void case_648() -#line 4295 "cs-parser.jay" +#line 4299 "cs-parser.jay" { yyVal = Modifiers.INTERNAL; StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop])); } void case_649() -#line 4300 "cs-parser.jay" +#line 4304 "cs-parser.jay" { yyVal = Modifiers.PRIVATE; StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop])); } void case_650() -#line 4305 "cs-parser.jay" +#line 4309 "cs-parser.jay" { yyVal = Modifiers.ABSTRACT; StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop])); } void case_651() -#line 4310 "cs-parser.jay" +#line 4314 "cs-parser.jay" { yyVal = Modifiers.SEALED; StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop])); } void case_652() -#line 4315 "cs-parser.jay" +#line 4319 "cs-parser.jay" { yyVal = Modifiers.STATIC; StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop])); } void case_653() -#line 4320 "cs-parser.jay" +#line 4324 "cs-parser.jay" { yyVal = Modifiers.READONLY; StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop])); } void case_654() -#line 4325 "cs-parser.jay" +#line 4329 "cs-parser.jay" { yyVal = Modifiers.VIRTUAL; StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop])); } void case_655() -#line 4330 "cs-parser.jay" +#line 4334 "cs-parser.jay" { yyVal = Modifiers.OVERRIDE; StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop])); } void case_656() -#line 4335 "cs-parser.jay" +#line 4339 "cs-parser.jay" { yyVal = Modifiers.EXTERN; StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop])); } void case_657() -#line 4340 "cs-parser.jay" +#line 4344 "cs-parser.jay" { yyVal = Modifiers.VOLATILE; StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop])); } void case_658() -#line 4345 "cs-parser.jay" +#line 4349 "cs-parser.jay" { yyVal = Modifiers.UNSAFE; StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop])); @@ -7078,21 +7078,21 @@ void case_658() } void case_659() -#line 4352 "cs-parser.jay" +#line 4356 "cs-parser.jay" { yyVal = Modifiers.ASYNC; StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop])); } void case_664() -#line 4373 "cs-parser.jay" +#line 4377 "cs-parser.jay" { Error_SyntaxError (yyToken); yyVal = null; } void case_665() -#line 4381 "cs-parser.jay" +#line 4385 "cs-parser.jay" { var constraints = new List (1); constraints.Add ((Constraints) yyVals[0+yyTop]); @@ -7100,7 +7100,7 @@ void case_665() } void case_666() -#line 4387 "cs-parser.jay" +#line 4391 "cs-parser.jay" { var constraints = (List) yyVals[-1+yyTop]; Constraints new_constraint = (Constraints)yyVals[0+yyTop]; @@ -7118,14 +7118,14 @@ void case_666() } void case_667() -#line 4406 "cs-parser.jay" +#line 4410 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop]; yyVal = new Constraints (new SimpleMemberName (lt.Value, lt.Location), (List) yyVals[0+yyTop], GetLocation (yyVals[-3+yyTop])); } void case_668() -#line 4414 "cs-parser.jay" +#line 4418 "cs-parser.jay" { var constraints = new List (1); constraints.Add ((FullNamedExpression) yyVals[0+yyTop]); @@ -7133,7 +7133,7 @@ void case_668() } void case_669() -#line 4420 "cs-parser.jay" +#line 4424 "cs-parser.jay" { var constraints = (List) yyVals[-2+yyTop]; var prev = constraints [constraints.Count - 1] as SpecialContraintExpr; @@ -7158,7 +7158,7 @@ void case_669() } void case_670() -#line 4446 "cs-parser.jay" +#line 4450 "cs-parser.jay" { if (yyVals[0+yyTop] is ComposedCast) report.Error (706, GetLocation (yyVals[0+yyTop]), "Invalid constraint type `{0}'", ((ComposedCast)yyVals[0+yyTop]).GetSignatureForError ()); @@ -7167,14 +7167,14 @@ void case_670() } void case_671() -#line 4453 "cs-parser.jay" +#line 4457 "cs-parser.jay" { yyVal = new SpecialContraintExpr (SpecialConstraint.Constructor, GetLocation (yyVals[-2+yyTop])); lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop])); } void case_675() -#line 4473 "cs-parser.jay" +#line 4477 "cs-parser.jay" { if (lang_version <= LanguageVersion.V_3) FeatureIsNotAvailable (lexer.Location, "generic type variance"); @@ -7183,77 +7183,77 @@ void case_675() } void case_678() -#line 4507 "cs-parser.jay" +#line 4511 "cs-parser.jay" { ++lexer.parsing_block; start_block (GetLocation (yyVals[0+yyTop])); } void case_680() -#line 4519 "cs-parser.jay" +#line 4523 "cs-parser.jay" { --lexer.parsing_block; yyVal = end_block (GetLocation (yyVals[0+yyTop])); } void case_681() -#line 4524 "cs-parser.jay" +#line 4528 "cs-parser.jay" { --lexer.parsing_block; yyVal = end_block (lexer.Location); } void case_682() -#line 4533 "cs-parser.jay" +#line 4537 "cs-parser.jay" { ++lexer.parsing_block; current_block.StartLocation = GetLocation (yyVals[0+yyTop]); } void case_683() -#line 4538 "cs-parser.jay" +#line 4542 "cs-parser.jay" { --lexer.parsing_block; yyVal = end_block (GetLocation (yyVals[0+yyTop])); } void case_691() -#line 4565 "cs-parser.jay" +#line 4569 "cs-parser.jay" { Error_SyntaxError (yyToken); yyVal = null; } void case_724() -#line 4629 "cs-parser.jay" +#line 4633 "cs-parser.jay" { report.Error (1023, GetLocation (yyVals[0+yyTop]), "An embedded statement may not be a declaration or labeled statement"); yyVal = null; } void case_725() -#line 4634 "cs-parser.jay" +#line 4638 "cs-parser.jay" { report.Error (1023, GetLocation (yyVals[0+yyTop]), "An embedded statement may not be a declaration or labeled statement"); yyVal = null; } void case_726() -#line 4639 "cs-parser.jay" +#line 4643 "cs-parser.jay" { Error_SyntaxError (yyToken); yyVal = new EmptyStatement (GetLocation (yyVals[0+yyTop])); } void case_727() -#line 4647 "cs-parser.jay" +#line 4651 "cs-parser.jay" { /* Uses lexer.Location because semicolon location is not kept in quick mode*/ yyVal = new EmptyStatement (lexer.Location); } void case_728() -#line 4655 "cs-parser.jay" +#line 4659 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop]; LabeledStatement labeled = new LabeledStatement (lt.Value, current_block, lt.Location); @@ -7263,7 +7263,7 @@ void case_728() } void case_731() -#line 4668 "cs-parser.jay" +#line 4672 "cs-parser.jay" { if (yyVals[-1+yyTop] is VarExpr) yyVals[-1+yyTop] = new SimpleName ("var", ((VarExpr) yyVals[-1+yyTop]).Location); @@ -7272,7 +7272,7 @@ void case_731() } void case_732() -#line 4684 "cs-parser.jay" +#line 4688 "cs-parser.jay" { /* Ok, the above "primary_expression" is there to get rid of*/ /* both reduce/reduce and shift/reduces in the grammar, it should*/ @@ -7304,7 +7304,7 @@ void case_732() } void case_733() -#line 4714 "cs-parser.jay" +#line 4718 "cs-parser.jay" { ATypeNameExpression expr = yyVals[-1+yyTop] as ATypeNameExpression; @@ -7317,7 +7317,7 @@ void case_733() } void case_734() -#line 4725 "cs-parser.jay" +#line 4729 "cs-parser.jay" { if (yyVals[0+yyTop] == null) yyVal = yyVals[-1+yyTop]; @@ -7326,21 +7326,21 @@ void case_734() } void case_737() -#line 4740 "cs-parser.jay" +#line 4744 "cs-parser.jay" { Expression.Error_VoidInvalidInTheContext (GetLocation (yyVals[0+yyTop]), report); yyVal = new TypeExpression (compiler.BuiltinTypes.Void, GetLocation (yyVals[0+yyTop])); } void case_739() -#line 4749 "cs-parser.jay" +#line 4753 "cs-parser.jay" { ((ComposedTypeSpecifier) yyVals[-1+yyTop]).Next = (ComposedTypeSpecifier) yyVals[0+yyTop]; yyVal = yyVals[-1+yyTop]; } void case_741() -#line 4764 "cs-parser.jay" +#line 4768 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop]; var li = new LocalVariable (current_block, lt.Value, lt.Location); @@ -7349,7 +7349,7 @@ void case_741() } void case_742() -#line 4771 "cs-parser.jay" +#line 4775 "cs-parser.jay" { yyVal = current_variable; current_variable = null; @@ -7357,7 +7357,7 @@ void case_742() } void case_743() -#line 4777 "cs-parser.jay" +#line 4781 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop]; var li = new LocalVariable (current_block, lt.Value, LocalVariable.Flags.Constant, lt.Location); @@ -7366,7 +7366,7 @@ void case_743() } void case_744() -#line 4784 "cs-parser.jay" +#line 4788 "cs-parser.jay" { if (current_variable.Initializer != null) { lbag.AddLocation (current_variable, GetLocation (yyVals[-6+yyTop]), savedLocation, GetLocation (yyVals[0+yyTop])); @@ -7378,14 +7378,14 @@ void case_744() } void case_746() -#line 4798 "cs-parser.jay" +#line 4802 "cs-parser.jay" { current_variable.Initializer = (Expression) yyVals[0+yyTop]; lbag.AppendTo (current_variable, GetLocation (yyVals[-1+yyTop])); } void case_747() -#line 4803 "cs-parser.jay" +#line 4807 "cs-parser.jay" { if (yyToken == Token.OPEN_BRACKET_EXPR) { report.Error (650, lexer.Location, @@ -7396,7 +7396,7 @@ void case_747() } void case_752() -#line 4825 "cs-parser.jay" +#line 4829 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop]; var li = new LocalVariable (current_variable.Variable, lt.Value, lt.Location); @@ -7407,7 +7407,7 @@ void case_752() } void case_753() -#line 4834 "cs-parser.jay" +#line 4838 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop]; var li = new LocalVariable (current_variable.Variable, lt.Value, lt.Location); @@ -7418,14 +7418,14 @@ void case_753() } void case_755() -#line 4850 "cs-parser.jay" +#line 4854 "cs-parser.jay" { savedLocation = GetLocation (yyVals[-1+yyTop]); current_variable.Initializer = (Expression) yyVals[0+yyTop]; } void case_760() -#line 4868 "cs-parser.jay" +#line 4872 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop]; var li = new LocalVariable (current_block, lt.Value, LocalVariable.Flags.Constant, lt.Location); @@ -7436,28 +7436,28 @@ void case_760() } void case_762() -#line 4881 "cs-parser.jay" +#line 4885 "cs-parser.jay" { yyVal = new StackAlloc ((Expression) yyVals[-3+yyTop], (Expression) yyVals[-1+yyTop], GetLocation (yyVals[-4+yyTop])); lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop])); } void case_763() -#line 4886 "cs-parser.jay" +#line 4890 "cs-parser.jay" { report.Error (1575, GetLocation (yyVals[-1+yyTop]), "A stackalloc expression requires [] after type"); yyVal = new StackAlloc ((Expression) yyVals[0+yyTop], null, GetLocation (yyVals[-1+yyTop])); } void case_764() -#line 4894 "cs-parser.jay" +#line 4898 "cs-parser.jay" { yyVal = yyVals[-1+yyTop]; lbag.AddStatement (yyVal, GetLocation (yyVals[0+yyTop])); } void case_768() -#line 4912 "cs-parser.jay" +#line 4916 "cs-parser.jay" { ExpressionStatement s = yyVals[0+yyTop] as ExpressionStatement; if (s == null) { @@ -7469,7 +7469,7 @@ void case_768() } void case_769() -#line 4925 "cs-parser.jay" +#line 4929 "cs-parser.jay" { Expression expr = (Expression) yyVals[0+yyTop]; ExpressionStatement s; @@ -7479,14 +7479,14 @@ void case_769() } void case_770() -#line 4933 "cs-parser.jay" +#line 4937 "cs-parser.jay" { Error_SyntaxError (yyToken); yyVal = new EmptyStatement (GetLocation (yyVals[0+yyTop])); } void case_773() -#line 4947 "cs-parser.jay" +#line 4951 "cs-parser.jay" { if (yyVals[0+yyTop] is EmptyStatement) Warning_EmptyStatement (GetLocation (yyVals[0+yyTop])); @@ -7496,7 +7496,7 @@ void case_773() } void case_774() -#line 4956 "cs-parser.jay" +#line 4960 "cs-parser.jay" { yyVal = new If ((BooleanExpression) yyVals[-4+yyTop], (Statement) yyVals[-2+yyTop], (Statement) yyVals[0+yyTop], GetLocation (yyVals[-6+yyTop])); lbag.AddStatement (yyVal, GetLocation (yyVals[-5+yyTop]), GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-1+yyTop])); @@ -7508,7 +7508,7 @@ void case_774() } void case_776() -#line 4973 "cs-parser.jay" +#line 4977 "cs-parser.jay" { yyVal = new Switch ((Expression) yyVals[-5+yyTop], (ExplicitBlock) current_block.Explicit, (List) yyVals[-1+yyTop], GetLocation (yyVals[-7+yyTop])); end_block (GetLocation (yyVals[0+yyTop])); @@ -7516,14 +7516,14 @@ void case_776() } void case_777() -#line 4982 "cs-parser.jay" +#line 4986 "cs-parser.jay" { report.Warning (1522, 1, current_block.StartLocation, "Empty switch block"); yyVal = new List (); } void case_779() -#line 4991 "cs-parser.jay" +#line 4995 "cs-parser.jay" { var sections = new List (4); @@ -7532,7 +7532,7 @@ void case_779() } void case_780() -#line 4998 "cs-parser.jay" +#line 5002 "cs-parser.jay" { var sections = (List) yyVals[-1+yyTop]; @@ -7541,14 +7541,14 @@ void case_780() } void case_781() -#line 5005 "cs-parser.jay" +#line 5009 "cs-parser.jay" { Error_SyntaxError (yyToken); yyVal = new List (); } void case_784() -#line 5024 "cs-parser.jay" +#line 5028 "cs-parser.jay" { var labels = new List (2); @@ -7557,7 +7557,7 @@ void case_784() } void case_785() -#line 5031 "cs-parser.jay" +#line 5035 "cs-parser.jay" { var labels = (List) (yyVals[-1+yyTop]); labels.Add ((SwitchLabel) yyVals[0+yyTop]); @@ -7566,14 +7566,14 @@ void case_785() } void case_786() -#line 5041 "cs-parser.jay" +#line 5045 "cs-parser.jay" { yyVal = new SwitchLabel ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop])); lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop])); } void case_792() -#line 5060 "cs-parser.jay" +#line 5064 "cs-parser.jay" { if (yyVals[0+yyTop] is EmptyStatement && lexer.peek_token () == Token.OPEN_BRACE) Warning_EmptyStatement (GetLocation (yyVals[0+yyTop])); @@ -7583,21 +7583,21 @@ void case_792() } void case_793() -#line 5072 "cs-parser.jay" +#line 5076 "cs-parser.jay" { yyVal = new Do ((Statement) yyVals[-5+yyTop], (BooleanExpression) yyVals[-2+yyTop], GetLocation (yyVals[-6+yyTop])); lbag.AddStatement (yyVal, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop])); } void case_794() -#line 5080 "cs-parser.jay" +#line 5084 "cs-parser.jay" { start_block (GetLocation (yyVals[0+yyTop])); current_block.IsCompilerGenerated = true; } void case_796() -#line 5096 "cs-parser.jay" +#line 5100 "cs-parser.jay" { if (yyVals[0+yyTop] is EmptyStatement && lexer.peek_token () == Token.OPEN_BRACE) Warning_EmptyStatement (GetLocation (yyVals[0+yyTop])); @@ -7611,14 +7611,14 @@ void case_796() } void case_797() -#line 5108 "cs-parser.jay" +#line 5112 "cs-parser.jay" { Error_SyntaxError (yyToken); yyVal = end_block (current_block.StartLocation); } void case_800() -#line 5121 "cs-parser.jay" +#line 5125 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop]; var li = new LocalVariable (current_block, lt.Value, lt.Location); @@ -7627,14 +7627,14 @@ void case_800() } void case_801() -#line 5128 "cs-parser.jay" +#line 5132 "cs-parser.jay" { yyVal = current_variable; current_variable = null; } void case_809() -#line 5152 "cs-parser.jay" +#line 5156 "cs-parser.jay" { var sl = yyVals[-2+yyTop] as StatementList; if (sl == null) { @@ -7649,14 +7649,14 @@ void case_809() } void case_810() -#line 5168 "cs-parser.jay" +#line 5172 "cs-parser.jay" { report.Error (230, GetLocation (yyVals[-5+yyTop]), "Type and identifier are both required in a foreach statement"); yyVal = null; } void case_811() -#line 5173 "cs-parser.jay" +#line 5177 "cs-parser.jay" { start_block (GetLocation (yyVals[-5+yyTop])); current_block.IsCompilerGenerated = true; @@ -7667,7 +7667,7 @@ void case_811() } void case_812() -#line 5182 "cs-parser.jay" +#line 5186 "cs-parser.jay" { if (yyVals[0+yyTop] is EmptyStatement && lexer.peek_token () == Token.OPEN_BRACE) Warning_EmptyStatement (GetLocation (yyVals[0+yyTop])); @@ -7680,21 +7680,21 @@ void case_812() } void case_819() -#line 5205 "cs-parser.jay" +#line 5209 "cs-parser.jay" { yyVal = new Break (GetLocation (yyVals[-1+yyTop])); lbag.AddStatement (yyVal, GetLocation (yyVals[0+yyTop])); } void case_820() -#line 5213 "cs-parser.jay" +#line 5217 "cs-parser.jay" { yyVal = new Continue (GetLocation (yyVals[-1+yyTop])); lbag.AddStatement (yyVal, GetLocation (yyVals[0+yyTop])); } void case_821() -#line 5221 "cs-parser.jay" +#line 5225 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop]; yyVal = new Goto (lt.Value, GetLocation (yyVals[-2+yyTop])); @@ -7702,35 +7702,35 @@ void case_821() } void case_822() -#line 5227 "cs-parser.jay" +#line 5231 "cs-parser.jay" { yyVal = new GotoCase ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop])); lbag.AddStatement (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop])); } void case_823() -#line 5232 "cs-parser.jay" +#line 5236 "cs-parser.jay" { yyVal = new GotoDefault (GetLocation (yyVals[-2+yyTop])); lbag.AddStatement (yyVal, GetLocation (yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop])); } void case_824() -#line 5240 "cs-parser.jay" +#line 5244 "cs-parser.jay" { yyVal = new Return ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop])); lbag.AddStatement (yyVal, GetLocation (yyVals[0+yyTop])); } void case_825() -#line 5248 "cs-parser.jay" +#line 5252 "cs-parser.jay" { yyVal = new Throw ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop])); lbag.AddStatement (yyVal, GetLocation (yyVals[0+yyTop])); } void case_826() -#line 5256 "cs-parser.jay" +#line 5260 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop]; string s = lt.Value; @@ -7748,7 +7748,7 @@ void case_826() } void case_827() -#line 5272 "cs-parser.jay" +#line 5276 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop]; string s = lt.Value; @@ -7764,28 +7764,28 @@ void case_827() } void case_831() -#line 5298 "cs-parser.jay" +#line 5302 "cs-parser.jay" { yyVal = new TryFinally ((Statement) yyVals[-2+yyTop], (Block) yyVals[0+yyTop], GetLocation (yyVals[-3+yyTop])); lbag.AddStatement (yyVal, GetLocation (yyVals[-1+yyTop])); } void case_832() -#line 5303 "cs-parser.jay" +#line 5307 "cs-parser.jay" { yyVal = new TryFinally (new TryCatch ((Block) yyVals[-3+yyTop], (List) yyVals[-2+yyTop], GetLocation (yyVals[-4+yyTop]), true), (Block) yyVals[0+yyTop], GetLocation (yyVals[-4+yyTop])); lbag.AddStatement (yyVal, GetLocation (yyVals[-1+yyTop])); } void case_833() -#line 5308 "cs-parser.jay" +#line 5312 "cs-parser.jay" { report.Error (1524, GetLocation (yyVals[-2+yyTop]), "Expected catch or finally"); yyVal = null; } void case_834() -#line 5316 "cs-parser.jay" +#line 5320 "cs-parser.jay" { var l = new List (2); @@ -7794,7 +7794,7 @@ void case_834() } void case_835() -#line 5323 "cs-parser.jay" +#line 5327 "cs-parser.jay" { var l = (List) yyVals[-1+yyTop]; @@ -7812,7 +7812,7 @@ void case_835() } void case_839() -#line 5351 "cs-parser.jay" +#line 5355 "cs-parser.jay" { start_block (GetLocation (yyVals[-3+yyTop])); var c = new Catch (current_block, GetLocation (yyVals[-4+yyTop])); @@ -7829,7 +7829,7 @@ void case_839() } void case_841() -#line 5370 "cs-parser.jay" +#line 5374 "cs-parser.jay" { if (yyToken == Token.CLOSE_PARENS) { report.Error (1015, lexer.Location, @@ -7842,14 +7842,14 @@ void case_841() } void case_844() -#line 5398 "cs-parser.jay" +#line 5402 "cs-parser.jay" { if (!settings.Unsafe) Error_UnsafeCodeNotAllowed (GetLocation (yyVals[0+yyTop])); } void case_846() -#line 5408 "cs-parser.jay" +#line 5412 "cs-parser.jay" { if (yyVals[0+yyTop] is EmptyStatement && lexer.peek_token () == Token.OPEN_BRACE) Warning_EmptyStatement (GetLocation (yyVals[0+yyTop])); @@ -7859,7 +7859,7 @@ void case_846() } void case_847() -#line 5419 "cs-parser.jay" +#line 5423 "cs-parser.jay" { start_block (GetLocation (yyVals[-2+yyTop])); @@ -7871,14 +7871,14 @@ void case_847() } void case_848() -#line 5429 "cs-parser.jay" +#line 5433 "cs-parser.jay" { yyVal = current_variable; current_variable = null; } void case_849() -#line 5434 "cs-parser.jay" +#line 5438 "cs-parser.jay" { if (yyVals[0+yyTop] is EmptyStatement && lexer.peek_token () == Token.OPEN_BRACE) Warning_EmptyStatement (GetLocation (yyVals[0+yyTop])); @@ -7890,7 +7890,7 @@ void case_849() } void case_850() -#line 5447 "cs-parser.jay" +#line 5451 "cs-parser.jay" { start_block (GetLocation (yyVals[-2+yyTop])); @@ -7902,14 +7902,14 @@ void case_850() } void case_851() -#line 5457 "cs-parser.jay" +#line 5461 "cs-parser.jay" { yyVal = current_variable; current_variable = null; } void case_852() -#line 5462 "cs-parser.jay" +#line 5466 "cs-parser.jay" { if (yyVals[0+yyTop] is EmptyStatement && lexer.peek_token () == Token.OPEN_BRACE) Warning_EmptyStatement (GetLocation (yyVals[0+yyTop])); @@ -7921,7 +7921,7 @@ void case_852() } void case_853() -#line 5472 "cs-parser.jay" +#line 5476 "cs-parser.jay" { if (yyVals[0+yyTop] is EmptyStatement && lexer.peek_token () == Token.OPEN_BRACE) Warning_EmptyStatement (GetLocation (yyVals[0+yyTop])); @@ -7932,14 +7932,14 @@ void case_853() } void case_855() -#line 5488 "cs-parser.jay" +#line 5492 "cs-parser.jay" { current_variable.Initializer = (Expression) yyVals[0+yyTop]; yyVal = current_variable; } void case_856() -#line 5499 "cs-parser.jay" +#line 5503 "cs-parser.jay" { lexer.query_parsing = false; @@ -7953,7 +7953,7 @@ void case_856() } void case_857() -#line 5511 "cs-parser.jay" +#line 5515 "cs-parser.jay" { Linq.AQueryClause from = yyVals[-1+yyTop] as Linq.AQueryClause; @@ -7965,7 +7965,7 @@ void case_857() } void case_858() -#line 5522 "cs-parser.jay" +#line 5526 "cs-parser.jay" { lexer.query_parsing = false; yyVal = yyVals[-1+yyTop]; @@ -7975,7 +7975,7 @@ void case_858() } void case_859() -#line 5529 "cs-parser.jay" +#line 5533 "cs-parser.jay" { yyVal = yyVals[-1+yyTop]; current_block.SetEndLocation (lexer.Location); @@ -7983,7 +7983,7 @@ void case_859() } void case_860() -#line 5538 "cs-parser.jay" +#line 5542 "cs-parser.jay" { current_block = new Linq.QueryBlock (current_block, lexer.Location); @@ -7993,7 +7993,7 @@ void case_860() } void case_861() -#line 5546 "cs-parser.jay" +#line 5550 "cs-parser.jay" { current_block = new Linq.QueryBlock (current_block, lexer.Location); @@ -8007,7 +8007,7 @@ void case_861() } void case_862() -#line 5561 "cs-parser.jay" +#line 5565 "cs-parser.jay" { current_block = new Linq.QueryBlock (current_block, lexer.Location); @@ -8017,7 +8017,7 @@ void case_862() } void case_863() -#line 5569 "cs-parser.jay" +#line 5573 "cs-parser.jay" { current_block = new Linq.QueryBlock (current_block, lexer.Location); @@ -8031,7 +8031,7 @@ void case_863() } void case_865() -#line 5588 "cs-parser.jay" +#line 5592 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop]; var sn = new Linq.RangeVariable (lt.Value, lt.Location); @@ -8044,7 +8044,7 @@ void case_865() } void case_867() -#line 5603 "cs-parser.jay" +#line 5607 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop]; var sn = new Linq.RangeVariable (lt.Value, lt.Location); @@ -8060,7 +8060,7 @@ void case_867() } void case_868() -#line 5620 "cs-parser.jay" +#line 5624 "cs-parser.jay" { Linq.AQueryClause head = (Linq.AQueryClause)yyVals[-1+yyTop]; @@ -8077,14 +8077,14 @@ void case_868() } void case_870() -#line 5636 "cs-parser.jay" +#line 5640 "cs-parser.jay" { Error_SyntaxError (yyToken); yyVal = null; } void case_872() -#line 5648 "cs-parser.jay" +#line 5652 "cs-parser.jay" { yyVal = new Linq.Select ((Linq.QueryBlock)current_block, (Expression)yyVals[0+yyTop], GetLocation (yyVals[-2+yyTop])); @@ -8093,7 +8093,7 @@ void case_872() } void case_873() -#line 5655 "cs-parser.jay" +#line 5659 "cs-parser.jay" { if (linq_clause_blocks == null) linq_clause_blocks = new Stack (); @@ -8103,7 +8103,7 @@ void case_873() } void case_874() -#line 5663 "cs-parser.jay" +#line 5667 "cs-parser.jay" { current_block.SetEndLocation (lexer.Location); current_block = current_block.Parent; @@ -8112,7 +8112,7 @@ void case_874() } void case_875() -#line 5670 "cs-parser.jay" +#line 5674 "cs-parser.jay" { yyVal = new Linq.GroupBy ((Linq.QueryBlock)current_block, (Expression)yyVals[-3+yyTop], linq_clause_blocks.Pop (), (Expression)yyVals[0+yyTop], GetLocation (yyVals[-5+yyTop])); lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop])); @@ -8122,14 +8122,14 @@ void case_875() } void case_879() -#line 5687 "cs-parser.jay" +#line 5691 "cs-parser.jay" { ((Linq.AQueryClause)yyVals[-1+yyTop]).Tail.Next = (Linq.AQueryClause)yyVals[0+yyTop]; yyVal = yyVals[-1+yyTop]; } void case_886() -#line 5707 "cs-parser.jay" +#line 5711 "cs-parser.jay" { var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop]; var sn = new Linq.RangeVariable (lt.Value, lt.Location); @@ -8143,7 +8143,7 @@ void case_886() } void case_888() -#line 5726 "cs-parser.jay" +#line 5730 "cs-parser.jay" { yyVal = new Linq.Where ((Linq.QueryBlock)current_block, (Expression)yyVals[0+yyTop], GetLocation (yyVals[-2+yyTop])); @@ -8152,7 +8152,7 @@ void case_888() } void case_889() -#line 5736 "cs-parser.jay" +#line 5740 "cs-parser.jay" { if (linq_clause_blocks == null) linq_clause_blocks = new Stack (); @@ -8162,7 +8162,7 @@ void case_889() } void case_890() -#line 5744 "cs-parser.jay" +#line 5748 "cs-parser.jay" { current_block.SetEndLocation (lexer.Location); current_block = current_block.Parent; @@ -8172,7 +8172,7 @@ void case_890() } void case_891() -#line 5752 "cs-parser.jay" +#line 5756 "cs-parser.jay" { current_block.AddStatement (new ContextualReturn ((Expression) yyVals[-1+yyTop])); current_block.SetEndLocation (lexer.Location); @@ -8182,7 +8182,7 @@ void case_891() } void case_892() -#line 5760 "cs-parser.jay" +#line 5764 "cs-parser.jay" { current_block.AddStatement (new ContextualReturn ((Expression) yyVals[-1+yyTop])); current_block.SetEndLocation (lexer.Location); @@ -8222,7 +8222,7 @@ void case_892() } void case_893() -#line 5798 "cs-parser.jay" +#line 5802 "cs-parser.jay" { if (linq_clause_blocks == null) linq_clause_blocks = new Stack (); @@ -8232,7 +8232,7 @@ void case_893() } void case_894() -#line 5806 "cs-parser.jay" +#line 5810 "cs-parser.jay" { current_block.SetEndLocation (lexer.Location); current_block = current_block.Parent; @@ -8242,7 +8242,7 @@ void case_894() } void case_895() -#line 5814 "cs-parser.jay" +#line 5818 "cs-parser.jay" { current_block.AddStatement (new ContextualReturn ((Expression) yyVals[-1+yyTop])); current_block.SetEndLocation (lexer.Location); @@ -8252,7 +8252,7 @@ void case_895() } void case_896() -#line 5822 "cs-parser.jay" +#line 5826 "cs-parser.jay" { current_block.AddStatement (new ContextualReturn ((Expression) yyVals[-1+yyTop])); current_block.SetEndLocation (lexer.Location); @@ -8294,7 +8294,7 @@ void case_896() } void case_900() -#line 5877 "cs-parser.jay" +#line 5881 "cs-parser.jay" { current_block.SetEndLocation (lexer.Location); current_block = current_block.Parent; @@ -8303,7 +8303,7 @@ void case_900() } void case_902() -#line 5888 "cs-parser.jay" +#line 5892 "cs-parser.jay" { current_block.SetEndLocation (lexer.Location); current_block = current_block.Parent; @@ -8312,14 +8312,14 @@ void case_902() } void case_903() -#line 5895 "cs-parser.jay" +#line 5899 "cs-parser.jay" { ((Linq.AQueryClause)yyVals[-3+yyTop]).Next = (Linq.AQueryClause)yyVals[0+yyTop]; yyVal = yyVals[-3+yyTop]; } void case_905() -#line 5904 "cs-parser.jay" +#line 5908 "cs-parser.jay" { current_block.SetEndLocation (lexer.Location); current_block = current_block.Parent; @@ -8328,42 +8328,42 @@ void case_905() } void case_906() -#line 5911 "cs-parser.jay" +#line 5915 "cs-parser.jay" { ((Linq.AQueryClause)yyVals[-3+yyTop]).Tail.Next = (Linq.AQueryClause)yyVals[0+yyTop]; yyVal = yyVals[-3+yyTop]; } void case_908() -#line 5923 "cs-parser.jay" +#line 5927 "cs-parser.jay" { yyVal = new Linq.OrderByAscending ((Linq.QueryBlock) current_block, (Expression)yyVals[-1+yyTop]); lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop])); } void case_909() -#line 5928 "cs-parser.jay" +#line 5932 "cs-parser.jay" { yyVal = new Linq.OrderByDescending ((Linq.QueryBlock) current_block, (Expression)yyVals[-1+yyTop]); lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop])); } void case_911() -#line 5940 "cs-parser.jay" +#line 5944 "cs-parser.jay" { yyVal = new Linq.ThenByAscending ((Linq.QueryBlock) current_block, (Expression)yyVals[-1+yyTop]); lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop])); } void case_912() -#line 5945 "cs-parser.jay" +#line 5949 "cs-parser.jay" { yyVal = new Linq.ThenByDescending ((Linq.QueryBlock) current_block, (Expression)yyVals[-1+yyTop]); lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop])); } void case_914() -#line 5955 "cs-parser.jay" +#line 5959 "cs-parser.jay" { /* query continuation block is not linked with query block but with block*/ /* before. This means each query can use same range variable names for*/ @@ -8381,7 +8381,7 @@ void case_914() } void case_915() -#line 5971 "cs-parser.jay" +#line 5975 "cs-parser.jay" { var current_block = linq_clause_blocks.Pop (); var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop]; @@ -8392,7 +8392,7 @@ void case_915() } void case_918() -#line 5998 "cs-parser.jay" +#line 6002 "cs-parser.jay" { current_container = new Class (current_namespace, current_class, new MemberName (""), Modifiers.PUBLIC, null); current_class = current_container; @@ -8424,7 +8424,7 @@ void case_918() } void case_919() -#line 6028 "cs-parser.jay" +#line 6032 "cs-parser.jay" { --lexer.parsing_block; Method method = (Method) oob_stack.Pop (); @@ -8436,7 +8436,7 @@ void case_919() } void case_929() -#line 6071 "cs-parser.jay" +#line 6075 "cs-parser.jay" { module.DocumentationBuilder.ParsedBuiltinType = (TypeExpression)yyVals[-1+yyTop]; module.DocumentationBuilder.ParsedParameters = (List)yyVals[0+yyTop]; @@ -8444,7 +8444,7 @@ void case_929() } void case_930() -#line 6077 "cs-parser.jay" +#line 6081 "cs-parser.jay" { module.DocumentationBuilder.ParsedBuiltinType = (TypeExpression)yyVals[-3+yyTop]; module.DocumentationBuilder.ParsedParameters = (List)yyVals[0+yyTop]; @@ -8453,14 +8453,14 @@ void case_930() } void case_933() -#line 6092 "cs-parser.jay" +#line 6096 "cs-parser.jay" { module.DocumentationBuilder.ParsedParameters = (List)yyVals[-1+yyTop]; yyVal = new MemberName ((MemberName) yyVals[-6+yyTop], new MemberName (MemberCache.IndexerNameAlias)); } void case_934() -#line 6097 "cs-parser.jay" +#line 6101 "cs-parser.jay" { var p = (List)yyVals[0+yyTop] ?? new List (1); p.Add (new DocumentationParameter ((FullNamedExpression) yyVals[-1+yyTop])); @@ -8470,7 +8470,7 @@ void case_934() } void case_935() -#line 6105 "cs-parser.jay" +#line 6109 "cs-parser.jay" { var p = (List)yyVals[0+yyTop] ?? new List (1); p.Add (new DocumentationParameter ((FullNamedExpression) yyVals[-1+yyTop])); @@ -8480,7 +8480,7 @@ void case_935() } void case_936() -#line 6113 "cs-parser.jay" +#line 6117 "cs-parser.jay" { var p = (List)yyVals[0+yyTop] ?? new List (1); module.DocumentationBuilder.ParsedParameters = p; @@ -8489,7 +8489,7 @@ void case_936() } void case_944() -#line 6151 "cs-parser.jay" +#line 6155 "cs-parser.jay" { var parameters = new List (); parameters.Add ((DocumentationParameter) yyVals[0+yyTop]); @@ -8497,7 +8497,7 @@ void case_944() } void case_945() -#line 6157 "cs-parser.jay" +#line 6161 "cs-parser.jay" { var parameters = yyVals[-2+yyTop] as List; parameters.Add ((DocumentationParameter) yyVals[0+yyTop]); @@ -8505,7 +8505,7 @@ void case_945() } void case_946() -#line 6166 "cs-parser.jay" +#line 6170 "cs-parser.jay" { if (yyVals[-1+yyTop] != null) yyVal = new DocumentationParameter ((Parameter.Modifier) yyVals[-1+yyTop], (FullNamedExpression) yyVals[0+yyTop]); @@ -11831,7 +11831,7 @@ void case_946() -1, -1, 359, }; -#line 6175 "cs-parser.jay" +#line 6179 "cs-parser.jay" // // A class used to hold info about an operator declarator diff --git a/ICSharpCode.NRefactory/CSharp/Parser/mcs/expression.cs b/ICSharpCode.NRefactory/CSharp/Parser/mcs/expression.cs index de35886e24..087068c735 100644 --- a/ICSharpCode.NRefactory/CSharp/Parser/mcs/expression.cs +++ b/ICSharpCode.NRefactory/CSharp/Parser/mcs/expression.cs @@ -7113,10 +7113,12 @@ namespace Mono.CSharp } } - class RefValueExpr : ShimExpression + public class RefValueExpr : ShimExpression { FullNamedExpression texpr; - + + public FullNamedExpression FullNamedExpression { get { return texpr; }} + public RefValueExpr (Expression expr, FullNamedExpression texpr, Location loc) : base (expr) { @@ -7143,9 +7145,14 @@ namespace Mono.CSharp ec.Emit (OpCodes.Refanyval, type); ec.EmitLoadFromPtr (type); } + + public override object Accept (StructuralVisitor visitor) + { + return visitor.Visit (this); + } } - class RefTypeExpr : ShimExpression + public class RefTypeExpr : ShimExpression { public RefTypeExpr (Expression expr, Location loc) : base (expr) @@ -7176,9 +7183,14 @@ namespace Mono.CSharp if (m != null) ec.Emit (OpCodes.Call, m); } + + public override object Accept (StructuralVisitor visitor) + { + return visitor.Visit (this); + } } - class MakeRefExpr : ShimExpression + public class MakeRefExpr : ShimExpression { public MakeRefExpr (Expression expr, Location loc) : base (expr) @@ -7199,6 +7211,11 @@ namespace Mono.CSharp ((IMemoryLocation) expr).AddressOf (ec, AddressOp.Load); ec.Emit (OpCodes.Mkrefany, expr.Type); } + + public override object Accept (StructuralVisitor visitor) + { + return visitor.Visit (this); + } } /// diff --git a/ICSharpCode.NRefactory/CSharp/Parser/mcs/visit.cs b/ICSharpCode.NRefactory/CSharp/Parser/mcs/visit.cs index da7ade635e..0ac678300c 100644 --- a/ICSharpCode.NRefactory/CSharp/Parser/mcs/visit.cs +++ b/ICSharpCode.NRefactory/CSharp/Parser/mcs/visit.cs @@ -605,10 +605,26 @@ namespace Mono.CSharp { return null; } - + public virtual object Visit (Linq.ThenByDescending thenByDescending) { return null; } + + // undocumented expressions + public virtual object Visit (RefValueExpr refValueExpr) + { + return null; + } + + public virtual object Visit (RefTypeExpr refTypeExpr) + { + return null; + } + + public virtual object Visit (MakeRefExpr makeRefExpr) + { + return null; + } } } \ No newline at end of file diff --git a/ICSharpCode.NRefactory/CSharp/Resolver/ResolveVisitor.cs b/ICSharpCode.NRefactory/CSharp/Resolver/ResolveVisitor.cs index 2c4002a416..92b15d92b0 100644 --- a/ICSharpCode.NRefactory/CSharp/Resolver/ResolveVisitor.cs +++ b/ICSharpCode.NRefactory/CSharp/Resolver/ResolveVisitor.cs @@ -497,9 +497,10 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver throw new NotImplementedException(); } - public override ResolveResult VisitArgListExpression(ArgListExpression argListExpression, object data) + public object VisitUndocumentedExpression(UndocumentedExpression undocumentedExpression, object data) { - ScanChildren(argListExpression); + // TODO: ? + ScanChildren(undocumentedExpression); return new ResolveResult(resolver.Context.GetClass(typeof(RuntimeArgumentHandle)) ?? SharedTypes.UnknownType); } diff --git a/ICSharpCode.NRefactory/ICSharpCode.NRefactory.csproj b/ICSharpCode.NRefactory/ICSharpCode.NRefactory.csproj index 3aec1477af..87bd59cb88 100644 --- a/ICSharpCode.NRefactory/ICSharpCode.NRefactory.csproj +++ b/ICSharpCode.NRefactory/ICSharpCode.NRefactory.csproj @@ -67,7 +67,6 @@ - @@ -352,6 +351,7 @@ +