sing a push-down automaton (essentially
        a state machine augmented by a stack).
      </p>
<p>
        In real programming languages and practical grammars, the parts that can
        be handled as regular expressions tend to be the lower-level pieces, such
        as the definition of an identifier or of an integer value:
      </p>
<pre class="programlisting"><span class="identifier">letter</span>     <span class="special">:=</span> <span class="special">[</span><span class="identifier">a</span><sp