diff options
author | goodale <goodale@1faa4e14-9dd3-4be0-9f0e-ffe519881164> | 2000-09-20 06:34:52 +0000 |
---|---|---|
committer | goodale <goodale@1faa4e14-9dd3-4be0-9f0e-ffe519881164> | 2000-09-20 06:34:52 +0000 |
commit | 9eddc596891d1d87c87ccc24bb497a9816caba2a (patch) | |
tree | cad363b0fe4ed559d97f7c5ff56abc4a9675986e /src/Expression.c | |
parent | c1e6b818b3ad317850015cd9a80e7513a9660ffd (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.c | 12 |
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); |