note
hexcoder
Thanks very much, a very very useful tutorial! I especially like the methodical and analytical approach very much.
<p/>
Some small things I found in the text:<p/>
<br/>
<i>The document provides two implementation</i>
<br/>=>
<br/>The document provides two implementation<b>s</b>
<p/>
<i>have the same prec<b>ee</b>dence</i>
<br/>=>
<br/>have the same precedence
<p/>
<i>The following subsections show how to evaluate the list how to treeify it.</i>
<br/>=>
<br/>The following subsections show how to evaluate the list <b>and</b> how to treeify it.
<p/>
<i>In a list, that means <b>the means</b> the last (right-most) element encountered will be executed first.</i>
<br/>=>
<br/>In a list, that means the last (right-most) element encountered will be executed first.
<p/>
<i>Fortu<b>an</b>tely, Parse::RecDescent provides a means</i>
<br/>=>
<br/>Fortunately, Parse::RecDescent provides a means
<p/>
<i>and each reference to that rule</i>
<br/>=>
<br/>and <b>of</b> each reference to that rule
<p/>
<i>Just like function can have arguments, so can subrules.</i>
<br/>=>
<br/>Just like function<b>s</b> can have arguments, so can subrules.
<p/>
<i>However, Parse::RecDescent handles rule with productions</i>
<br/>=>
<br/>However, Parse::RecDescent handles rule<b>s</b> with productions
<p/>
<i>Just like Parse::RecDescent has a<b>n</b> directive for creating a flat list for a left-associative operator (<c><left</c><b>t</b><c>op></c>),</i>
<br/>=>
<br/>Just like Parse::RecDescent has a directive for creating a flat list for a left-associative operator (<c><leftop></c>),
<p/>
<i>The problem we have to pass <c>$item[1]</c> from <c>pow</c> to <c>pow_</c>.</i>
<br/>=>
<br/>The problem <b>is</b> we have to pass <c>$item[1]</c> from <c>pow</c> to <c>pow_</c>.
<p/>
<i>The following subsections contain<b>s</b> complete, working code</i>
<br/>=>
<br/>The following subsections contain complete, working code
553889
553889