cpptest-on-call:
          CPPTEST_ON_CALL(function-id) -> trigger-code ;

trigger-code:
        statement-seq

statement-seq:
         statement
         statement-seq -> statement

statement:
         expression-statement
         if-statement
         return-statement
         compound-statement

expression-statement:
        assignment-expression

assignment-expression:
        logical-or-expression
        logical-or-expression ->
Assign()
-> assignment-expression
                logical-or-expression  -> Assign(value) [C++ only]

logical-or-expression:
        logical-and-expression
        logical-or-expression ->
Or() -> logical-and-expression
        logical-or-expression ->
Or(value) [C++ only]

logical-and-expression:
       
equality-expression
        logical-and-expression -> 
And() -> equality-expression
        logical-and-expression ->
And(value) [C++ only]

equality-expression:
        relational-expression
        equality-expression ->
Equal() -> relational-expression
        equality-expression ->
NotEqual() -> relational-expression
        equality-expression ->
Equal(value) [C++ only]
        equality-expression -> NotEqual(value)[C++ only]

relational-expression:
        additive-expression
        relational-expression ->
Less() -> additive-expression
        relational-expression ->
Greater() -> additive-expression
        relational-expression ->
LessOrEqual() -> additive-expression
        relational-expression ->
GreaterOrEqual() -> additive-expression
        relational-expression ->
Less(value) [C++ only]
        relational-expression -> Greater(value) [C++ only]
        relational-expression -> LessOrEqual(value) [C++ only]
        relational-expression -> GreaterOrEqual(value) [C++ only]

additive-expression:
        multiplicative-expression
        additive-expression -> Plus() -> multiplicative-expression
        additive-expression ->
Minus() -> multiplicative-expression
        additive-expression ->
Plus(value) [C++ only]
        additive-expression -> Minus(value) [C++ only]

multiplicative-expression:
        unary-expression
        multiplicative-expression -> Multiply() -> unary-expression
        multiplicative-expression ->
Divide() -> unary-expression
        multiplicative-expression ->
Multiply(value) [C++ only]
        multiplicative-expression -> Divide(value) [C++ only]

unary-expression:
        postfix-expression
        Not() -> unary-expression
        Inc() -> unary-expression
        Dec() -> unary-expression
        Inc(value) [C++ only]
        Dec(value) [C++ only]

postfix-expression:
        primary-expression
        postfix-expression -> At() -> primary-expression
        postfix-expression ->
Field(field-name)
        postfix-expression -> FieldByExpr() -> primary-expression
        postfix-expression ->
At(value) [C++ only]
        postfix-expression -> Field(value) [C++ only]

primary-expression:
        arg-expression
        value-expression
        LP() -> assignment-expression -> RP()
        execute-expression
        Assert(message) [deprecated]
        Fail(message)
        Report(message)
        RunId()

arg-expression:
        Arg(argument-name)
        ArgByExpr() -> primary-expression

value-expression:
        simple-value-expression
        pointer-value-expression reference-value-expression
        object-value-expression
        general-value-expression [C++ only]

simple-value-expression:

         Char(char-value)
         SChar(signed-char-value)
         UChar(unsigned-char-value)
         WChar(wchar_t-value)
         Short(short-value)
         UShort(ushort-value)
         Int(int-value)
         UInt(uint-value)
         Long(long-value)
         ULong(ulong-value)
         
LLong(llong-value)
         ULLong(ullong-value)
         Float(float-value)
         Double(double-value)
         LDouble(long-double-value)
         Func((tgr_func_ptr)funcion-pointer-value)

pointer-value-expression:
 
        VoidPtr(void-ptr-value)
 
        CharPtr(char-ptr-value)
          SCharPtr(signed-char-ptr-value)
          UCharPtr(unsigned-char-ptr-value)
          WCharPtr(wchar_t-ptr-value)
          ShortPtr(short-ptr-value)
          UShortPtr(ushort-ptr-value)
          IntPtr(int-ptr-value)
 
         UIntPtr(uint-ptr-value)
          LongPtr(long-ptr-value)
          ULongPtr(ulong-ptr-value)
          LLongPtr(llong-ptr-value)
          ULLongPtr(ullong-ptr-value)
          FloatPtr(float-ptr-value)
          DoublePtr(double-ptr-value)
          LDoublePtr(long-double-ptr-value)
          Ptr(void-ptr-value, element-type)

reference-value-expression:
  
       CharRef(char-ptr-value)
 
        SCharRef(signed-char-ptr-value)
 
        UCharRef(unsigned-char-ptr-value)
 
        WCharRef(wchar_t-ptr-value)
 
        ShortRef(short-ptr-value)
 
        UShortRef(ushort-ptr-value)
 
        IntRef(int-ptr-value)
 
        UIntRef(uint-ptr-value)
 
        LongRef(long-ptr-value)
          ULongRef(ulong-ptr-value)
          LLongRef(llong-ptr-value)
          ULLongRef(ullong-ptr-value)
          FloatRef(float-ptr-value)
          DoubleRef(double-ptr-value)
          LDoubleRef(long-double-ptr-value)
          VoidPtrRef(void-ptr-value)
 
        Ref(void-ptr-type, element-type)

object-value-expression:
         Object(obj-pointer, class-type)

general-value-expression [C++ only]:
 
        Value(value)

execute-expression:
 
        Execute((tgr_external_func_ptr)external-function)
 
        execute-expression -> WithArg(argument-name) -> primary-expression

if-statement:
         If() -> condition -> statement
         If() -> condition -> statement -> Else() -> statement

condition:
 
        assignment-expression

return-statement:
 
        Return() -> assignment-expression
         Return(value) [C++ only]

compound-statement:
 
        LB() -> RB()
 
        LB() -> statement-seq -> RB()

value [C++ only]:
        C/C++ expression of builtin type or pointer type
        ByRef(lvalue)

lvalue [C++ only]:
        C/C++ lvalue expression

external-function:
        C/C++ function with special signature defined by tgr_external_func_ptr

directives:
        FileLine(file-name, line)         Line(line)

field-name, argument-name, message, file-name:
                 C/C++ expression of type compatible with const char* type

  • No labels