diff options
author | Clifford Wolf <clifford@clifford.at> | 2013-03-03 10:05:37 +0100 |
---|---|---|
committer | Clifford Wolf <clifford@clifford.at> | 2013-03-03 10:05:37 +0100 |
commit | 4fcb9a7b9907cd0242ce6f9c4a3855ba20ca9017 (patch) | |
tree | 3b15a9e704ca03e5bb0aceb306f4fe1c12dd61e5 /kernel/register.cc | |
parent | 5bed90ae3a83c6ff456607e1b5541308ce9bcab9 (diff) | |
download | yosys-4fcb9a7b9907cd0242ce6f9c4a3855ba20ca9017.tar.gz yosys-4fcb9a7b9907cd0242ce6f9c4a3855ba20ca9017.tar.bz2 yosys-4fcb9a7b9907cd0242ce6f9c4a3855ba20ca9017.zip |
Implemented general handler for selection arguments
Diffstat (limited to 'kernel/register.cc')
-rw-r--r-- | kernel/register.cc | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/kernel/register.cc b/kernel/register.cc index 7b670ccea..0b0fb9f9c 100644 --- a/kernel/register.cc +++ b/kernel/register.cc @@ -107,7 +107,10 @@ void Pass::cmd_error(const std::vector<std::string> &args, size_t argidx, std::s msg.c_str(), command_text.c_str(), error_pos, ""); } -void Pass::extra_args(std::vector<std::string> args, size_t argidx, RTLIL::Design *) +// implemented in kernel/select.cc +extern void handle_extra_select_args(Pass *pass, std::vector<std::string> args, size_t argidx, RTLIL::Design *design); + +void Pass::extra_args(std::vector<std::string> args, size_t argidx, RTLIL::Design *design, bool select) { for (; argidx < args.size(); argidx++) { @@ -115,7 +118,12 @@ void Pass::extra_args(std::vector<std::string> args, size_t argidx, RTLIL::Desig if (arg.substr(0, 1) == "-") cmd_error(args, argidx, "Unkown option or option in arguments."); - cmd_error(args, argidx, "Extra argument."); + + if (!select) + cmd_error(args, argidx, "Extra argument."); + + handle_extra_select_args(this, args, argidx, design); + break; } cmd_log_args(args); } |