public override void VisitDefaultCase(DefaultCase node) { WriteKeyword("default"); WriteToken(":"); WriteLine(); Visit(node.Body); }
public void FixCases(SwitchStatement theSwitch) { DefaultCase defaultCase = theSwitch.Cases.LastOrDefault() as DefaultCase; StatementType defaultCaseStatementType = StatementType.None; string defaultCaseGotoLabel = null; if (defaultCase != null && !TryGetSimpleCaseStatementType(defaultCase, out defaultCaseStatementType, out defaultCaseGotoLabel)) { return; } HashSet <SwitchCase> casesToRemove = new HashSet <SwitchCase>(); List <SwitchCase> allCases = new List <SwitchCase>(theSwitch.Cases); foreach (SwitchCase @case in allCases) { if (@case == defaultCase) { break; } if (@case.Body == null) { casesToRemove.Add(@case); continue; } StatementType caseStatementType; string caseGotoLabel; if (TryGetSimpleCaseStatementType(@case, out caseStatementType, out caseGotoLabel)) { if (defaultCase != null) { if (defaultCaseStatementType == caseStatementType && defaultCaseGotoLabel == caseGotoLabel) { casesToRemove.Add(@case); break; } } else { if (caseStatementType == StatementType.Break) { casesToRemove.Add(@case); break; } } } casesToRemove.Clear(); } if (casesToRemove.Count > 0) { theSwitch.Cases = allCases.Where(@case => !casesToRemove.Contains(@case)); } }
protected override string ToString(string constructName, HashSet <CFGBlockLogicalConstruct> printedCFGBlocks, LogicalFlowBuilderContext context) { StringBuilder theBuilder = new StringBuilder(this.GetType().Name); theBuilder.AppendLine(); theBuilder.AppendLine("{"); IndentAndAppendString(theBuilder, (this.Entry as LogicalConstructBase).ToString(context)); theBuilder.AppendLine(); if (DefaultCase != null) { IndentAndAppendString(theBuilder, DefaultCase.ToString(context)); } foreach (CaseLogicalConstruct @case in ConditionCases) { IndentAndAppendString(theBuilder, @case.ToString(context)); } foreach (KeyValuePair <List <int>, CFGBlockLogicalConstruct> pair in NonDominatedCFGSuccessors) { theBuilder.Append("\tCase"); foreach (int numLabel in pair.Key) { theBuilder.Append(" ").Append(numLabel); } theBuilder.Append(": ").AppendLine(NodeILOffset(context, pair.Value)); } if (DefaultCase == null) { theBuilder.Append("\tDefault: ").AppendLine(NodeILOffset(context, this.DefaultCFGSuccessor)); } theBuilder.Append("\tFollowNode: ").AppendLine(NodeILOffset(context, this.CFGFollowNode)); theBuilder.AppendLine("}"); printedCFGBlocks.UnionWith(this.CFGBlocks); return(theBuilder.ToString()); }
public virtual void VisitDefaultCase(DefaultCase node) { Visit(node.Body); }
public virtual ICodeNode VisitDefaultCase(DefaultCase node) { node.Body = (BlockStatement)Visit(node.Body); return(node); }
public virtual void VisitDefaultCase(DefaultCase node) { this.Visit(node.get_Body()); return; }
public override ICodeNode VisitDefaultCase(DefaultCase node) { return(node); }
public virtual ICodeNode VisitDefaultCase(DefaultCase node) { node.set_Body((BlockStatement)this.Visit(node.get_Body())); return(node); }