public virtual void visit(IStatementsListNode value) { }
public void visit(IStatementsListNode value) { string s = value.GetType().Name + "."; //prepare_string_node(value.LeftLogicalBracketLocation.ToString(), s + "LeftlogicalBracketLocation"); prepare_base_node_collection(value.LocalVariables, s + "LocalVariables", "LocalVariables", value.LocalVariables.Length); //prepare_string_node(value.RightLogicalBracketLocation.ToString(), s + "RightLogicalBracketLocation"); prepare_base_node_collection(value.statements, s + "subnodes", "subnodes", value.statements.Length); }
public void visit(IStatementsListNode value) { StringBuilder bodyBlock = new StringBuilder(""); NumNestedStatement++; // увеличиваем отступ тела блока перед входом в блок ISemanticNodeConverter.SourceTextBuilder.TextFormatter.Indents.BlockBodyIncrement(); foreach (ILocalBlockVariableNode nodeVar in value.LocalVariables) { nodeVar.visit(this); bodyBlock.Append(ISemanticNodeConverter.SourceTextBuilder.TextFormatter.Indents.BlockBody); bodyBlock.Append(ISemanticNodeConverter.SourceTextBuilder.GetNodeFromStack()); bodyBlock.Append(";"); //if (value.LocalVariables[value.LocalVariables.Length - 1] != nodeVar) bodyBlock.Append(System.Environment.NewLine); } foreach (IStatementNode nodeStatement in value.statements) { nodeStatement.visit(this); string snode = ISemanticNodeConverter.SourceTextBuilder.GetNodeFromStack(); // if (snode != "") { if (snode != "") bodyBlock.Append(ISemanticNodeConverter.SourceTextBuilder.TextFormatter.Indents.BlockBody); bodyBlock.Append(snode); if (!(nodeStatement is IStatementsListNode)) if (snode != "") bodyBlock.Append(";"); if (value.statements[value.statements.Length - 1] != nodeStatement) bodyBlock.Append(System.Environment.NewLine); } //else //ISemanticNodeConverter.SourceTextBuilder.AddNodeInToStack("%empty%"); } ISemanticNodeConverter.SourceTextBuilder.AddNodeInToStack(bodyBlock.ToString()); // уменьшаем отступ тела блока перед выходом из блока ISemanticNodeConverter.SourceTextBuilder.TextFormatter.Indents.BlockBodyDecrement(); if (NumNestedStatement > 1) ISemanticNodeConverter.SourceTextBuilder.AddNodeInToStack(ISemanticNodeConverter.ConvertPABCNETNodeStatementsNested("statements_nested", value)); else { string snode = ISemanticNodeConverter.SourceTextBuilder.GetNodeFromStack(); if (snode == "") ISemanticNodeConverter.SourceTextBuilder.AddNodeInToStack("%empty%"); else ISemanticNodeConverter.SourceTextBuilder.AddNodeInToStack(snode); ISemanticNodeConverter.SourceTextBuilder.AddNodeInToStack(ISemanticNodeConverter.ConvertPABCNETNodeStatements("statements", value)); } NumNestedStatement--; }