33 const label lastPrior,
36 const HashTable<Type>& table
39 Type result(identity);
42 token nextToken(tis.nextToken());
46 bool haveReadSymbol =
false;
50 if (nextToken.isWord())
53 result.reset(result*table[nextToken.wordToken()]);
54 haveReadSymbol =
true;
56 else if (nextToken.isNumber())
62 else if (nextToken.isPunctuation())
76 tis.putBack(nextToken);
82 tis.putBack(nextToken);
95 token t = tis.nextToken();
102 haveReadSymbol =
true;
107 tis.putBack(nextToken);
113 if (nextPrior > lastPrior)
125 tis.putBack(nextToken);
129 haveReadSymbol =
false;
134 if (nextPrior > lastPrior)
144 tis.putBack(nextToken);
148 haveReadSymbol =
false;
150 else if (nextToken.pToken() ==
'^')
153 if (nextPrior > lastPrior)
155 token t = tis.nextToken();
161 result.reset(
pow(result, t.scalarToken()));
165 tis.putBack(nextToken);
169 haveReadSymbol =
true;
188 nextToken = tis.nextToken();
190 if (nextToken.error())
195 if (haveReadSymbol && (nextToken.isWord() || nextToken.isNumber()))
198 tis.putBack(nextToken);
211 const Type& identity,
212 const HashTable<Type>& table
215 symbols::tokeniser tis(is);
219 is.putBack(tis.nextToken());
static label priority(const token &t)
...
#define FatalIOErrorInFunction(ios)
Report an error message using Foam::FatalIOError.
Type parseNoBeginOrEnd(Istream &is, const Type &identity, const HashTable< Type > &table)
Parse tokens into a dimension set or unit conversion, assuming that the '['.
Type parseNoBegin(const label lastPrior, tokeniser &tis, const Type &identity, const HashTable< Type > &table)
Parse tokens into a dimension set or unit conversion, assuming that the '['.
errorManipArg< error, int > exit(error &err, const int errNo=1)
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
void pow(LagrangianPatchField< typename powProduct< Type, r >::type > &f, const LagrangianPatchField< Type > &f1)