ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-3.0/src/selection/SelectionEvaluator.hpp
(Generate patch)

Comparing trunk/OOPSE-3.0/src/selection/SelectionEvaluator.hpp (file contents):
Revision 1966 by tim, Thu Feb 3 14:04:59 2005 UTC vs.
Revision 1967 by tim, Thu Feb 3 23:14:05 2005 UTC

# Line 49 | Line 49
49   #include "brains/SimInfo.hpp"
50   #include "selection/Token.hpp"
51   #include "selection/SelectionCompiler.hpp"
52 + #include "selection/NameFinder.hpp"
53   #include "utils/BitSet.hpp"
54 <
54 > #include "primitives/StuntDouble.hpp"
55   namespace oopse {
56  
57 +
58   class Context {
59      public:
60          
# Line 70 | Line 72 | class Context {
72          int pc;
73   };
74  
75 +
76   /**
77   * @class SelectionEvaluator SelectionEvaluator.hpp "selection/SelectionEvaluator"
78   * @brief Evalute the tokens compiled by SelectionCompiler and return a BitSet
# Line 126 | Line 129 | class SelectionEvaluator{
129          
130          void define();
131          void select();
132 <        void predefine();
132 >        void predefine(const std::string& script);
133  
134          void instructionDispatchLoop();
135  
136 <        void withinInstruction(const Token& instruction, BitSet& , BitSet&);
136 >        void withinInstruction(const Token& instruction, BitSet& bs);
137 >        
138 >        BitSet comparatorInstruction(const Token& instruction);
139 >        void compareProperty(StuntDouble* sd, BitSet& bs, int property, int comparator, float comparisonValue);
140 >        BitSet nameInstruction(const std::string& name);
141  
142 <        BitSet expression(std::vector<Token>& tokens, int pc);
142 >        BitSet expression(const std::vector<Token>& tokens, int pc);
143  
144 <
144 >        BitSet lookupValue(const std::string& variable);
145 >        
146          void evalError(const std::string& message);
147  
148          void unrecognizedCommand(const Token& token) {
149 <            evalError("unrecognized command:" + token.value);
149 >            evalError("unrecognized command:" + boost::any_cast<std::string>(token.value));
150          }        
151 <        
151 >
152 >        void unrecognizedExpression() {
153 >            evalError("unrecognized expression");
154 >        }
155 >
156 >        void unrecognizedAtomProperty(int property){
157 >            evalError("unrecognized atom property");
158 >        }
159 >
160 >        void unrecognizedIdentifier(const std::string& identifier) {
161 >            evalError("unrecognized identifier:" + identifier);
162 >        }    
163          SelectionCompiler compiler;
164  
165          const static int scriptLevelMax = 10;
# Line 162 | Line 181 | class SelectionEvaluator{
181          int statementLength;
182  
183          SimInfo* info;
184 <
185 <        std::map<std::string, std::vector<Token> > variables;
184 >        NameFinder finder;
185 >        int nStuntDouble;   //natoms + nrigidbodies
186 >        std::map<std::string, boost::any > variables;
187   };
188  
189   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines