def _group_varargs_in_list(self, args, arity): num_fixed_params = arity.get_min_num_params() arguments = args.get_children() args.remove_children() for fixed_argument in arguments[:num_fixed_params]: args.add_child(fixed_argument) var_args = Ast("list") args.add_child(var_args) for var_argument in arguments[num_fixed_params:]: var_args.add_child(var_argument)
def _trans_connection(self, ast): ret = Ast('connection') lhs = Ast('pin') ret.add_child(lhs) lhs.set_attr("name", ast.find_children_by_id('param')[0].value) from_ = ast.find_children_by_id('from') if from_: from_ = from_[0].value to = ast.find_children_by_id('to')[0].value lhs.set_attr("from", from_) lhs.set_attr("to", to) value = ast.get_children()[-1] ret.add_child(value) return ret