Esempio n. 1
0
 public virtual void Visit(IForLoop block, TContext context)
 {
     Visit(block.Init, context);
     block.Condition.Accept(this, context);
     Visit(block.Step, context);
     Visit(block.Body, context);
 }
 public override void Visit(IForLoop block, RelativeEditLocation loc)
 {
     loc.Size++;
     Visit(block.Init, loc);
     block.Condition.Accept(this, loc);
     Visit(block.Step, loc);
     Visit(block.Body, loc);
 }
Esempio n. 3
0
 public override IStatement Visit(IForLoop stmt, int context)
 {
     return(new ForLoop
     {
         Init = Anonymize(stmt.Init),
         Condition = Anonymize(stmt.Condition),
         Step = Anonymize(stmt.Step),
         Body = Anonymize(stmt.Body)
     });
 }
        public void Visit(IForLoop block, SSTPrintingContext c)
        {
            c.Indentation().Keyword("for").Space().Text("(");

            c.IndentationLevel++;

            c.StatementBlock(block.Init, this);
            c.Text(";");
            block.Condition.Accept(this, c);
            c.Text(";");
            c.StatementBlock(block.Step, this);

            c.IndentationLevel--;

            c.NewLine().Indentation().Text(")");

            c.StatementBlock(block.Body, this);
        }
        public override void Visit(IForLoop block, UsageContext context)
        {
            foreach (var statement in block.Init)
            {
                statement.Accept(this, context);
            }

            block.Condition.Accept(this, context);

            foreach (var statement in block.Body)
            {
                statement.Accept(this, context);
            }

            foreach (var statement in block.Step)
            {
                statement.Accept(this, context);
            }
        }
Esempio n. 6
0
        public void xg(int indnt, StreamWriter writer, IForLoop node, string msg)
        {
            indent(indnt, writer);
            if (msg != "")
            {
                writer.WriteLine(msg);
            }
            writer.Write("<IForLoop NodeId=\"" + node.UniqueId + "\" ParentId=\"" + node.ParentNode.UniqueId + "\">\n");

            // A structure contains a list of border nodes on its periphery and a list of diagrams inside it
            foreach (var b in node.BorderNodes)
            {
                xg(indnt + 1, writer, (dynamic)b, "");
            }
            foreach (var dd in node.Diagrams)
            {
                xg(indnt + 1, writer, (dynamic)dd, "");
            }
            indent(indnt, writer);
            writer.Write("</IForLoop>\n");
        }
Esempio n. 7
0
 public int Visit(IForLoop block, int context)
 {
     return(1 + Visit(block.Body, 0));
 }