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))); }
/// <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))); }
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); }
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)); }
/// <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))); } }