1 /*************************************************************************** 2 * 3 * Copyright 2012 BMW Car IT GmbH 4 * 5 * 6 * Licensed under the Apache License, Version 2.0 (the "License"); 7 * you may not use this file except in compliance with the License. 8 * You may obtain a copy of the License at 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, software 13 * distributed under the License is distributed on an "AS IS" BASIS, 14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 * See the License for the specific language governing permissions and 16 * limitations under the License. 17 * 18 ****************************************************************************/ 19 #ifndef __EXPRESSIONINTERPRETER_H__ 20 #define __EXPRESSIONINTERPRETER_H__ 21 22 #include "Expression.h" 23 #include <string> 24 using namespace std; 25 26 enum CommandResult 27 { 28 CommandSuccess, 29 CommandIncomplete, 30 CommandInvalid, 31 CommandExecutionFailed 32 }; 33 34 class ExpressionInterpreter 35 { 36 public: 37 ExpressionInterpreter(); 38 CommandResult interpretCommand(string userInput); 39 string getLastError(); 40 static void printExpressionTree(); 41 static void printExpressionList(); 42 43 static bool addExpression(callback funcPtr, string command); 44 45 private: 46 static Expression* mpRoot; 47 string mErrorText; 48 }; 49 50 #endif // __EXPRESSIONINTERPRETER_H__ 51