Skip to content

Commit 335bb7a

Browse files
committed
Updates to ExprTk
1 parent 973ee8e commit 335bb7a

File tree

1 file changed

+61
-64
lines changed

1 file changed

+61
-64
lines changed

exprtk/exprtk.hpp

Lines changed: 61 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -3649,10 +3649,11 @@ namespace exprtk
36493649
sequence_validator()
36503650
: lexer::token_scanner(2)
36513651
{
3652-
add_invalid(lexer::token::e_number ,lexer::token::e_number );
3653-
add_invalid(lexer::token::e_string ,lexer::token::e_string );
3654-
add_invalid(lexer::token::e_number ,lexer::token::e_string );
3655-
add_invalid(lexer::token::e_string ,lexer::token::e_number );
3652+
add_invalid(lexer::token::e_number, lexer::token::e_number);
3653+
add_invalid(lexer::token::e_string, lexer::token::e_string);
3654+
add_invalid(lexer::token::e_number, lexer::token::e_string);
3655+
add_invalid(lexer::token::e_string, lexer::token::e_number);
3656+
36563657
add_invalid_set1(lexer::token::e_assign );
36573658
add_invalid_set1(lexer::token::e_shr );
36583659
add_invalid_set1(lexer::token::e_shl );
@@ -3726,21 +3727,21 @@ namespace exprtk
37263727

37273728
void add_invalid_set1(lexer::token::token_type t)
37283729
{
3729-
add_invalid(t,lexer::token::e_assign);
3730-
add_invalid(t,lexer::token::e_shr );
3731-
add_invalid(t,lexer::token::e_shl );
3732-
add_invalid(t,lexer::token::e_lte );
3733-
add_invalid(t,lexer::token::e_ne );
3734-
add_invalid(t,lexer::token::e_gte );
3735-
add_invalid(t,lexer::token::e_lt );
3736-
add_invalid(t,lexer::token::e_gt );
3737-
add_invalid(t,lexer::token::e_eq );
3738-
add_invalid(t,lexer::token::e_comma );
3739-
add_invalid(t,lexer::token::e_div );
3740-
add_invalid(t,lexer::token::e_mul );
3741-
add_invalid(t,lexer::token::e_mod );
3742-
add_invalid(t,lexer::token::e_pow );
3743-
add_invalid(t,lexer::token::e_colon );
3730+
add_invalid(t, lexer::token::e_assign);
3731+
add_invalid(t, lexer::token::e_shr );
3732+
add_invalid(t, lexer::token::e_shl );
3733+
add_invalid(t, lexer::token::e_lte );
3734+
add_invalid(t, lexer::token::e_ne );
3735+
add_invalid(t, lexer::token::e_gte );
3736+
add_invalid(t, lexer::token::e_lt );
3737+
add_invalid(t, lexer::token::e_gt );
3738+
add_invalid(t, lexer::token::e_eq );
3739+
add_invalid(t, lexer::token::e_comma );
3740+
add_invalid(t, lexer::token::e_div );
3741+
add_invalid(t, lexer::token::e_mul );
3742+
add_invalid(t, lexer::token::e_mod );
3743+
add_invalid(t, lexer::token::e_pow );
3744+
add_invalid(t, lexer::token::e_colon );
37443745
}
37453746

37463747
bool invalid_bracket_check(lexer::token::token_type base, lexer::token::token_type t)
@@ -3750,7 +3751,7 @@ namespace exprtk
37503751
switch (t)
37513752
{
37523753
case lexer::token::e_assign : return (']' != base);
3753-
case lexer::token::e_string : return true;
3754+
case lexer::token::e_string : return (')' != base);
37543755
default : return false;
37553756
}
37563757
}
@@ -3821,23 +3822,23 @@ namespace exprtk
38213822
sequence_validator_3tokens()
38223823
: lexer::token_scanner(3)
38233824
{
3824-
add_invalid(lexer::token::e_number , lexer::token::e_number , lexer::token::e_number);
3825-
add_invalid(lexer::token::e_string , lexer::token::e_string , lexer::token::e_string);
3826-
add_invalid(lexer::token::e_comma , lexer::token::e_comma , lexer::token::e_comma );
3825+
add_invalid(lexer::token::e_number, lexer::token::e_number, lexer::token::e_number);
3826+
add_invalid(lexer::token::e_string, lexer::token::e_string, lexer::token::e_string);
3827+
add_invalid(lexer::token::e_comma , lexer::token::e_comma , lexer::token::e_comma );
38273828

3828-
add_invalid(lexer::token::e_add ,lexer::token::e_add , lexer::token::e_add);
3829-
add_invalid(lexer::token::e_sub ,lexer::token::e_sub , lexer::token::e_sub);
3830-
add_invalid(lexer::token::e_div ,lexer::token::e_div , lexer::token::e_div);
3831-
add_invalid(lexer::token::e_mul ,lexer::token::e_mul , lexer::token::e_mul);
3832-
add_invalid(lexer::token::e_mod ,lexer::token::e_mod , lexer::token::e_mod);
3833-
add_invalid(lexer::token::e_pow ,lexer::token::e_pow , lexer::token::e_pow);
3829+
add_invalid(lexer::token::e_add , lexer::token::e_add , lexer::token::e_add );
3830+
add_invalid(lexer::token::e_sub , lexer::token::e_sub , lexer::token::e_sub );
3831+
add_invalid(lexer::token::e_div , lexer::token::e_div , lexer::token::e_div );
3832+
add_invalid(lexer::token::e_mul , lexer::token::e_mul , lexer::token::e_mul );
3833+
add_invalid(lexer::token::e_mod , lexer::token::e_mod , lexer::token::e_mod );
3834+
add_invalid(lexer::token::e_pow , lexer::token::e_pow , lexer::token::e_pow );
38343835

3835-
add_invalid(lexer::token::e_add ,lexer::token::e_sub , lexer::token::e_add);
3836-
add_invalid(lexer::token::e_sub ,lexer::token::e_add , lexer::token::e_sub);
3837-
add_invalid(lexer::token::e_div ,lexer::token::e_mul , lexer::token::e_div);
3838-
add_invalid(lexer::token::e_mul ,lexer::token::e_div , lexer::token::e_mul);
3839-
add_invalid(lexer::token::e_mod ,lexer::token::e_pow , lexer::token::e_mod);
3840-
add_invalid(lexer::token::e_pow ,lexer::token::e_mod , lexer::token::e_pow);
3836+
add_invalid(lexer::token::e_add , lexer::token::e_sub , lexer::token::e_add );
3837+
add_invalid(lexer::token::e_sub , lexer::token::e_add , lexer::token::e_sub );
3838+
add_invalid(lexer::token::e_div , lexer::token::e_mul , lexer::token::e_div );
3839+
add_invalid(lexer::token::e_mul , lexer::token::e_div , lexer::token::e_mul );
3840+
add_invalid(lexer::token::e_mod , lexer::token::e_pow , lexer::token::e_mod );
3841+
add_invalid(lexer::token::e_pow , lexer::token::e_mod , lexer::token::e_pow );
38413842
}
38423843

