From 4fcb9a7b9907cd0242ce6f9c4a3855ba20ca9017 Mon Sep 17 00:00:00 2001 From: Clifford Wolf Date: Sun, 3 Mar 2013 10:05:37 +0100 Subject: Implemented general handler for selection arguments --- kernel/register.cc | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'kernel/register.cc') diff --git a/kernel/register.cc b/kernel/register.cc index 7b670cce..0b0fb9f9 100644 --- a/kernel/register.cc +++ b/kernel/register.cc @@ -107,7 +107,10 @@ void Pass::cmd_error(const std::vector &args, size_t argidx, std::s msg.c_str(), command_text.c_str(), error_pos, ""); } -void Pass::extra_args(std::vector args, size_t argidx, RTLIL::Design *) +// implemented in kernel/select.cc +extern void handle_extra_select_args(Pass *pass, std::vector args, size_t argidx, RTLIL::Design *design); + +void Pass::extra_args(std::vector args, size_t argidx, RTLIL::Design *design, bool select) { for (; argidx < args.size(); argidx++) { @@ -115,7 +118,12 @@ void Pass::extra_args(std::vector 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); } -- cgit v1.2.3