Package: Interfaces.COBOL

Description

This version of the COBOL interfaces package assumes that the COBOL compiler uses ASCII as its internal representation of characters, i.e. that the type COBOL_Character has the same representation as the Ada type Standard.Character. Types And Operations For Internal Data Representations

Header

package Interfaces.COBOL is
 

Exceptions

Conversion_Error

Type Summary

Alphanumeric
Binary derived from Integer
Binary_Format
Byte
Byte_Array
COBOL_Character derived from Character
Decimal_Element
Display_Format
Floating derived from Float
Long_Binary derived from Long_Long_Integer
Long_Floating derived from Long_Float
Numeric
Packed_Decimal
Packed_Format

Constants and Named Numbers

High_Order_First : constant Binary_Format;
High_Order_First_Unsigned : constant Binary_Format;
Leading_Nonseparate : constant Display_Format;
Leading_Separate : constant Display_Format;
Low_Order_First : constant Binary_Format;
Low_Order_First_Unsigned : constant Binary_Format;
Max_Digits_Binary : constant := 9;
Max_Digits_Long_Binary : constant := 18;
Native_Binary : constant Binary_Format;
Native_Binary_Unsigned : constant Binary_Format;
Packed_Signed : constant Packed_Format;
Types For External Representation Of COBOL Binary Data
Packed_Unsigned : constant Packed_Format;
Trailing_Nonseparate : constant Display_Format;
Trailing_Separate : constant Display_Format;
Unsigned : constant Display_Format;

Variables

