implemented parse_pipe, parse_sub, if