Bboolco — Compile Boolean expression, return evaluation handler
Compile Boolean expression (in parameter expr) and returns the evaluation tree handler. Following operators are available for expressions:
%%, !% - regular expression testing e.g. "T_STRING_2_FLD %% 58.*"- will match if T_STRING_2_FLD is set to "58ABC" for example.
==, !=, <, ⇐, >, >= - compare operations
!, ~, ^ - bitwise operations
+, -, *, %, / - mathematical operations
&&, || - logical operations
Enduro/X expressions allows to access sub-ubf buffers or access to BFLD_VIEW particular view fields. Access to sub-fields are made via dot notation.
For example having following UBF buffer:
T_CARRAY_2_FLD TEST CARRAY
T_PTR_3_FLD 0xc7
T_PTR_3_FLD 0x12b
T_UBF_FLD
T_UBF_FLD
T_LONG_3_FLD 88
T_LONG_3_FLD 0
T_LONG_3_FLD 0
T_LONG_3_FLD 889991
T_VIEW_3_FLD
T_VIEW_3_FLD UBTESTVIEW2
tshort1 100
tlong1 200
tchar1 Z
tfloat1 400.00000
tdouble1 500.000000
tstring1 6YY
tstring1 6ZZ
tcarray1 7YY\00\00\00\00\00\00\00To access sub-ubf buffer field:
T_UBF_FLD[1].T_LONG_3_FLD //this reads value "88" T_UBF_FLD[1].T_LONG_3_FLD[3] //this reads value "889991"
To access view filed:
T_UBF_FLD[1].T_VIEW_3_FLD[1].tstring1 // This read value "6YY" T_UBF_FLD[1].T_VIEW_3_FLD[1].tstring1[1] // This read value "6ZZ"
On success, Bboolco() return pointer to evaluation tree; on error, NULL is returned, with Berror set to indicate the error.
Note that Bstrerror() returns generic error message plus custom message with debug info from last function call.
BALIGNERR Corrupted buffer or pointing to not aligned memory area.
BNOTFLD Buffer not fielded, not correctly allocated or corrupted.
BBADNAME Field name not found in field tables.
BMALLOC Malloc failed.
BSYNTAX Syntax error in script.
BBADNAME Bad field name specified.
BEBADOP Direct field types (i.e with out sub-fields) BFLD_UBF and BFLD_VIEW are not supported in expressions.