code: def p_CommentOrEmptyLineList(p):
      '''
      CommentOrEmptyLineList :
                             | CommentOrEmptyLine
                             | CommentOrEmptyLineList CommentOrEmptyLine 
      '''
      if len(p) <= 1:
          p[0] = CommentOrEmptyLineList(None, None)
      elif len(p) <= 2:
          p[0] = CommentOrEmptyLineList(None, p[1])
      else:
          p[0] = CommentOrEmptyLineList(p[1], p[2]f p_CommentOrEmptyLineList(p):
      '''
      CommentOrEmptyLineList :
                             | CommentOrEmptyLine
                             | CommentOrEmptyLineList CommentOrEmptyLine 
      '''
      if len(p) <= 1:
          p[0] = CommentOrEmptyLineList(None, None)
      elif len(p) <= 2:
          p[0] = CommentOrEmptyLineList(None, p[1])
      else:
          p[0] = CommentOrEmptyLineList(p[1], p[2])
docs: CommentOrEmptyLineList :
                             | CommentOrEmptyLine
                             | CommentOrEmptyLineList CommentOrEmptyLine