X-Git-Url: https://arthur.barton.de/gitweb/?a=blobdiff_plain;f=src%2Feval.h;h=d68b9af474ce7f5806746dc7db2321d059104b7f;hb=3869e7eb5d6bbf3d4b78d84e5b36f19a8968971f;hp=0b174a20831a9841ba6604c218c0769233b10113;hpb=1dfe07df975a513a7761efe179425bfcd4804c71;p=netdata.git diff --git a/src/eval.h b/src/eval.h index 0b174a20..d68b9af4 100644 --- a/src/eval.h +++ b/src/eval.h @@ -14,7 +14,11 @@ typedef struct eval_expression { const char *source; const char *parsed_as; + int *status; calculated_number *this; + time_t *after; + time_t *before; + calculated_number result; int error; @@ -27,26 +31,28 @@ typedef struct eval_expression { struct rrdcalc *rrdcalc; } EVAL_EXPRESSION; -#define EVAL_VALUE_INVALID 0 -#define EVAL_VALUE_NUMBER 1 -#define EVAL_VALUE_VARIABLE 2 +#define EVAL_VALUE_INVALID 0 +#define EVAL_VALUE_NUMBER 1 +#define EVAL_VALUE_VARIABLE 2 #define EVAL_VALUE_EXPRESSION 3 -#define EVAL_ERROR_OK 0 +// parsing and evaluation +#define EVAL_ERROR_OK 0 // parsing errors -#define EVAL_ERROR_MISSING_CLOSE_SUBEXPRESSION 1 -#define EVAL_ERROR_UNKNOWN_OPERAND 2 -#define EVAL_ERROR_MISSING_OPERAND 3 -#define EVAL_ERROR_MISSING_OPERATOR 4 -#define EVAL_ERROR_REMAINING_GARBAGE 5 +#define EVAL_ERROR_MISSING_CLOSE_SUBEXPRESSION 1 +#define EVAL_ERROR_UNKNOWN_OPERAND 2 +#define EVAL_ERROR_MISSING_OPERAND 3 +#define EVAL_ERROR_MISSING_OPERATOR 4 +#define EVAL_ERROR_REMAINING_GARBAGE 5 +#define EVAL_ERROR_IF_THEN_ELSE_MISSING_ELSE 6 // evaluation errors -#define EVAL_ERROR_INVALID_VALUE 11 -#define EVAL_ERROR_INVALID_NUMBER_OF_OPERANDS 12 -#define EVAL_ERROR_VALUE_IS_NAN 13 -#define EVAL_ERROR_VALUE_IS_INFINITE 14 -#define EVAL_ERROR_UNKNOWN_VARIABLE 15 +#define EVAL_ERROR_INVALID_VALUE 101 +#define EVAL_ERROR_INVALID_NUMBER_OF_OPERANDS 102 +#define EVAL_ERROR_VALUE_IS_NAN 103 +#define EVAL_ERROR_VALUE_IS_INFINITE 104 +#define EVAL_ERROR_UNKNOWN_VARIABLE 105 // parse the given string as an expression and return: // a pointer to an expression if it parsed OK