| -- { dg-do compile } |
| |
| with Ada.Integer_Text_IO; |
| with Ada.Text_IO; |
| |
| procedure Enum_Rep2 is |
| |
| type T is |
| (E80, E81, E82, E83, E84, E85, E86, E87, E88, E89, E8A, E8B, E8C, E8D, E8E, E8F, |
| E90, E91, E92, E93, E94, E95, E96, E97, E98, E99, E9A, E9B, E9C, E9D, E9E, E9F, |
| EA0, EA1, EA2, EA3, EA4, EA5, EA6, EA7, EA8, EA9, EAA, EAB, EAC, EAD, EAE, EAF, |
| EB0, EB1, EB2, EB3, EB4, EB5, EB6, EB7, EB8, EB9, EBA, EBB, EBC, EBD, EBE, EBF, |
| EC0, EC1, EC2, EC3, EC4, EC5, EC6, EC7, EC8, EC9, ECA, ECB, ECC, ECD, ECE, ECF, |
| ED0, ED1, ED2, ED3, ED4, ED5, ED6, ED7, ED8, ED9, EDA, EDB, EDC, EDD, EDE, EDF, |
| EE0, EE1, EE2, EE3, EE4, EE5, EE6, EE7, EE8, EE9, EEA, EEB, EEC, EED, EEE, EEF, |
| EF0, EF1, EF2, EF3, EF4, EF5, EF6, EF7, EF8, EF9, EFA, EFB, EFC, EFD, EFE, EFF, |
| E00, E01, E02, E03, E04, E05, E06, E07, E08, E09, E0A, E0B, E0C, E0D, E0E, E0F, |
| E10, E11, E12, E13, E14, E15, E16, E17, E18, E19, E1A, E1B, E1C, E1D, E1E, E1F, |
| E20, E21, E22, E23, E24, E25, E26, E27, E28, E29, E2A, E2B, E2C, E2D, E2E, E2F, |
| E30, E31, E32, E33, E34, E35, E36, E37, E38, E39, E3A, E3B, E3C, E3D, E3E, E3F, |
| E40, E41, E42, E43, E44, E45, E46, E47, E48, E49, E4A, E4B, E4C, E4D, E4E, E4F, |
| E50, E51, E52, E53, E54, E55, E56, E57, E58, E59, E5A, E5B, E5C, E5D, E5E, E5F, |
| E60, E61, E62, E63, E64, E65, E66, E67, E68, E69, E6A, E6B, E6C, E6D, E6E, E6F, |
| E70, E71, E72, E73, E74, E75, E76, E77, E78, E79, E7A, E7B, E7C, E7D, E7E, E7F); |
| for T use |
| (E80 => -16#80#, E81 => -16#7F#, E82 => -16#7E#, E83 => -16#7D#, |
| E84 => -16#7C#, E85 => -16#7B#, E86 => -16#7A#, E87 => -16#79#, |
| E88 => -16#78#, E89 => -16#77#, E8A => -16#76#, E8B => -16#75#, |
| E8C => -16#74#, E8D => -16#73#, E8E => -16#72#, E8F => -16#71#, |
| |
| E90 => -16#70#, E91 => -16#6F#, E92 => -16#6E#, E93 => -16#6D#, |
| E94 => -16#6C#, E95 => -16#6B#, E96 => -16#6A#, E97 => -16#69#, |
| E98 => -16#68#, E99 => -16#67#, E9A => -16#66#, E9B => -16#65#, |
| E9C => -16#64#, E9D => -16#63#, E9E => -16#62#, E9F => -16#61#, |
| |
| EA0 => -16#60#, EA1 => -16#5F#, EA2 => -16#5E#, EA3 => -16#5D#, |
| EA4 => -16#5C#, EA5 => -16#5B#, EA6 => -16#5A#, EA7 => -16#59#, |
| EA8 => -16#58#, EA9 => -16#57#, EAA => -16#56#, EAB => -16#55#, |
| EAC => -16#54#, EAD => -16#53#, EAE => -16#52#, EAF => -16#51#, |
| |
| EB0 => -16#50#, EB1 => -16#4F#, EB2 => -16#4E#, EB3 => -16#4D#, |
| EB4 => -16#4C#, EB5 => -16#4B#, EB6 => -16#4A#, EB7 => -16#49#, |
| EB8 => -16#48#, EB9 => -16#47#, EBA => -16#46#, EBB => -16#45#, |
| EBC => -16#44#, EBD => -16#43#, EBE => -16#42#, EBF => -16#41#, |
| |
| EC0 => -16#40#, EC1 => -16#3F#, EC2 => -16#3E#, EC3 => -16#3D#, |
| EC4 => -16#3C#, EC5 => -16#3B#, EC6 => -16#3A#, EC7 => -16#39#, |
| EC8 => -16#38#, EC9 => -16#37#, ECA => -16#36#, ECB => -16#35#, |
| ECC => -16#34#, ECD => -16#33#, ECE => -16#32#, ECF => -16#31#, |
| |
| ED0 => -16#30#, ED1 => -16#2F#, ED2 => -16#2E#, ED3 => -16#2D#, |
| ED4 => -16#2C#, ED5 => -16#2B#, ED6 => -16#2A#, ED7 => -16#29#, |
| ED8 => -16#28#, ED9 => -16#27#, EDA => -16#26#, EDB => -16#25#, |
| EDC => -16#24#, EDD => -16#23#, EDE => -16#22#, EDF => -16#21#, |
| |
| EE0 => -16#20#, EE1 => -16#1F#, EE2 => -16#1E#, EE3 => -16#1D#, |
| EE4 => -16#1C#, EE5 => -16#1B#, EE6 => -16#1A#, EE7 => -16#19#, |
| EE8 => -16#18#, EE9 => -16#17#, EEA => -16#16#, EEB => -16#15#, |
| EEC => -16#14#, EED => -16#13#, EEE => -16#12#, EEF => -16#11#, |
| |
| EF0 => -16#10#, EF1 => -16#0F#, EF2 => -16#0E#, EF3 => -16#0D#, |
| EF4 => -16#0C#, EF5 => -16#0B#, EF6 => -16#0A#, EF7 => -16#09#, |
| EF8 => -16#08#, EF9 => -16#07#, EFA => -16#06#, EFB => -16#05#, |
| EFC => -16#04#, EFD => -16#03#, EFE => -16#02#, EFF => -16#01#, |
| |
| E00 => 16#00#, E01 => 16#01#, E02 => 16#02#, E03 => 16#03#, |
| E04 => 16#04#, E05 => 16#05#, E06 => 16#06#, E07 => 16#07#, |
| E08 => 16#08#, E09 => 16#09#, E0A => 16#0A#, E0B => 16#0B#, |
| E0C => 16#0C#, E0D => 16#0D#, E0E => 16#0E#, E0F => 16#0F#, |
| |
| E10 => 16#10#, E11 => 16#11#, E12 => 16#12#, E13 => 16#13#, |
| E14 => 16#14#, E15 => 16#15#, E16 => 16#16#, E17 => 16#17#, |
| E18 => 16#18#, E19 => 16#19#, E1A => 16#1A#, E1B => 16#1B#, |
| E1C => 16#1C#, E1D => 16#1D#, E1E => 16#1E#, E1F => 16#1F#, |
| |
| E20 => 16#20#, E21 => 16#21#, E22 => 16#22#, E23 => 16#23#, |
| E24 => 16#24#, E25 => 16#25#, E26 => 16#26#, E27 => 16#27#, |
| E28 => 16#28#, E29 => 16#29#, E2A => 16#2A#, E2B => 16#2B#, |
| E2C => 16#2C#, E2D => 16#2D#, E2E => 16#2E#, E2F => 16#2F#, |
| |
| E30 => 16#30#, E31 => 16#31#, E32 => 16#32#, E33 => 16#33#, |
| E34 => 16#34#, E35 => 16#35#, E36 => 16#36#, E37 => 16#37#, |
| E38 => 16#38#, E39 => 16#39#, E3A => 16#3A#, E3B => 16#3B#, |
| E3C => 16#3C#, E3D => 16#3D#, E3E => 16#3E#, E3F => 16#3F#, |
| |
| E40 => 16#40#, E41 => 16#41#, E42 => 16#42#, E43 => 16#43#, |
| E44 => 16#44#, E45 => 16#45#, E46 => 16#46#, E47 => 16#47#, |
| E48 => 16#48#, E49 => 16#49#, E4A => 16#4A#, E4B => 16#4B#, |
| E4C => 16#4C#, E4D => 16#4D#, E4E => 16#4E#, E4F => 16#4F#, |
| |
| E50 => 16#50#, E51 => 16#51#, E52 => 16#52#, E53 => 16#53#, |
| E54 => 16#54#, E55 => 16#55#, E56 => 16#56#, E57 => 16#57#, |
| E58 => 16#58#, E59 => 16#59#, E5A => 16#5A#, E5B => 16#5B#, |
| E5C => 16#5C#, E5D => 16#5D#, E5E => 16#5E#, E5F => 16#5F#, |
| |
| E60 => 16#60#, E61 => 16#61#, E62 => 16#62#, E63 => 16#63#, |
| E64 => 16#64#, E65 => 16#65#, E66 => 16#66#, E67 => 16#67#, |
| E68 => 16#68#, E69 => 16#69#, E6A => 16#6A#, E6B => 16#6B#, |
| E6C => 16#6C#, E6D => 16#6D#, E6E => 16#6E#, E6F => 16#6F#, |
| |
| E70 => 16#70#, E71 => 16#71#, E72 => 16#72#, E73 => 16#73#, |
| E74 => 16#74#, E75 => 16#75#, E76 => 16#76#, E77 => 16#77#, |
| E78 => 16#78#, E79 => 16#79#, E7A => 16#7A#, E7B => 16#7B#, |
| E7C => 16#7C#, E7D => 16#7D#, E7E => 16#7E#, E7F => 16#7F#); |
| for T'Size use 8; |
| |
| procedure Print (X : T) is |
| begin |
| Ada.Integer_Text_IO.Put (T'Pos (X)); |
| Ada.Integer_Text_IO.Put (T'Enum_Rep (X)); |
| Ada.Text_IO.New_Line; |
| end; |
| |
| begin |
| Print (T'First); |
| Print (T'Last); |
| end; |