@@ -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