code: def p_pipeline(p):
      '''pipeline : pipeline BAR newline_list pipeline
                  | pipeline BAR_AND newline_list pipeline
                  | command'''
      if len(p) == 2:
          p[0] = [p[1]]
      else:
          p[0] = p[1]
          p[0].append(ast.node(kind='pipe', pipe=p[2], pos=p.lexspan(2)))
          p[0].extend(p[len(p) - 1]f p_pipeline(p):
      '''pipeline : pipeline BAR newline_list pipeline
                  | pipeline BAR_AND newline_list pipeline
                  | command'''
      if len(p) == 2:
          p[0] = [p[1]]
      else:
          p[0] = p[1]
          p[0].append(ast.node(kind='pipe', pipe=p[2], pos=p.lexspan(2)))
          p[0].extend(p[len(p) - 1])
docs: pipeline : pipeline BAR newline_list pipeline
                  | pipeline BAR_AND newline_list pipeline
                  | command