示例#1
0
        private void writeSwitch(SwitchBlock switch_)
        {
            writeStatements(switch_.source);

            DSwitch last = (DSwitch)switch_.source.nodes.last;
            string  cond = buildExpression(last.getOperand(0));

            outputLine("switch (" + cond + ")");
            outputLine("{");
            increaseIndent();
            for (int i = 0; i < switch_.numCases; i++)
            {
                SwitchBlock.Case cas = switch_.getCase(i);
                outputLine("case " + cas.value + ": {");
                increaseIndent();
                writeBlock(cas.target);
                decreaseIndent();
                outputLine("}");
            }
            outputLine("default: {");
            increaseIndent();
            writeBlock(switch_.defaultCase);
            decreaseIndent();
            outputLine("}");

            decreaseIndent();
            outputLine("}");

            if (switch_.join != null)
            {
                writeBlock(switch_.join);
            }
        }
示例#2
0
        private void writeSwitch(SwitchBlock switch_)
        {
            writeStatements(switch_.source);

            DSwitch last = (DSwitch)switch_.source.nodes.last;
            string cond = buildExpression(last.getOperand(0));
            outputLine("switch (" + cond + ")");
            outputLine("{");
            increaseIndent();
            for (int i = 0; i < switch_.numCases; i++)
            {
                SwitchBlock.Case cas = switch_.getCase(i);
                outputLine("case " + cas.value + ": {");
                increaseIndent();
                writeBlock(cas.target);
                decreaseIndent();
                outputLine("}");
            }
            outputLine("default: {");
            increaseIndent();
            writeBlock(switch_.defaultCase);
            decreaseIndent();
            outputLine("}");

            decreaseIndent();
            outputLine("}");

            if (switch_.join != null)
                writeBlock(switch_.join);
        }