def function_call_action(self, text, loc, fun):
exshared.setpos(loc, text)<EOL>if DEBUG > <NUM_LIT:0>:<EOL><INDENT>print("<STR_LIT>",fun)<EOL>if DEBUG == <NUM_LIT:2>: self.symtab.display()<EOL>if DEBUG > <NUM_LIT:2>: return<EOL><DEDENT>if len(self.function_arguments) != self.symtab.get_attribute(self.function_call_index):<EOL><INDENT>raise SemanticException("<STR_LIT>" % fun.name)<EOL><DEDENT>self.function_arguments.reverse()<EOL>self.codegen.function_call(self.function_call_index, self.function_arguments)<EOL>self.codegen.restore_used_registers()<EOL>return_type = self.symtab.get_type(self.function_call_index)<EOL>self.function_call_index = self.function_call_stack.pop()<EOL>self.function_arguments = self.function_arguments_stack.pop()<EOL>register = self.codegen.take_register(return_type)<EOL>self.codegen.move(self.codegen.take_function_register(return_type), register)<EOL>return register<EOL>
Code executed after recognising the whole function call