Siegfried Pammer 13 years ago committed by Daniel Grunwald
parent
commit
02b066d833
  1. 2774
      src/Libraries/NRefactory/Project/Src/Parser/VBNet/Parser.cs
  2. 3
      src/Libraries/NRefactory/Project/Src/Parser/VBNet/VBNET.ATG
  3. 69
      src/Libraries/NRefactory/Project/Src/Parser/VBNet/VBNetParser.cs

2774
src/Libraries/NRefactory/Project/Src/Parser/VBNet/Parser.cs

File diff suppressed because it is too large Load Diff

3
src/Libraries/NRefactory/Project/Src/Parser/VBNet/VBNET.ATG

@ -1263,6 +1263,7 @@ StructureMemberDecl<ModifierList m, List<AttributeSection> attributes> @@ -1263,6 +1263,7 @@ StructureMemberDecl<ModifierList m, List<AttributeSection> attributes>
Parameters = parameters,
TypeReference = returnType,
OverloadableOperator = operatorType,
Name = GetReflectionNameForOperator(operatorType, opConversionType),
ConversionType = opConversionType,
Body = (BlockStatement)stmt,
StartLocation = m.GetDeclarationLocation(startPos),
@ -1299,6 +1300,8 @@ OverloadableOperator<out OverloadableOperatorType operatorType> @@ -1299,6 +1300,8 @@ OverloadableOperator<out OverloadableOperatorType operatorType>
|
"Xor" (. operatorType = OverloadableOperatorType.ExclusiveOr; .)
|
"Not" (. operatorType = OverloadableOperatorType.BitNot; .)
|
"^" (. operatorType = OverloadableOperatorType.Power; .)
|
"<<" (. operatorType = OverloadableOperatorType.ShiftLeft; .)

69
src/Libraries/NRefactory/Project/Src/Parser/VBNet/VBNetParser.cs

@ -385,5 +385,74 @@ namespace ICSharpCode.NRefactory.Parser.VB @@ -385,5 +385,74 @@ namespace ICSharpCode.NRefactory.Parser.VB
item.Parent = parent;
}
}
internal static string GetReflectionNameForOperator(OverloadableOperatorType op, ConversionType conversion)
{
switch (op) {
case OverloadableOperatorType.Add:
return "op_Addition";
case OverloadableOperatorType.BitNot:
return "op_OnesComplement";
case OverloadableOperatorType.BitwiseAnd:
return "op_BitwiseAnd";
case OverloadableOperatorType.BitwiseOr:
return "op_BitwiseOr";
case OverloadableOperatorType.Concat:
return "op_Concatenate";
case OverloadableOperatorType.CType:
switch (conversion) {
case ConversionType.Implicit:
return "op_Implicit";
case ConversionType.Explicit:
return "op_Explicit";
default:
return "op_unknown";
}
case OverloadableOperatorType.Divide:
return "op_Division";
case OverloadableOperatorType.DivideInteger:
return "op_IntegerDivision";
case OverloadableOperatorType.Equality:
return "op_Equality";
case OverloadableOperatorType.ExclusiveOr:
return "op_ExclusiveOr";
case OverloadableOperatorType.GreaterThan:
return "op_GreaterThan";
case OverloadableOperatorType.GreaterThanOrEqual:
return "op_GreaterThanOrEqual";
case OverloadableOperatorType.InEquality:
return "op_Inequality";
case OverloadableOperatorType.IsFalse:
return "op_False";
case OverloadableOperatorType.IsTrue:
return "op_True";
case OverloadableOperatorType.LessThan:
return "op_LessThan";
case OverloadableOperatorType.LessThanOrEqual:
return "op_LessThanOrEqual";
case OverloadableOperatorType.Like:
return "op_Like";
case OverloadableOperatorType.Modulus:
return "op_Modulus";
case OverloadableOperatorType.Multiply:
return "op_Multiply";
case OverloadableOperatorType.Not:
return "op_LogicalNot";
case OverloadableOperatorType.Power:
return "op_Exponent";
case OverloadableOperatorType.ShiftLeft:
return "op_LeftShift";
case OverloadableOperatorType.ShiftRight:
return "op_RightShift";
case OverloadableOperatorType.Subtract:
return "op_Subtraction";
case OverloadableOperatorType.UnaryMinus:
return "op_UnaryNegation";
case OverloadableOperatorType.UnaryPlus:
return "op_UnaryPlus";
default:
return "op_unknown";
}
}
}
}

Loading…
Cancel
Save