code: def p_funcdecl(p):
      
      if p[1] is None:
          p[0] = None
          return
  
      p[0] = p[1]
      p[0].local_symbol_table = SYMBOL_TABLE.table[SYMBOL_TABLE.current_scope]
      p[0].locals_size = SYMBOL_TABLE.leave_scope()
      FUNCTION_LEVEL.pop()
      p[0].entry.body = p[2]
  
      entry = p[0].entry
      entry.forwarded = False
docs: function_declaration : function_header function_body