iverilog/vhdlpp
Pawel Szostek a5ca9ea8be Use separate containers for current and previous scopes
This patch introduces in ScopeBase separate containers
for declarations coming from the current scope and from
the previous scopes.
Until now, in one scope, all objects were kept in an stl map.
When a scope was created inside other scopes, a shallow
copy of the map was made. This solution was nice for
name shadowing (in new scopes, when a name was
encountered, the old objects were overridden by a new
one), but didn't allow for distinguishing where the objects
were allocated. As a result, it is impossible to know who
the owner is and who should delete them.

In this commit ScopeBase gets two containers: for old
and new objects. If a ScopeBase is made from another
ScopeBase object, all objects from the copied object
go to an old_XXX container, where XXX depends on the
type of the copied objects. When a ScopeBase object
is deleted, the objects from new_XXX are deleted and
the ones from old_XXX are not touched.

This patch adds some complexity to the internals
of ScopeBase, but leaves its interface unchanged.
2011-07-24 09:53:06 -07:00
..
Makefile.in Arrange for ports used as l-values to be declared as "reg". 2011-05-15 16:17:51 -07:00
README.txt Create an Architecture class and bind them to their entities. 2011-02-13 16:43:04 -08:00
architec.cc Conditional statements and expressions 2011-06-12 10:51:31 -07:00
architec.h C++ routines called from C must be defined as extern "C" 2011-07-05 19:27:17 -07:00
architec_debug.cc properly handle vhdl open ports in component instantiations. 2011-06-12 16:59:07 -07:00
architec_elaborate.cc Add ExpName::elaborate_rval member function 2011-07-19 21:29:05 -07:00
architec_emit.cc Use separate containers for current and previous scopes 2011-07-24 09:53:06 -07:00
compiler.cc Add file/line information to entities and ports 2011-01-18 17:03:51 -08:00
compiler.h Add file/line information to entities and ports 2011-01-18 17:03:51 -08:00
debug.cc Use separate containers for current and previous scopes 2011-07-24 09:53:06 -07:00
entity.cc Arrange for ports used as l-values to be declared as "reg". 2011-05-15 16:17:51 -07:00
entity.h Arrange for ports used as l-values to be declared as "reg". 2011-05-15 16:17:51 -07:00
entity_elaborate.cc Add more complete support for vhdl local signals. 2011-03-28 14:34:02 -07:00
entity_emit.cc Declare vhdl module ports inline, a la ansi-c 2011-06-02 19:11:20 -07:00
expression.cc Add String Expression to the VHDL parser 2011-07-08 18:05:06 -07:00
expression.h Add ExpName::elaborate_rval member function 2011-07-19 21:29:05 -07:00
expression_elaborate.cc Add ExpName::elaborate_rval member function 2011-07-19 21:29:05 -07:00
expression_emit.cc Add String Expression to the VHDL parser 2011-07-08 18:05:06 -07:00
lexor.lex Fix minor bug in the vhdl lexor 2011-06-30 19:43:44 -07:00
lexor_keyword.gperf properly handle vhdl open ports in component instantiations. 2011-06-12 16:59:07 -07:00
library.cc Use dynamic allocation for VHDL global built-in types 2011-07-24 09:45:25 -07:00
main.cc Add support for constants and package types. 2011-04-17 17:19:09 -07:00
package.cc Add support for constants and package types. 2011-04-17 17:19:09 -07:00
package.h Add support for constants and package types. 2011-04-17 17:19:09 -07:00
parse.y Use stl stack for for carrying scopes 2011-07-24 09:50:31 -07:00
parse_api.h Spelling fixes 2011-03-29 08:56:10 -07:00
parse_misc.cc Add support for constants and package types. 2011-04-17 17:19:09 -07:00
parse_misc.h Add support for constants and package types. 2011-04-17 17:19:09 -07:00
parse_types.h Add support for VHDL's loop statements 2011-07-12 19:20:04 -07:00
parse_wrap.h Parse/decorate sequential statements. 2011-05-08 16:40:35 -07:00
scope.cc Use separate containers for current and previous scopes 2011-07-24 09:53:06 -07:00
scope.h Use separate containers for current and previous scopes 2011-07-24 09:53:06 -07:00
sequential.cc Add support for VHDL's loop statements 2011-07-12 19:20:04 -07:00
sequential.h Add support for VHDL's loop statements 2011-07-12 19:20:04 -07:00
sequential_debug.cc Add support for VHDL's loop statements 2011-07-12 19:20:04 -07:00
sequential_elaborate.cc Add support for VHDL's loop statements 2011-07-12 19:20:04 -07:00
sequential_emit.cc Add support for VHDL's loop statements 2011-07-12 19:20:04 -07:00
vhdlint.cc Fix space issues. 2011-04-20 17:26:52 -07:00
vhdlint.h Fix spacing problems. 2011-03-03 11:21:31 -08:00
vhdlnum.h Introductory changes for numbers handling 2011-02-10 18:34:13 -08:00
vhdlpp_config.h.in Introduce shell of vhdlpp program. 2011-01-18 17:03:51 -08:00
vhdlreal.cc Fix spacing problems. 2011-03-03 11:21:31 -08:00
vhdlreal.h Fix spacing problems. 2011-03-03 11:21:31 -08:00
vsignal.cc vhdl sequential l-values cause variables to be reg vs. net. 2011-06-12 15:38:03 -07:00
vsignal.h vhdl sequential l-values cause variables to be reg vs. net. 2011-06-12 15:38:03 -07:00
vtype.cc Add support for constants and package types. 2011-04-17 17:19:09 -07:00
vtype.h Use dynamic allocation for VHDL global built-in types 2011-07-24 09:45:25 -07:00
vtype_elaborate.cc Add support for constants and package types. 2011-04-17 17:19:09 -07:00
vtype_emit.cc Declare vhdl module ports inline, a la ansi-c 2011-06-02 19:11:20 -07:00

README.txt

vhdlpp COMMAND LINE FLAGS:

-D <token>
  Debug flags. The token can be

  * yydebug | no-yydebug

  * entities=<path>

-V
  Display version on stdout

-v
  Verbose: Display version on stderr, and enable verbose messages to
  stderr.