Permalink
Browse files

compiler2 style: Use enumerate() instead of range/zip.

Also, update line counts.
  • Loading branch information...
Andy Chu
Andy Chu committed Mar 19, 2018
1 parent 58c729f commit 1478050d1e016ea6ff6151e1a797bbf7807073ad
Showing with 21 additions and 19 deletions.
  1. +3 −4 opy/compiler2/pyassem.py
  2. +11 −12 opy/compiler2/pycodegen.py
  3. +7 −3 opy/count.sh
View
@@ -24,8 +24,8 @@ def _NameToIndex(name, L):
comparison before comparing the values.
"""
t = type(name)
for i in xrange(len(L)):
if t == type(L[i]) and L[i] == name:
for i, item in enumerate(L):
if t == type(item) and item == name:
return i
end = len(L)
L.append(name)
@@ -79,8 +79,7 @@ def FlattenGraph(blocks):
pc = pc + 3
end[b] = pc
pc = 0
for i in range(len(insts)):
inst = insts[i]
for i, inst in enumerate(insts):
if len(inst) == 1:
pc = pc + 1
elif inst[0] != "SET_LINENO":
View
@@ -388,9 +388,7 @@ def visitClass(self, node):
def visitIf(self, node):
end = self.newBlock()
numtests = len(node.tests)
for i in range(numtests):
test, suite = node.tests[i]
for i, (test, suite) in enumerate(node.tests):
if is_constant_false(test):
# XXX will need to check generator stuff here
continue
@@ -547,7 +545,7 @@ def visitListComp(self, node):
self.emit('BUILD_LIST', 0)
stack = []
for i, for_ in zip(range(len(node.quals)), node.quals):
for i, for_ in enumerate(node.quals):
start, anchor = self.visit(for_)
cont = None
for if_ in for_.ifs:
@@ -571,7 +569,7 @@ def visitSetComp(self, node):
self.emit('BUILD_SET', 0)
stack = []
for i, for_ in zip(range(len(node.quals)), node.quals):
for i, for_ in enumerate(node.quals):
start, anchor = self.visit(for_)
cont = None
for if_ in for_.ifs:
@@ -595,7 +593,7 @@ def visitDictComp(self, node):
self.emit('BUILD_MAP', 0)
stack = []
for i, for_ in zip(range(len(node.quals)), node.quals):
for i, for_ in enumerate(node.quals):
start, anchor = self.visit(for_)
cont = None
for if_ in for_.ifs:
@@ -680,7 +678,7 @@ def visitGenExprInner(self, node):
# setup list
stack = []
for i, for_ in zip(range(len(node.quals)), node.quals):
for i, for_ in enumerate(node.quals):
start, anchor, end = self.visit(for_)
cont = None
for if_ in for_.ifs:
@@ -787,7 +785,7 @@ def visitTryExcept(self, node):
self.startBlock(handlers)
last = len(node.handlers) - 1
for i in range(len(node.handlers)):
for i, (expr, target, body) in enumerate(node.handlers):
expr, target, body = node.handlers[i]
self.set_lineno(expr)
if expr:
@@ -946,8 +944,7 @@ def visitAssign(self, node):
self.set_lineno(node)
self.visit(node.expr)
dups = len(node.nodes) - 1
for i in range(len(node.nodes)):
elt = node.nodes[i]
for i, elt in enumerate(node.nodes):
if i < dups:
self.emit('DUP_TOP')
if isinstance(elt, ast.Node):
@@ -1402,6 +1399,8 @@ def visitAssName(self, node):
visitSubscript = visitAssName
# TODO: I don't understand this. It looks like it does nothing, but removing
# wrap_aug() breaks.
class Delegator(object):
"""Base class to support delegation for augmented assignment nodes
@@ -1431,12 +1430,12 @@ class AugSlice(Delegator):
class AugSubscript(Delegator):
pass
wrapper = {
AUG_WRAPPER = {
ast.Getattr: AugGetattr,
ast.Name: AugName,
ast.Slice: AugSlice,
ast.Subscript: AugSubscript,
}
def wrap_aug(node):
return wrapper[node.__class__](node)
return AUG_WRAPPER[node.__class__](node)
View
@@ -8,7 +8,7 @@ set -o pipefail
set -o errexit
_count() {
xargs wc -l | sort -n
grep -v '_test.py$' | xargs wc -l | sort -n
}
# 8700 lines for tokenizer -> tokens -> parser -> homogeneous nodes ->
@@ -24,21 +24,25 @@ all() {
# ast is generated
echo COMPILER2
ls compiler2/*.py | grep -v ast.py | xargs wc -l | sort -n
ls compiler2/*.py | grep -v ast.py | _count
echo
echo GENERATED CODE
wc -l compiler2/ast.py
echo
echo BYTERUN
ls byterun/*.py | grep -v 'test' | xargs wc -l | sort -n
ls byterun/*.py | grep -v 'test' | _count
echo
echo MISC
echo {misc,tools}/*.py | _count
echo
echo UNIT TESTS
echo */*_test.py | xargs wc -l | sort -n
echo
echo SCRIPTS
echo *.sh */*.sh | _count
echo

0 comments on commit 1478050

Please sign in to comment.