Browse Source

Added error expression for the for construct.

newNRvisualizers
Mike Krüger 14 years ago
parent
commit
fa6ea1222f
  1. 2
      ICSharpCode.NRefactory.CSharp/Parser/mcs/cs-parser.cs
  2. 2
      ICSharpCode.NRefactory.CSharp/Parser/mcs/cs-parser.jay
  3. 10
      ICSharpCode.NRefactory.CSharp/Parser/mcs/expression.cs
  4. 2
      ICSharpCode.NRefactory.CSharp/Parser/mcs/statement.cs
  5. 5
      ICSharpCode.NRefactory.CSharp/Parser/mcs/visit.cs

2
ICSharpCode.NRefactory.CSharp/Parser/mcs/cs-parser.cs

@ -7922,7 +7922,7 @@ void case_797()
void case_798() void case_798()
#line 5301 "cs-parser.jay" #line 5301 "cs-parser.jay"
{ {
For f = new For ((Statement) yyVals[-2+yyTop], null, null, null, GetLocation (yyVals[-5+yyTop])); For f = new For ((Statement) yyVals[-2+yyTop], ErrorExpression.Create (0, lexer.Location, "Syntax error"), null, null, GetLocation (yyVals[-5+yyTop]));
current_block.AddStatement (f); current_block.AddStatement (f);
lbag.AddStatement (f, current_block.StartLocation, GetLocation (yyVals[-1+yyTop])); lbag.AddStatement (f, current_block.StartLocation, GetLocation (yyVals[-1+yyTop]));

2
ICSharpCode.NRefactory.CSharp/Parser/mcs/cs-parser.jay

@ -5299,7 +5299,7 @@ for_statement_cont
} }
| opt_for_initializer SEMICOLON error | opt_for_initializer SEMICOLON error
{ {
For f = new For ((Statement) $1, null, null, null, GetLocation ($-2)); For f = new For ((Statement) $1, ErrorExpression.Create (0, lexer.Location, "Syntax error"), null, null, GetLocation ($-2));
current_block.AddStatement (f); current_block.AddStatement (f);
lbag.AddStatement (f, current_block.StartLocation, GetLocation ($2)); lbag.AddStatement (f, current_block.StartLocation, GetLocation ($2));

10
ICSharpCode.NRefactory.CSharp/Parser/mcs/expression.cs

@ -9168,10 +9168,11 @@ namespace Mono.CSharp
{ {
} }
ErrorExpression (int errorCode, Location location, string error) : base (InternalType.ErrorType) ErrorExpression (int errorCode, Location location, string error)
: base (InternalType.ErrorType)
{ {
this.ErrorCode = errorCode; this.ErrorCode = errorCode;
this.loc = location; base.loc = location;
this.Error = error; this.Error = error;
} }
@ -9201,6 +9202,11 @@ namespace Mono.CSharp
public override void Error_OperatorCannotBeApplied (ResolveContext rc, Location loc, string oper, TypeSpec t) public override void Error_OperatorCannotBeApplied (ResolveContext rc, Location loc, string oper, TypeSpec t)
{ {
} }
public override object Accept (StructuralVisitor visitor)
{
return visitor.Visit (this);
}
} }
public class UserCast : Expression { public class UserCast : Expression {

2
ICSharpCode.NRefactory.CSharp/Parser/mcs/statement.cs

@ -484,7 +484,7 @@ namespace Mono.CSharp {
bool infinite, empty; bool infinite, empty;
public For (Statement init_statement, public For (Statement init_statement,
BooleanExpression test, Expression test,
Statement increment, Statement increment,
Statement statement, Statement statement,
Location l) Location l)

5
ICSharpCode.NRefactory.CSharp/Parser/mcs/visit.cs

@ -183,6 +183,11 @@ namespace Mono.CSharp
{ {
return null; return null;
} }
public virtual object Visit (ErrorExpression errorExpression)
{
return null;
}
public virtual object Visit (If ifStatement) public virtual object Visit (If ifStatement)
{ {

Loading…
Cancel
Save