Issue 10934: 9.18 Undefined syntax (qvt-rtf) Source: Model Driven Solutions (Dr. Edward Willink, ed(at)willink.me.uk) Nature: Uncategorized Issue Severity: Summary: 9.18 Undefined syntax --------------------- The syntax for TransformationName, DirectionName, MappingName, PropertyName and VariableName is undefined. Presumably each of these is an Identifier (below) when defining, but a PathNameCS when referencing. The syntax for PackageName is undefined. Presumably it is an OCL PathNameCS. The syntax for ValueOCLExpr is undefined. This is presumably an OclExpressionCS. The syntax for BooleanOCLExpr is undefined. This could be an OclExpressionCS of Boolean type but ... The syntax for SlotOwnerOCLExpr is undefined. This could be an OclExpressionCS of Class type but ... If BooleanOCLExpr and SlotOwnerOCLExpr are parsed as OclExpressionCS the 'default' prefix causes a major ambiguity for 'default(...).xx' as a parenthesised slot owner or function call. It is necessary to make 'default' a reserved word within OCL expressions. Suggest: define BooleanOCLExpr and SlotOwnerOCLExpr very narrowly. Predicate ::= SimpleNameCS ("." SimpleNameCS)* "=" OclExpressionCS Assignment ::= ["default"] SimpleNameCS ("." SimpleNameCS)* ":=" OclExpressionCS Resolution: Undefined syntax 9.18 Undefined syntax --------------------- The syntax for TransformationName, DirectionName, MappingName, PropertyName and VariableName is undefined. Presumably each of these is an Identifier (below) when defining, but a PathNameCS when referencing. The syntax for PackageName is undefined. Presumably it is an OCL PathNameCS. The syntax for ValueOCLExpr is undefined. This is presumably an OclExpressionCS. The syntax for BooleanOCLExpr is undefined. This could be an OclExpressionCS of Boolean type but ... The syntax for SlotOwnerOCLExpr is undefined. This could be an OclExpressionCS of Class type but ... If BooleanOCLExpr and SlotOwnerOCLExpr are parsed as OclExpressionCS the 'default' prefix causes a major ambiguity for 'default(...).xx' as a parenthesised slot owner or function call. It is necessary to make 'default' a reserved word within OCL expressions. Suggest: define BooleanOCLExpr and SlotOwnerOCLExpr very narrowly. Predicate ::= SimpleNameCS ("." SimpleNameCS)* "=" OclExpressionCS Assignment ::= ["default"] SimpleNameCS ("." SimpleNameCS)* ":=" OclExpressionCS Discussion Merged with the inadequate definition of identifiers. Revised Text: Actions taken: March 25, 2007: received issue December 22, 2015: Duplicate or Merged March 29, 2016: closed issue Discussion: It is hard to tackle this properly until we have the model-driven specification generated technology and clear OCL grammar that OCL 2.5 will pioneer. Disposition: Deferred End of Annotations:===== s is issue # 10934 From: "Ed Willink" 9.18 Undefined syntax --------------------- The syntax for TransformationName, DirectionName, MappingName, PropertyName and VariableName is undefined. Presumably each of these is an Identifier (below) when defining, but a PathNameCS when referencing. The syntax for PackageName is undefined. Presumably it is an OCL PathNameCS. The syntax for ValueOCLExpr is undefined. This is presumably an OclExpressionCS. The syntax for BooleanOCLExpr is undefined. This could be an OclExpressionCS of Boolean type but ... The syntax for SlotOwnerOCLExpr is undefined. This could be an OclExpressionCS of Class type but ... If BooleanOCLExpr and SlotOwnerOCLExpr are parsed as OclExpressionCS the 'default' prefix causes a major ambiguity for 'default(...).xx' as a parenthesised slot owner or function call. It is necessary to make 'default' a reserved word within OCL expressions. Suggest: define BooleanOCLExpr and SlotOwnerOCLExpr very narrowly. Predicate ::= SimpleNameCS ("." SimpleNameCS)* "=" OclExpressionCS Assignment ::= ["default"] SimpleNameCS ("." SimpleNameCS)* ":=" OclExpressionCS