Example #1
0
 private static bool TryGetBinaryExpression(CSS.IfStatementSyntax node, out CSS.BinaryExpressionSyntax binaryExpressionSyntax, CS.SyntaxKind notEqualsExpression, CS.SyntaxKind operand)
 {
     binaryExpressionSyntax = TrimParenthesis(node) as CSS.BinaryExpressionSyntax;
     return(binaryExpressionSyntax != null &&
            binaryExpressionSyntax.IsKind(notEqualsExpression) &&
            (binaryExpressionSyntax.Left.IsKind(operand) ||
             binaryExpressionSyntax.Right.IsKind(operand)));
 }
Example #2
0
        static SyntaxKind ConvertToken(CS.SyntaxKind t, TokenContext context = TokenContext.Global)
        {
            switch (t)
            {
            case CS.SyntaxKind.None:
                return(SyntaxKind.None);

            // built-in types
            case CS.SyntaxKind.BoolKeyword:
                return(SyntaxKind.BooleanKeyword);

            case CS.SyntaxKind.ByteKeyword:
                return(SyntaxKind.ByteKeyword);

            case CS.SyntaxKind.SByteKeyword:
                return(SyntaxKind.SByteKeyword);

            case CS.SyntaxKind.ShortKeyword:
                return(SyntaxKind.ShortKeyword);

            case CS.SyntaxKind.UShortKeyword:
                return(SyntaxKind.UShortKeyword);

            case CS.SyntaxKind.IntKeyword:
                return(SyntaxKind.IntegerKeyword);

            case CS.SyntaxKind.UIntKeyword:
                return(SyntaxKind.UIntegerKeyword);

            case CS.SyntaxKind.LongKeyword:
                return(SyntaxKind.LongKeyword);

            case CS.SyntaxKind.ULongKeyword:
                return(SyntaxKind.ULongKeyword);

            case CS.SyntaxKind.DoubleKeyword:
                return(SyntaxKind.DoubleKeyword);

            case CS.SyntaxKind.FloatKeyword:
                return(SyntaxKind.SingleKeyword);

            case CS.SyntaxKind.DecimalKeyword:
                return(SyntaxKind.DecimalKeyword);

            case CS.SyntaxKind.StringKeyword:
                return(SyntaxKind.StringKeyword);

            case CS.SyntaxKind.CharKeyword:
                return(SyntaxKind.CharKeyword);

            case CS.SyntaxKind.VoidKeyword:
                // not supported
                return(SyntaxKind.None);

            case CS.SyntaxKind.ObjectKeyword:
                return(SyntaxKind.ObjectKeyword);

            // literals
            case CS.SyntaxKind.NullKeyword:
                return(SyntaxKind.NothingKeyword);

            case CS.SyntaxKind.TrueKeyword:
                return(SyntaxKind.TrueKeyword);

            case CS.SyntaxKind.FalseKeyword:
                return(SyntaxKind.FalseKeyword);

            case CS.SyntaxKind.ThisKeyword:
                return(SyntaxKind.MeKeyword);

            case CS.SyntaxKind.BaseKeyword:
                return(SyntaxKind.MyBaseKeyword);

            // modifiers
            case CS.SyntaxKind.PublicKeyword:
                return(SyntaxKind.PublicKeyword);

            case CS.SyntaxKind.PrivateKeyword:
                return(SyntaxKind.PrivateKeyword);

            case CS.SyntaxKind.InternalKeyword:
                return(SyntaxKind.FriendKeyword);

            case CS.SyntaxKind.ProtectedKeyword:
                return(SyntaxKind.ProtectedKeyword);

            case CS.SyntaxKind.StaticKeyword:
                return(SyntaxKind.SharedKeyword);

            case CS.SyntaxKind.ReadOnlyKeyword:
                return(SyntaxKind.ReadOnlyKeyword);

            case CS.SyntaxKind.SealedKeyword:
                return(context == TokenContext.Global ? SyntaxKind.NotInheritableKeyword : SyntaxKind.NotOverridableKeyword);

            case CS.SyntaxKind.ConstKeyword:
                return(SyntaxKind.ConstKeyword);

            case CS.SyntaxKind.OverrideKeyword:
                return(SyntaxKind.OverridesKeyword);

            case CS.SyntaxKind.AbstractKeyword:
                return(context == TokenContext.Global ? SyntaxKind.MustInheritKeyword : SyntaxKind.MustOverrideKeyword);

            case CS.SyntaxKind.VirtualKeyword:
                return(SyntaxKind.OverridableKeyword);

            case CS.SyntaxKind.RefKeyword:
                return(SyntaxKind.ByRefKeyword);

            case CS.SyntaxKind.OutKeyword:
                return(SyntaxKind.ByRefKeyword);

            case CS.SyntaxKind.PartialKeyword:
                return(SyntaxKind.PartialKeyword);

            case CS.SyntaxKind.AsyncKeyword:
                return(SyntaxKind.AsyncKeyword);

            case CS.SyntaxKind.ExternKeyword:
                // not supported
                return(SyntaxKind.None);

            case CS.SyntaxKind.NewKeyword:
                return(SyntaxKind.OverloadsKeyword);

            case CS.SyntaxKind.ParamsKeyword:
                return(SyntaxKind.ParamArrayKeyword);

            // others
            case CS.SyntaxKind.AscendingKeyword:
                return(SyntaxKind.AscendingKeyword);

            case CS.SyntaxKind.DescendingKeyword:
                return(SyntaxKind.DescendingKeyword);

            case CS.SyntaxKind.AwaitKeyword:
                return(SyntaxKind.AwaitKeyword);

            // expressions
            case CS.SyntaxKind.AddExpression:
                return(SyntaxKind.AddExpression);

            case CS.SyntaxKind.SubtractExpression:
                return(SyntaxKind.SubtractExpression);

            case CS.SyntaxKind.MultiplyExpression:
                return(SyntaxKind.MultiplyExpression);

            case CS.SyntaxKind.DivideExpression:
                return(SyntaxKind.DivideExpression);

            case CS.SyntaxKind.ModuloExpression:
                return(SyntaxKind.ModuloExpression);

            case CS.SyntaxKind.LeftShiftExpression:
                return(SyntaxKind.LeftShiftExpression);

            case CS.SyntaxKind.RightShiftExpression:
                return(SyntaxKind.RightShiftExpression);

            case CS.SyntaxKind.LogicalOrExpression:
                return(SyntaxKind.OrElseExpression);

            case CS.SyntaxKind.LogicalAndExpression:
                return(SyntaxKind.AndAlsoExpression);

            case CS.SyntaxKind.BitwiseOrExpression:
                return(SyntaxKind.OrExpression);

            case CS.SyntaxKind.BitwiseAndExpression:
                return(SyntaxKind.AndExpression);

            case CS.SyntaxKind.ExclusiveOrExpression:
                return(SyntaxKind.ExclusiveOrExpression);

            case CS.SyntaxKind.EqualsExpression:
                return(SyntaxKind.EqualsExpression);

            case CS.SyntaxKind.NotEqualsExpression:
                return(SyntaxKind.NotEqualsExpression);

            case CS.SyntaxKind.LessThanExpression:
                return(SyntaxKind.LessThanExpression);

            case CS.SyntaxKind.LessThanOrEqualExpression:
                return(SyntaxKind.LessThanOrEqualExpression);

            case CS.SyntaxKind.GreaterThanExpression:
                return(SyntaxKind.GreaterThanExpression);

            case CS.SyntaxKind.GreaterThanOrEqualExpression:
                return(SyntaxKind.GreaterThanOrEqualExpression);

            case CS.SyntaxKind.SimpleAssignmentExpression:
                return(SyntaxKind.SimpleAssignmentStatement);

            case CS.SyntaxKind.AddAssignmentExpression:
                return(SyntaxKind.AddAssignmentStatement);

            case CS.SyntaxKind.SubtractAssignmentExpression:
                return(SyntaxKind.SubtractAssignmentStatement);

            case CS.SyntaxKind.MultiplyAssignmentExpression:
                return(SyntaxKind.MultiplyAssignmentStatement);

            case CS.SyntaxKind.DivideAssignmentExpression:
                return(SyntaxKind.DivideAssignmentStatement);

            case CS.SyntaxKind.ModuloAssignmentExpression:
                return(SyntaxKind.ModuloExpression);

            case CS.SyntaxKind.AndAssignmentExpression:
                return(SyntaxKind.AndExpression);

            case CS.SyntaxKind.ExclusiveOrAssignmentExpression:
                return(SyntaxKind.ExclusiveOrExpression);

            case CS.SyntaxKind.OrAssignmentExpression:
                return(SyntaxKind.OrExpression);

            case CS.SyntaxKind.LeftShiftAssignmentExpression:
                break;

            case CS.SyntaxKind.RightShiftAssignmentExpression:
                break;

            case CS.SyntaxKind.UnaryPlusExpression:
                return(SyntaxKind.UnaryPlusExpression);

            case CS.SyntaxKind.UnaryMinusExpression:
                return(SyntaxKind.UnaryMinusExpression);

            case CS.SyntaxKind.BitwiseNotExpression:
                return(SyntaxKind.NotExpression);

            case CS.SyntaxKind.LogicalNotExpression:
                return(SyntaxKind.NotExpression);

            case CS.SyntaxKind.PreIncrementExpression:
                return(SyntaxKind.AddAssignmentStatement);

            case CS.SyntaxKind.PreDecrementExpression:
                return(SyntaxKind.SubtractAssignmentStatement);

            case CS.SyntaxKind.PostIncrementExpression:
                return(SyntaxKind.AddAssignmentStatement);

            case CS.SyntaxKind.PostDecrementExpression:
                return(SyntaxKind.SubtractAssignmentStatement);

            case CS.SyntaxKind.PlusPlusToken:
                return(SyntaxKind.PlusToken);

            case CS.SyntaxKind.MinusMinusToken:
                return(SyntaxKind.MinusToken);
            }

            throw new NotSupportedException(t + " is not supported!");
        }