Classes for parsing and storing user input.
cmd2.parsing.StatementParser
__init__
cmd2.Statement
command
The name of the command after shortcuts and macros have been expanded
args
The arguments to the command as a string with spaces between the words, excluding output redirection and command terminators. If the user used quotes in their input, they remain here, and you will have to handle them on your own.
arg_list
The arguments to the command as a list, excluding output redirection and command terminators. Each argument is represented as an element in the list. Quoted arguments remain quoted. If you want to remove the quotes, use cmd2.utils.strip_quotes
or use argv[1:]
raw
If you want full access to exactly what the user typed at the input prompt you can get it, but you'll have to parse it on your own, including:
- shortcuts and aliases
- quoted commands and arguments
- output redirection
- multi-line command terminator handling
If you use multiline commands, all the input will be passed to you in this string, but there will be embedded newlines where the user hit return to continue the command on the next line.
multiline_command
If the command is a multi-line command, the name of the command will be in this attribute. Otherwise, it will be an empty string.
terminator
If the command is a multi-line command, this attribute contains the termination character entered by the user to signal the end of input
suffix
Any characters present between the input terminator and the output redirection tokens.
pipe_to
If the user piped the output to a shell command, this attribute contains the entire shell command as a string. Otherwise it is an empty string.
output
If output was redirected by the user, this contains the redirection token, i.e. >>
.
output_to
If output was redirected by the user, this contains the requested destination with quotes preserved.