コード例 #1
0
        public static LiteralExpressionSyntax CreateLiteralExpression(string variableType, string variableValue)
        {
            if (VariableTypeCheckerUtility.IsVariableBoolean(variableType))
            {
                return(SyntaxFactory.LiteralExpression(CreateLiteralExpressionSyntaxKind(variableType, variableValue)));
            }

            return(SyntaxFactory.LiteralExpression(
                       CreateLiteralExpressionSyntaxKind(variableType, variableValue),
                       CreateLiteralExpressionSyntaxToken(variableType, variableValue)));
        }
コード例 #2
0
        /// <summary> Create a field initializer with new keyword. Example: IntReactiveProperty a = new IntReactiveProperty()</summary>
        private static EqualsValueClauseSyntax CreateNewFieldInitializer(FieldGenerationData data)
        {
            var arguments = SyntaxFactory.ArgumentList();

            if (!string.IsNullOrEmpty(data.m_InitializerValue) || VariableTypeCheckerUtility.IsVariableBoolean(data.m_VariableType))
            {
                arguments = arguments.AddArguments(SyntaxFactory.Argument(LiteralExpressionUtility.CreateLiteralExpression(data.m_VariableType, data.m_InitializerValue)));
            }

            return(SyntaxFactory.EqualsValueClause(SyntaxFactory.ObjectCreationExpression(
                                                       NameSyntaxUtility.GetNameSyntax(data.m_VariableType), arguments, null)));
        }
コード例 #3
0
        private static SyntaxKind CreateLiteralExpressionSyntaxKind(string variableType, string initializerValue)
        {
            if (VariableTypeCheckerUtility.IsVariableNumeric(variableType))
            {
                return(SyntaxKind.NumericLiteralExpression);
            }
            else if (VariableTypeCheckerUtility.IsVariableString(variableType))
            {
                return(SyntaxKind.StringLiteralExpression);
            }
            else if (VariableTypeCheckerUtility.IsVariableBoolean(variableType))
            {
                return(initializerValue.Equals("true") ? SyntaxKind.TrueLiteralExpression : SyntaxKind.FalseLiteralExpression);
            }

            return(SyntaxKind.DefaultLiteralExpression);
        }
コード例 #4
0
        private static SyntaxToken CreateLiteralExpressionSyntaxToken(string variableType, string initializerValue)
        {
            // doesn't matter for bool or custom types
            if (VariableTypeCheckerUtility.IsVariableInteger(variableType))
            {
                return(SyntaxFactory.Literal(int.Parse(initializerValue)));
            }
            else if (VariableTypeCheckerUtility.IsVariableFloat(variableType))
            {
                return(SyntaxFactory.Literal(float.Parse(initializerValue)));
            }
            else if (VariableTypeCheckerUtility.IsVariableDouble(variableType))
            {
                return(SyntaxFactory.Literal(double.Parse(initializerValue)));
            }

            return(SyntaxFactory.Literal(initializerValue));
        }
コード例 #5
0
        /// <summary>
        /// Declares the variables in the field along with their initializers.
        /// <para>In the example "private int testInt = 0", "testInt" would be the variable. </para>
        /// </summary>
        private static VariableDeclaratorSyntax CreateVariableDeclaratorSyntax(FieldGenerationData data)
        {
            VariableDeclaratorSyntax declaratorSyntax = SyntaxFactory.VariableDeclarator(data.m_VariableName);

            if (!data.m_UseInitializer)
            {
                return(declaratorSyntax);
            }

            if (VariableTypeCheckerUtility.IsVariableInitializableWithoutNewKeyword(data.m_VariableType))
            {
                return(declaratorSyntax.WithInitializer(CreateFieldInitializer(data)));
            }
            else
            {
                return(declaratorSyntax.WithInitializer(CreateNewFieldInitializer(data)));
            }
        }