| 6 | !CommandExecutor is a parser that calls a function defined by a string. To do this, !CommandExecutor searches for a [wiki:ConsoleCommand] with the given name, parses the arguments and calls the command. !CommandExecutor is also able to give hints to a function (what the function does) and to complete classnames, functionnames and arguments (see [wiki:ArgumentCompleter]). |
| 7 | |
| 8 | All existing !ConsoleCommands are stored in maps: Commands belonging to a class are stored in the Identifier of the class while shortcuts are stored in a map located in the !CommandExecutor itself. |
| 9 | |
| 10 | Another feature: !CommandExecutor can evaluate a given command without calling it. To achieve this, !CommandExecutor returns a [wiki:CommandEvaluation], containing a pointer to the !ConsoleCommand and all arguments stored in [wiki:MultiType MultiTypes], already converted to the requested type. This allows you to execute an evaluated command really fast, which is of interest if you execute the same command over and over. |
| 11 | |
| 12 | To execute more complex commands, !CommandExecutor uses [wiki:TclBind]. |