public static CSharpSyntaxNode Convert(VBasic.VisualBasicSyntaxNode input, SemanticModel semanticModel, Document targetDocument) { return input.Accept(new NodesVisitor(semanticModel, targetDocument)); }
static SyntaxKind ConvertToken(VBasic.SyntaxKind t, TokenContext context = TokenContext.Global) { switch (t) { case VBasic.SyntaxKind.None: return SyntaxKind.None; // built-in types case VBasic.SyntaxKind.BooleanKeyword: return SyntaxKind.BoolKeyword; case VBasic.SyntaxKind.ByteKeyword: return SyntaxKind.ByteKeyword; case VBasic.SyntaxKind.SByteKeyword: return SyntaxKind.SByteKeyword; case VBasic.SyntaxKind.ShortKeyword: return SyntaxKind.ShortKeyword; case VBasic.SyntaxKind.UShortKeyword: return SyntaxKind.UShortKeyword; case VBasic.SyntaxKind.IntegerKeyword: return SyntaxKind.IntKeyword; case VBasic.SyntaxKind.UIntegerKeyword: return SyntaxKind.UIntKeyword; case VBasic.SyntaxKind.LongKeyword: return SyntaxKind.LongKeyword; case VBasic.SyntaxKind.ULongKeyword: return SyntaxKind.ULongKeyword; case VBasic.SyntaxKind.DoubleKeyword: return SyntaxKind.DoubleKeyword; case VBasic.SyntaxKind.SingleKeyword: return SyntaxKind.FloatKeyword; case VBasic.SyntaxKind.DecimalKeyword: return SyntaxKind.DecimalKeyword; case VBasic.SyntaxKind.StringKeyword: return SyntaxKind.StringKeyword; case VBasic.SyntaxKind.CharKeyword: return SyntaxKind.CharKeyword; case VBasic.SyntaxKind.ObjectKeyword: return SyntaxKind.ObjectKeyword; // literals case VBasic.SyntaxKind.NothingKeyword: return SyntaxKind.NullKeyword; case VBasic.SyntaxKind.TrueKeyword: return SyntaxKind.TrueKeyword; case VBasic.SyntaxKind.FalseKeyword: return SyntaxKind.FalseKeyword; case VBasic.SyntaxKind.MeKeyword: return SyntaxKind.ThisKeyword; case VBasic.SyntaxKind.MyBaseKeyword: return SyntaxKind.BaseKeyword; // modifiers case VBasic.SyntaxKind.PublicKeyword: return SyntaxKind.PublicKeyword; case VBasic.SyntaxKind.FriendKeyword: return SyntaxKind.InternalKeyword; case VBasic.SyntaxKind.ProtectedKeyword: return SyntaxKind.ProtectedKeyword; case VBasic.SyntaxKind.PrivateKeyword: return SyntaxKind.PrivateKeyword; case VBasic.SyntaxKind.ByRefKeyword: return SyntaxKind.RefKeyword; case VBasic.SyntaxKind.ParamArrayKeyword: return SyntaxKind.ParamsKeyword; case VBasic.SyntaxKind.ReadOnlyKeyword: return SyntaxKind.ReadOnlyKeyword; case VBasic.SyntaxKind.OverridesKeyword: return SyntaxKind.OverrideKeyword; case VBasic.SyntaxKind.SharedKeyword: return SyntaxKind.StaticKeyword; case VBasic.SyntaxKind.ConstKeyword: return SyntaxKind.ConstKeyword; case VBasic.SyntaxKind.PartialKeyword: return SyntaxKind.PartialKeyword; // unary operators case VBasic.SyntaxKind.UnaryMinusExpression: return SyntaxKind.UnaryMinusExpression; case VBasic.SyntaxKind.UnaryPlusExpression: return SyntaxKind.UnaryPlusExpression; case VBasic.SyntaxKind.NotExpression: return SyntaxKind.LogicalNotExpression; // binary operators case VBasic.SyntaxKind.ConcatenateExpression: case VBasic.SyntaxKind.AddExpression: return SyntaxKind.AddExpression; case VBasic.SyntaxKind.SubtractExpression: return SyntaxKind.SubtractExpression; case VBasic.SyntaxKind.MultiplyExpression: return SyntaxKind.MultiplyExpression; case VBasic.SyntaxKind.DivideExpression: return SyntaxKind.DivideExpression; case VBasic.SyntaxKind.AndAlsoExpression: return SyntaxKind.LogicalAndExpression; case VBasic.SyntaxKind.OrElseExpression: return SyntaxKind.LogicalOrExpression; case VBasic.SyntaxKind.OrExpression: return SyntaxKind.BitwiseOrExpression; case VBasic.SyntaxKind.AndExpression: return SyntaxKind.BitwiseAndExpression; case VBasic.SyntaxKind.ExclusiveOrExpression: return SyntaxKind.ExclusiveOrExpression; case VBasic.SyntaxKind.EqualsExpression: return SyntaxKind.EqualsExpression; case VBasic.SyntaxKind.NotEqualsExpression: return SyntaxKind.NotEqualsExpression; case VBasic.SyntaxKind.GreaterThanExpression: return SyntaxKind.GreaterThanExpression; case VBasic.SyntaxKind.GreaterThanOrEqualExpression: return SyntaxKind.GreaterThanOrEqualExpression; case VBasic.SyntaxKind.LessThanExpression: return SyntaxKind.LessThanExpression; case VBasic.SyntaxKind.LessThanOrEqualExpression: return SyntaxKind.LessThanOrEqualExpression; // assignment case VBasic.SyntaxKind.SimpleAssignmentStatement: return SyntaxKind.SimpleAssignmentExpression; case VBasic.SyntaxKind.AddAssignmentStatement: return SyntaxKind.AddAssignmentExpression; case VBasic.SyntaxKind.SubtractAssignmentStatement: return SyntaxKind.SubtractAssignmentExpression; case VBasic.SyntaxKind.MultiplyAssignmentStatement: return SyntaxKind.MultiplyAssignmentExpression; case VBasic.SyntaxKind.DivideAssignmentStatement: return SyntaxKind.DivideAssignmentExpression; // Casts case VBasic.SyntaxKind.CObjKeyword: return SyntaxKind.ObjectKeyword; case VBasic.SyntaxKind.CBoolKeyword: return SyntaxKind.BoolKeyword; case VBasic.SyntaxKind.CCharKeyword: return SyntaxKind.CharKeyword; case VBasic.SyntaxKind.CSByteKeyword: return SyntaxKind.SByteKeyword; case VBasic.SyntaxKind.CByteKeyword: return SyntaxKind.ByteKeyword; case VBasic.SyntaxKind.CShortKeyword: return SyntaxKind.ShortKeyword; case VBasic.SyntaxKind.CUShortKeyword: return SyntaxKind.UShortKeyword; case VBasic.SyntaxKind.CIntKeyword: return SyntaxKind.IntKeyword; case VBasic.SyntaxKind.CUIntKeyword: return SyntaxKind.UIntKeyword; case VBasic.SyntaxKind.CLngKeyword: return SyntaxKind.LongKeyword; case VBasic.SyntaxKind.CULngKeyword: return SyntaxKind.ULongKeyword; case VBasic.SyntaxKind.CDecKeyword: return SyntaxKind.DecimalKeyword; case VBasic.SyntaxKind.CSngKeyword: return SyntaxKind.FloatKeyword; case VBasic.SyntaxKind.CDblKeyword: return SyntaxKind.DoubleKeyword; case VBasic.SyntaxKind.CStrKeyword: return SyntaxKind.StringKeyword; // case VBasic.SyntaxKind.AssemblyKeyword: return SyntaxKind.AssemblyKeyword; } throw new NotSupportedException(t + " not supported!"); }