private Statement FixSwitchingStatement(Statement statement) { if (statement is SwitchStatement) { SwitchStatement theSwitch = statement as SwitchStatement; if (theSwitch.Condition.Equals(theIntVariable)) { theSwitch.Condition = theStringVariable.CloneExpressionOnly(); } foreach (SwitchCase @case in theSwitch.Cases) { if (@case is ConditionCase) { ConditionCase condCase = @case as ConditionCase; int caseValue = (int)(condCase.Condition as LiteralExpression).Value; condCase.Condition = new LiteralExpression(valueDictionary[caseValue], theTypeSystem, null); } } } else if (statement is IfElseIfStatement) { IfElseIfStatement irregularSwitch = statement as IfElseIfStatement; foreach (KeyValuePair <Expression, BlockStatement> condPair in irregularSwitch.ConditionBlocks) { FixConditionExpression(condPair.Key as BinaryExpression); } } return(statement); }
public override ICodeNode VisitSwitchStatement(SwitchStatement node) { node.Condition = (Expression)Visit(node.Condition); foreach (SwitchCase @case in node.Cases) { if (@case is ConditionCase) { ConditionCase conditionCase = @case as ConditionCase; if (NeedsCast(conditionCase.Condition.ExpressionType, node.Condition.ExpressionType)) { if (conditionCase.Condition is LiteralExpression) { conditionCase.Condition = EnumHelper.GetEnumExpression(node.Condition.ExpressionType.Resolve(), (conditionCase.Condition as LiteralExpression), typeSystem); } else { conditionCase.Condition = new CastExpression(conditionCase.Condition, node.Condition.ExpressionType, null); } } } } node = (SwitchStatement)base.VisitSwitchStatement(node); return(node); }
public override void VisitConditionCase(ConditionCase node) { WriteKeyword("case"); WriteSpace(); Visit(node.Condition); WriteToken(":"); WriteLine(); Visit(node.Body); }
private void ChangeCasesLabel() { foreach (SwitchCase @case in theSwitch.Cases) { if (@case.CodeNodeType != CodeNodeType.ConditionCase) { continue; } ConditionCase conditionCase = @case as ConditionCase; LiteralExpression literalCondition = conditionCase.Condition as LiteralExpression; if (literalCondition == null || literalCondition.Value is string) { continue; } conditionCase.Condition = FixCaseLiteralValue(literalCondition); } }
public virtual void VisitConditionCase(ConditionCase node) { Visit(node.Condition); Visit(node.Body); }
public virtual ICodeNode VisitConditionCase(ConditionCase node) { node.Condition = (Expression)Visit(node.Condition); node.Body = (BlockStatement)Visit(node.Body); return(node); }
public virtual void VisitConditionCase(ConditionCase node) { this.Visit(node.get_Condition()); this.Visit(node.get_Body()); return; }
public override ICodeNode VisitConditionCase(ConditionCase node) { return(node); }
public virtual ICodeNode VisitConditionCase(ConditionCase node) { node.set_Condition((Expression)this.Visit(node.get_Condition())); node.set_Body((BlockStatement)this.Visit(node.get_Body())); return(node); }