def p_formal_argument(self, p): r'''formal_argument : return_type ID ''' p[0] = NoneTerminal(p) p[0].code = pop_variable(p[2]) ALL_VARIABLES.add(p[2]) global VARIABLES VARIABLES += [p[2]] p[0].t = 1
def p_formal_arguments_list_2(self, p): r'''formal_arguments_list : formal_argument''' p[0] = NoneTerminal(p) p[0].code = p[1].code p[0].t = 1
def p_formal_arguments_2(self, p): r'''formal_arguments : empty''' p[0] = NoneTerminal(p) p[0].t = 0 p[0].code = ""
def p_formal_arguments_list_1(self, p): r'''formal_arguments_list : formal_arguments_list COMMA formal_argument''' p[0] = NoneTerminal(p) p[0].code = p[1].code + p[3].code p[0].t = p[1].t + p[3].t
def p_formal_arguments_1(self, p): r'''formal_arguments : formal_arguments_list''' p[0] = NoneTerminal(p) p[0].code = "// fetching arguments\n\n" + p[1].code p[0].t = p[1].t