예제 #1
0
파일: writer.py 프로젝트: Fox-Alpha/ljd
def write(fd, ast):
	assert isinstance(ast, nodes.FunctionDefinition)

	visitor = Visitor()

	traverse.traverse(visitor, ast.statements)

	_process_queue(fd, visitor.print_queue)
예제 #2
0
파일: unwarper.py 프로젝트: Fox-Alpha/ljd
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
예제 #3
0
파일: helpers.py 프로젝트: Fox-Alpha/ljd
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
예제 #4
0
파일: validator.py 프로젝트: Fox-Alpha/ljd
def validate(ast, warped=True):
	visitor = Visitor(warped)
	traverse.traverse(visitor, ast)
예제 #5
0
파일: slotworks.py 프로젝트: jjdredd/ljd
def _cleanup_invalid_nodes(ast):
    traverse.traverse(_TreeCleanup(), ast)
예제 #6
0
파일: slotworks.py 프로젝트: jjdredd/ljd
def _eliminate_multres(ast):
    traverse.traverse(_MultresEliminator(), ast)
    _cleanup_invalid_nodes(ast)
예제 #7
0
파일: slotworks.py 프로젝트: jjdredd/ljd
def _collect_slots(ast):
    collector = _SlotsCollector()
    traverse.traverse(collector, ast)

    return collector.slots, collector.unused
예제 #8
0
def _collect_slots(ast):
    collector = _SlotsCollector()
    traverse.traverse(collector, ast)

    return collector.slots, collector.unused
예제 #9
0
파일: locals.py 프로젝트: Fox-Alpha/ljd
def mark_local_definitions(ast):
	traverse.traverse(_LocalDefinitionsMarker(), ast)
예제 #10
0
파일: locals.py 프로젝트: jspzyhl/ljd
def mark_locals(ast):
    traverse.traverse(_LocalsMarker(), ast)
예제 #11
0
파일: locals.py 프로젝트: jspzyhl/ljd
def mark_local_definitions(ast):
    traverse.traverse(_LocalDefinitionsMarker(), ast)
예제 #12
0
def mark_locals(ast, alt_mode=False):
    traverse.traverse(_LocalsMarker(alt_mode), ast)
예제 #13
0
파일: validator.py 프로젝트: GitaiQAQ/ljd
def validate(ast, warped=True):
    visitor = Visitor(warped)
    traverse.traverse(visitor, ast)
예제 #14
0
def _cleanup_invalid_nodes(ast):
    traverse.traverse(_TreeCleanup(), ast)
예제 #15
0
def _eliminate_multres(ast):
    traverse.traverse(_MultresEliminator(), ast)
    _cleanup_invalid_nodes(ast)
예제 #16
0
파일: locals.py 프로젝트: Fox-Alpha/ljd
def mark_locals(ast):
	traverse.traverse(_LocalsMarker(), ast)
예제 #17
0
파일: unwarper.py 프로젝트: Fox-Alpha/ljd
def _gather_statements_lists(node):
	collector = _StatementsCollector()
	traverse.traverse(collector, node)
	return collector.result
예제 #18
0
def _gather_statements_lists(node):
	collector = _StatementsCollector()
	traverse.traverse(collector, node)
	return collector.result