private StatementSyntax CreateScriptInvocationSyntax(List <StatementSyntax> dependentStatements) { // Collect names of value supplier variables List <string> variableIdentifiers = ObjectBuilder.Inputs.Select((t, index) => Inputs[index].VariableSyntaxName(t.Input.VariableName)).ToList(); // add instance method invocation var invocationExpression = MySyntaxFactory.MethodInvocation("RunScript", variableIdentifiers, m_instanceName); if (dependentStatements == null) { return(SyntaxFactory.ExpressionStatement(invocationExpression)); } var ifStatement = MySyntaxFactory.IfExpressionSyntax(invocationExpression, dependentStatements); return(ifStatement); }
internal override void CollectInputExpressions(List <StatementSyntax> expressions) { List <string> uniqueVariableIdentifiers = new List <string>(); for (var i = 0; i < ObjectBuilder.InputNames.Count; i++) { uniqueVariableIdentifiers.Add(Inputs[i].VariableSyntaxName(ObjectBuilder.InputIDs[i].VariableName)); } expressions.Add( SyntaxFactory.ExpressionStatement( MySyntaxFactory.MethodInvocation(ObjectBuilder.TriggerName, uniqueVariableIdentifiers) ) ); base.CollectInputExpressions(expressions); }
internal override void CollectInputExpressions(List <StatementSyntax> expressions) { base.CollectInputExpressions(expressions); // MyLocalization.Static["context", "messageId"]; var localizationAccessExpression = SyntaxFactory.ElementAccessExpression( SyntaxFactory.MemberAccessExpression( SyntaxKind.SimpleMemberAccessExpression, SyntaxFactory.IdentifierName("VRage.Game.Localization.MyLocalization"), SyntaxFactory.IdentifierName("Static") ) ).WithArgumentList( SyntaxFactory.BracketedArgumentList( SyntaxFactory.SeparatedList <ArgumentSyntax>( new SyntaxNodeOrToken[] { SyntaxFactory.Argument( MySyntaxFactory.Literal(typeof(string).Signature(), ObjectBuilder.Context)), SyntaxFactory.Token(SyntaxKind.CommaToken), SyntaxFactory.Argument( MySyntaxFactory.Literal(typeof(string).Signature(), ObjectBuilder.MessageId)) }) ) ); // ToString() invocation expression var toStringExpression = SyntaxFactory.InvocationExpression( SyntaxFactory.MemberAccessExpression( SyntaxKind.SimpleMemberAccessExpression, localizationAccessExpression, SyntaxFactory.IdentifierName("ToString") ) ); // String tmpVariableName = the above string tmpVariableName = "localizedText_" + ObjectBuilder.ID; if (m_inputParameterNodes.Count == 0) { tmpVariableName = VariableSyntaxName(); } var localizedTextVariableSyntax = MySyntaxFactory.LocalVariable(typeof(string).Signature(), tmpVariableName, toStringExpression); if (m_inputParameterNodes.Count > 0) { // Prepare variable names for creation of string.Format call var parameterVariableNames = new List <string>(); parameterVariableNames.Add(tmpVariableName); for (int index = 0; index < m_inputParameterNodes.Count; index++) { var node = m_inputParameterNodes[index]; parameterVariableNames.Add(node.VariableSyntaxName(ObjectBuilder.ParameterInputs[index].VariableName)); } // string.Format(....) call var stringFormatSyntax = MySyntaxFactory.MethodInvocation("Format", parameterVariableNames, "string"); // node variable syntax creation var nodeVariableSyntax = MySyntaxFactory.LocalVariable(typeof(string).Signature(), VariableSyntaxName(), stringFormatSyntax); expressions.Add(localizedTextVariableSyntax); expressions.Add(nodeVariableSyntax); } else { expressions.Add(localizedTextVariableSyntax); } }
public StatementSyntax DisposeCallDeclaration() { return(SyntaxFactory.ExpressionStatement(MySyntaxFactory.MethodInvocation("Dispose", null, m_instanceName))); }