#include "struc.hpp" #include "util.hpp" #include block make_cmd(std::vector args) { block cmd(block::cmd); for(auto it: args) { cmd.args.add(arg(it)); } return cmd; } std::vector arglist::strargs(uint32_t start) { std::vector ret; for(uint32_t i=start; ipls.size() > 0) this->or_ops.push_back(or_op); this->pls.push_back(pl); } block* block::single_cmd() { if(this->type == block::subshell) { if( cls.size() == 1 && // only one condlist cls[0].pls.size() == 1 && // only one pipeline cls[0].pls[0].cmds.size() == 1 && // only one block cls[0].pls[0].cmds[0].type == block::cmd) // block is a command return &(cls[0].pls[0].cmds[0]); // return command } return nullptr; } std::string arg::string() { if(sa.size() > 1 || sa[0].type != subarg::string) return ""; return sa[0].val; }