Ada_To_COBOL : array (Standard.Character) of COBOL_Character := (
  COBOL_Character'Val (000), COBOL_Character'Val (001),
  COBOL_Character'Val (002), COBOL_Character'Val (003),
  COBOL_Character'Val (004), COBOL_Character'Val (005),
  COBOL_Character'Val (006), COBOL_Character'Val (007),
  COBOL_Character'Val (008), COBOL_Character'Val (009),
  COBOL_Character'Val (010), COBOL_Character'Val (011),
  COBOL_Character'Val (012), COBOL_Character'Val (013),
  COBOL_Character'Val (014), COBOL_Character'Val (015),
  COBOL_Character'Val (016), COBOL_Character'Val (017),
  COBOL_Character'Val (018), COBOL_Character'Val (019),
  COBOL_Character'Val (020), COBOL_Character'Val (021),
  COBOL_Character'Val (022), COBOL_Character'Val (023),
  COBOL_Character'Val (024), COBOL_Character'Val (025),
  COBOL_Character'Val (026), COBOL_Character'Val (027),
  COBOL_Character'Val (028), COBOL_Character'Val (029),
  COBOL_Character'Val (030), COBOL_Character'Val (031),
  COBOL_Character'Val (032), COBOL_Character'Val (033),
  COBOL_Character'Val (034), COBOL_Character'Val (035),
  COBOL_Character'Val (036), COBOL_Character'Val (037),
  COBOL_Character'Val (038), COBOL_Character'Val (039),
  COBOL_Character'Val (040), COBOL_Character'Val (041),
  COBOL_Character'Val (042), COBOL_Character'Val (043),
  COBOL_Character'Val (044), COBOL_Character'Val (045),
  COBOL_Character'Val (046), COBOL_Character'Val (047),
  COBOL_Character'Val (048), COBOL_Character'Val (049),
  COBOL_Character'Val (050), COBOL_Character'Val (051),
  COBOL_Character'Val (052), COBOL_Character'Val (053),
  COBOL_Character'Val (054), COBOL_Character'Val (055),
  COBOL_Character'Val (056), COBOL_Character'Val (057),
  COBOL_Character'Val (058), COBOL_Character'Val (059),
  COBOL_Character'Val (060), COBOL_Character'Val (061),
  COBOL_Character'Val (062), COBOL_Character'Val (063),
  COBOL_Character'Val (064), COBOL_Character'Val (065),
  COBOL_Character'Val (066), COBOL_Character'Val (067),
  COBOL_Character'Val (068), COBOL_Character'Val (069),
  COBOL_Character'Val (070), COBOL_Character'Val (071),
  COBOL_Character'Val (072), COBOL_Character'Val (073),
  COBOL_Character'Val (074), COBOL_Character'Val (075),
  COBOL_Character'Val (076), COBOL_Character'Val (077),
  COBOL_Character'Val (078), COBOL_Character'Val (079),
  COBOL_Character'Val (080), COBOL_Character'Val (081),
  COBOL_Character'Val (082), COBOL_Character'Val (083),
  COBOL_Character'Val (084), COBOL_Character'Val (085),
  COBOL_Character'Val (086), COBOL_Character'Val (087),
  COBOL_Character'Val (088), COBOL_Character'Val (089),
  COBOL_Character'Val (090), COBOL_Character'Val (091),
  COBOL_Character'Val (092), COBOL_Character'Val (093),
  COBOL_Character'Val (094), COBOL_Character'Val (095),
  COBOL_Character'Val (096), COBOL_Character'Val (097),
  COBOL_Character'Val (098), COBOL_Character'Val (099),
  COBOL_Character'Val (100), COBOL_Character'Val (101),
  COBOL_Character'Val (102), COBOL_Character'Val (103),
  COBOL_Character'Val (104), COBOL_Character'Val (105),
  COBOL_Character'Val (106), COBOL_Character'Val (107),
  COBOL_Character'Val (108), COBOL_Character'Val (109),
  COBOL_Character'Val (110), COBOL_Character'Val (111),
  COBOL_Character'Val (112), COBOL_Character'Val (113),
  COBOL_Character'Val (114), COBOL_Character'Val (115),
  COBOL_Character'Val (116), COBOL_Character'Val (117),
  COBOL_Character'Val (118), COBOL_Character'Val (119),
  COBOL_Character'Val (120), COBOL_Character'Val (121),
  COBOL_Character'Val (122), COBOL_Character'Val (123),
  COBOL_Character'Val (124), COBOL_Character'Val (125),
  COBOL_Character'Val (126), COBOL_Character'Val (127),
  COBOL_Character'Val (128), COBOL_Character'Val (129),
  COBOL_Character'Val (130), COBOL_Character'Val (131),
  COBOL_Character'Val (132), COBOL_Character'Val (133),
  COBOL_Character'Val (134), COBOL_Character'Val (135),
  COBOL_Character'Val (136), COBOL_Character'Val (137),
  COBOL_Character'Val (138), COBOL_Character'Val (139),
  COBOL_Character'Val (140), COBOL_Character'Val (141),
  COBOL_Character'Val (142), COBOL_Character'Val (143),
  COBOL_Character'Val (144), COBOL_Character'Val (145),
  COBOL_Character'Val (146), COBOL_Character'Val (147),
  COBOL_Character'Val (148), COBOL_Character'Val (149),
  COBOL_Character'Val (150), COBOL_Character'Val (151),
  COBOL_Character'Val (152), COBOL_Character'Val (153),
  COBOL_Character'Val (154), COBOL_Character'Val (155),
  COBOL_Character'Val (156), COBOL_Character'Val (157),
  COBOL_Character'Val (158), COBOL_Character'Val (159),
  COBOL_Character'Val (160), COBOL_Character'Val (161),
  COBOL_Character'Val (162), COBOL_Character'Val (163),
  COBOL_Character'Val (164), COBOL_Character'Val (165),
  COBOL_Character'Val (166), COBOL_Character'Val (167),
  COBOL_Character'Val (168), COBOL_Character'Val (169),
  COBOL_Character'Val (170), COBOL_Character'Val (171),
  COBOL_Character'Val (172), COBOL_Character'Val (173),
  COBOL_Character'Val (174), COBOL_Character'Val (175),
  COBOL_Character'Val (176), COBOL_Character'Val (177),
  COBOL_Character'Val (178), COBOL_Character'Val (179),
  COBOL_Character'Val (180), COBOL_Character'Val (181),
  COBOL_Character'Val (182), COBOL_Character'Val (183),
  COBOL_Character'Val (184), COBOL_Character'Val (185),
  COBOL_Character'Val (186), COBOL_Character'Val (187),
  COBOL_Character'Val (188), COBOL_Character'Val (189),
  COBOL_Character'Val (190), COBOL_Character'Val (191),
  COBOL_Character'Val (192), COBOL_Character'Val (193),
  COBOL_Character'Val (194), COBOL_Character'Val (195),
  COBOL_Character'Val (196), COBOL_Character'Val (197),
  COBOL_Character'Val (198), COBOL_Character'Val (199),
  COBOL_Character'Val (200), COBOL_Character'Val (201),
  COBOL_Character'Val (202), COBOL_Character'Val (203),
  COBOL_Character'Val (204), COBOL_Character'Val (205),
  COBOL_Character'Val (206), COBOL_Character'Val (207),
  COBOL_Character'Val (208), COBOL_Character'Val (209),
  COBOL_Character'Val (210), COBOL_Character'Val (211),
  COBOL_Character'Val (212), COBOL_Character'Val (213),
  COBOL_Character'Val (214), COBOL_Character'Val (215),
  COBOL_Character'Val (216), COBOL_Character'Val (217),
  COBOL_Character'Val (218), COBOL_Character'Val (219),
  COBOL_Character'Val (220), COBOL_Character'Val (221),
  COBOL_Character'Val (222), COBOL_Character'Val (223),
  COBOL_Character'Val (224), COBOL_Character'Val (225),
  COBOL_Character'Val (226), COBOL_Character'Val (227),
  COBOL_Character'Val (228), COBOL_Character'Val (229),
  COBOL_Character'Val (230), COBOL_Character'Val (231),
  COBOL_Character'Val (232), COBOL_Character'Val (233),
  COBOL_Character'Val (234), COBOL_Character'Val (235),
  COBOL_Character'Val (236), COBOL_Character'Val (237),
  COBOL_Character'Val (238), COBOL_Character'Val (239),
  COBOL_Character'Val (240), COBOL_Character'Val (241),
  COBOL_Character'Val (242), COBOL_Character'Val (243),
  COBOL_Character'Val (244), COBOL_Character'Val (245),
  COBOL_Character'Val (246), COBOL_Character'Val (247),
  COBOL_Character'Val (248), COBOL_Character'Val (249),
  COBOL_Character'Val (250), COBOL_Character'Val (251),
  COBOL_Character'Val (252), COBOL_Character'Val (253),
  COBOL_Character'Val (254), COBOL_Character'Val (255));
