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