Ejemplo n.º 1
0
        // ECMA-262 13.12 The switch statement

        public Node parseSwitchCase()
        {
            Node test;
            List<Node> consequent = new List<Node>();
            Node statement;
            Node node = new Node();

            if (matchKeyword("default"))
            {
                lex();
                test = null;
            }
            else
            {
                expectKeyword("case");
                test = parseExpression();
            }
            expect(":");

            while (startIndex < length)
            {
                if (match("}") || matchKeyword("default") || matchKeyword("case"))
                {
                    break;
                }
                statement = parseStatementListItem();
                consequent.Add(statement);
            }

            return node.finishSwitchCase(test, consequent);
        }