COBOL_To_Ada : array (COBOL_Character) of Standard.Character := (
  Standard.Character'Val (000), Standard.Character'Val (001),
  Standard.Character'Val (002), Standard.Character'Val (003),
  Standard.Character'Val (004), Standard.Character'Val (005),
  Standard.Character'Val (006), Standard.Character'Val (007),
  Standard.Character'Val (008), Standard.Character'Val (009),
  Standard.Character'Val (010), Standard.Character'Val (011),
  Standard.Character'Val (012), Standard.Character'Val (013),
  Standard.Character'Val (014), Standard.Character'Val (015),
  Standard.Character'Val (016), Standard.Character'Val (017),
  Standard.Character'Val (018), Standard.Character'Val (019),
  Standard.Character'Val (020), Standard.Character'Val (021),
  Standard.Character'Val (022), Standard.Character'Val (023),
  Standard.Character'Val (024), Standard.Character'Val (025),
  Standard.Character'Val (026), Standard.Character'Val (027),
  Standard.Character'Val (028), Standard.Character'Val (029),
  Standard.Character'Val (030), Standard.Character'Val (031),
  Standard.Character'Val (032), Standard.Character'Val (033),
  Standard.Character'Val (034), Standard.Character'Val (035),
  Standard.Character'Val (036), Standard.Character'Val (037),
  Standard.Character'Val (038), Standard.Character'Val (039),
  Standard.Character'Val (040), Standard.Character'Val (041),
  Standard.Character'Val (042), Standard.Character'Val (043),
  Standard.Character'Val (044), Standard.Character'Val (045),
  Standard.Character'Val (046), Standard.Character'Val (047),
  Standard.Character'Val (048), Standard.Character'Val (049),
  Standard.Character'Val (050), Standard.Character'Val (051),
  Standard.Character'Val (052), Standard.Character'Val (053),
  Standard.Character'Val (054), Standard.Character'Val (055),
  Standard.Character'Val (056), Standard.Character'Val (057),
  Standard.Character'Val (058), Standard.Character'Val (059),
  Standard.Character'Val (060), Standard.Character'Val (061),
  Standard.Character'Val (062), Standard.Character'Val (063),
  Standard.Character'Val (064), Standard.Character'Val (065),
  Standard.Character'Val (066), Standard.Character'Val (067),
  Standard.Character'Val (068), Standard.Character'Val (069),
  Standard.Character'Val (070), Standard.Character'Val (071),
  Standard.Character'Val (072), Standard.Character'Val (073),
  Standard.Character'Val (074), Standard.Character'Val (075),
  Standard.Character'Val (076), Standard.Character'Val (077),
  Standard.Character'Val (078), Standard.Character'Val (079),
  Standard.Character'Val (080), Standard.Character'Val (081),
  Standard.Character'Val (082), Standard.Character'Val (083),
  Standard.Character'Val (084), Standard.Character'Val (085),
  Standard.Character'Val (086), Standard.Character'Val (087),
  Standard.Character'Val (088), Standard.Character'Val (089),
  Standard.Character'Val (090), Standard.Character'Val (091),
  Standard.Character'Val (092), Standard.Character'Val (093),
  Standard.Character'Val (094), Standard.Character'Val (095),
  Standard.Character'Val (096), Standard.Character'Val (097),
  Standard.Character'Val (098), Standard.Character'Val (099),
  Standard.Character'Val (100), Standard.Character'Val (101),
  Standard.Character'Val (102), Standard.Character'Val (103),
  Standard.Character'Val (104), Standard.Character'Val (105),
  Standard.Character'Val (106), Standard.Character'Val (107),
  Standard.Character'Val (108), Standard.Character'Val (109),
  Standard.Character'Val (110), Standard.Character'Val (111),
  Standard.Character'Val (112), Standard.Character'Val (113),
  Standard.Character'Val (114), Standard.Character'Val (115),
  Standard.Character'Val (116), Standard.Character'Val (117),
  Standard.Character'Val (118), Standard.Character'Val (119),
  Standard.Character'Val (120), Standard.Character'Val (121),
  Standard.Character'Val (122), Standard.Character'Val (123),
  Standard.Character'Val (124), Standard.Character'Val (125),
  Standard.Character'Val (126), Standard.Character'Val (127),
  Standard.Character'Val (128), Standard.Character'Val (129),
  Standard.Character'Val (130), Standard.Character'Val (131),
  Standard.Character'Val (132), Standard.Character'Val (133),
  Standard.Character'Val (134), Standard.Character'Val (135),
  Standard.Character'Val (136), Standard.Character'Val (137),
  Standard.Character'Val (138), Standard.Character'Val (139),
  Standard.Character'Val (140), Standard.Character'Val (141),
  Standard.Character'Val (142), Standard.Character'Val (143),
  Standard.Character'Val (144), Standard.Character'Val (145),
  Standard.Character'Val (146), Standard.Character'Val (147),
  Standard.Character'Val (148), Standard.Character'Val (149),
  Standard.Character'Val (150), Standard.Character'Val (151),
  Standard.Character'Val (152), Standard.Character'Val (153),
  Standard.Character'Val (154), Standard.Character'Val (155),
  Standard.Character'Val (156), Standard.Character'Val (157),
  Standard.Character'Val (158), Standard.Character'Val (159),
  Standard.Character'Val (160), Standard.Character'Val (161),
  Standard.Character'Val (162), Standard.Character'Val (163),
  Standard.Character'Val (164), Standard.Character'Val (165),
  Standard.Character'Val (166), Standard.Character'Val (167),
  Standard.Character'Val (168), Standard.Character'Val (169),
  Standard.Character'Val (170), Standard.Character'Val (171),
  Standard.Character'Val (172), Standard.Character'Val (173),
  Standard.Character'Val (174), Standard.Character'Val (175),
  Standard.Character'Val (176), Standard.Character'Val (177),
  Standard.Character'Val (178), Standard.Character'Val (179),
  Standard.Character'Val (180), Standard.Character'Val (181),
  Standard.Character'Val (182), Standard.Character'Val (183),
  Standard.Character'Val (184), Standard.Character'Val (185),
  Standard.Character'Val (186), Standard.Character'Val (187),
  Standard.Character'Val (188), Standard.Character'Val (189),
  Standard.Character'Val (190), Standard.Character'Val (191),
  Standard.Character'Val (192), Standard.Character'Val (193),
  Standard.Character'Val (194), Standard.Character'Val (195),
  Standard.Character'Val (196), Standard.Character'Val (197),
  Standard.Character'Val (198), Standard.Character'Val (199),
  Standard.Character'Val (200), Standard.Character'Val (201),
  Standard.Character'Val (202), Standard.Character'Val (203),
  Standard.Character'Val (204), Standard.Character'Val (205),
  Standard.Character'Val (206), Standard.Character'Val (207),
  Standard.Character'Val (208), Standard.Character'Val (209),
  Standard.Character'Val (210), Standard.Character'Val (211),
  Standard.Character'Val (212), Standard.Character'Val (213),
  Standard.Character'Val (214), Standard.Character'Val (215),
  Standard.Character'Val (216), Standard.Character'Val (217),
  Standard.Character'Val (218), Standard.Character'Val (219),
  Standard.Character'Val (220), Standard.Character'Val (221),
  Standard.Character'Val (222), Standard.Character'Val (223),
  Standard.Character'Val (224), Standard.Character'Val (225),
  Standard.Character'Val (226), Standard.Character'Val (227),
  Standard.Character'Val (228), Standard.Character'Val (229),
  Standard.Character'Val (230), Standard.Character'Val (231),
  Standard.Character'Val (232), Standard.Character'Val (233),
  Standard.Character'Val (234), Standard.Character'Val (235),
  Standard.Character'Val (236), Standard.Character'Val (237),
  Standard.Character'Val (238), Standard.Character'Val (239),
  Standard.Character'Val (240), Standard.Character'Val (241),
  Standard.Character'Val (242), Standard.Character'Val (243),
  Standard.Character'Val (244), Standard.Character'Val (245),
  Standard.Character'Val (246), Standard.Character'Val (247),
  Standard.Character'Val (248), Standard.Character'Val (249),
  Standard.Character'Val (250), Standard.Character'Val (251),
  Standard.Character'Val (252), Standard.Character'Val (253),
  Standard.Character'Val (254), Standard.Character'Val (255));

