<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>