QVT 1.0 NO IDEA Avatar
  1. OMG Issue

QVT — Unsafe oclExpressionCS

  • Key: QVT-74
  • Legacy Issue Number: 10610
  • Status: closed  
  • Source: Model Driven Solutions ( Dr. Edward Willink)
  • Summary:

    The extension to oclExpressionCS affects all cases where OCL expressions are invoked. Since the "| (<oclExpressionCS> ';')*" term
    covers epsilon, this introduces near catastrophic parsing ambiguities and meaningless syntax for existing usage.

    Suggest: restrict the semi-colon separated extension to the extended syntax where it has useful semantic meaning. Permitting the
    final semi-colon to be omitted seem needlessly generous/confusing/complicated. Therefore:

    Replace: <oclExpressionCS> ::= <propertyCallExpCS>

    <variableExpCS>
    <literalExpCS>
    <letExpCS>
    <ifExpCS>
    <template>
    '(' <oclExpressionCS> ')'
    (<oclExpressionCS> ';')*
    By: <oclExpressionCS> ::= <propertyCallExpCS>
    <variableExpCS>
    <literalExpCS>
    <letExpCS>
    <ifExpCS>
    <template>
    '(' <oclExpressionCS> ')'
    <oclStatementCS> ::= (<oclExpressionCS> ';')*

    and use this new construct as:

    Replace: <when> ::= 'when' '

    {' <oclExpressionCS> '}'
    By: <when> ::= 'when' '{' <oclStatementCS> '}'


    Replace: <where> ::= 'where' '{' <oclExpressionCS> '}

    '
    By: <where> ::= 'where' '

    {' <oclStatementCS> '}'


    In <domain>
    Replace: '{' <propertyTemplate>* '}' [ '{' <oclExpressionCS> '}' ]
    By: '{' <propertyTemplate>* '}' [ '{' <oclStatementCS> '}

    ' ]

    In <query>
    Replace: ';' | '

    {' <oclExpressionCS> '}

    '
    By: ';' | '

    {' <oclStatementCS> '}

    '

  • Reported: QVT 1.0b1 — Sun, 21 Jan 2007 05:00 GMT
  • Disposition: Resolved — QVT 1.0
  • Disposition Summary:

    Replace the content of section 7.13.1 and 7.13.2 by the new content given in Appendix A of this report. This new content is the updated grammar correcting typos and other mistakes.

  • Updated: Fri, 6 Mar 2015 22:55 GMT