Browse Source

Fixed operator declaration operator location.

newNRvisualizers
Mike Krüger 14 years ago
parent
commit
42e49ce6ef
  1. 48
      ICSharpCode.NRefactory.CSharp/Parser/mcs/cs-parser.cs
  2. 48
      ICSharpCode.NRefactory.CSharp/Parser/mcs/cs-parser.jay

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

@ -145,7 +145,7 @@ namespace Mono.CSharp
UsingsBag ubag; UsingsBag ubag;
List<Tuple<Modifiers, Location>> mod_locations; List<Tuple<Modifiers, Location>> mod_locations;
Location parameterModifierLocation, savedLocation, savedOpenLocation, savedCloseLocation; Location parameterModifierLocation, savedLocation, savedOpenLocation, savedCloseLocation;
Location savedAttrParenOpenLocation, savedAttrParenCloseLocation; Location savedAttrParenOpenLocation, savedAttrParenCloseLocation, savedOperatorLocation;
Stack<List<Location>> locationListStack = new Stack<List<Location>> (); // used for type parameters Stack<List<Location>> locationListStack = new Stack<List<Location>> (); // used for type parameters
List<Location> attributeCommas = new List<Location> (); List<Location> attributeCommas = new List<Location> ();
List<Location> parameterListCommas = new List<Location> (); List<Location> parameterListCommas = new List<Location> ();
@ -2020,91 +2020,91 @@ case 247:
break; break;
case 249: case 249:
#line 2125 "cs-parser.jay" #line 2125 "cs-parser.jay"
{ yyVal = Operator.OpType.LogicalNot; } { yyVal = Operator.OpType.LogicalNot; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
break; break;
case 250: case 250:
#line 2126 "cs-parser.jay" #line 2126 "cs-parser.jay"
{ yyVal = Operator.OpType.OnesComplement; } { yyVal = Operator.OpType.OnesComplement; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
break; break;
case 251: case 251:
#line 2127 "cs-parser.jay" #line 2127 "cs-parser.jay"
{ yyVal = Operator.OpType.Increment; } { yyVal = Operator.OpType.Increment; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
break; break;
case 252: case 252:
#line 2128 "cs-parser.jay" #line 2128 "cs-parser.jay"
{ yyVal = Operator.OpType.Decrement; } { yyVal = Operator.OpType.Decrement; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
break; break;
case 253: case 253:
#line 2129 "cs-parser.jay" #line 2129 "cs-parser.jay"
{ yyVal = Operator.OpType.True; } { yyVal = Operator.OpType.True; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
break; break;
case 254: case 254:
#line 2130 "cs-parser.jay" #line 2130 "cs-parser.jay"
{ yyVal = Operator.OpType.False; } { yyVal = Operator.OpType.False; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
break; break;
case 255: case 255:
#line 2132 "cs-parser.jay" #line 2132 "cs-parser.jay"
{ yyVal = Operator.OpType.Addition; } { yyVal = Operator.OpType.Addition; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
break; break;
case 256: case 256:
#line 2133 "cs-parser.jay" #line 2133 "cs-parser.jay"
{ yyVal = Operator.OpType.Subtraction; } { yyVal = Operator.OpType.Subtraction; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
break; break;
case 257: case 257:
#line 2135 "cs-parser.jay" #line 2135 "cs-parser.jay"
{ yyVal = Operator.OpType.Multiply; } { yyVal = Operator.OpType.Multiply; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
break; break;
case 258: case 258:
#line 2136 "cs-parser.jay" #line 2136 "cs-parser.jay"
{ yyVal = Operator.OpType.Division; } { yyVal = Operator.OpType.Division; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
break; break;
case 259: case 259:
#line 2137 "cs-parser.jay" #line 2137 "cs-parser.jay"
{ yyVal = Operator.OpType.Modulus; } { yyVal = Operator.OpType.Modulus; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
break; break;
case 260: case 260:
#line 2138 "cs-parser.jay" #line 2138 "cs-parser.jay"
{ yyVal = Operator.OpType.BitwiseAnd; } { yyVal = Operator.OpType.BitwiseAnd; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
break; break;
case 261: case 261:
#line 2139 "cs-parser.jay" #line 2139 "cs-parser.jay"
{ yyVal = Operator.OpType.BitwiseOr; } { yyVal = Operator.OpType.BitwiseOr; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
break; break;
case 262: case 262:
#line 2140 "cs-parser.jay" #line 2140 "cs-parser.jay"
{ yyVal = Operator.OpType.ExclusiveOr; } { yyVal = Operator.OpType.ExclusiveOr; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
break; break;
case 263: case 263:
#line 2141 "cs-parser.jay" #line 2141 "cs-parser.jay"
{ yyVal = Operator.OpType.LeftShift; } { yyVal = Operator.OpType.LeftShift; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
break; break;
case 264: case 264:
#line 2142 "cs-parser.jay" #line 2142 "cs-parser.jay"
{ yyVal = Operator.OpType.RightShift; } { yyVal = Operator.OpType.RightShift; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
break; break;
case 265: case 265:
#line 2143 "cs-parser.jay" #line 2143 "cs-parser.jay"
{ yyVal = Operator.OpType.Equality; } { yyVal = Operator.OpType.Equality; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
break; break;
case 266: case 266:
#line 2144 "cs-parser.jay" #line 2144 "cs-parser.jay"
{ yyVal = Operator.OpType.Inequality; } { yyVal = Operator.OpType.Inequality; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
break; break;
case 267: case 267:
#line 2145 "cs-parser.jay" #line 2145 "cs-parser.jay"
{ yyVal = Operator.OpType.GreaterThan; } { yyVal = Operator.OpType.GreaterThan; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
break; break;
case 268: case 268:
#line 2146 "cs-parser.jay" #line 2146 "cs-parser.jay"
{ yyVal = Operator.OpType.LessThan; } { yyVal = Operator.OpType.LessThan; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
break; break;
case 269: case 269:
#line 2147 "cs-parser.jay" #line 2147 "cs-parser.jay"
{ yyVal = Operator.OpType.GreaterThanOrEqual; } { yyVal = Operator.OpType.GreaterThanOrEqual; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
break; break;
case 270: case 270:
#line 2148 "cs-parser.jay" #line 2148 "cs-parser.jay"
{ yyVal = Operator.OpType.LessThanOrEqual; } { yyVal = Operator.OpType.LessThanOrEqual; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
break; break;
case 271: case 271:
#line 2155 "cs-parser.jay" #line 2155 "cs-parser.jay"
@ -5298,7 +5298,7 @@ void case_247()
} }
yyVal = new OperatorDeclaration (op, (FullNamedExpression) yyVals[-6+yyTop], loc); yyVal = new OperatorDeclaration (op, (FullNamedExpression) yyVals[-6+yyTop], loc);
lbag.AddLocation (yyVal, GetLocation (yyVals[-5+yyTop]), GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[0+yyTop])); lbag.AddLocation (yyVal, GetLocation (yyVals[-5+yyTop]), savedOperatorLocation, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[0+yyTop]));
} }
void case_272() void case_272()

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

@ -143,7 +143,7 @@ namespace Mono.CSharp
UsingsBag ubag; UsingsBag ubag;
List<Tuple<Modifiers, Location>> mod_locations; List<Tuple<Modifiers, Location>> mod_locations;
Location parameterModifierLocation, savedLocation, savedOpenLocation, savedCloseLocation; Location parameterModifierLocation, savedLocation, savedOpenLocation, savedCloseLocation;
Location savedAttrParenOpenLocation, savedAttrParenCloseLocation; Location savedAttrParenOpenLocation, savedAttrParenCloseLocation, savedOperatorLocation;
Stack<List<Location>> locationListStack = new Stack<List<Location>> (); // used for type parameters Stack<List<Location>> locationListStack = new Stack<List<Location>> (); // used for type parameters
List<Location> attributeCommas = new List<Location> (); List<Location> attributeCommas = new List<Location> ();
List<Location> parameterListCommas = new List<Location> (); List<Location> parameterListCommas = new List<Location> ();
@ -2115,37 +2115,37 @@ operator_declarator
} }
$$ = new OperatorDeclaration (op, (FullNamedExpression) $1, loc); $$ = new OperatorDeclaration (op, (FullNamedExpression) $1, loc);
lbag.AddLocation ($$, GetLocation ($2), GetLocation ($3), GetLocation ($4), GetLocation ($7)); lbag.AddLocation ($$, GetLocation ($2), savedOperatorLocation, GetLocation ($4), GetLocation ($7));
} }
| conversion_operator_declarator | conversion_operator_declarator
; ;
overloadable_operator overloadable_operator
// Unary operators: // Unary operators:
: BANG { $$ = Operator.OpType.LogicalNot; } : BANG { $$ = Operator.OpType.LogicalNot; savedOperatorLocation = GetLocation ($1); }
| TILDE { $$ = Operator.OpType.OnesComplement; } | TILDE { $$ = Operator.OpType.OnesComplement; savedOperatorLocation = GetLocation ($1); }
| OP_INC { $$ = Operator.OpType.Increment; } | OP_INC { $$ = Operator.OpType.Increment; savedOperatorLocation = GetLocation ($1); }
| OP_DEC { $$ = Operator.OpType.Decrement; } | OP_DEC { $$ = Operator.OpType.Decrement; savedOperatorLocation = GetLocation ($1); }
| TRUE { $$ = Operator.OpType.True; } | TRUE { $$ = Operator.OpType.True; savedOperatorLocation = GetLocation ($1); }
| FALSE { $$ = Operator.OpType.False; } | FALSE { $$ = Operator.OpType.False; savedOperatorLocation = GetLocation ($1); }
// Unary and binary: // Unary and binary:
| PLUS { $$ = Operator.OpType.Addition; } | PLUS { $$ = Operator.OpType.Addition; savedOperatorLocation = GetLocation ($1); }
| MINUS { $$ = Operator.OpType.Subtraction; } | MINUS { $$ = Operator.OpType.Subtraction; savedOperatorLocation = GetLocation ($1); }
// Binary: // Binary:
| STAR { $$ = Operator.OpType.Multiply; } | STAR { $$ = Operator.OpType.Multiply; savedOperatorLocation = GetLocation ($1); }
| DIV { $$ = Operator.OpType.Division; } | DIV { $$ = Operator.OpType.Division; savedOperatorLocation = GetLocation ($1); }
| PERCENT { $$ = Operator.OpType.Modulus; } | PERCENT { $$ = Operator.OpType.Modulus; savedOperatorLocation = GetLocation ($1); }
| BITWISE_AND { $$ = Operator.OpType.BitwiseAnd; } | BITWISE_AND { $$ = Operator.OpType.BitwiseAnd; savedOperatorLocation = GetLocation ($1); }
| BITWISE_OR { $$ = Operator.OpType.BitwiseOr; } | BITWISE_OR { $$ = Operator.OpType.BitwiseOr; savedOperatorLocation = GetLocation ($1); }
| CARRET { $$ = Operator.OpType.ExclusiveOr; } | CARRET { $$ = Operator.OpType.ExclusiveOr; savedOperatorLocation = GetLocation ($1); }
| OP_SHIFT_LEFT { $$ = Operator.OpType.LeftShift; } | OP_SHIFT_LEFT { $$ = Operator.OpType.LeftShift; savedOperatorLocation = GetLocation ($1); }
| OP_SHIFT_RIGHT { $$ = Operator.OpType.RightShift; } | OP_SHIFT_RIGHT { $$ = Operator.OpType.RightShift; savedOperatorLocation = GetLocation ($1); }
| OP_EQ { $$ = Operator.OpType.Equality; } | OP_EQ { $$ = Operator.OpType.Equality; savedOperatorLocation = GetLocation ($1); }
| OP_NE { $$ = Operator.OpType.Inequality; } | OP_NE { $$ = Operator.OpType.Inequality; savedOperatorLocation = GetLocation ($1); }
| OP_GT { $$ = Operator.OpType.GreaterThan; } | OP_GT { $$ = Operator.OpType.GreaterThan; savedOperatorLocation = GetLocation ($1); }
| OP_LT { $$ = Operator.OpType.LessThan; } | OP_LT { $$ = Operator.OpType.LessThan; savedOperatorLocation = GetLocation ($1); }
| OP_GE { $$ = Operator.OpType.GreaterThanOrEqual; } | OP_GE { $$ = Operator.OpType.GreaterThanOrEqual; savedOperatorLocation = GetLocation ($1); }
| OP_LE { $$ = Operator.OpType.LessThanOrEqual; } | OP_LE { $$ = Operator.OpType.LessThanOrEqual; savedOperatorLocation = GetLocation ($1); }
; ;
conversion_operator_declarator conversion_operator_declarator

Loading…
Cancel
Save