Clean up based on review

This commit is contained in:
James King 2013-04-19 10:34:17 -04:00
parent 20b776aeb2
commit 047956c59b
4 changed files with 3 additions and 48 deletions

View File

@ -3,7 +3,6 @@ from __future__ import print_function
from hy.importer import (import_file_to_ast, import_file_to_module, from hy.importer import (import_file_to_ast, import_file_to_module,
import_file_to_hst) import_file_to_hst)
from hy.util import dump
#import astor.codegen #import astor.codegen
import sys import sys
@ -17,7 +16,7 @@ print("")
_ast = import_file_to_ast(sys.argv[1]) _ast = import_file_to_ast(sys.argv[1])
print("") print("")
print("") print("")
print(dump(_ast)) print(ast.dump(_ast))
print("") print("")
print("") print("")
#print(astor.codegen.to_source(_ast)) #print(astor.codegen.to_source(_ast))

View File

@ -190,15 +190,13 @@ class HyASTCompiler(object):
def _parse_lambda_list(self, exprs): def _parse_lambda_list(self, exprs):
""" Return FunctionDef parameter values from lambda list.""" """ Return FunctionDef parameter values from lambda list."""
exprs.reverse()
args = [] args = []
defaults = [] defaults = []
varargs = None varargs = None
kwargs = None kwargs = None
lambda_keyword = None lambda_keyword = None
while exprs: for expr in exprs:
expr = exprs.pop()
if isinstance(expr, HyLambdaListKeyword): if isinstance(expr, HyLambdaListKeyword):
if expr not in expr._valid_types: if expr not in expr._valid_types:
@ -236,9 +234,8 @@ class HyASTCompiler(object):
"one &key argument") "one &key argument")
# As you can see, Python has a funny way of # As you can see, Python has a funny way of
# defining keyword arguments. # defining keyword arguments.
for k in expr.keys(): for k, v in expr.items():
args.append(k) args.append(k)
for v in expr.values():
defaults.append(self.compile(v)) defaults.append(self.compile(v))
elif lambda_keyword == "&optional": elif lambda_keyword == "&optional":
# not implemented yet. # not implemented yet.

View File

@ -18,7 +18,6 @@
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE. # DEALINGS IN THE SOFTWARE.
import ast
import sys import sys
@ -35,42 +34,3 @@ def flatten_literal_list(entry):
yield x # needs more yield-from yield x # needs more yield-from
else: else:
yield e yield e
def dump(node, annotate_fields=True, include_attributes=False, indent=' '):
"""
Return a formatted dump of the tree in *node*. This is mainly useful for
debugging purposes. The returned string will show the names and the values
for fields. This makes the code impossible to evaluate, so if evaluation is
wanted *annotate_fields* must be set to False. Attributes such as line
numbers and column offsets are not dumped by default. If this is wanted,
*include_attributes* can be set to True.
Original author: Alex Leone (acleone ~AT~ gmail.com), 2010-01-30
"""
def _format(node, level=0):
if isinstance(node, ast.AST):
fields = [(a, _format(b, level)) for a, b in ast.iter_fields(node)]
if include_attributes and node._attributes:
fields.extend([(a, _format(getattr(node, a), level))
for a in node._attributes])
return ''.join([
node.__class__.__name__,
'(',
', '.join(('%s=%s' % field for field in fields)
if annotate_fields else
(b for a, b in fields)),
')'])
elif isinstance(node, list):
lines = ['[']
lines.extend((indent * (level + 2) + _format(x, level + 2) + ','
for x in node))
if len(lines) > 1:
lines.append(indent * (level + 1) + ']')
else:
lines[-1] += ']'
return '\n'.join(lines)
return repr(node)
if not isinstance(node, ast.AST):
raise TypeError('expected AST, got %r' % node.__class__.__name__)
return _format(node)

View File

@ -24,7 +24,6 @@ from __future__ import unicode_literals
from hy import HyString from hy import HyString
from hy.compiler import hy_compile, HyCompileError from hy.compiler import hy_compile, HyCompileError
from hy.lex import tokenize from hy.lex import tokenize
from hy.util import dump
import ast import ast
import sys import sys