Differences From Artifact [04d3c06d6b]:
- File src/natools-s_expressions-printers-pretty.ads — part of check-in [ee89558365] at 2014-06-04 21:05:09 on branch trunk — s_expressions-printers-pretty: redesign the package around an abstract type with user-provided backend write procedure (user: nat, size: 6024) [annotate] [blame] [check-ins using]
To Artifact [d9720a139b]:
- File
src/natools-s_expressions-printers-pretty.ads
— part of check-in
[89b2db0d6d]
at
2014-06-08 19:08:16
on branch trunk
— s_expressions-printers-pretty: add valid default values to Parameter objects
This ensures that default Parameters objects are valid, and therefore that pretty printers without explicit parameter initialization are valid (and canonical) too. (user: nat, size: 5962) [annotate] [blame] [check-ins using]
︙ | ︙ | |||
37 38 39 40 41 42 43 | type Quoted_Option is (When_Shorter, Single_Line, No_Quoted); type Token_Option is (Extended_Token, Standard_Token, No_Token); type Screen_Offset is new Natural; subtype Screen_Column is Screen_Offset range 1 .. Screen_Offset'Last; type Parameters is record | | | | | | | | | | | | | | > > | | 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | type Quoted_Option is (When_Shorter, Single_Line, No_Quoted); type Token_Option is (Extended_Token, Standard_Token, No_Token); type Screen_Offset is new Natural; subtype Screen_Column is Screen_Offset range 1 .. Screen_Offset'Last; type Parameters is record Width : Screen_Offset := 0; Newline_At : Entity_Separator := (others => (others => False)); Space_At : Entity_Separator := (others => (others => False)); Tab_Stop : Screen_Column := 8; -- * Indentation : Screen_Offset := 0; Indent : Indent_Type := Spaces; -- * Quoted : Quoted_Option := No_Quoted; Token : Token_Option := No_Token; Hex_Casing : Encodings.Hex_Casing := Encodings.Upper; -- * Quoted_Escape : Quoted_Escape_Type := Hex_Escape; -- * Char_Encoding : Character_Encoding := ASCII; -- * Fallback : Atom_Encoding := Verbatim; Newline : Newline_Encoding := LF; -- * end record; -- Default values yield canonical encoding, though fields marked with -- an asterisk (*) can have any value and still be canonical. Canonical : constant Parameters := (others => <>); type Printer is abstract limited new Printers.Printer with private; procedure Write_Raw (Output : in out Printer; Data : in Ada.Streams.Stream_Element_Array) is abstract; |
︙ | ︙ | |||
125 126 127 128 129 130 131 | Cursor : Screen_Column := 1; Previous : Entity; First : Boolean := True; Indent_Level : Screen_Offset := 0; Need_Blank : Boolean := False; end record; | < < < < < < < < < < < < < < < | 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 | Cursor : Screen_Column := 1; Previous : Entity; First : Boolean := True; Indent_Level : Screen_Offset := 0; Need_Blank : Boolean := False; end record; type Stream_Printer (Stream : access Ada.Streams.Root_Stream_Type'Class) is new Printer with null record; overriding procedure Write_Raw (Output : in out Stream_Printer; Data : in Ada.Streams.Stream_Element_Array); end Natools.S_Expressions.Printers.Pretty; |