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