bengtmartensson / IrpTransmogrifier

Parser for IRP notation protocols, with rendering, code generation, and decoding.
http://www.harctoolbox.org/
GNU General Public License v3.0
26 stars 4 forks source link

irp protocols have variants with * repeat #201

Closed seanyoung closed 3 years ago

seanyoung commented 3 years ago

The protocols OrtekMCE_relaxed, Zaptor-36, and Zaptor-56 have variants and also use the * repeat operator.

I thought that this was not allowed since #200 has been fixed. What have I missed? Thanks.

bengtmartensson commented 3 years ago

I consider the three protocols correct. The "*" means empty intro sequence, and this is consistent with the first part of the variation being empty. "*" is allowed if that first part is empty.

seanyoung commented 3 years ago

Right, thank you. Now I understand.

Having said that, the semantics for whether * is permitted is quite complicated now.

bengtmartensson commented 3 years ago

I think the repetition concept in the original IRP notation is quite bad. In particular, it allows for several infinite repetitions, and even worse, hierarchical infinite repeats! For user with foot pedals??

See https://github.com/bengtmartensson/IrpTransmogrifier/blob/master/src/main/doc/IRPNotationV3.odt