Ticket #351 (new defect)
Drop iterate/@precedence
| Reported by: | clange | Owned by: | dmisev |
|---|---|---|---|
| Priority: | major | Milestone: | zzz Future zzz |
| Component: | [SI] NTN | Version: | |
| Keywords: | Cc: | nmueller, frabe, skuryla | |
| Blocked By: | Blocking: | ||
| Due to close: | YYYY/MM/DD | Include in GanttChart: | no |
| Dependencies: | Due to assign: | YYYY/MM/DD |
Description
Another issue that was neglected on the mailing list… I will turn all of these into tickets, as there hasn't been any objection :->
I stumbled upon a little discrepancy between specification (as in the MCS paper) and implementation. In the specification, we have the abstract syntax
for (listjoker, increment, the-separator) { loop-body }
which translates to (via the E encoding function)
<iterate name="listjoker" step="increment"> <separator> E(the-separator) </separator> E(loop-body) </iterate>
However, in the actual *.ntn files, I frequently see
<iterate name="listjoker" precedence="p">
Now we could extend the abstract syntax to
for (listjoker^precedence, ...)
to cover this, but is it necessary? I suppose that
<iterate name="listjoker" precedence="p"> <render name="elementjoker"/> </iterate>
is equivalent to
<iterate name="listjoker"> <render name="elementjoker" precedence="p"/> </iterate>
If that is the case, having a precedence attribute on both iterate and render would actually be an ambiguity with an undefined resolution.
Can you imagine any case where it does make sense to have iterate/@precedence? If not, let me suggest
- to drop it from the implementation
- and from all existing notation definitions (and move the predecence attribute down to the render child elements)
