EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  <19951996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  <19951996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: e2sr name mangling
From: [email protected] (Matthew Needes)
To: [email protected]
Date: Mon, 19 Jun 95 11:41:28 MDT
> 
> Dear all,
> 
>   We are using Matt Needes' e2sr (v2.1.0+). We seem to have a
> name-mangling requirement which it doesn't handle and I wanted to check
> if we have misunderstood something.
> 
>   In some places we are using Capfast hierarchy purely for design
> presentation purposes and don't want the schematic name to contribute to
> the PV names. For example, suppose a.sch references sub-hierarchy h,
> which contains record x. We want the resultant name to be a:x rather
> than a:h:x (but we don't want to have to use name overrides for
> individual records).
> 
>   We see how this could be done by operating on the short report
> via sed (or the CEBAF name-mangling tool?), but feel that it would be
> better if e2sr did it directly. Perhaps there could be a special
> property on hierarchical symbols (e.g. h in the example above) to
> suppress and/or rename its contribution to overall PV names?

I think it is a great extension to the tool.  I have been thinking
about this exact problem, and have made at least one step in this
direction.  Here is my idea:

1.  Use a property called name on each symbol to define its name.  It would
act similarly to PV but would not concatenate the instance name onto itself.
The name property would instead be the VERBATIM name for the record.

2.  Provide some "reserved" variables, such as hier and inst.  ${inst} could
be the current instance name of the current primitive OR hierarchical symbol,
${hier} could refer to the standard name (colon separated, including the
trailing semi-colon) of the hierarchy up to that point.  You can see that
a name=${hier}${inst} property on a symbol would preserve the old naming
scheme.  This value of the name property will be default on all symbols,
even if the name property does not exist on the symbol.

3.  Provide recursive variable substitutions.  For example, you can define
a root-name for variable "dev" on a high level schematic.  Then, as you run
down the hierarchy you can redefine "dev" in terms of itself, or redefine
"dev" in terms of other variables.
		
4.  Finally, allow the "hier" variable to be overridden like any other
variable, and support hierarchical substitutions of hier, as in step 3.
		
Example:

	To change the hierarchical naming separator from : to %, set the
hier property on all hierarchical symbols to be:  ${hier}%${inst}.
(In this case ${inst} is the instance name of the HIERARCHICAL schematic,
and ${hier} refers to the value of the hier variable before this point
in the hierarchy.

Any other ideas ?

> 
>   If this is seen as a good idea, we could implement it (unless Matt
> Needes gets there first!).

Go for it !  The only progress I have made on this is to allow one level
of recursive variable substitution (meaning I can substitute on dev
property in terms of only one other one).  I started doing this, and then
decided to think about it more before I added substitutions for an arbitrary
number of levels.  I am currently working on an internals document for
the EDIF library, and perhaps an internals doc on e2sr as well.

Matt



Replies:
Re: e2sr name mangling watson

Navigate by Date:
Prev: Fortran-CA interface F. Gougnaud
Next: REMOTE DEVELOPER NOTICE Matthew Needes
Index: 1994  <19951996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: e2sr name mangling William Lupton
Next: Re: e2sr name mangling watson
Index: 1994  <19951996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 10 Aug 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·