xref: /minix3/minix/lib/libmagicrt/include/magic_eval.h (revision b2ed49a5d83e311ee0fa9e5ff613639b1bf77aaf)
1*b2ed49a5SDavid van Moolenbroek #ifndef _MAGIC_EVAL_H
2*b2ed49a5SDavid van Moolenbroek #define _MAGIC_EVAL_H
3*b2ed49a5SDavid van Moolenbroek 
4*b2ed49a5SDavid van Moolenbroek #include <magic_def.h>
5*b2ed49a5SDavid van Moolenbroek 
6*b2ed49a5SDavid van Moolenbroek typedef long (*magic_eval_func_t) (long arg);
7*b2ed49a5SDavid van Moolenbroek 
8*b2ed49a5SDavid van Moolenbroek PUBLIC void magic_eval_init(void);
9*b2ed49a5SDavid van Moolenbroek 
10*b2ed49a5SDavid van Moolenbroek /* Eval frontends. */
11*b2ed49a5SDavid van Moolenbroek PUBLIC int magic_eval_int(char *expr, long *result);
12*b2ed49a5SDavid van Moolenbroek PUBLIC int magic_eval_bool(char *expr, char *result);
13*b2ed49a5SDavid van Moolenbroek PUBLIC int magic_eval_float(char *expr, double *result);
14*b2ed49a5SDavid van Moolenbroek 
15*b2ed49a5SDavid van Moolenbroek /* Printing. */
16*b2ed49a5SDavid van Moolenbroek #define MAGIC_EVAL_PRINT_FUNC_RESULTS   0x01
17*b2ed49a5SDavid van Moolenbroek #define MAGIC_EVAL_PRINT_VAR_VALUES     0x02
18*b2ed49a5SDavid van Moolenbroek #define MAGIC_EVAL_PRINT_STYLE_DEFAULT  0
19*b2ed49a5SDavid van Moolenbroek #define MAGIC_EVAL_PRINT_STYLE_ALL      (MAGIC_EVAL_PRINT_FUNC_RESULTS|MAGIC_EVAL_PRINT_VAR_VALUES)
20*b2ed49a5SDavid van Moolenbroek 
21*b2ed49a5SDavid van Moolenbroek PUBLIC int magic_eval_get_print_style(void);
22*b2ed49a5SDavid van Moolenbroek PUBLIC void magic_eval_set_print_style(int style);
23*b2ed49a5SDavid van Moolenbroek 
24*b2ed49a5SDavid van Moolenbroek #endif
25*b2ed49a5SDavid van Moolenbroek 
26