Added ";;" as shortcut for "; clean;"

This commit is contained in:
Clifford Wolf 2013-08-11 13:33:38 +02:00
parent 6068b8902f
commit 080f0aac34
2 changed files with 7 additions and 1 deletions

View File

@ -149,12 +149,15 @@ void Pass::call(RTLIL::Design *design, std::string command)
std::string str = p; std::string str = p;
int strsz = str.size(); int strsz = str.size();
if (strsz > 0 && str[strsz-1] == ';') { if (strsz > 0 && str[strsz-1] == ';') {
int num_semikolon = 0;
while (strsz > 0 && str[strsz-1] == ';') while (strsz > 0 && str[strsz-1] == ';')
strsz--; strsz--, num_semikolon++;
if (strsz > 0) if (strsz > 0)
args.push_back(str.substr(0, strsz)); args.push_back(str.substr(0, strsz));
call(design, args); call(design, args);
args.clear(); args.clear();
if (num_semikolon == 2)
call(design, "clean");
} else } else
args.push_back(str); args.push_back(str);
} }

View File

@ -313,6 +313,9 @@ struct CleanPass : public Pass {
log("\n"); log("\n");
log("This is identical to opt_clean, but less verbose.\n"); log("This is identical to opt_clean, but less verbose.\n");
log("\n"); log("\n");
log("When commands are seperated using the ';;' token, this command will be executed\n");
log("between the commands.\n");
log("\n");
} }
virtual void execute(std::vector<std::string> args, RTLIL::Design *design) virtual void execute(std::vector<std::string> args, RTLIL::Design *design)
{ {