From c1aecc05e6cad977423a15905f6bd4f5f33b53c8 Mon Sep 17 00:00:00 2001 From: Nilay Vaish Date: Sat, 11 Oct 2014 16:16:00 -0500 Subject: ext: dsent: adds a Python interface, drops C++ one This patch extensively modifies DSENT so that it can be accessed using Python. To access the Python interface, DSENT needs to compiled as a shared library. For this purpose a CMakeLists.txt file has been added. Some of the code that is not required is being removed. --- ext/dsent/libutil/Calculator.h | 51 +++++++++++++++++++++++++++++++++++++----- 1 file changed, 45 insertions(+), 6 deletions(-) (limited to 'ext/dsent/libutil/Calculator.h') diff --git a/ext/dsent/libutil/Calculator.h b/ext/dsent/libutil/Calculator.h index 4fcdf471f..78b3fb63a 100644 --- a/ext/dsent/libutil/Calculator.h +++ b/ext/dsent/libutil/Calculator.h @@ -1,8 +1,30 @@ +/* Copyright (c) 2012 Massachusetts Institute of Technology + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + #ifndef __LIBUTIL_CALCULATOR_H__ #define __LIBUTIL_CALCULATOR_H__ #include +#include "model/Model.h" #include "String.h" #include "Map.h" #include "Assert.h" @@ -10,6 +32,7 @@ namespace LibUtil { using std::istringstream; + using std::ostringstream; /* * program: @@ -63,14 +86,30 @@ namespace LibUtil public: void reset(); - void evaluateString(const String& str_); + void evaluateString(const String& str_, + const std::map &config, + DSENT::Model *ms_model, + std::map &outputs); protected: Token getToken(istringstream& ist_); - double prim(istringstream& ist_, bool is_get_); - double term(istringstream& ist_, bool is_get_); - double expr(istringstream& ist_, bool is_get_); - virtual double getEnvVar(const String& var_name_) const; + + double prim(istringstream& ist_, bool is_get_, + const std::map &config, + DSENT::Model *ms_model); + + double term(istringstream& ist_, bool is_get_, + const std::map &config, + DSENT::Model *ms_model); + + double expr(istringstream& ist_, bool is_get_, + const std::map &config, + DSENT::Model *ms_model); + + virtual double getEnvVar( + const String& var_name_, + const std::map &config, + DSENT::Model *ms_model) const; protected: String m_reserved_chars_; @@ -79,7 +118,7 @@ namespace LibUtil Token m_curr_token_; double m_value_number_; String m_value_string_; - }; // class Calculator + }; } // namespace LibUtil #endif // __LIBUTIL_CALCULATOR_H__ -- cgit v1.2.3