]> SALOME platform Git repositories - modules/kernel.git/blob - src/Notebook/SALOME_Eval.hxx
Salome HOME
Implementation of expression evaluator
[modules/kernel.git] / src / Notebook / SALOME_Eval.hxx
1 //  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
2 //
3 //  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 //  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5 //
6 //  This library is free software; you can redistribute it and/or
7 //  modify it under the terms of the GNU Lesser General Public
8 //  License as published by the Free Software Foundation; either
9 //  version 2.1 of the License.
10 //
11 //  This library is distributed in the hope that it will be useful,
12 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
13 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 //  Lesser General Public License for more details.
15 //
16 //  You should have received a copy of the GNU Lesser General Public
17 //  License along with this library; if not, write to the Free Software
18 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
19 //
20 //  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 //
22 //  File   : SALOME_Eval.hxx
23 //  Author : Peter KURNEV
24 //  Module : SALOME
25
26
27 #ifndef SALOME_Eval_Header_File
28 #define SALOME_Eval_Header_File
29
30 #ifdef WNT
31 #pragma warning(disable : 4786)
32 #endif
33
34 #include <string>
35 #include <list>
36 #include <set>
37 //
38 using namespace std;
39
40 typedef string RString;
41 typedef list<string> RStringList;
42 typedef RStringList::iterator  ListIteratorOfRStringList;
43 typedef set<RString> SetOfRString;
44 typedef SetOfRString::iterator SetIteratorOfSetOfRString;
45 typedef pair< SetIteratorOfSetOfRString, bool > SetPair;
46
47 typedef enum
48   {
49     SALOME_EvalExpr_OK,               //!< No errors found
50     SALOME_EvalExpr_OperandsNotMatch, //!< Types of arguments are invalid for this operation
51     SALOME_EvalExpr_InvalidResult,    //!< Operation cannot find result (for example, division by zero)
52     SALOME_EvalExpr_InvalidOperation, //!< Unknown operation
53     SALOME_EvalExpr_OperationsNull,   //!< Internal operations pointer of parser is null
54     SALOME_EvalExpr_InvalidToken,     //!< Invalid token (neither operation, nor parameter of value)
55     SALOME_EvalExpr_CloseExpected,    //!< Closing bracket is expected
56     SALOME_EvalExpr_ExcessClose,      //!< Extra closing bracket is found
57     SALOME_EvalExpr_BracketsNotMatch, //!< Opening and closing brackets are of different type, e.g. [)
58     SALOME_EvalExpr_StackUnderflow,   //!< There are no arguments in the stack for the operation
59     SALOME_EvalExpr_ExcessData        //!< The parsing is finished, but there are more then one value in the stack
60   } SALOME_EvalExprError;
61
62 #endif