From ad8302f4b107d48c82df2243550d103a3304afb6 Mon Sep 17 00:00:00 2001 From: Andrew Johnson Date: Thu, 3 May 2007 20:03:38 +0000 Subject: [PATCH] Added VAL keyword to CALC parser and evaluator; evaluates to previous result. --- src/libCom/calc/calcPerform.c | 4 ++++ src/libCom/calc/postfix.c | 1 + src/libCom/calc/postfixPvt.h | 2 +- 3 files changed, 6 insertions(+), 1 deletion(-) 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 */