aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl/vhdl-prints.adb
diff options
context:
space:
mode:
Diffstat (limited to 'src/vhdl/vhdl-prints.adb')
-rw-r--r--src/vhdl/vhdl-prints.adb37
1 files changed, 36 insertions, 1 deletions
diff --git a/src/vhdl/vhdl-prints.adb b/src/vhdl/vhdl-prints.adb
index 690a971bb..47afb99c3 100644
--- a/src/vhdl/vhdl-prints.adb
+++ b/src/vhdl/vhdl-prints.adb
@@ -284,7 +284,8 @@ package body Vhdl.Prints is
when Iir_Kind_Block_Statement
| Iir_Kind_If_Generate_Statement
| Iir_Kind_Case_Generate_Statement
- | Iir_Kind_For_Generate_Statement =>
+ | Iir_Kind_For_Generate_Statement
+ | Iir_Kind_Simultaneous_Procedural_Statement =>
Disp_Ident (Ctxt, Get_Label (Decl));
when Iir_Kind_Package_Body =>
Disp_Identifier (Ctxt, Decl);
@@ -3942,6 +3943,38 @@ package body Vhdl.Prints is
Close_Hbox (Ctxt);
end Disp_Simple_Simultaneous_Statement;
+ procedure Disp_Simultaneous_Procedural_Statement
+ (Ctxt : in out Ctxt_Class; Stmt : Iir) is
+ begin
+ Start_Hbox (Ctxt);
+ Disp_Label (Ctxt, Stmt);
+
+ Disp_Token (Ctxt, Tok_Procedural);
+ if Get_Has_Is (Stmt) then
+ Disp_Token (Ctxt, Tok_Is);
+ end if;
+ Close_Hbox (Ctxt);
+
+ Start_Vbox (Ctxt);
+ Disp_Declaration_Chain (Ctxt, Stmt);
+ Close_Vbox (Ctxt);
+
+ Start_Hbox (Ctxt);
+ Disp_Token (Ctxt, Tok_Begin);
+ Close_Hbox (Ctxt);
+
+ Start_Vbox (Ctxt);
+ Disp_Sequential_Statements
+ (Ctxt, Get_Sequential_Statement_Chain (Stmt));
+ Close_Vbox (Ctxt);
+
+ Start_Hbox (Ctxt);
+ Disp_Token (Ctxt, Tok_End);
+ Disp_After_End (Ctxt, Stmt, Tok_Procedural);
+ Disp_Token (Ctxt, Tok_Semi_Colon);
+ Close_Hbox (Ctxt);
+ end Disp_Simultaneous_Procedural_Statement;
+
procedure Disp_Concurrent_Statement (Ctxt : in out Ctxt_Class; Stmt: Iir) is
begin
case Get_Kind (Stmt) is
@@ -3987,6 +4020,8 @@ package body Vhdl.Prints is
Disp_Simple_Simultaneous_Statement (Ctxt, Stmt);
when Iir_Kind_Simultaneous_If_Statement =>
Disp_Simultaneous_If_Statement (Ctxt, Stmt);
+ when Iir_Kind_Simultaneous_Procedural_Statement =>
+ Disp_Simultaneous_Procedural_Statement (Ctxt, Stmt);
when others =>
Error_Kind ("disp_concurrent_statement", Stmt);
end case;