45 |
|
#include <map> |
46 |
|
#include <string> |
47 |
|
#include <vector> |
48 |
+ |
#include <fstream> |
49 |
|
|
50 |
|
#include "brains/SimInfo.hpp" |
51 |
|
#include "selection/Token.hpp" |
52 |
|
#include "selection/SelectionCompiler.hpp" |
53 |
|
#include "selection/NameFinder.hpp" |
54 |
+ |
#include "selection/DistanceFinder.hpp" |
55 |
|
#include "utils/BitSet.hpp" |
56 |
|
#include "primitives/StuntDouble.hpp" |
57 |
+ |
#include "utils/StringUtils.hpp" |
58 |
|
namespace oopse { |
59 |
|
|
60 |
|
|
145 |
|
BitSet comparatorInstruction(const Token& instruction); |
146 |
|
void compareProperty(StuntDouble* sd, BitSet& bs, int property, int comparator, float comparisonValue); |
147 |
|
BitSet nameInstruction(const std::string& name); |
148 |
< |
|
148 |
> |
BitSet indexInstruction(const boost::any& value); |
149 |
|
BitSet expression(const std::vector<Token>& tokens, int pc); |
150 |
|
|
151 |
|
BitSet lookupValue(const std::string& variable); |
170 |
|
evalError("unrecognized identifier:" + identifier); |
171 |
|
} |
172 |
|
|
173 |
+ |
void invalidIndexRange(std::pair<int, int> range) { |
174 |
+ |
evalError("invalid index range: [" + toString(range.first) + ", " + toString(range.second) + ")"); |
175 |
+ |
} |
176 |
+ |
|
177 |
+ |
void invalidIndex(int index) { |
178 |
+ |
evalError("invalid index : " + toString(index) ); |
179 |
+ |
} |
180 |
+ |
|
181 |
+ |
|
182 |
|
bool containDynamicToken(const std::vector<Token>& tokens); |
183 |
|
|
184 |
|
SelectionCompiler compiler; |
202 |
|
int statementLength; |
203 |
|
|
204 |
|
SimInfo* info; |
205 |
< |
NameFinder finder; |
205 |
> |
NameFinder nameFinder; |
206 |
> |
DistanceFinder distanceFinder; |
207 |
|
int nStuntDouble; //natoms + nrigidbodies |
195 |
– |
std::map<std::string, boost::any > variables; |
208 |
|
|
209 |
+ |
typedef std::map<std::string, boost::any > VariablesType; |
210 |
+ |
VariablesType variables; |
211 |
+ |
|
212 |
|
bool isDynamic_; |
213 |
|
bool isLoaded_; |
214 |
|
|