void Foam::primitiveEntry::append ( const token& currToken, const dictionary& dict, Istream& is ) { if (currToken.isWord()) { const word& w = currToken.wordToken(); if ( w.size() == 1 || ( !(w[0] == '$' && expandVariable(w, dict)) && !(w[0] == '#' && expandFunction(w, dict, is)) ) ) { newElmt(tokenIndex()++) = currToken; } } else { newElmt(tokenIndex()++) = currToken; } }
void Foam::primitiveEntry::append ( const token& currToken, const dictionary& dict, Istream& is ) { if (currToken.isWord()) { const word& w = currToken.wordToken(); if ( disableFunctionEntries || w.size() == 1 || ( !(w[0] == '$' && expandVariable(w, dict)) && !(w[0] == '#' && expandFunction(w, dict, is)) ) ) { newElmt(tokenIndex()++) = currToken; } } else if (currToken.isVariable()) { const string& w = currToken.stringToken(); if ( disableFunctionEntries || w.size() <= 3 || !( w[0] == '$' && w[1] == token::BEGIN_BLOCK && expandVariable(w, dict) ) ) { newElmt(tokenIndex()++) = currToken; } } else { newElmt(tokenIndex()++) = currToken; } }
Foam::token Foam::functionEntries::ifeqEntry::expand ( const dictionary& dict, const token& t ) { if (t.isWord()) { return expand(dict, t.wordToken(), t); } else if (t.isVariable()) { return expand(dict, t.stringToken(), t); } else if (t.isString()) { return expand(dict, t.stringToken(), t); } else { return t; } }
bool Foam::functionEntries::ifeqEntry::equalToken ( const token& t1, const token& t2 ) { const bool eqType = (t1.type() == t2.type()); switch (t1.type()) { case token::UNDEFINED: return eqType; case token::PUNCTUATION: return (eqType && t1.pToken() == t2.pToken()); case token::WORD: if (eqType) { return t1.wordToken() == t2.wordToken(); } else if (t2.isString()) { return t1.wordToken() == t2.stringToken(); } else { return false; } case token::STRING: case token::VARIABLE: case token::VERBATIMSTRING: if (eqType) { return t1.stringToken() == t2.stringToken(); } else if (t2.isWord()) { return t1.stringToken() == t2.wordToken(); } else { return false; } case token::LABEL: if (eqType) { return t1.labelToken() == t2.labelToken(); } else if (t2.isScalar()) { return t1.labelToken() == t2.scalarToken(); } else { return false; } case token::FLOAT_SCALAR: if (eqType) { return equal(t1.floatScalarToken(), t2.floatScalarToken()); } else if (t2.isScalar()) { return t1.scalarToken() == t2.scalarToken(); } else { return false; } case token::DOUBLE_SCALAR: if (eqType) { return equal(t1.doubleScalarToken(), t2.doubleScalarToken()); } else if (t2.isScalar()) { return t1.scalarToken() == t2.scalarToken(); } else { return false; } case token::LONG_DOUBLE_SCALAR: if (eqType) { return equal ( t1.longDoubleScalarToken(), t2.longDoubleScalarToken() ); } else if (t2.isScalar()) { return t1.scalarToken() == t2.scalarToken(); } else { return false; } case token::COMPOUND: return false; case token::ERROR: return eqType; } return false; }