ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/trunk/src/selection/SelectionCompiler.cpp
(Generate patch)

Comparing trunk/src/selection/SelectionCompiler.cpp (file contents):
Revision 1523 by kstocke1, Fri Nov 19 20:27:02 2010 UTC vs.
Revision 1953 by gezelter, Thu Dec 5 18:19:26 2013 UTC

# Line 35 | Line 35
35   *                                                                      
36   * [1]  Meineke, et al., J. Comp. Chem. 26, 252-271 (2005).            
37   * [2]  Fennell & Gezelter, J. Chem. Phys. 124, 234104 (2006).          
38 < * [3]  Sun, Lin & Gezelter, J. Chem. Phys. 128, 24107 (2008).          
39 < * [4]  Vardeman & Gezelter, in progress (2009).                        
38 > * [3]  Sun, Lin & Gezelter, J. Chem. Phys. 128, 234107 (2008).          
39 > * [4]  Kuang & Gezelter,  J. Chem. Phys. 133, 164101 (2010).
40 > * [5]  Vardeman, Stocker & Gezelter, J. Chem. Theory Comput. 7, 834 (2011).
41   */
42  
43   #include "selection/SelectionCompiler.hpp"
# Line 55 | Line 56 | namespace OpenMD {
56      if (internalCompile()) {
57        return true;
58      }
59 <    
59 >      
60      int icharEnd;
61      if ((icharEnd = script.find('\r', ichCurrentCommand)) == std::string::npos &&
62          (icharEnd = script.find('\n', ichCurrentCommand)) == std::string::npos) {
# Line 118 | Line 119 | namespace OpenMD {
119          //    ltoken.push_back(Token(Token::string, str));
120          //    continue;
121          //}
122 <        if (lookingAtDecimal((tokCommand & Token::negnums) != 0)) {
122 >        //if (lookingAtDecimal((tokCommand & Token::negnums) != 0)) {
123 >        if (lookingAtDecimal((tokCommand) != 0)) {
124            float value = lexi_cast<float>(script.substr(ichToken, cchToken));        
125            ltoken.push_back(Token(Token::decimal, boost::any(value)));
126            continue;
127          }
128 <        if (lookingAtInteger((tokCommand & Token::negnums) != 0)) {
128 >        //if (lookingAtInteger((tokCommand & Token::negnums) != 0)) {
129 >        if (lookingAtInteger((tokCommand) != 0)) {
130  
131            int val = lexi_cast<int>(script.substr(ichToken, cchToken));
132            ltoken.push_back(Token(Token::integer,   boost::any(val)));
# Line 176 | Line 179 | namespace OpenMD {
179          continue;
180        }
181  
182 <      if (ltoken.size() == 0) {
182 >      if (ltoken.empty()) {
183          return commandExpected();
184        }
185          
# Line 371 | Line 374 | namespace OpenMD {
374        return false;
375      }
376      cchToken = ichT - ichToken;
377 <    return true;
377 >    return isInteger(script.substr(ichToken, ichT).c_str());
378    }
379  
380    bool SelectionCompiler::lookingAtLookupToken() {
# Line 440 | Line 443 | namespace OpenMD {
443  
444    bool SelectionCompiler::compileExpression() {
445      /** todo */
446 <    int i = 1;
446 >    unsigned int i = 1;
447      int tokCommand = atokenCommand[0].tok;
448      if (tokCommand == Token::define) {
449        i = 2;
# Line 665 | Line 668 | namespace OpenMD {
668    bool SelectionCompiler::isNameValid(const std::string& name) {
669      int nbracket = 0;
670      int ndot = 0;
671 <    for (int i =0 ; i < name.size(); ++i) {
671 >    for (unsigned int i = 0 ; i < name.size(); ++i) {
672        switch(name[i]) {
673  
674        case '[' :
# Line 689 | Line 692 | namespace OpenMD {
692      if (token.tok == Token::integer) {
693        int index = boost::any_cast<int>(token.value);
694        int tok = tokPeek();
692      std::cout << "Token::to is " << Token::to << ", tok = " << tok << std::endl;
695        if (tok == Token::to) {
696          tokenNext();
697          tok = tokPeek();

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines