Ticket #351 (new defect)

Opened 3 years ago

Last modified 3 years ago

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)

Change History

Changed 3 years ago by clange

  • cc skuryla added

Changed 3 years ago by clange

As nobody has objected so far, let's do it.

Note: See TracTickets for help on using tickets.