protected override bool PreVisit(IGroupOperatorNode <IDaisyAstNode> node) { Pad(sb, indent); sb.Append("GROUP"); if (!string.IsNullOrEmpty(node.Text)) { sb.Append("@"); sb.Append(node.Text); } sb.Append("\r\n"); indent++; return(true); }
protected override bool PreVisit(IGroupOperatorNode <IDaisyAstNode> abstraceNode) { var node = (GroupOperatorNode)abstraceNode; if (node.HasCommand) { var nextScope = linker.Link(node, scopes.Peek(), true); if (nextScope == null) { return(false); } scopes.Push(nextScope); } else { scopes.Push(scopes.Peek()); } return(true); }
protected override bool PreVisit(IGroupOperatorNode <TraceNode> node) { var trace = (GroupOperatorTrace)node; if (isFirstStatementInGroup) { Pad(sb, indent); } sb.Append("GROUP"); if (!string.IsNullOrEmpty(node.Text)) { sb.Append("@"); sb.Append(node.Text); } sb.Append(" (").Append(trace.Outcome).Append(")"); foreach (var tracing in trace.Tracings) { sb.AppendLine(); Pad(sb, indent); sb.Append("!").Append(tracing); } if (trace.Frames.Count > 0) { sb.AppendLine(); foreach (var frame in trace.Frames) { Pad(sb, indent + 1); sb.AppendLine("******" + frame.Scope.GetType().Name + " " + frame.Scope + "=>(" + frame.Outcome + ")*******"); sb.Append(new DaisyTracePrinter(frame).Print(indent + 1)); } Pad(sb, indent + 1); sb.AppendLine("***********"); } else { sb.AppendLine(); } indent++; isFirstStatementInGroup = true; return(false); }
protected override void PostVisit(IGroupOperatorNode <IDaisyAstNode> node) { indent--; }
protected virtual bool PreVisit(IGroupOperatorNode <T> node) { return(true); }
protected virtual void PostVisit(IGroupOperatorNode <T> node) { }
protected override void PostVisit(IGroupOperatorNode <IDaisyAstNode> node) { scopes.Pop(); }
protected override void PostVisit(IGroupOperatorNode <TraceNode> node) { indent--; isFirstStatementInGroup = false; }