embellish usage display
[calc.git] / parser.h
index 46500073105fd206140e36f2c53979a0309f69d5..bf28113c83ae94be6923d3e1a233db7fbb3a3436 100644 (file)
--- a/parser.h
+++ b/parser.h
@@ -1,42 +1,22 @@
 #ifndef __PARSER_H__
 #define __PARSER_H__
 
-/* function type */
-
-typedef enum {
-    Val = 0,
-    Add, Sub,
-    Mul, Div, Pow,
-    Sqr,
-    Cos, Sin, Atn,
-    Log, Exp
-} func_t;
-
-/* keyword type */
-
-typedef struct _keyword_t {
-    char *keyword;
-    func_t func;
-    int nbops;
-    int offset;
-} keyword_t;
-
-/* calculus element type */
-
-#define MAX_OPERANDS 2
-typedef struct _element_t {
-    func_t func;
-    int nbops;
-    struct _element_t *ops[MAX_OPERANDS];
-    float value;
-} element_t;
+#include "element.h"
+
+/* global variables */
+
+extern double answer;
 
 /* parser function */
 
-element_t *parser (char *str);
+void delelement (element_t *root);
+
+element_t *parser (char *str, char **next, int prio);
 
 void print_element (element_t *root, int level);
 
+double evaluate_element (element_t *root, char mask);
+
 #endif /* __PARSER_H__ */
 
 /* vim: set ts=4 sw=4 et: */