From 73f39301faa93ca13420292928be9dfe434f253b Mon Sep 17 00:00:00 2001 From: Giovanni Bussi <giovanni.bussi@gmail.com> Date: Sun, 23 Jul 2017 11:04:37 +0200 Subject: [PATCH] Fixed parser for constants It allows to parse correctly old style (2.0pi) and lepton (2.0*pi) --- src/tools/Tools.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/tools/Tools.cpp b/src/tools/Tools.cpp index be73c3546..587a6de9c 100644 --- a/src/tools/Tools.cpp +++ b/src/tools/Tools.cpp @@ -83,7 +83,13 @@ bool Tools::convertToReal(const string & str,T & t) { t=pi; return true; } else if(str=="-PI" || str=="-pi") { t=-pi; return true; - } else if( str.find("PI")!=std::string::npos ) { + } + try{ + t=lepton::Parser::parse(str).evaluate(leptonConstants); + return true; + } catch(PLMD::lepton::Exception& exc){ + } + if( str.find("PI")!=std::string::npos ) { std::size_t pi_start=str.find_first_of("PI"); if(str.substr(pi_start)!="PI") return false; istringstream nstr(str.substr(0,pi_start)); @@ -105,11 +111,6 @@ bool Tools::convertToReal(const string & str,T & t) { t=NAN; return true; } - try{ - t=lepton::Parser::parse(str).evaluate(leptonConstants); - return true; - } catch(PLMD::lepton::Exception& exc){ - } return convertToAny(str,t); } -- GitLab