Other Items:

type Floating      is new Float;

type Long_Floating is new Long_Float;

type Binary        is new Integer;

type Long_Binary   is new Long_Long_Integer;

type Decimal_Element is mod 16;

type Packed_Decimal is array (Positive range <>) of Decimal_Element;
pragma Pack (Packed_Decimal);

type COBOL_Character is new Character;

type Alphanumeric is array (Positive range <>) of COBOL_Character;
pragma Pack (Alphanumeric);

function To_COBOL (Item : String) return Alphanumeric;

function To_Ada   (Item : Alphanumeric) return String;

procedure To_COBOL
  (Item   : String;
   Target : out Alphanumeric;
   Last   : out Natural);

procedure To_Ada
  (Item   : Alphanumeric;
   Target : out String;
   Last   : out Natural);

type Numeric is array (Positive range <>) of COBOL_Character;
pragma Pack (Numeric);

type Display_Format is private;
Formats For COBOL Data Representations

type Binary_Format is private;

type Packed_Format is private;

type Byte is mod 2 ** COBOL_Character'Size;

type Byte_Array is array (Positive range <>) of Byte;
pragma Pack (Byte_Array);

generic
   type Num is delta <> digits <>;

package Decimal_Conversions is
 
Display Formats: data values are represented as Numeric

