Loading...
Searching...
No Matches
expressionEntry Class Reference

Convert dictionary entry to a stringified expression. More...

#include <expressionEntry.H>

Inheritance diagram for expressionEntry:

Public Member Functions

 TypeNameNoDebug ("expressionEntry")
 Runtime type information.
 declareRunTimeSelectionTable (autoPtr, expressionEntry, empty,(),())
 expressionEntry () noexcept=default
 Default construct.
virtual ~expressionEntry ()=default
 Destructor.
virtual string toExpr (const entry &e) const
 To string. Normally with comma separators.
template<class Type>
Foam::string toExprStr (const Type &data)
template<class Type>
Foam::string toExprStr (ITstream &is)

Static Public Member Functions

static autoPtr< expressionEntryNew (const word &name)
 Return an entry to expression converter.
static string evaluate (const entry &e)
 Generic concatenate tokens to space-separated string.
static void inplaceExpand (std::string &s, const dictionary &dict)
 Inplace expand expression with dictionary variables/entries.
static expressions::exprString expand (const std::string &str, const dictionary &dict)
 Expand expression with dictionary entries.

Static Protected Member Functions

template<class Type>
static string toExprStr (const Type &data)
 Stringified version of data with comma-separated components. Uses prefix corresponding to the pTraits of Type.
template<class Type>
static string toExprStr (ITstream &is)
 Comma-separated stringified version of primitiveEntry of Type. Prefix corresponding to the pTraits of Type.

Detailed Description

Convert dictionary entry to a stringified expression.

The general OpenFOAM dictionary expansions will result in space-separated values. For example,

    origin (0.21 0 0.01);

    condition  "mag(pos() - $centre) < 0.5";

this will expand to the following:

    condition  "mag(pos() - (0.21 0 0.01)) < 0.5";

For these type of expressions, we'd would like better control. Using instead the special expansions, we can add an effective type cast.

    condition  "mag(pos() - $[(vector)centre]) < 0.5";

which will expand to the following:

    condition  "mag(pos() - vector(0.21,0,0.01)) < 0.5";
Source files

Definition at line 81 of file expressionEntry.H.

Constructor & Destructor Documentation

◆ expressionEntry()

expressionEntry ( )
defaultnoexcept

Default construct.

References expressionEntry(), Foam::name(), New(), and Foam::noexcept.

Referenced by declareRunTimeSelectionTable(), expressionEntry(), and ~expressionEntry().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ~expressionEntry()

virtual ~expressionEntry ( )
virtualdefault

Destructor.

References dict, e, evaluate(), expand(), expressionEntry(), inplaceExpand(), and s().

Here is the call graph for this function:

Member Function Documentation

◆ toExprStr() [1/4]

template<class Type>
string toExprStr ( const Type & data)
staticprotected

Stringified version of data with comma-separated components. Uses prefix corresponding to the pTraits of Type.

Referenced by toExprStr().

Here is the caller graph for this function:

◆ toExprStr() [2/4]

template<class Type>
string toExprStr ( ITstream & is)
staticprotected

Comma-separated stringified version of primitiveEntry of Type. Prefix corresponding to the pTraits of Type.

◆ TypeNameNoDebug()

TypeNameNoDebug ( "expressionEntry" )

Runtime type information.

◆ declareRunTimeSelectionTable()

declareRunTimeSelectionTable ( autoPtr ,
expressionEntry ,
empty ,
() ,
()  )

References expressionEntry().

Here is the call graph for this function:

◆ New()

Foam::autoPtr< Foam::exprTools::expressionEntry > New ( const word & name)
static

Return an entry to expression converter.

Definition at line 110 of file expressionEntry.C.

References Foam::exit(), Foam::FatalError, FatalErrorInLookup, and Foam::name().

Referenced by expressionEntry(), and inplaceExpand().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ evaluate()

Foam::string evaluate ( const entry & e)
inlinestatic

Generic concatenate tokens to space-separated string.

Definition at line 27 of file expressionEntryI.H.

References e.

Referenced by toExpr(), and ~expressionEntry().

Here is the caller graph for this function:

◆ inplaceExpand()

void inplaceExpand ( std::string & s,
const dictionary & dict )
static

Inplace expand expression with dictionary variables/entries.

Expansion behaviour
  • alternatives = True
  • environment = True
  • allow empty = True
  • subDict = False

Definition at line 133 of file expressionEntry.C.

References dict, Foam::exit(), Foam::FatalError, FatalErrorInFunction, Foam::getVariableOrDie(), Foam::stringOps::inplaceExpand(), Foam::stringOps::inplaceTrim(), New(), Foam::nl, s(), entry::stream(), and ITstream::toString().

Referenced by expand(), exprString::inplaceExpand(), and ~expressionEntry().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ expand()

Foam::expressions::exprString expand ( const std::string & str,
const dictionary & dict )
static

Expand expression with dictionary entries.

Definition at line 264 of file expressionEntry.C.

References dict, inplaceExpand(), and s().

Referenced by ~expressionEntry().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ toExpr()

virtual string toExpr ( const entry & e) const
inlinevirtual

To string. Normally with comma separators.

Reimplemented in boolEntry, dimensionedScalarEntry, dimensionedSphericalTensorEntry, dimensionedSymmTensorEntry, dimensionedTensorEntry, dimensionedVectorEntry, sphericalTensorEntry, stringEntry, symmTensorEntry, tensorEntry, and vectorEntry.

Definition at line 178 of file expressionEntry.H.

References e, evaluate(), and toExpr().

Referenced by toExpr().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ toExprStr() [3/4]

template<class Type>
Foam::string toExprStr ( const Type & data)
inline

Definition at line 35 of file expressionEntryI.H.

References Foam::component(), and OStringStream::str().

Here is the call graph for this function:

◆ toExprStr() [4/4]

template<class Type>
Foam::string toExprStr ( ITstream & is)
inline

Definition at line 53 of file expressionEntryI.H.

References toExprStr(), and Foam::Zero.

Here is the call graph for this function:

The documentation for this class was generated from the following files: