I have improved my code, and I have chosen the RPN way, definitively
# eval 1+2+3
yards analysis: PASSED
stack analysis: PASSED
function_pool_show_all ... 0 functions
rpn_v[]={ 0 2 1 4 3 }
[1] 1 K3 cookie token_DecValue, type12
[2] 1 K3 cookie token_DecValue, type12
[+] -1 K5 operator token_Plus, type53
[3] 1 K3 cookie token_DecValue, type12
[+] -1 K5 operator token_Plus, type53
#########################
# good expression #
#########################
# eval 1+Fa(2)+Fb(3+4)
yards analysis: PASSED
stack analysis: PASSED
function_pool_show_all ... 2 functions
+ function1 [Fa] { type12 } 1 args ticket_rpn=2
+ function2 [Fb] { type12 } 1 args ticket_rpn=7
rpn_v[]={ 0 4 2 1 9 11 10 7 6 }
[1] 1 K3 cookie token_DecValue, type12
[2] 1 K4 f_cookie token_DecValue, type12
[Fa] 0 K2 function token_StrictAlphaNum, type19
[+] -1 K5 operator token_Plus, type53
[3] 1 K4 f_cookie token_DecValue, type12
[4] 1 K4 f_cookie token_DecValue, type12
[+] -1 K6 f_operator token_Plus, type53
[Fb] 0 K2 function token_StrictAlphaNum, type19
[+] -1 K5 operator token_Plus, type53
#########################
# good expression #
#########################
# eval 1+(2.2*3.0E9+ ( 0xdeadbeaf logicalAnd 0xffffffff ) )
yards analysis: PASSED
stack analysis: PASSED
rpn_v[]={ 0 3 5 4 8 10 9 6 1 }
[1] 1 token_DecValue, type12
[2.2] 1 token_FloatinPointENGValue, type15
[3.0E9] 1 token_FloatinPointSCIValue, type16
[*] -1 token_Asterisk, type55
[0xdeadbeaf] 1 token_HexValue, type13
[0xffffffff] 1 token_HexValue, type13
[logicalAnd] -1 token_LogicalAnd, type41
[+] -1 token_Plus, type53
[+] -1 token_Plus, type53
#########################
# good expression #
#########################
(ops, type check is needed)