diff --git a/src/libCom/calc/calcPerform.c b/src/libCom/calc/calcPerform.c index 90f41e261..9744d5ea1 100644 --- a/src/libCom/calc/calcPerform.c +++ b/src/libCom/calc/calcPerform.c @@ -61,6 +61,10 @@ epicsShareFunc long pinst += sizeof(double) - 1; break; + case FETCH_VAL: + *++ptop = *presult; + break; + case FETCH_A: case FETCH_B: case FETCH_C: diff --git a/src/libCom/calc/postfix.c b/src/libCom/calc/postfix.c index fc6320930..8386bfd7d 100644 --- a/src/libCom/calc/postfix.c +++ b/src/libCom/calc/postfix.c @@ -122,6 +122,7 @@ static const ELEMENT operands[] = { {"SQRT", 7, 8, 0, UNARY_OPERATOR, SQU_RT}, {"TAN", 7, 8, 0, UNARY_OPERATOR, TAN}, {"TANH", 7, 8, 0, UNARY_OPERATOR, TANH}, +{"VAL", 0, 0, 1, OPERAND, FETCH_VAL}, {"~", 7, 8, 0, UNARY_OPERATOR, BIT_NOT}, }; diff --git a/src/libCom/calc/postfixPvt.h b/src/libCom/calc/postfixPvt.h index bfac987fb..ace9b3f4b 100644 --- a/src/libCom/calc/postfixPvt.h +++ b/src/libCom/calc/postfixPvt.h @@ -28,7 +28,7 @@ typedef enum { END_EXPRESSION = 0, /* Operands */ - LITERAL, + LITERAL, FETCH_VAL, FETCH_A, FETCH_B, FETCH_C, FETCH_D, FETCH_E, FETCH_F, FETCH_G, FETCH_H, FETCH_I, FETCH_J, FETCH_K, FETCH_L, /* Assignment */