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