IDL 4.1 RTF Avatar
  1. OMG Issue

IDL41 — DL 4.0 Grammar Errors - formal/2016-04-02

  • Key: IDL41-3
  • Legacy Issue Number: 19894
  • Status: closed  
  • Source: Vanderbilt University ( Mr. William Otte)
  • Summary:

    We’re trying to implement a simple parser based on a subset of the IDL 4.0 BBs, and we’re coming across a number of oversights/mistakes in the language definition. For example, template module instances are required to end with two semicolons.

    Invalid:
    Typed<FOO> BAR;

    Valid:
    Typed<FOO> BAR;;

    Rule 184 requires a semicolon after a template_module_inst:
    (184) <definition> ::+ <template_module_dcl> ";"

    <template_module_inst> ";"

    Rule 194 defines template_module_inst as ending with a semicolon:
    (190) <template_module_inst> ::= "module" <scoped_name> "<" <actual_parameters> ">" <identifier> ";"

    There were one or two additional ones that I submitted through the OMG issue process, but never received the customary note from Juergen that it had been received. (unless it went to spam).

    I’ll have to dig through my email for specifics of the other, but I believe it was:

    Invalid:

    struct foo

    { int bar; }

    Valid

    struct foo

    { int bar, baz; }

    Invalid:

    struct foo

    { int bar, baz, qux; }

    At the moment, we are proceeding under the assumption that such errors are fixed with the intuitive solution in each case, e.g., correct the grammar to allow similar behavior in such cases to IDL 3.5.

    I’d like to make sure that our internal resolutions are correct before we invest too much time going down this rabbit hole.

  • Reported: IDL 4.0 — Wed, 8 Jun 2016 04:00 GMT
  • Disposition: Resolved — IDL 4.1
  • Disposition Summary:

    Remove the extra ";" from rule (190)

    This is an obvious mistake (the general strategy is that all the ending ";" are specified when adding items to <definition>).
    The solution is just to remove that supernumerary piece at the end of rule (190).

  • Updated: Thu, 6 Apr 2017 13:50 GMT