public virtual void visit(IStatementsListNode value)
 {
 }
Esempio n. 2
0
		public virtual void visit(IStatementsListNode value)
		{
		}
Esempio n. 3
0
 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);
 }
Esempio n. 4
0
        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--;
        }