Exemplo n.º 1
0
def write(fd, ast):
	assert isinstance(ast, nodes.FunctionDefinition)

	visitor = Visitor()

	traverse.traverse(visitor, ast.statements)

	_process_queue(fd, visitor.print_queue)
Exemplo n.º 2
0
def _gather_slots(node):
	class Collector(traverse.Visitor):
		def __init__(self):
			self.slots = set()

		def visit_identifier(self, node):
			if node.type == nodes.Identifier.T_SLOT:
				self.slots.add(node.slot)

	collector = Collector()

	traverse.traverse(collector, node)

	return collector.slots
Exemplo n.º 3
0
def has_same_table(node, table):
	class Checker(traverse.Visitor):
		def __init__(self, table):
			self.found = False
			self.table = table

		def visit_table_element(self, node):
			if is_equal(self.table, node):
				self.found = True

		def _visit(self, node):
			if not self.found:
				traverse.Visitor._visit(self, node)

		def _visit_list(self, nodes_list):
			if not self.found:
				traverse.Visitor._visit_list(self, nodes_list)

	checker = Checker(table)
	traverse.traverse(checker, node)

	return checker.found
Exemplo n.º 4
0
def validate(ast, warped=True):
	visitor = Visitor(warped)
	traverse.traverse(visitor, ast)
Exemplo n.º 5
0
def _cleanup_invalid_nodes(ast):
    traverse.traverse(_TreeCleanup(), ast)
Exemplo n.º 6
0
def _eliminate_multres(ast):
    traverse.traverse(_MultresEliminator(), ast)
    _cleanup_invalid_nodes(ast)
Exemplo n.º 7
0
def _collect_slots(ast):
    collector = _SlotsCollector()
    traverse.traverse(collector, ast)

    return collector.slots, collector.unused
Exemplo n.º 8
0
def _collect_slots(ast):
    collector = _SlotsCollector()
    traverse.traverse(collector, ast)

    return collector.slots, collector.unused
Exemplo n.º 9
0
def mark_local_definitions(ast):
	traverse.traverse(_LocalDefinitionsMarker(), ast)
Exemplo n.º 10
0
def mark_locals(ast):
    traverse.traverse(_LocalsMarker(), ast)
Exemplo n.º 11
0
def mark_local_definitions(ast):
    traverse.traverse(_LocalDefinitionsMarker(), ast)
Exemplo n.º 12
0
def mark_locals(ast, alt_mode=False):
    traverse.traverse(_LocalsMarker(alt_mode), ast)
Exemplo n.º 13
0
def validate(ast, warped=True):
    visitor = Visitor(warped)
    traverse.traverse(visitor, ast)
Exemplo n.º 14
0
def _cleanup_invalid_nodes(ast):
    traverse.traverse(_TreeCleanup(), ast)
Exemplo n.º 15
0
def _eliminate_multres(ast):
    traverse.traverse(_MultresEliminator(), ast)
    _cleanup_invalid_nodes(ast)
Exemplo n.º 16
0
def mark_locals(ast):
	traverse.traverse(_LocalsMarker(), ast)
Exemplo n.º 17
0
def _gather_statements_lists(node):
	collector = _StatementsCollector()
	traverse.traverse(collector, node)
	return collector.result
Exemplo n.º 18
0
def _gather_statements_lists(node):
	collector = _StatementsCollector()
	traverse.traverse(collector, node)
	return collector.result