diff options
author | Tristan Gingold <tgingold@free.fr> | 2016-02-23 06:55:52 +0100 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2016-02-23 18:52:23 +0100 |
commit | f8181550a62857bf2d73710b0952af16726eba6c (patch) | |
tree | cbdc7df3a25e6c727c9b203cc61cd0512837081b /src/vhdl/translate/trans.ads | |
parent | 7969ec4835be2e8745b648bf47cd97c30ae71ade (diff) | |
download | ghdl-f8181550a62857bf2d73710b0952af16726eba6c.tar.gz ghdl-f8181550a62857bf2d73710b0952af16726eba6c.tar.bz2 ghdl-f8181550a62857bf2d73710b0952af16726eba6c.zip |
translate: separate decl and stmt elab subprograms.
Diffstat (limited to 'src/vhdl/translate/trans.ads')
-rw-r--r-- | src/vhdl/translate/trans.ads | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/vhdl/translate/trans.ads b/src/vhdl/translate/trans.ads index 63db84bd8..e97d6a0c3 100644 --- a/src/vhdl/translate/trans.ads +++ b/src/vhdl/translate/trans.ads @@ -192,6 +192,9 @@ package Trans is function Add_Pointer (Ptr : O_Enode; Offset : O_Enode; Res_Ptr : O_Tnode) return O_Enode; + type Elab_Kind is (Elab_Decls, Elab_Stmts); + type O_Dnode_Elab is array (Elab_Kind) of O_Dnode; + package Chap10 is -- There are three data storage kind: global, local or instance. -- For example, a constant can have: @@ -349,6 +352,9 @@ package Trans is -- Create a prefixed identifier from a string. function Create_Identifier (Str : String) return O_Ident; + -- Create an identifier for an elaboration procedure. + function Create_Elab_Identifier (Kind : Elab_Kind) return O_Ident; + -- Create an identifier for a variable. -- IE, if the variable is global, prepend the prefix, -- if the variable belong to an instance, no prefix is added. @@ -1380,7 +1386,8 @@ package Trans is Block_Id : Nat32; -- Subprogram which elaborates the block (for entity or arch). - Block_Elab_Subprg : O_Dnode; + Block_Elab_Subprg : O_Dnode_Elab; + -- Size of the block instance. Block_Instance_Size : O_Dnode; |