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); }
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); }