74 return g_ascii_strtod(self->
p, &self->
p);
83 for(; *self->
p; self->
p++)
104 if(self->
p[1] ==
'-')
242 left = fmodf(left, right);
263 left = powf(left, right);
324 if(
IS_NULL_PTR(formula) || *formula ==
'\0')
return NAN;
326 gchar *dotformula = g_strdup(formula);
329 self->
p = g_strdelimit(dotformula,
",",
'.');
375 if(self->
token) result = NAN;
static float parse_expression(parser_state_t *self)
static float parse_unary_expression(parser_state_t *self)
static float parse_additive_expression(parser_state_t *self)
static float read_number(parser_state_t *self)
float dt_calculator_solve(const float x, const char *formula)
static float parse_multiplicative_expression(parser_state_t *self)
static float parse_power_expression(parser_state_t *self)
static float parse_primary_expression(parser_state_t *self)
static dt_calc_token_t * get_token(parser_state_t *self)
#define IS_NULL_PTR(p)
C is way too permissive with !=, == and if(var) checks, which can mean too many things depending on w...