Browse Source

worked on vb.net output vistitor: operator declarations

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@929 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Markus Palme 20 years ago
parent
commit
2b9c1bfd35
  1. 117
      src/Libraries/NRefactory/Project/Src/Output/VBNet/VBNetOutputVisitor.cs

117
src/Libraries/NRefactory/Project/Src/Output/VBNet/VBNetOutputVisitor.cs

@ -945,8 +945,121 @@ namespace ICSharpCode.NRefactory.PrettyPrinter @@ -945,8 +945,121 @@ namespace ICSharpCode.NRefactory.PrettyPrinter
public object Visit(OperatorDeclaration operatorDeclaration, object data)
{
// TODO: VB.NET 2.0 operators
errors.Error(-1, -1, String.Format("operators not supported."));
// TODO: widenting... operators
VisitAttributes(operatorDeclaration.Attributes, data);
outputFormatter.Indent();
OutputModifier(operatorDeclaration.Modifier);
outputFormatter.PrintToken(Tokens.Operator);
outputFormatter.Space();
int op = -1;
switch(operatorDeclaration.OverloadableOperator)
{
case OverloadableOperatorType.Add:
op = Tokens.Plus;
break;
case OverloadableOperatorType.Subtract:
op = Tokens.Minus;
break;
case OverloadableOperatorType.Multiply:
op = Tokens.Times;
break;
case OverloadableOperatorType.Divide:
op = Tokens.Div;
break;
case OverloadableOperatorType.Modulus:
op = Tokens.Mod;
break;
case OverloadableOperatorType.Concat:
op = Tokens.ConcatString;
break;
case OverloadableOperatorType.Not:
op = Tokens.Not;
break;
case OverloadableOperatorType.BitNot:
op = Tokens.Not;
break;
case OverloadableOperatorType.BitwiseAnd:
op = Tokens.And;
break;
case OverloadableOperatorType.BitwiseOr:
op = Tokens.Or;
break;
case OverloadableOperatorType.ExclusiveOr:
op = Tokens.Xor;
break;
case OverloadableOperatorType.ShiftLeft:
op = Tokens.ShiftLeft;
break;
case OverloadableOperatorType.ShiftRight:
op = Tokens.ShiftRight;
break;
case OverloadableOperatorType.GreaterThan:
op = Tokens.GreaterThan;
break;
case OverloadableOperatorType.GreaterThanOrEqual:
op = Tokens.GreaterEqual;
break;
case OverloadableOperatorType.Equality:
op = Tokens.Assign;
break;
case OverloadableOperatorType.InEquality:
op = Tokens.NotEqual;
break;
case OverloadableOperatorType.LessThan:
op = Tokens.LessThan;
break;
case OverloadableOperatorType.LessThanOrEqual:
op = Tokens.LessEqual;
break;
case OverloadableOperatorType.Increment:
errors.Error(-1, -1, "Increment operator is not supported in Visual Basic");
break;
case OverloadableOperatorType.Decrement:
errors.Error(-1, -1, "Decrement operator is not supported in Visual Basic");
break;
case OverloadableOperatorType.IsTrue:
outputFormatter.PrintText("IsTrue");
break;
case OverloadableOperatorType.IsFalse:
outputFormatter.PrintText("IsFalse");
break;
case OverloadableOperatorType.Like:
op = Tokens.Like;
break;
case OverloadableOperatorType.Power:
op = Tokens.Power;
break;
case OverloadableOperatorType.CType:
op = Tokens.CType;
break;
case OverloadableOperatorType.DivideInteger:
op = Tokens.DivInteger;
break;
}
if(op != -1) outputFormatter.PrintToken(op);
PrintTemplates(operatorDeclaration.Templates);
outputFormatter.PrintToken(Tokens.OpenParenthesis);
AppendCommaSeparatedList(operatorDeclaration.Parameters);
outputFormatter.PrintToken(Tokens.CloseParenthesis);
outputFormatter.NewLine();
++outputFormatter.IndentationLevel;
nodeTracker.TrackedVisit(operatorDeclaration.Body, data);
--outputFormatter.IndentationLevel;
outputFormatter.NewLine();
outputFormatter.Indent();
outputFormatter.PrintToken(Tokens.End);
outputFormatter.Space();
outputFormatter.PrintToken(Tokens.Operator);
outputFormatter.NewLine();
return null;
}

Loading…
Cancel
Save