aboutsummaryrefslogtreecommitdiff
path: root/src/Expression.c
diff options
context:
space:
mode:
authorgoodale <goodale@1faa4e14-9dd3-4be0-9f0e-ffe519881164>2000-09-20 06:34:52 +0000
committergoodale <goodale@1faa4e14-9dd3-4be0-9f0e-ffe519881164>2000-09-20 06:34:52 +0000
commit9eddc596891d1d87c87ccc24bb497a9816caba2a (patch)
treecad363b0fe4ed559d97f7c5ff56abc4a9675986e /src/Expression.c
parentc1e6b818b3ad317850015cd9a80e7513a9660ffd (diff)
Oops. Forgot to commit these mods last night. Basically allowing a data
pointer to be sent to the evaluator. Tom git-svn-id: http://svn.cactuscode.org/arrangements/CactusConnect/HTTPD/trunk@53 1faa4e14-9dd3-4be0-9f0e-ffe519881164
Diffstat (limited to 'src/Expression.c')
-rw-r--r--src/Expression.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/Expression.c b/src/Expression.c
index 44b0872..28f5251 100644
--- a/src/Expression.c
+++ b/src/Expression.c
@@ -8,7 +8,9 @@
@version $Header$
@@*/
+#ifndef TEST_HTPP_EXPRESSION
#include "cctk.h"
+#endif
#include <stdio.h>
#include <stdlib.h>
@@ -129,7 +131,9 @@ char *HTTP_ExpressionParse(const char *expression)
@endhistory
@@*/
-double HTTP_ExpressionEvaluate(char *buffer, double (*eval)(const char *))
+double HTTP_ExpressionEvaluate(char *buffer,
+ double (*eval)(const char *, void *),
+ void *data)
{
char *first;
char *token;
@@ -148,7 +152,7 @@ double HTTP_ExpressionEvaluate(char *buffer, double (*eval)(const char *))
if(!isoperator(token))
{
/* Evaluate and put on stack */
- stack[stackpointer] = eval(token);
+ stack[stackpointer] = eval(token, data);
stackpointer++;
}
else
@@ -789,7 +793,7 @@ static void printstack(char *stack)
#ifdef TEST_HTTP_EVALUATE
-double evaluator(const char *token)
+double evaluator(const char *token, void *data)
{
double retval;
@@ -813,7 +817,7 @@ int main(int argc, char *argv[])
buffer = HTTP_ExpressionParse(argv[1]);
- printf("Value is %f\n", HTTP_ExpressionEvaluate(buffer, evaluator));
+ printf("Value is %f\n", HTTP_ExpressionEvaluate(buffer, evaluator,NULL));
free(buffer);