Skip to content
Snippets Groups Projects
Commit 94b17bb6 authored by Mark OLESEN's avatar Mark OLESEN
Browse files

ENH: allow '^' as anchor for dictionary scoping (issue #429)

- The existing ':' anchor works for rvalue substitutions
  (Eg, ${:subdict.name}), but fails for lvalues, since it is
  a punctuation token and parse stops there.
parent b50f282e
No related branches found
No related tags found
2 merge requests!121Merge develop into master for v1706 release,!105Dict lookup
......@@ -34,15 +34,16 @@ update
key2 $key1;
key3 val3;
key2b ${..key2};
key3b ${:key1};
key3b $^key1;
}
}
$update
key3 ${:subdict.key1};
key3 ${:update.subdict.key3};
// Can a leading '^' or ':' as anchor for scoping
key3 $^subdict.key1;
key3 ${^update.subdict.key3};
key4 ${:update.subdict...subdict.key1};
// This is currently not working
......
......@@ -575,7 +575,7 @@ const Foam::entry* Foam::dictionary::lookupScopedEntryPtr
bool patternMatch
) const
{
if (keyword[0] == ':')
if (keyword[0] == ':' || keyword[0] == '^')
{
// Go up to top level
const dictionary* dictPtr = this;
......
......@@ -43,7 +43,7 @@ Note
Within dictionaries, entries can be referenced by using the '$' syntax
familiar from shell programming. A '.' separator is used when referencing
sub-dictionary entries. Leading '.' prefixes can be used to specify
an entry from a parent directory. A leading ':' prefix specifies
an entry from a parent directory. A leading ':' or '^' prefix specifies
starting from the top-level entry. For example,
\verbatim
......@@ -62,7 +62,7 @@ Note
}
}
key4 $:subdict1.subdict2.key3;
key4 $^subdict1.subdict2.key3; // lookup with absolute scoping
\endverbatim
It is also possible to use the '${}' syntax for clarity.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment