示例#1
0
        private Statement Do()
        {
            DoStatement doNode = new DoStatement();
            Statement   saved  = Statement.Enclosing;

            Statement.Enclosing = doNode;

            Match(Tags.DO);
            Statement doContents = Stmt();

            Match(Tags.WHILE);
            Match('(');
            Expression condition = Bool();

            Match(')');
            Match(';');
            doNode.Init(condition, doContents);

            Statement.Enclosing = saved;    // Reset enclosing statement

            return(doNode);
        }