@visit.match(ast.Lambda) def visit(env, node): visit_function(env, node) @visit.match(ast.Table) def visit(env, node): node._luatable = env.symtable.get_global("LuaTable") for subnode in node.fields: visit(env, subnode) visit.match(ast.Label)(nop) visit.match(ast.Goto)(nop) visit.match(ast.Assign)(default) visit.match(ast.CallStatement)(default) visit.match(ast.Call)(default) visit.match(ast.Return)(default) visit.match(ast.Break)(nop) visit.match(ast.Subscript)(default) visit.match(ast.Attribute)(default) visit.match(ast.Method)(default) visit.match(ast.NIL)(nop) visit.match(ast.FALSE)(nop) visit.match(ast.TRUE)(nop) visit.match(ast.Number)(nop) visit.match(ast.String)(nop) visit.match(ast.Field)(default)
def visit_body(env, node): visit_subblock(env, node.body) @visit.match(ast.Label) def visit_Label(env, node): env.label_table.got_label(node) @visit.match(ast.Goto) def visit_Goto(env, node): env.label_table.got_goto(node) visit.match(ast.Block)(visit_body) visit.match(ast.While)(visit_body) visit.match(ast.Repeat)(visit_body) visit.match(ast.For)(visit_body) visit.match(ast.ForEach)(visit_body) @visit.match(ast.If) def visit_If(env, node): visit_subblock(env, node.body) visit_subblock(env, node.orelse) visit.match(ast.File)(visit_topblock) visit.match(ast.Function)(visit_topblock)