From cabb079f560ac0013c1ca104490bf32a06ffdb9c Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Mon, 8 Dec 2008 20:46:56 +0100 Subject: [PATCH] small changes to dictionaryTest to test regexs --- applications/test/dictionary/dictionaryTest.C | 25 ++++++++----- applications/test/dictionary/testDictRegex | 34 ++++++++++++++++++ src/OpenFOAM/db/dictionary/dictionary.C | 2 +- src/OpenFOAM/db/dictionary/dictionary.H | 36 +++++++++---------- 4 files changed, 69 insertions(+), 28 deletions(-) create mode 100644 applications/test/dictionary/testDictRegex diff --git a/applications/test/dictionary/dictionaryTest.C b/applications/test/dictionary/dictionaryTest.C index 37ae9bd90c..d8580bdf54 100644 --- a/applications/test/dictionary/dictionaryTest.C +++ b/applications/test/dictionary/dictionaryTest.C @@ -30,6 +30,7 @@ Description \*---------------------------------------------------------------------------*/ #include "IOstreams.H" +#include "IOobject.H" #include "IFstream.H" #include "dictionary.H" @@ -40,18 +41,12 @@ using namespace Foam; int main(int argc, char *argv[]) { - IFstream dictStream("testDict"); - dictionary testDict(dictStream); + Info<< dictionary(IFstream("testDict")()) << endl; - Info<< testDict << endl; + IOobject::writeDivider(Info); { - dictionary someDict; - someDict.add(keyType("a.*", true), "subdictValue"); - - dictionary dict; - dict.add("someDict", someDict); - dict.add(keyType(".*", true), "parentValue"); + dictionary dict(IFstream("testDictRegex")()); Info<< "dict:" << dict << endl; @@ -64,6 +59,18 @@ int main(int argc, char *argv[]) Info<< "Recursive wildcard find \"def\" in sub directory : " << dict.subDict("someDict").lookup("def", true) << endl; + Info<< "Recursive wildcard find \"foo\" in sub directory : " + << dict.subDict("someDict").lookup("foo", true) + << endl; + Info<< "Recursive wildcard find \"fooz\" in sub directory : " + << dict.subDict("someDict").lookup("fooz", true) + << endl; + Info<< "Recursive wildcard find \"bar\" in sub directory : " + << dict.subDict("someDict").lookup("bar", true) + << endl; + Info<< "Recursive wildcard find \"xxx\" in sub directory : " + << dict.subDict("someDict").lookup("xxx", true) + << endl; } return 0; diff --git a/applications/test/dictionary/testDictRegex b/applications/test/dictionary/testDictRegex new file mode 100644 index 0000000000..d4252cd3be --- /dev/null +++ b/applications/test/dictionary/testDictRegex @@ -0,0 +1,34 @@ +/*-------------------------------*- C++ -*---------------------------------*\ +| ========= | +| \\ / OpenFOAM | +| \\ / | +| \\ / The Open Source CFD Toolbox | +| \\/ http://www.OpenFOAM.org | +\*-------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object testDictRegex; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +#inputMode merge + +".*" parentValue1; +"[n-z].*" parentValue2; +"f.*" parentValue3; + +someDict +{ + foo subdictValue0; + bar $f.*; // should this really match 'foo'? + + // result is dependent on insert order! + "a.*c" subdictValue3; + "ab.*" subdictValue2; + "a.*" subdictValue1; + abcd subdictValue4; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/OpenFOAM/db/dictionary/dictionary.C b/src/OpenFOAM/db/dictionary/dictionary.C index 265a2944cb..c0b4b6fb73 100644 --- a/src/OpenFOAM/db/dictionary/dictionary.C +++ b/src/OpenFOAM/db/dictionary/dictionary.C @@ -697,7 +697,7 @@ bool Foam::dictionary::changeKeyword IDLList::replace(iter2(), iter()); delete iter2(); hashedEntries_.erase(iter2); - + } else { diff --git a/src/OpenFOAM/db/dictionary/dictionary.H b/src/OpenFOAM/db/dictionary/dictionary.H index b1d0d186f6..4ace026a01 100644 --- a/src/OpenFOAM/db/dictionary/dictionary.H +++ b/src/OpenFOAM/db/dictionary/dictionary.H @@ -163,16 +163,16 @@ public: dictionary(Istream&); //- Construct as copy given the parent dictionary - dictionary(const dictionary& parentDict, const dictionary& dict); + dictionary(const dictionary& parentDict, const dictionary&); //- Construct top-level dictionary as copy - dictionary(const dictionary& dict); + dictionary(const dictionary&); //- Construct and return clone Foam::autoPtr clone() const; //- Construct top-level dictionary on freestore from Istream - static Foam::autoPtr New(Istream& is); + static Foam::autoPtr New(Istream&); // Destructor @@ -211,12 +211,12 @@ public: //- Search dictionary for given keyword // If recursive search parent dictionaries - bool found(const word& keyword, bool recursive=false) const; + bool found(const word&, bool recursive=false) const; //- Find and return an entry data stream pointer if present // otherwise return NULL. - // If recursive search parent dictionaries. If wildCardMatch - // use wildcards. + // If recursive search parent dictionaries. + // If wildCardMatch use wildcards. const entry* lookupEntryPtr ( const word&, @@ -226,8 +226,8 @@ public: //- Find and return an entry data stream pointer for manipulation // if present otherwise return NULL. - // If recursive search parent dictionaries. If wildCardMatch - // use wildcards. + // If recursive search parent dictionaries. + // If wildCardMatch use wildcards. entry* lookupEntryPtr ( const word&, @@ -236,8 +236,8 @@ public: ); //- Find and return an entry data stream if present otherwise error. - // If recursive search parent dictionaries. If wildCardMatch - // use wildcards. + // If recursive search parent dictionaries. + // If wildCardMatch use wildcards. const entry& lookupEntry ( const word&, @@ -331,13 +331,13 @@ public: //- Add a scalar entry // optionally overwrite an existing entry - void add (const keyType&, const scalar, bool overwrite=false); + void add(const keyType&, const scalar, bool overwrite=false); //- Add a dictionary entry // optionally merge with an existing sub-dictionary void add ( - const keyType& keyword, + const keyType&, const dictionary&, bool mergeEntry=false ); @@ -345,7 +345,7 @@ public: //- Add a T entry // optionally overwrite an existing entry template - void add(const keyType& keyword, const T&, bool overwrite=false); + void add(const keyType&, const T&, bool overwrite=false); //- Assign a new entry, overwrite any existing entry void set(entry*); @@ -354,14 +354,14 @@ public: void set(const entry&); //- Assign a dictionary entry, overwrite any existing entry - void set(const keyType& keyword, const dictionary&); + void set(const keyType&, const dictionary&); //- Assign a T entry, overwrite any existing entry template - void set(const keyType& keyword, const T&); + void set(const keyType&, const T&); //- Remove an entry specified by keyword - bool remove(const word& keyword); + bool remove(const word&); //- Change the keyword for an entry, // optionally forcing overwrite of an existing entry @@ -369,7 +369,7 @@ public: ( const keyType& oldKeyword, const keyType& newKeyword, - bool forceOverwrite = false + bool forceOverwrite=false ); //- Merge entries from the given dictionary. @@ -382,7 +382,7 @@ public: // Write - void write(Ostream& os, bool subDict = true) const; + void write(Ostream&, bool subDict=true) const; // Member Operators