strictly separating all commands and arguments by spaces uses up more space in the input line, but makes parsing much easier
the input line is separated into tokens
the tokens are examined for their purpose:
command
option for a command, usually indicated by a dash (-)
argument for a command
pipe operator (|)
redirection operators (< and >)
the parsing component produces intermediate structures that are used by the shell to set up the processes, and if necessary the communication infrastructure between processes