private Statement ProcessVariableDeclarationStatement(VariableDeclarationNode node) { VariableDeclarationStatement statement = new VariableDeclarationStatement(); TypeSymbol variableType = _symbolSet.ResolveType(node.Type, _symbolTable, _memberContext); foreach (VariableInitializerNode initializerNode in node.Initializers) { string name = initializerNode.Name.Name; VariableSymbol symbol = new VariableSymbol(name, _memberContext, variableType); if (initializerNode.Value != null) { Expression value = _expressionBuilder.BuildExpression(initializerNode.Value); if (value is MemberExpression) { value = _expressionBuilder.TransformMemberExpression((MemberExpression)value); } symbol.SetValue(value); } _symbolTable.AddSymbol(symbol); statement.AddVariable(symbol); } return statement; }
private static void GenerateVariableDeclarationStatement(ScriptGenerator generator, MemberSymbol symbol, VariableDeclarationStatement statement) { ScriptTextWriter writer = generator.Writer; GenerateVariableDeclarations(generator, symbol, statement); writer.Write(";"); writer.WriteNewLine(); }
public void AddInitializer(VariableDeclarationStatement variables) { Debug.Assert(_initializers == null); Debug.Assert(_variables == null); _variables = variables; }
private static void GenerateVariableDeclarations(ScriptGenerator generator, MemberSymbol symbol, VariableDeclarationStatement statement) { ScriptTextWriter writer = generator.Writer; bool firstVariable = true; writer.Write("var "); foreach (VariableSymbol variableSymbol in statement.Variables) { if (firstVariable == false) { writer.WriteTrimmed(", "); } writer.Write(variableSymbol.GeneratedName); if (variableSymbol.Value != null) { writer.WriteTrimmed(" = "); ExpressionGenerator.GenerateExpression(generator, symbol, variableSymbol.Value); } firstVariable = false; } }