Other Items:

function Valid
  (Item   : Numeric;
   Format : Display_Format)
   return   Boolean;

function Length
  (Format : Display_Format)
   return   Natural;

function To_Decimal
  (Item   : Numeric;
   Format : Display_Format)
   return   Num;

function To_Display
  (Item   : Num;
   Format : Display_Format)
   return   Numeric;
Packed Formats: data values are represented as Packed_Decimal

function Valid
  (Item   : Packed_Decimal;
   Format : Packed_Format)
   return   Boolean;

function Length
  (Format : Packed_Format)
   return   Natural;

function To_Decimal
  (Item   : Packed_Decimal;
   Format : Packed_Format)
   return   Num;

function To_Packed
  (Item   : Num;
   Format : Packed_Format)
   return   Packed_Decimal;
Binary Formats: external data values are represented as Byte_Array

function Valid
  (Item   : Byte_Array;
   Format : Binary_Format)
   return   Boolean;

function Length
  (Format : Binary_Format)
   return   Natural;

function To_Decimal
  (Item   : Byte_Array;
   Format : Binary_Format) return Num;

function To_Binary
  (Item   : Num;
   Format : Binary_Format)
   return   Byte_Array;
Internal Binary formats: data values are of type Binary/Long_Binary

function To_Decimal (Item : Binary)      return Num;

function To_Decimal (Item : Long_Binary) return Num;

function To_Binary      (Item : Num)  return Binary;

function To_Long_Binary (Item : Num)  return Long_Binary;

private

   --  Implementation-defined ...
end Decimal_Conversions;

private

   --  Implementation-defined ...
end Interfaces.COBOL;