<html>#2388: piraha fails to detect if the same grammar item is specified more than once
<table style='border-spacing: 1ex 0pt; '>
<tr><td style='text-align:right'> Reporter:</td><td>Roland Haas</td></tr>
<tr><td style='text-align:right'>   Status:</td><td>new</td></tr>
<tr><td style='text-align:right'>Milestone:</td><td></td></tr>
<tr><td style='text-align:right'>  Version:</td><td></td></tr>
<tr><td style='text-align:right'>     Type:</td><td>bug</td></tr>
<tr><td style='text-align:right'> Priority:</td><td>minor</td></tr>
<tr><td style='text-align:right'>Component:</td><td>Cactus</td></tr>
</table>

<p>Piraha fails to detect if a peg contains multiple definitions for the same item and overwrites the earlier definitions with the later. Eg this is accepted:</p>
<div class="codehilite language-plaintext"><pre><span></span>    40  options = (?i:options?) : {vname}( , {vname}|[ \t]{vname})*
    41  storage = (?i:storage) : {vname}( , {vname}|[ \t]{vname})*
    42  triggers = (?i:triggers?) : {vname}( , {vname}|[ \t]{vname})*
[...]
    67    )
    68  storage = (?i:storage: {vname}( , {vname}|([ \t]|\\\r?\n)+{vname})* )
    69  block = \{ (({statement}|{block}) )* \} | {statement}
</pre></div>


<p>even though both lines 41 and 68 define <code>storage</code>.</p>
<p>--<br/>
Ticket URL: <a href='https://bitbucket.org/einsteintoolkit/tickets/issues/2388/piraha-fails-to-detect-if-the-same-grammar'>https://bitbucket.org/einsteintoolkit/tickets/issues/2388/piraha-fails-to-detect-if-the-same-grammar</a></p>
</html>