Issue 11545: grammar defined for conditional expressions (marte-ftf) Source: THALES (Mr. Sebastien Demathieu, sebastien.demathieu(at)thalesgroup.com) Nature: Revision Severity: Minor Summary: The grammar defined for conditional expressions does not allow one to use operation call expressions in the condition predicate. The BNF defines only <condition-expr> ::= <variable-declaration> | <variable-call-expr> | <property-call-expr> As a consequence, it is not possible to define predicates based on value comparison. Thus, it is not possible to implement the expression "(clock_rate>5)?(5):(clock_rate)", provided as example page 404. Resolution: We add a new terminal to the <condition-expr> rule, which is operation call expression. This allows us to specify: "(clock_rate>5)" which is an infix operation call of ">" in clock_rate. Revised Text: -In Section B.3.3.15, we add a new terminal for the <condition-expr> rule (we additionally add parenthesis to the rule): <condition-expr> ::= '(' <variable-declaration> | <variable-call-expr> | <property-call-expr> | <operation-call-expr> ')' . Actions taken: October 4, 2007: received issue October 8, 2007: received issue February 17, 2010: closed issue February 17, 2010: closed issue Discussion: End of Annotations:===== m: webmaster@omg.org Date: 08 Oct 2007 11:12:22 -0400 To: Subject: Issue/Bug Report -------------------------------------------------------------------------------- Name: Sébastien Demathieu Company: Thales mailFrom: sebastien.demathieu@thalesgroup.com Notification: Yes Specification: A UML Profile for MARTE Section: Annex B FormalNumber: realtime/07-08-04 Version: Beta 1 RevisionDate: 08/2007 Page: 404 Nature: Revision Severity: Minor HTTP User Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.7) Gecko/20070914 Firefox/2.0.0.7 Description The grammar defined for conditional expressions does not allow one to use operation call expressions in the condition predicate. The BNF defines only ::= | | As a consequence, it is not possible to define predicates based on value comparison. Thus, it is not possible to implement the expression "(clock_rate>5)?(5):(clock_rate)", provided as example page 404.