diff options
author | Clifford Wolf <clifford@clifford.at> | 2013-02-28 16:53:34 +0100 |
---|---|---|
committer | Clifford Wolf <clifford@clifford.at> | 2013-02-28 16:53:34 +0100 |
commit | cd71c70b4f55c89cdcfd6da23ff5f2002cb7d49d (patch) | |
tree | 260cbab3e8a728036d46268a22b2dddc6df55f09 /kernel | |
parent | a5c4bf2161311d73650b015b79f496651643da1e (diff) | |
download | yosys-cd71c70b4f55c89cdcfd6da23ff5f2002cb7d49d.tar.gz yosys-cd71c70b4f55c89cdcfd6da23ff5f2002cb7d49d.tar.bz2 yosys-cd71c70b4f55c89cdcfd6da23ff5f2002cb7d49d.zip |
Improved help message for "shell" command
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/driver.cc | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/kernel/driver.cc b/kernel/driver.cc index 105e4647d..94c6b39bb 100644 --- a/kernel/driver.cc +++ b/kernel/driver.cc @@ -145,6 +145,14 @@ static const char *create_prompt(RTLIL::Design *design) static void shell(RTLIL::Design *design) { + static bool recursion_detect = false; + + if (recursion_detect) { + log("Already in interactive shell.\n"); + return; + } + + recursion_detect = true; log_cmd_error_throw = true; rl_readline_name = "yosys"; @@ -167,6 +175,7 @@ static void shell(RTLIL::Design *design) } } + recursion_detect = false; log_cmd_error_throw = false; } @@ -180,6 +189,27 @@ struct ShellPass : public Pass { log("in a script to interrupt the script at a certain point and allow for\n"); log("interactive inspection or manual synthesis of the design at this point.\n"); log("\n"); + log("The command prompt of the interactive shell indicates the current\n"); + log("selection (see 'help select'):\n"); + log("\n"); + log(" yosys>\n"); + log(" the entire design is selected\n"); + log("\n"); + log(" yosys*>\n"); + log(" only part of the design is selected\n"); + log("\n"); + log(" yosys [modname]>\n"); + log(" the entire module 'modname' is selected using 'select -module modname'\n"); + log("\n"); + log(" yosys [modname]*>\n"); + log(" only part of current module 'modname' is selected\n"); + log("\n"); + log("When in interavtive shell, some errors (e.g. invalid command arguments)\n"); + log("do not terminate yosys but return to the command prompt.\n"); + log("\n"); + log("This command is the default action if nothing else has been specified\n"); + log("on the command line.\n"); + log("\n"); } virtual void execute(std::vector<std::string>, RTLIL::Design *design) { shell(design); |