コード例 #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
ファイル: locals.py プロジェクト: zbx911/luajit-decompiler
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