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