public virtual Value evaluate(Context cx, CaseLabelNode node) { output("<CaseLabelNode position=\"" + node.pos() + "\">"); indent_Renamed_Field++; if (node.label != null) { node.label.evaluate(cx, this); } indent_Renamed_Field--; output("</CaseLabelNode>"); return(null); }
private Statement ProcessSwitchStatement(SwitchNode node) { Expression condition = expressionBuilder.BuildExpression(node.Condition); if (condition is MemberExpression) { condition = expressionBuilder.TransformMemberExpression((MemberExpression)condition); } SwitchStatement statement = new SwitchStatement(condition); foreach (SwitchSectionNode switchSectionNode in node.Cases) { SwitchGroup group = new SwitchGroup(); foreach (StatementNode caseNode in switchSectionNode.Labels) { if (caseNode is CaseLabelNode) { CaseLabelNode labelNode = (CaseLabelNode)caseNode; Expression labelValue = expressionBuilder.BuildExpression(labelNode.Value); if (labelValue is MemberExpression) { labelValue = expressionBuilder.TransformMemberExpression((MemberExpression)labelValue); } group.AddCase(labelValue); } else { Debug.Assert(caseNode is DefaultLabelNode); group.AddDefaultCase(); } } foreach (StatementNode statementNode in switchSectionNode.Statements) { Statement childStatement = BuildStatement(statementNode); if (childStatement != null) { group.AddStatement(childStatement); } } statement.AddSwitchGroup(group); } return(statement); }
public virtual Value evaluate(Context cx, CaseLabelNode node) { output("<CaseLabelNode position=\"" + node.pos() + "\">"); indent_Renamed_Field++; if (node.label != null) { node.label.evaluate(cx, this); } indent_Renamed_Field--; output("</CaseLabelNode>"); return null; }