home *** CD-ROM | disk | FTP | other *** search
/ Programmer's ROM - The Computer Language Library / programmersrom.iso / ada / sql / sqlddlts.in < prev    next >
Encoding:
Text File  |  1988-05-03  |  2.2 KB  |  87 lines

  1. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  2. --boats.ada
  3. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  4. package BOATS is
  5.  
  6.   type OCEAN_NAME is (INDIAN,ATLANTIC,PACIFIC,MEDITERRANEAN,ARCTIC,CARRIBEAN,
  7.       SOUTH_CHINA,BERING,GULF_OF_MEXICO,HUDSON_BAY);
  8.   subtype UNIQUE_OCEAN_NAME is OCEAN_NAME;
  9.  
  10.   type ANALYST_NAME is new STRING(1..20);
  11.   subtype UNIQUE_ANALYST_NAME is ANALYST_NAME;
  12.   subtype MANAGER_NAME        is UNIQUE_ANALYST_NAME;
  13.  
  14.   type ANALYST_SALARY is new FLOAT;
  15.  
  16.   type SHIP_NAME is new STRING(1..15);
  17.   subtype UNIQUE_SHIP_NAME is SHIP_NAME;
  18.  
  19.   type POSITION_LAT  is new STRING(1..7);
  20.   type POSITION_LONG is new STRING(1..8);
  21.  
  22.   type POSITION_LATLONG is
  23.     record
  24.       LAT  : POSITION_LAT;
  25.       LONG : POSITION_LONG;
  26.     end record;
  27.  
  28.   type SHIP_TYPE is (CARRIER,DESTROYER);
  29.  
  30.   type CREW_SPECIALTY is (COOK,SHUFFLEBOARD_TEACHER);
  31.  
  32.   type SHIP_CREW is
  33.     record
  34.       TY_PE     : SHIP_TYPE;
  35.       SPECIALTY : CREW_SPECIALTY;
  36.     end record;
  37.  
  38.   subtype UNIQUE_SHIP_CREW is SHIP_CREW;
  39.  
  40.   type CREW_COUNT is new INTEGER;
  41.  
  42.   type OCEAN is
  43.     record
  44.       NAME    : UNIQUE_OCEAN_NAME;
  45.       ANALYST : UNIQUE_ANALYST_NAME;
  46.     end record;
  47.  
  48.   type ANALYST is
  49.     record
  50.       NAME    : UNIQUE_ANALYST_NAME;
  51.       SALARY  : ANALYST_SALARY;
  52.       MANAGER : MANAGER_NAME;
  53.     end record;
  54.  
  55.   type SHIP is
  56.     record
  57.       NAME    : UNIQUE_SHIP_NAME;
  58.       OCEAN   : OCEAN_NAME;
  59.       LATLONG : POSITION_LATLONG;
  60.       TY_PE   : SHIP_TYPE;
  61.     end record;
  62.  
  63.   type CREW is
  64.     record
  65.       KEY    : UNIQUE_SHIP_CREW;
  66.       NUMBER : CREW_COUNT;
  67.     end record;
  68.  
  69.   subtype SAMPLE_FIRST_LEVEL_SUBTYPE   is ANALYST_NAME;
  70.   subtype SAMPLE_SECOND_LEVEL_SUBTYPE  is SAMPLE_FIRST_LEVEL_SUBTYPE;
  71.   subtype ANOTHER_SECOND_LEVEL_SUBTYPE is SAMPLE_FIRST_LEVEL_SUBTYPE;
  72.  
  73.   type SAMPLE_SECOND_LEVEL_RECORD is
  74.     record
  75.       FIRST_LEVEL_RECORD : POSITION_LATLONG;
  76.       SCALAR_2           : OCEAN_NAME;
  77.     end record;
  78.  
  79.   type SAMPLE_THIRD_LEVEL_RECORD is
  80.     record
  81.       SECOND_LEVEL_RECORD : SAMPLE_SECOND_LEVEL_RECORD;
  82.       FIRST_LEVEL_RECORD  : SHIP_CREW;
  83.       SCALAR_3            : CREW_COUNT;
  84.     end record;
  85.  
  86. end BOATS;
  87.