dictionary::functionEntries::if(eq)Entry: New conditional statement handling in dictionary
Class
Foam::functionEntries::if
Description
Conditional parsing of dictionary entries.
E.g.
\verbatim
U_inlet 15;
#if #calc "${U_inlet} < 10"
..
#else
..
#endif
\endverbatim
Note:
- only supports single line, '\' is not supported
- condition should be readable as a \c Switch
(supports 0,1, true, false, etc.)
Class
Foam::functionEntries::ifeqEntry
Description
Conditional parsing of dictionary entries.
E.g.
\verbatim
a #calc "0.123";
b 1.23e-1;
#ifeq $a $b
..
#else
..
#endif
\endverbatim
\verbatim
ddtSchemes
{
#ifeq ${FOAM_APPLICATION} simpleFoam
default steadyState;
#else
default Euler;
#endif
}
\endverbatim
Note:
- supports dictionary variables and environment variables
- the two arguments should be two tokens
- the comparison is a string comparison for any word/string/variable,
integer comparison for two integers and floating point comparison for
any floating point number.
- parsing of (non)matching \c #else, \c #endif is not very sophisticated
Contributed by Mattijs Janssens
This commit is contained in:
@ -285,7 +285,7 @@ Foam::string Foam::stringOps::getVariable
|
||||
{
|
||||
value = getEnv(name);
|
||||
|
||||
if (value.empty())
|
||||
if (!allowEmpty && value.empty())
|
||||
{
|
||||
FatalIOErrorInFunction
|
||||
(
|
||||
|
||||
Reference in New Issue
Block a user