From caba1d1b21d9756ede50f40d53fbc816d3b84320 Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Thu, 17 Jul 2014 20:34:57 +0200 Subject: vhdl 2008: visibility, more implicit subprograms, alias... Use Type_Definition in type_declarator. --- libraries/std/textio.vhdl | 14 +++++++++++++- libraries/std/textio_body.vhdl | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+), 1 deletion(-) (limited to 'libraries/std') diff --git a/libraries/std/textio.vhdl b/libraries/std/textio.vhdl index 49e404325..25d90ec04 100644 --- a/libraries/std/textio.vhdl +++ b/libraries/std/textio.vhdl @@ -122,6 +122,10 @@ package Textio is procedure writeline (variable f: out text; l: inout line); --V87 procedure writeline (file f: text; l: inout line); --V93 + --START-V08 + procedure Tee (file f : Text; L : inout LINE); + --END-V08 + -- This implementation accept any value for all the types. procedure write (l: inout line; value: in bit; @@ -161,5 +165,13 @@ package Textio is alias Bwrite is write [Line, Bit_Vector, Side, Width]; alias Binary_Write is write [Line, Bit_Vector, Side, Width]; - --END-V08 + + procedure Owrite (L : inout line; value : in Bit_Vector; + Justified : in Side := Right; Field : in Width := 0); + alias Octal_Write is Owrite [Line, Bit_Vector, Side, Width]; + + procedure Hwrite (L : inout line; value : in Bit_Vector; + Justified : in Side := Right; Field : in Width := 0); + alias Hex_Write is Hwrite [Line, Bit_Vector, Side, Width]; +--END-V08 end textio; diff --git a/libraries/std/textio_body.vhdl b/libraries/std/textio_body.vhdl index a57ed03c3..b402174a4 100644 --- a/libraries/std/textio_body.vhdl +++ b/libraries/std/textio_body.vhdl @@ -102,6 +102,28 @@ package body textio is end if; end writeline; + --START-V08 + procedure Tee (file f : Text; L : inout LINE) is + begin + if l = null then + -- LRM93 14.3 + -- If parameter L contains a null access value at the start of the call, + -- the a null string is written to the file. + write (f, ""); + write (Output, ""); + else + -- LRM93 14.3 + -- Procedure WRITELINE causes the current line designated by parameter L + -- to be written to the file and returns with the value of parameter L + -- designating a null string. + write (f, l.all); + write (Output, l.all); + deallocate (l); + l := new string'(""); + end if; + end Tee; + --END-V08 + procedure write (l: inout line; value: in string; justified: in side := right; field: in width := 0) @@ -460,6 +482,20 @@ package body textio is write (l, str (1 to pos - 1), justified, field); end write; + --START-V08 + procedure Owrite (L : inout line; value : in Bit_Vector; + Justified : in Side := Right; Field : in Width := 0) is + begin + write (l, to_ostring (value), justified, field); + end Owrite; + + procedure Hwrite (L : inout line; value : in Bit_Vector; + Justified : in Side := Right; Field : in Width := 0) is + begin + write (l, to_hstring (value), justified, field); + end Hwrite; +--END-V08 + procedure untruncated_text_read --V87 (variable f : text; str : out string; len : out natural); --V87 procedure untruncated_text_read --V93 -- cgit v1.2.3