38433844
bool result()
@@ -6999,7 +7000,7 @@ namespace exprtk
69997000
r0 = n0_c.second;
70007001
else if (n0_e.first)
70017002
{
7002-
T r0_value = n0_e.second->value();
7003+
const T r0_value = n0_e.second->value();
70037004

70047005
if (r0_value < 0)
70057006
return false;
@@ -7013,7 +7014,7 @@ namespace exprtk
70137014
r1 = n1_c.second;
70147015
else if (n1_e.first)
70157016
{
7016-
T r1_value = n1_e.second->value();
7017+
const T r1_value = n1_e.second->value();
70177018

70187019
if (r1_value < 0)
70197020
return false;
@@ -9471,10 +9472,7 @@ namespace exprtk
94719472

94729473
inline T value() const
94739474
{
9474-
if (!arg_list_.empty())
9475-
return VarArgFunction::process(arg_list_);
9476-
else
9477-
return std::numeric_limits<T>::quiet_NaN();
9475+
return VarArgFunction::process(arg_list_);
94789476
}
94799477

94809478
inline typename expression_node<T>::node_type type() const
@@ -9773,8 +9771,8 @@ namespace exprtk
97739771

97749772
while (vec < upper_bound)
97759773
{
9776-
#define exprtk_loop(N) \
9777-
vec[N] = v; \
9774+
#define exprtk_loop(N) \
9775+
vec[N] = v; \
97789776

97799777
exprtk_loop( 0) exprtk_loop( 1)
97809778
exprtk_loop( 2) exprtk_loop( 3)
@@ -20661,25 +20659,25 @@ namespace exprtk
2066120659

2066220660
switch (current_token().type)
2066320661
{
20664-
case token_t::e_assign : current_state.set(e_level00,e_level00,details::e_assign); break;
20665-
case token_t::e_addass : current_state.set(e_level00,e_level00,details::e_addass); break;
20666-
case token_t::e_subass : current_state.set(e_level00,e_level00,details::e_subass); break;
20667-
case token_t::e_mulass : current_state.set(e_level00,e_level00,details::e_mulass); break;
20668-
case token_t::e_divass : current_state.set(e_level00,e_level00,details::e_divass); break;
20669-
case token_t::e_modass : current_state.set(e_level00,e_level00,details::e_modass); break;
20670-
case token_t::e_swap : current_state.set(e_level00,e_level00,details::e_swap ); break;
20671-
case token_t::e_lt : current_state.set(e_level05,e_level06,details:: e_lt); break;
20672-
case token_t::e_lte : current_state.set(e_level05,e_level06,details:: e_lte); break;
20673-
case token_t::e_eq : current_state.set(e_level05,e_level06,details:: e_eq); break;
20674-
case token_t::e_ne : current_state.set(e_level05,e_level06,details:: e_ne); break;
20675-
case token_t::e_gte : current_state.set(e_level05,e_level06,details:: e_gte); break;
20676-
case token_t::e_gt : current_state.set(e_level05,e_level06,details:: e_gt); break;
20677-
case token_t::e_add : current_state.set(e_level07,e_level08,details:: e_add); break;
20678-
case token_t::e_sub : current_state.set(e_level07,e_level08,details:: e_sub); break;
20679-
case token_t::e_div : current_state.set(e_level10,e_level11,details:: e_div); break;
20680-
case token_t::e_mul : current_state.set(e_level10,e_level11,details:: e_mul); break;
20681-
case token_t::e_mod : current_state.set(e_level10,e_level11,details:: e_mod); break;
20682-
case token_t::e_pow : current_state.set(e_level12,e_level12,details:: e_pow); break;
20662+
case token_t::e_assign : current_state.set(e_level00,e_level00, details::e_assign); break;
20663+
case token_t::e_addass : current_state.set(e_level00,e_level00, details::e_addass); break;
20664+
case token_t::e_subass : current_state.set(e_level00,e_level00, details::e_subass); break;
20665+
case token_t::e_mulass : current_state.set(e_level00,e_level00, details::e_mulass); break;
20666+
case token_t::e_divass : current_state.set(e_level00,e_level00, details::e_divass); break;
20667+
case token_t::e_modass : current_state.set(e_level00,e_level00, details::e_modass); break;
20668+
case token_t::e_swap : current_state.set(e_level00,e_level00, details::e_swap ); break;
20669+
case token_t::e_lt : current_state.set(e_level05,e_level06, details:: e_lt); break;
20670+
case token_t::e_lte : current_state.set(e_level05,e_level06, details:: e_lte); break;
20671+
case token_t::e_eq : current_state.set(e_level05,e_level06, details:: e_eq); break;
20672+
case token_t::e_ne : current_state.set(e_level05,e_level06, details:: e_ne); break;
20673+
case token_t::e_gte : current_state.set(e_level05,e_level06, details:: e_gte); break;
20674+
case token_t::e_gt : current_state.set(e_level05,e_level06, details:: e_gt); break;
20675+
case token_t::e_add : current_state.set(e_level07,e_level08, details:: e_add); break;
20676+
case token_t::e_sub : current_state.set(e_level07,e_level08, details:: e_sub); break;
20677+
case token_t::e_div : current_state.set(e_level10,e_level11, details:: e_div); break;
20678+
case token_t::e_mul : current_state.set(e_level10,e_level11, details:: e_mul); break;
20679+
case token_t::e_mod : current_state.set(e_level10,e_level11, details:: e_mod); break;
20680+
case token_t::e_pow : current_state.set(e_level12,e_level12, details:: e_pow); break;
2068320681
default : if (token_t::e_symbol == current_token().type)
2068420682
{
2068520683
static const std::string s_and = "and";
@@ -23504,8 +23502,7 @@ namespace exprtk
2350423502
if (*iter == delimiter)
2350523503
{
2350623504
result.push_back(std::string(current_begin, iter));
23507-
++iter;
23508-
current_begin = iter;
23505+
current_begin = ++iter;
2350923506
}
2351023507
else
2351123508
++iter;

0 commit comments

Comments
 (0)