1a846937b75cc1852ffbaa1bb5d755286796b43c
kent
  Wed Aug 14 19:07:43 2019 -0700
Passing symbol table to parse for better error checking.

diff --git src/utils/strexCalc/strexCalc.c src/utils/strexCalc/strexCalc.c
index 7fc9852..d5547ad 100644
--- src/utils/strexCalc/strexCalc.c
+++ src/utils/strexCalc/strexCalc.c
@@ -1,45 +1,45 @@
 /* strexCalc - String expression calculator, mostly to test strex expression evaluator.. */
 #include "common.h"
 #include "linefile.h"
 #include "hash.h"
 #include "options.h"
 #include "verbose.h"
 #include "strex.h"
 
 void usage()
 /* Explain usage and exit. */
 {
 errAbort(
   "strexCalc - String expression calculator, mostly to test strex expression evaluator.\n"
   "usage:\n"
   "   strexCalc [variable assignments] expression\n"
   "command options in strexCalc are used to seed variables so for instance the command\n"
   "   strexCalc a=12 b=13 c=xyz 'a + b + c'\n"
   "ends up returning 1213xyz\n"
   );
 }
 
 char *symLookup(void *symbols, char *key)
 {
 return optionVal(key, NULL);
 }
 
 void strexCalc(char *expression)
 /* strexCalc - String expression calculator, mostly to test strex expression evaluator.. */
 {
-struct strexParse *parsed = strexParseString(expression, expression, 0);
+struct strexParse *parsed = strexParseString(expression, expression, 0, "options", symLookup);
 if (verboseLevel() > 1)
     strexParseDump(parsed, 0, stderr);
-char *result = strexEvalAsString(parsed, NULL, symLookup);
+char *result = strexEvalAsString(parsed, "options", symLookup);
 printf("%s\n", result);
 }
 
 int main(int argc, char *argv[])
 /* Process command line. */
 {
 optionInit(&argc, argv, NULL);
 if (argc != 2)
     usage();
 strexCalc(argv[1]);
 return 0;
 }