= !CommandExecutor = [[TracNav(TracNav/TOC_Development)]] [[TOC]] == Description == !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]). 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. 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. To execute more complex commands, !CommandExecutor uses [wiki:TclBind]. == Usage == === execute() === === hint() === === complete() === === evaluate() === == Illustration == [[Image(CommandExecutor.png)]] The illustration shows how the !CommandExecutor executes a [wiki:ConsoleCommand] by searching for the specified command in the shortcut list and the lists of all [wiki:Identifier Identifiers] and then executes the command by calling the [wiki:Functor]. At the end, it stores the returnvalue.