</p>
<p>
Our current parser mainly consists of two lines of code,
tucked away in <i>parsexec.c</i>:
</p>
<table><tr>
<td class="snippet">char *verb = strtok(input, " \n");
char *noun = strtok(NULL, "\n");
</td>
</tr></table>
<p>
Alright, plus the sequence of <i>strcmp</i> calls to map verbs to commands,
and the functions in <i>noun.c</i> to map nouns to objects.
But that&rsquo;s it.
This system has served us well for the past 11 chapters,
but it has its flaws.
</p>
<ul>
<li>It only accepts simple commands o