示例#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
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