コード例 #1
0
        private static DoStatement GetDoStatement(ASTNode prev, StatementList body)
        {
            var stat = new DoStatement(prev.Parent, prev.Scope, new List <LToken> (new[]
            {
                new LToken("do", "do", "do", TokenType.Keyword, AdjustRange(prev.Range, "do")),
                new LToken("end", "end", "end", TokenType.Keyword, AdjustRange(prev.Range, "end"))
            }));

            stat.SetBody(body);
            return(stat);
        }
コード例 #2
0
        protected virtual ASTNode FoldDoStatement(DoStatement node, params Object[] args)
        {
            if (node.Body == null)
            {
                throw new Exception("Cannot have a DoStatement with a null body.");
            }
            node.SetBody(this.FoldStatementList(node.Body));

            if (node.Body.Statements.Count == 0)
            {
                return(null);
            }
            return(node);
        }