code: def p_function_def(p):
      
      p[0] = make_func_declaration(p[3], p.lineno(3))
      SYMBOL_TABLE.enter_scope(p[3])
      FUNCTION_LEVEL.append(SYMBOL_TABLE.get_entry(p[3]))
      FUNCTION_LEVEL[-1].convention = p[2]
  
      if p[0] is not None:
          kind = KIND.sub if p[1] == 'SUB' else KIND.function  # Must be 'function' or 'sub'
          FUNCTION_LEVEL[-1].set_kind(kind, p.lineno(1))
docs: function_def : FUNCTION convention ID
                       | SUB convention ID