diff lwlib/lw_expr.h @ 367:34dfc9747f23

Reduction passes complete
author lost@starbug
date Thu, 15 Apr 2010 21:56:06 -0600
parents 1649bc7bda5a
children 6b33faa21a0a
line wrap: on
line diff
--- a/lwlib/lw_expr.h	Wed Apr 14 21:02:53 2010 -0600
+++ b/lwlib/lw_expr.h	Thu Apr 15 21:56:06 2010 -0600
@@ -70,6 +70,7 @@
 typedef lw_expr_t lw_expr_fn_t(int t, void *ptr, void *priv);
 typedef lw_expr_t lw_expr_fn2_t(char *var, void *priv);
 typedef lw_expr_t lw_expr_fn3_t(char **p, void *priv);
+typedef int lw_expr_testfn_t(lw_expr_t e, void *priv);
 
 #else /* def ___lw_expr_c_seen___ */
 
@@ -95,6 +96,14 @@
 extern lw_expr_t lw_expr_parse(char **p, void *priv);
 extern int lw_expr_istype(lw_expr_t e, int t);
 extern int lw_expr_intval(lw_expr_t e);
+extern int lw_expr_specint(lw_expr_t e);
+
+typedef int lw_expr_testfn_t(lw_expr_t e, void *priv);
+
+// run a function on all terms in an expression; if the function
+// returns non-zero for any term, return non-zero, else return
+// zero
+extern int lw_expr_testterms(lw_expr_t e, lw_expr_testfn_t *fn, void *priv);
 
 #endif /* def ___lw_expr_c_seen___ */