Token *Command::arg(int idx) { for(Shard *it = first(); it; it = it->next()) { if(idx--) continue; it = it->first(); if(!it || it->type() != BLOCK) break; return (Token*) it->first(); } return 0; }