| 66 | 
  | 
 | 
| 67 | 
  | 
    clausePrimitive  ::= clauseComparator | | 
| 68 | 
  | 
                         clauseWithin | | 
| 69 | 
< | 
                         clauseChemObject | | 
| 69 | 
> | 
                         clauseName | | 
| 70 | 
  | 
                         none | all | | 
| 71 | 
  | 
                         ( clauseOr ) | 
| 72 | 
  | 
 | 
| 75 | 
  | 
    clauseWithin     ::= WITHIN ( clauseDistance , expression ) | 
| 76 | 
  | 
 | 
| 77 | 
  | 
    clauseDistance   ::= integer | decimal | 
| 78 | 
< | 
     | 
| 79 | 
< | 
    clauseChemObject::= {clauseMolecule} | {clauseStuntDouble} | 
| 78 | 
> | 
         | 
| 79 | 
> | 
    clauseName::= *|string{.string{.string}} | 
| 80 | 
  | 
 | 
| 81 | 
– | 
    clauseMolecule ::= {clauseMolName} | {clauseMolIndex} | 
| 81 | 
  | 
 | 
| 83 | 
– | 
    clauseMolName ::= molname clauseName | 
| 84 | 
– | 
     | 
| 85 | 
– | 
    clauseName::= *|string | 
| 86 | 
– | 
 | 
| 87 | 
– | 
    clauseMolIndex ::= molindex clauseIndex | 
| 88 | 
– | 
     | 
| 89 | 
– | 
    clauseIndex ::= integer {- integer } | 
| 90 | 
– | 
     | 
| 91 | 
– | 
    clauseStuntDouble ::= {clauseStuntDoubleName} | {clauseStuntDoubleIndex} | 
| 92 | 
– | 
 | 
| 93 | 
– | 
    clauseStuntDoubleName ::= name clauseName | 
| 94 | 
– | 
 | 
| 95 | 
– | 
    clauseStuntDoubleIndex ::= index clauseIndex | 
| 96 | 
– | 
 | 
| 82 | 
  | 
 * </pre> | 
| 83 | 
  | 
 */ | 
| 84 | 
  | 
class SelectionCompiler{ | 
| 117 | 
  | 
 | 
| 118 | 
  | 
 | 
| 119 | 
  | 
        bool lookingAtLeadingWhitespace(); | 
| 120 | 
< | 
        bool lookingAtComment(); | 
| 120 | 
> | 
        //bool lookingAtComment(); | 
| 121 | 
  | 
        bool lookingAtEndOfLine(); | 
| 122 | 
  | 
        bool lookingAtEndOfStatement(); | 
| 123 | 
  | 
        bool lookingAtString(); | 
| 139 | 
  | 
        bool clausePrimitive(); | 
| 140 | 
  | 
        bool clauseWithin(); | 
| 141 | 
  | 
        bool clauseComparator(); | 
| 142 | 
< | 
        bool clauseName(int tok); | 
| 143 | 
< | 
        bool clauseIndex(int tok); | 
| 144 | 
< | 
 | 
| 142 | 
> | 
        bool clauseChemObjName();         | 
| 143 | 
> | 
        bool clauseName(std::string& name); | 
| 144 | 
> | 
        bool clauseIndex(); | 
| 145 | 
  | 
        Token tokenNext(); | 
| 146 | 
  | 
        boost::any valuePeek(); | 
| 147 | 
  | 
        int tokPeek(); | 
| 205 | 
  | 
            return compileError("comparison operator expected"); | 
| 206 | 
  | 
        } | 
| 207 | 
  | 
 | 
| 208 | 
< | 
        bool integerExpected() { | 
| 209 | 
< | 
            return compileError("integer expected"); | 
| 208 | 
> | 
        bool numberExpected() { | 
| 209 | 
> | 
            return compileError("number expected"); | 
| 210 | 
  | 
        }         | 
| 211 | 
  | 
         | 
| 212 | 
  | 
        bool numberOrKeywordExpected() { |