[comp.lsi] Chapter 03 - 1076 DoD translated VHDL test suite

grout@cadillac.stars.flab.Fujitsu.JUNET (Steve Grout) (07/13/88)

This is Chapter 03 of a 1076-1987 VHDL test suite which was translated
from an 7.2 VHDL version test suite
developed by Intermetrics under funding by the DoD.  These tests
have been verified todate mainly against a VHDL 'recognizer' so they
may yet have problems with VHDL semantics.  They consist of two
classes of tests, 

  ERROR Tests: - those which start with 'e' should result in VHDL errors
   at the spot in them where there is a comment about error being expected.

  SIMPLE Tests: - those which start with 's' should analyze or compile cleanly.

These tests are being shared back to industry in hopes of getting together
a joint set of tests, checked out and verified, which we can all use to 
make sure our various VHDL CAD tools work correctly.

Your comments and especially constructive criticism is urgently requested
via any way we can get it.  All replies and resulting changes/updates will
be posted back to the same places these tests were originally posted.

Thanks for your support!

--Steve Grout, MCC CAD Program. (512)338-3516, grout@mcc.com


---- Cut Here and unpack ----
#!/bin/sh
#
# This is a 'shar' archive.  Cut out everything above the line
# and unpack them with /bin/sh, i.e., using a command like:
#     % sh < {the contents of this message after cutting}
#
#
echo "--------------------------------------------------"
echo "Starting to extract Chapter 03 of a 1076-1987 VHDL"
echo "    translated DoD/Intermetrics test suite...."
echo "--------------------------------------------------"
echo x - TEST-SYNOPSIS.text
sed 's/^X//' >TEST-SYNOPSIS.text <<'*-*-END-of-TEST-SYNOPSIS.text-*-*'
X------------------------------------------------------------------------
XChapter:   03-Types  < Note: wThis chapter is currently being translated. >
X------------------------------------------------------------------------
X
X------------------------------------------------------------------------
X  Paragraph: rename Types - 4.0 --> 3.0
X------------------------------------------------------------------------
XTest:        e-03-0-0-0001a.vhd
X-- Check that a given type cannot have a subelement whose type is the given type
X-- itself.
X
X------------------------------------------------------------------------
X  Paragraph: rename Scalar Types - 4.1 --> 3.1
X------------------------------------------------------------------------
XTest:        e-03-1-0-0001a.vhd
X-- Check that a "null" range is only allowed as the iteration scheme of
X-- a loop statement or the generation scheme of a generate statement.
X-- JB  (DB 7/11/85)
XTest:        e-03-1-0-0002a.vhd
X-- Check that if a range constraint is used in a subtype indication, the type of
X-- the expressions must be the same as the base type of the type mark of the
X-- subtype indication.
X-- JB  (DB 7/11/85)
XTest:        e-03-1-0-0003a.vhd
X-- Check that if a range constraint is used in a subtype indication, each
X-- static range bound must belong to the range of the type mark of the subtype
X-- indication.
X-- JB  (DB 7/12/85)
XTest:        s-03-1-0-0001a.vhdl
X-- Check that a "null" range is allowed in the iteration scheme of a loop
X-- statement or the generation scheme of a generate statement.
XTest:        s-03-1-0-0002a.vhdl
X-- Check that the range constraint on a subtype may be a descending range while
X-- the parent type is an ascending range. Check that the range constraint on a
X-- subtype may be an ascending range while the parent type is a descending
X-- range.
XTest:        s-03-1-0-0003a.vhdl
X-- Check that the direction of an integer type, real type, and physical
X-- type is the direction of it's range constraint.
X
X------------------------------------------------------------------------
X  Paragraph: rename Enumeration Types - 4.1.1 --> 3.1.1
X------------------------------------------------------------------------
XTest:        e-03-1-1-0001a.vhd
X-- Check that the identifiers and character literals listed by an enumerative
X-- type definition must be distinct.
XTest:        e-03-1-1-0002a.vhd
X-- Check that string and integer literals are not allowed as enumeration
X-- literals.
XTest:        e-03-1-1-0003a.vhd
X-- Check that at least one enumeration literal must be present in an enumeration
X-- type declaration.
XTest:        e-03-1-1-0004a.vhd
X-- Check that at any place where an overloaded literal occurs in a program the
X-- type of the enumeration literal must be determinable from the context.
X-- (Example: type A1 is (aa); type A2 is (aa); bool: boolean; bool := aa /= aa)
XTest:        s-03-1-1-0001a.vhdl
X-- Check that the position value of the nth listed enumeration literal is n-1.
X-- As a special case, check that the position value of the first listed
X-- enumeration literal is zero.
XTest:        s-03-1-1-0002a.vhdl
X-- Check that enumeration literals may be overloaded. As a special case check
X-- where two enumeration types have identical enumeration literals.
X
X------------------------------------------------------------------------
X  Paragraph: rename Predefined Enumeration Types - 4.1.1.1 --> 3.1.1.1
X------------------------------------------------------------------------
XTest:        e-03-1-1-1001a.vhd
X-- Check that the predefined type BIT has no values other than '0' and '1'.
X-- Check for integer literals '0' and '1', string literals such as '0101', and
X-- boolean literals FALSE and TRUE.
XTest:        e-03-1-1-1002a.vhd
X-- Check that the predefined type BOOLEAN has no values other than FALSE and
X-- TRUE. Check for integer literals '0' and '1', bit literals '0' and '1',
X-- string literals 'TRUE' and 'FALSE'.
XTest:        e-03-1-1-1003a.vhd
X-- Check that the predefined type CHARACTER has no values other than the (128)
X-- characters of the ASCII character set. Check for single-digit integer
X-- literals, single-character identifiers, and string literals.
XTest:        e-03-1-1-1004a.vhd
X-- Check that the predefined types Severity_Level has no value other
X-- NOTE, WARNING, ERROR, FAILURE. Check for identifiers and string literals.
XTest:        s-03-1-1-1001a.vhd
X-- Check that the predefined type BIT has the values '0' and '1'.
XTest:        s-03-1-1-1002a.vhd
X-- Check that BIT'('0') < BIT'('1').
X-- CS 6/7/84
XTest:        s-03-1-1-1003a.vhd
X-- Check that the predefined type BOOLEAN has the values FALSE and TRUE.
XTest:        s-03-1-1-1004a.vhd
X-- Check that BOOLEAN'(FALSE) < BOOLEAN'(TRUE).
XTest:        s-03-1-1-1005a.vhd
X-- Check that the predefined type CHARACTER has as its values the (128)
X-- characters of the ASCII character set.
XTest:        s-03-1-1-1006a.vhd
X-- Check that the enumeration literals of type CHARACTER have the ordering given
X-- in package STANDARD.
XTest:        s-03-1-1-1007a.vhd
X-- Check that the predefined type Severity_Level has no value other than 
X-- NOTE, WARNING, ERROR, AND FAILURE.
XTest:        s-03-1-1-1008a.vhd
X-- Check that the enumeration literals of type Severity_Level have the
X-- ordering given in the package STANDARD.
X
X------------------------------------------------------------------------
X  Paragraph: rename Integer Types - 4.1.2 --> 3.1.2
X------------------------------------------------------------------------
XTest:        e-03-1-2-0001a.vhd
X--	Check that nonstatic expressions are not permitted in
X--	range constraints in integer type definitons
XTest:        e-03-1-2-0002a.vhd
X-- Check that expressions in range constraints in integer type definitions must
X-- be of some integer type.
X             
Xentity E (PT: BOOLEAN) is
X    type ENUM1 is (ONE, TWO, THREE);
XTest:        s-03-1-2-0001a.vhd
X-- Check that expressions in range constraints in integer type definitions need
X-- not be of the same integer type.
X        e-03-3-0-0001a.vhd
X        e-03-3-0-0001b.vhd
X        s-03-3-0-0001a.vhd
X
X------------------------------------------------------------------------
X  Paragraph: rename Predefined Integer Types - 4.1.2.1 --> 3.1.2.1
X------------------------------------------------------------------------
XTest:        s-03-1-2-1001a.vhd
X-- Check that the integer type INTEGER is predefined.
XTest:        s-03-1-2-1002a.vhd
X--	Check that INTEGER'LEFT < INTEGER'RIGHT for the 
X--	predefined type INTEGER;
X
X------------------------------------------------------------------------
X  Paragraph: rename Physical Types - 4.1.3 --> 3.1.3
X------------------------------------------------------------------------
XTest:        e-03-1-3-0001a.vhd
X-- Check that a physical type definition must have a base unit declaration.
X-- CS 6/8/84
XTest:        e-03-1-3-0002a.vhd
X-- Check that a physical type definition may not have more than one base unit
X-- declaration.
XTest:        e-03-1-3-0003a.vhd
X-- Check that a physical type definition must have a range constraint.
XTest:        e-03-1-3-0004a.vhd
X-- Check that a range constraint in a physical type definition must have static
X-- expressions of some integer type as bounds.
XTest:        e-03-1-3-0005a.vhd
X-- Check that unit names (base unit and secondary units) are unique within the
X-- scope of the physical type definition.
X-- CS 6/8/84
XTest:        e-03-1-3-0006a.vhd
X-- Check that secondary unit names must be defined directly or indirectly
X-- in terms of the base unit of the type declaration in which they
X-- appear (no definitions that make reference to units defined outside this
X-- physical type definition, and no definitions that make no use of units
X-- defined in this physical type definition).
XTest:        e-03-1-3-0007a.vhd
X-- Check that the abstract literal portion of a physical literal in secondary
X-- unit declaration must be an integer literal.
XTest:        e-03-1-3-0008a.vhd
X-- Check that the number of base units that correspond to a secondary
X-- unit name must be within the range of a values specified by the
X-- range constraint.  As special case, check when 1 is not
X-- within the specified range.
XTest:        e-03-1-3-0009a.vhd
X--	Check that unit names must be declared before they are used.
XTest:        e-03-1-3-0010a.vhd
X--    Check that the position number of any physical literal
X--    must belong to the range specified by the range constraints
X--    in the physical type declaration.
XTest:        s-03-1-3-0001a.vhd
X-- Check that a physical type definition may have zero secondary unit
X-- declarations.
XTest:        s-03-1-3-0002a.vhd
X-- Check that the bounds in a range constraint in a physical type definition
X-- need not be of the same integer type. Check that negative bounds are allowed.
XTest:        s-03-1-3-0003a.vhd
X-- Check that the relative order of secondary unit declarations is not fixed
X-- as long as units are not used before they are declared.
X-- JB  (DB 7/17/85)
XTest:        s-03-1-3-0004a.vhd
X-- Check that the abstract literal portion of a physical literal in a secondary
X-- unit declaration may be omitted, and if it is omitted it is equivalent to a
X-- physical literal with the integer '1' followed by the unit name (check
X-- equivalence by taking its POS).
XTest:        s-03-1-3-0005a.vhd
X-- Check that the position number of a physical literal consisting solely of a
X-- unit name is the number of units of the base unit contained in the unit name.
XTest:        s-03-1-3-0006a.vhd
X-- Check that the position number of a physical literal with an abstract literal
X-- part is rounded up to the nearest integer of the product of the abstract 
X-- literal part of physical literal and the position number of its unit name.
X
X------------------------------------------------------------------------
X  Paragraph: rename Predefined Physical Types - 4.1.3.1 --> 3.1.3.1
X------------------------------------------------------------------------
XTest:        s-03-1-3-1001a.vhd
X-- Check that the physical type time (with units fs, ps, ns, us, ms, s, min, hr
X-- in their conventional magnitudes) is predefined in package STANDARD.
X
X------------------------------------------------------------------------
X  Paragraph: rename Floating Point Types - 4.1.4 --> 3.1.4
X------------------------------------------------------------------------
XTest:        e-03-1-4-0001a.vhd
X-- Check that nonstatic expressions are not permitted in floating point
X-- constraints in floating point type definitions.
XTest:        e-03-1-4-0002a.vhd
X-- Check that expressions in floating point constraints in floating point type
X-- definitions must be of some floating point type.
XTest:        e-03-1-4-0003a.vhd
X-- Check that if the range specified in the range constraint exceeds the range
X-- provided by the implementation, an error occurs (REAL'LOW-1..REAL'HIGH+1).
XTest:        s-03-1-4-0001a.vhd
X-- Check that expressions in floating point constraints in floating point type
X-- definitions need not be of the same floating point type.
X
X------------------------------------------------------------------------
X  Paragraph: Predefined Floating Point Types - 4.1.4.1 --> 3.1.4.1
X------------------------------------------------------------------------
XTest:        s-03-1-4-1001a.vhd
X-- Check the type floating point type REAL is predefined.
XTest:        s-03-1-4-1002a.vhd
X--	Check that REAL'LEFT < REAL'RIGHT for the 
X--	predefined type REAL;
X
X------------------------------------------------------------------------
X  Paragraph: rename Composite Types - 4.2 --> 3.2
X------------------------------------------------------------------------
X
X------------------------------------------------------------------------
X  Paragraph: rename Array Types - 4.2.1 --> 3.2.1
X------------------------------------------------------------------------
XTest:        e-03-2-1-0001a.vhd
X-- Check that an index subtype definition cannot occur in a constrained array
X-- definition and that a discrete range cannot occur in an unconstrained array
X-- definition (that is, all indexes are specified with 'range <>' or no indexes
X-- are specified with 'range <>').
X-- JB  (DB 7/12/85)
XTest:        e-03-2-1-0002a.vhd
X-- Check that the type specified in an index subtype definition and in a
X-- discrete range in an index constraint must be a discrete type. Check for
X-- physical types, floating point, record types with single discrete component,
X-- array types with single discrete component.
XTest:        e-03-2-1-0003a.vhd
X-- Check that in range specifications in discrete ranges in index constraints,
X-- the lower bound and the upper bound must be of the same type.
X-- CS 6/12/83
XTest:        e-03-2-1-0004a.vhd
X-- Check that if a subtype indication in an array subtype declaration or in an
X-- array object declaration has an index constraint, the number of discrete
X-- ranges must match the number of indices in the unconstrained array
X-- definition, and the base type of the type mark or of the range specification 
X-- of each index constraint must be the same as the base type of the
X-- corresponding index subtype definition in the unconstrained array definition.
X-- CS 6/12/84(E4321006a.vhd)
X-- JB  (DB 7/24/85)
XTest:        e-03-2-1-0005a.vhd
X-- Check that the index bounds of an array object must be generic expressions.
X-- JB  (DB 7/24/85)
XTest:        e-03-2-1-0006a.vhd
X-- Check that the range bounds, if any, in the element subtype indication of an
X-- array must be generic expressions.
X-- CS 6/12/84
X-- JB  (DB 7/24/85)
XTest:        e-03-2-1-0007a.vhd
X-- Check that for an array object declared by an object declaration, the subtype
X-- indication must define a constrained array subtype, unless this object is a
X-- constant.
XTest:        e-03-2-1-0008a.vhd
X-- Check that the type of an array element cannot be an unconstrained array
X-- type.
XTest:        e-03-2-1-0009a.vhd
X--   Check that a subtype indication which appears as a discrete range 
X--   must not contain a characteristic indication
XTest:        s-03-2-1-0001a.vhd
X-- Check that the type specified in an index subtype definition and in the
X-- discrete ranges in index constraints can be any discrete type. 
X-- Check for integer, user defined enumeration, bit, boolean,
X-- character. Check for various odd range specifications, e.g. big negative
X-- numbers.
XTest:        s-03-2-1-0002a.vhd
X-- Check that in multidimensional arrays, the index types need not be the same.
XTest:        s-03-2-1-0003a.vhd
X-- Check that an array element whose type is an array type may have 
X-- generic expressions as its bounds.
XTest:        s-03-2-1-0004a.vhd
X-- Check that in constant array object declarations, the subtype indication may
X-- be an unconstrained array type.
X
X------------------------------------------------------------------------
X  Paragraph: rename Index Constraints And Discrete Ranges - --> 3.2.1.1
X------------------------------------------------------------------------
X        (...No tests available from 7.2 suite.)    
X
X------------------------------------------------------------------------
X  Paragraph: rename Predefined Array Types - 4.2.1.1 --> 3.2.1.2
X------------------------------------------------------------------------
XTest:        s-03-2-1-1001a.vhd
X-- Check that the type STRING is predefined in package STANDARD as
X-- "array(POSITIVE range <>) of CHARACTER".
XTest:        s-03-2-1-1002a.vhd
X-- Check that type BIT_VECTOR is predefined in package STANDARD as
X-- "array( NATURAL range <>) of BIT".
X
X------------------------------------------------------------------------
X  Paragraph: rename Record Types - 4.2.2 --> 3.2.2
X------------------------------------------------------------------------
XTest:        e-03-2-2-0001a.vhd
X-- Check that the identifiers of all elements of a record type must be distinct.
XTest:        e-03-2-2-0002a.vhd
X-- Check that the use of a name that denotes a record element is not allowed
X-- within the record type definition that declares the element.
X-- CS 6/13/84
XTest:        e-03-2-2-0003a.vhd
X-- Check that a record type declaration must contain at least one element.
XTest:        e-03-2-2-0004a.vhd
X-- Check that the type of a record element cannot be an unconstrained array.
XTest:        e-03-2-2-0005a.vhd
X-- Check that the bounds of an array element of a record type must be generic
X-- expressions.
XTest:        s-03-2-2-0001a.vhd
X-- Check that an element declaration with several identifiers is equivalent to a
X-- sequence of single element declarations.
XTest:        s-03-2-2-0002a.vhd
X-- Check that two different record type declarations may have the same set of
X-- record element declarations.
XTest:        s-03-2-2-0003a.vhd
X-- Check that an array element of a record type may have generic expressions for
X-- its bounds.
X
X------------------------------------------------------------------------
X  Paragraph: rename Type Conversion to Integer/Floating Types - 4.3 --> 7.3.5
X------------------------------------------------------------------------
X
X------------------------------------------------------------------------
X  Paragraph: rename Access Type - --> 3.3
X------------------------------------------------------------------------
X        (...No tests available from 7.2 suite.)    
X
X------------------------------------------------------------------------
X  Paragraph: rename Incomplete Type Declaration - --> 3.3.1
X------------------------------------------------------------------------
X        (...No tests available from 7.2 suite.)    
X
X------------------------------------------------------------------------
X  Paragraph: rename Allocation and deallocation of Objects - --> 3.3.2
X------------------------------------------------------------------------
X        (...No tests available from 7.2 suite.)    
X
X------------------------------------------------------------------------
X  Paragraph: rename File Types - --> 3.4
X------------------------------------------------------------------------
X        (...No tests available from 7.2 suite.)    
X
X------------------------------------------------------------------------
X  Paragraph: rename File Operations - --> 3.4.1
X------------------------------------------------------------------------
X        (...No tests available from 7.2 suite.)    
X
*-*-END-of-TEST-SYNOPSIS.text-*-*
echo x - e-03-0-0-0001a.vhdl
sed 's/^X//' >e-03-0-0-0001a.vhdl <<'*-*-END-of-e-03-0-0-0001a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: E-03-0-0-0001A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that a given type cannot have a subelement whose type is the given type
X-- itself.
X-- CS 6/6/84
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xentity E  is
X    port (PT: BOOLEAN) ;
X    type A1 is array (1 to 1) of A1;
X        -- SEMANTIC ERROR: SUBELEMENT OF A TYPE CANNOT BE THE TYPE ITSELF
X
X    type R1 is record
X                 RE: R1;
X               end record;
X        -- SEMANTIC ERROR: SUBELEMENT OF A TYPE CANNOT BE THE TYPE ITSELF
X
Xend E;
*-*-END-of-e-03-0-0-0001a.vhdl-*-*
echo x - e-03-1-0-0001a.vhdl
sed 's/^X//' >e-03-1-0-0001a.vhdl <<'*-*-END-of-e-03-1-0-0001a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: E-03-1-0-0001A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that a "null" range is only allowed as the iteration scheme of
X-- a loop statement or the generation scheme of a generate statement.
X-- JB  (DB 7/11/85)
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xentity E  is
X    port (PT: BOOLEAN) ;
X   type A1 is array (1 downto 50) of INTEGER;   -- constrained array decl.
X   -- ERROR: NULL RANGE ONLY ALLOWED IN LOOP STATEMENT OR GENERATE STATEMENT
Xend E;
X
Xarchitecture BB of E is
X-- L_X_1: block
X   signal STR1 : STRING (1 downto 5);           -- object of unconstr. array
X   -- ERROR: NULL RANGE ONLY ALLOWED IN LOOP STATEMENT OR GENERATE STATEMENT
X begin
X  process
X   subtype BOO1 is BIT_VECTOR(5 to 1);          -- subtype of unconstr. array
X   -- ERROR: NULL RANGE ONLY ALLOWED IN LOOP STATEMENT OR GENERATE STATEMENT
X   type ENUM1 is (ONE,TWO,THREE,FOUR,FIVE);
X   subtype ENUM11 is ENUM1 range TWO downto FOUR; -- subtype with range constr.
X   -- ERROR: NULL RANGE ONLY ALLOWED IN LOOP STATEMENT OR GENERATE STATEMENT
X   variable BV1 : BIT_VECTOR(1 downto 6);       -- object of unconstr. array
X   -- ERROR: NULL RANGE ONLY ALLOWED IN LOOP STATEMENT OR GENERATE STATEMENT
X   type A2 is array (1 to 50) of INTEGER;
X   variable A3 : A2;
X   variable A4 : A2;
X   variable I4 : INTEGER range 1 to -1;         -- object with range constr.
X  begin
X   A3(2 downto 30 ) := A4(4 downto 32);         -- array aggregate
X   -- ERROR: NULL RANGE ONLY ALLOWED IN LOOP STATEMENT OR GENERATE STATEMENT
X   return;
X  end process;
X--  end block;
Xend BB;
*-*-END-of-e-03-1-0-0001a.vhdl-*-*
echo x - e-03-1-0-0002a.vhdl
sed 's/^X//' >e-03-1-0-0002a.vhdl <<'*-*-END-of-e-03-1-0-0002a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: E-03-1-0-0002A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that if a range constraint is used in a subtype indication, the type of
X-- the expressions must be the same as the base type of the type mark of the
X-- subtype indication.
X-- JB  (DB 7/11/85)
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xpackage P is
X   type I1 is range 1 to 10;
X   type I2 is range 1 to 10;
X   type REAL1 is range 1.0 to 9.0;
X   type REAL2 is range 1.0 to 9.0;
X   type ENUM1 is (ONE, TWO, THREE, FOUR, FIVE);
X   type ENUM2 is (ONE, TWO, THREE, FOUR, FIVE);
X   type PHYS1 is range 1 to 10
X     units
X         base1;
X     end units;
X   type PHYS2 is range 1 to 10
X     units
X         base2;
X     end units;
Xend P;
X
X-- with package P; 
Xuse P.all;
X
X
Xentity E  is
X    generic (GENI1: I1; GENI2: I2; GENI3: REAL1; GENI4: REAL2;
X             GENENUM1: ENUM1; GENENUM2: ENUM2; GENPHYS1: PHYS1;
X             GENPHYS2: PHYS2) ;
X	         port (PT: BOOLEAN) ;
X
X
X
X    subtype ST1 is I1 range GENI1 to GENI2;
X        -- SEMANTIC ERROR: TYPE INCOMPATIBILITY IN RANGE CONSTRAINT
X
X    subtype ST2 is ENUM1 range GENENUM2 to GENENUM1;
X        -- SEMANTIC ERROR: TYPE INCOMPATIBILITY IN RANGE CONSTRAINT
X
X    subtype ST3 is PHYS1 range GENPHYS2 to GENPHYS2;
X        -- SEMANTIC ERROR: TYPE INCOMPATIBILITY IN RANGE CONSTRAINT
X
Xend E;
*-*-END-of-e-03-1-0-0002a.vhdl-*-*
echo x - e-03-1-0-0003a.vhdl
sed 's/^X//' >e-03-1-0-0003a.vhdl <<'*-*-END-of-e-03-1-0-0003a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: E-03-1-0-0003A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that if a range constraint is used in a subtype indication, each
X-- static range bound must belong to the range of the type mark of the subtype
X-- indication.
X-- JB  (DB 7/12/85)
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xpackage P is
X    type I1 is range 1 to 10;
X
X    subtype I11 is I1 range 0 to 10;
X        -- SEMANTIC ERROR: RANGE CONSTRAINT ERROR
X
X    subtype I12 is I1 range 1 to 11;
X        -- SEMANTIC ERROR: RANGE CONSTRAINT ERROR
X
X    subtype I13 is I1 range 0 to 11;
X        -- SEMANTIC ERROR: RANGE CONSTRAINT ERROR
X
X    type REAL1 is range 1.0 to 9.0;
X
X    subtype REAL11 is REAL1 range 0.1 to 9.0;
X        -- SEMANTIC ERROR: RANGE CONSTRAINT ERROR
X
X    subtype REAL12 is REAL1 range 1.0 to 9.1;
X        -- SEMANTIC ERROR: RANGE CONSTRAINT ERROR
X
X    subtype REAL13 is REAL1 range 0.1 to 9.1;
X        -- SEMANTIC ERROR: RANGE CONSTRAINT ERROR
X
X    type ENUM1 is (ONE, TWO, THREE, FOUR, FIVE);
X
X    subtype ENUM11 is ENUM1 range TWO to FOUR;
X        -- OK
X
X    subtype ENUM111 is ENUM11 range ONE to FOUR;
X        -- SEMANTIC ERROR: RANGE CONSTRAINT ERROR
X
X    subtype ENUM112 is ENUM11 range TWO to FIVE;
X        -- SEMANTIC ERROR: RANGE CONSTRAINT ERROR
X
X    subtype ENUM113 is ENUM11 range ONE to FIVE;
X        -- SEMANTIC ERROR: RANGE CONSTRAINT ERROR
X
X    type PHYS1 is range 2 to 10
X      units
X          base1;
X      end units;
X
X    subtype PHYS11 is PHYS1 range 1 base1 to 10 base1;
X        -- SEMANTIC ERROR: RANGE CONSTRAINT ERROR
X
X    subtype PHYS12 is PHYS1 range 2 base1 to 11 base1;
X        -- SEMANTIC ERROR: RANGE CONSTRAINT ERROR
X
X    subtype PHYS13 is PHYS1 range 1 base1 to 11 base1;
X        -- SEMANTIC ERROR: RANGE CONSTRAINT ERROR
X
Xend P;
*-*-END-of-e-03-1-0-0003a.vhdl-*-*
echo x - e-03-1-1-0001a.vhdl
sed 's/^X//' >e-03-1-1-0001a.vhdl <<'*-*-END-of-e-03-1-1-0001a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: E-03-1-1-0001A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that the identifiers and character literals listed by an enumerative
X-- type definition must be distinct.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xpackage P is
X
X    type ENUM1 is (E1, E2, E1, E3);
X        -- SEMANTIC ERROR: ENUMERATION LITERALS MUST BE DISTINCT
X
X    type ENUM2 is ('F', 'G', 'H', 'G', 'I');
X        -- SEMANTIC ERROR: ENUMERATION LITERALS MUST BE DISTINCT
X
Xend P;
*-*-END-of-e-03-1-1-0001a.vhdl-*-*
echo x - e-03-1-1-0002a.vhdl
sed 's/^X//' >e-03-1-1-0002a.vhdl <<'*-*-END-of-e-03-1-1-0002a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: E-03-1-1-0002A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that string and integer literals are not allowed as enumeration
X-- literals.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xpackage P is
X
X    type ENUM1 is (THREE, 3);
X        -- SYNTAX ERROR: ENUMERATION LITERAL CANNOT BE INTEGER LITERAL
X
X    type ENUM2 is (3);
X        -- SYNTAX ERROR: ENUMERATION LITERAL CANNOT BE INTEGER LITERAL
X
X    type ENUM3 is (TUV, "XYZ");
X        -- SYNTAX ERROR: ENUMERATION LITERAL CANNOT BE STRING LITERAL
X
X    type ENUM4 is (TUV, "X");
X        -- SYNTAX ERROR: ENUMERATION LITERAL CANNOT BE STRING LITERAL
X
X    type ENUM5 is ("XYZ");
X        -- SYNTAX ERROR: ENUMERATION LITERAL CANNOT BE STRING LITERAL
X
X    type ENUM6 is ("X");
X        -- SYNTAX ERROR: ENUMERATION LITERAL CANNOT BE STRING LITERAL
X
X    type ENUM7 is (BITS, B"1");
X        -- SYNTAX ERROR: ENUMERATION LITERAL CANNOT BE STRING LITERAL
X
X    type ENUM8 is (B"1");
X        -- SYNTAX ERROR: ENUMERATION LITERAL CANNOT BE STRING LITERAL
X
Xend P;
X
*-*-END-of-e-03-1-1-0002a.vhdl-*-*
echo x - e-03-1-1-0003a.vhdl
sed 's/^X//' >e-03-1-1-0003a.vhdl <<'*-*-END-of-e-03-1-1-0003a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: E-03-1-1-0003A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that at least one enumeration literal must be present in an enumeration
X-- type declaration.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xpackage P is
X
X    type ENUM1 is ( );
X        -- SYNTAX ERROR: LITERAL LIST IN ENUMERATION TYPE DEFINITION CANNOT
X        -- BE EMPTY
X
Xend P;
*-*-END-of-e-03-1-1-0003a.vhdl-*-*
echo x - e-03-1-1-0004a.vhdl
sed 's/^X//' >e-03-1-1-0004a.vhdl <<'*-*-END-of-e-03-1-1-0004a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: E-03-1-1-0004A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that at any place where an overloaded literal occurs in a program the
X-- type of the enumeration literal must be determinable from the context.
X-- (Example: type A1 is (aa); type A2 is (aa); bool: boolean; bool := aa /= aa)
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xentity E  is
X    port (PT: BOOLEAN) ;
X
X    type ENUM1 is (FF, GG);
X    type ENUM2 is (GG, HH);
X    type ENUM3 is (FALSE);
X    type ENUM4 is ('A', 'Z');
X
Xend E;
X
Xarchitecture BB of E is
X-- L_X_1: block
Xbegin
X  process
X  begin
X    if GG = GG then
X        -- SEMANTIC ERROR: TYPE OF ENUMERATION LITERAL CANNOT BE DETERMINED
X        return;
X    elsif '0' = '1' then
X        -- SEMANTIC ERROR: TYPE OF ENUMERATION LITERAL CANNOT BE DETERMINED
X        return;
X    elsif FALSE = FALSE then
X        -- SEMANTIC ERROR: TYPE OF ENUMERATION LITERAL CANNOT BE DETERMINED
X        return;
X    elsif 'A' = 'Z' then
X        -- SEMANTIC ERROR: TYPE OF ENUMERATION LITERAL CANNOT BE DETERMINED
X        return;
X    end if;
X
X    for X := GG to GG loop
X        -- SEMANTIC ERROR: TYPE OF ENUMERATION LITERAL CANNOT BE DETERMINED
X        exit;
X    end loop;
X
X    for X := '0' to '1' loop
X        -- SEMANTIC ERROR: TYPE OF ENUMERATION LITERAL CANNOT BE DETERMINED
X        exit;
X    end loop;
X
X    for X := 'A' to 'Z' loop
X        -- SEMANTIC ERROR: TYPE OF ENUMERATION LITERAL CANNOT BE DETERMINED
X        exit;
X    end loop;
X
X    for X := FALSE to FALSE loop
X        -- SEMANTIC ERROR: TYPE OF ENUMERATION LITERAL CANNOT BE DETERMINED
X        exit;
X    end loop;
X
X    case GG is
X        -- SEMANTIC ERROR: TYPE OF ENUMERATION LITERAL CANNOT BE DETERMINED
X        when GG => return;
X        when others => return;
X    end case;
X
X    case '0' is
X        -- SEMANTIC ERROR: TYPE OF ENUMERATION LITERAL CANNOT BE DETERMINED
X        when '0' => return;
X        when others => return;
X    end case;
X
X    case 'A' is
X        -- SEMANTIC ERROR: TYPE OF ENUMERATION LITERAL CANNOT BE DETERMINED
X        when 'A' => return;
X        when others => return;
X    end case;
X
X    case FALSE is
X        -- SEMANTIC ERROR: TYPE OF ENUMERATION LITERAL CANNOT BE DETERMINED
X        when FALSE => return;
X        when others => return;
X    end case;
X  end process;
X--  end block;
Xend BB;
X
Xarchitecture AB of E is
X-- L_X_2: block
X    signal S1: BOOLEAN;
X  begin
X
X    for X in GG to GG generate
X        -- SEMANTIC ERROR: TYPE OF ENUMERATION LITERAL CANNOT BE DETERMINED
X        S1 <= FALSE;
X
X    end generate;
X
X    for X in '0' to '1' generate
X        -- SEMANTIC ERROR: TYPE OF ENUMERATION LITERAL CANNOT BE DETERMINED
X        S1 <= FALSE;
X    end generate;
X
X    for X in 'A' to 'Z' generate
X        -- SEMANTIC ERROR: TYPE OF ENUMERATION LITERAL CANNOT BE DETERMINED
X        S1 <= FALSE;
X    end generate;
X
X    for X in FALSE to FALSE generate
X        -- SEMANTIC ERROR: TYPE OF ENUMERATION LITERAL CANNOT BE DETERMINED
X        S1 <= FALSE;
X    end generate;
X--  end block;
Xend AB;
*-*-END-of-e-03-1-1-0004a.vhdl-*-*
echo x - e-03-1-1-1001a.vhdl
sed 's/^X//' >e-03-1-1-1001a.vhdl <<'*-*-END-of-e-03-1-1-1001a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: E-03-1-1-1001A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that the predefined type BIT has no values other than '0' and '1'.
X-- Check for integer literals '0' and '1', string literals such as '0101', and
X-- boolean literals FALSE and TRUE.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
X
Xentity E  is
X    port (PT: BOOLEAN) ;
Xend E;
X
Xarchitecture BB of E is
X-- L_X_1: block
X  begin
X  process
X    variable V: BIT;
X  begin
X
X    V := 0;
X        -- SEMANTIC ERROR: TYPE INCOMPATIBILITY IN ASSIGNMENT
X
X    V := 1;
X        -- SEMANTIC ERROR: TYPE INCOMPATIBILITY IN ASSIGNMENT
X
X    V := "0";
X        -- SEMANTIC ERROR: TYPE INCOMPATIBILITY IN ASSIGNMENT
X
X    V := "1";
X        -- SEMANTIC ERROR: TYPE INCOMPATIBILITY IN ASSIGNMENT
X
X    V := B"0";
X        -- SEMANTIC ERROR: TYPE INCOMPATIBILITY IN ASSIGNMENT
X
X    V := B"1";
X        -- SEMANTIC ERROR: TYPE INCOMPATIBILITY IN ASSIGNMENT
X
X    V := FALSE;
X        -- SEMANTIC ERROR: TYPE INCOMPATIBILITY IN ASSIGNMENT
X
X    V := TRUE;
X        -- SEMANTIC ERROR: TYPE INCOMPATIBILITY IN ASSIGNMENT
X
X    V := "0101";
X        -- SEMANTIC ERROR: TYPE INCOMPATIBILITY IN ASSIGNMENT
X
X    V := "111";
X        -- SEMANTIC ERROR: TYPE INCOMPATIBILITY IN ASSIGNMENT
X
X    return;
X  end process;
X--  end block;
Xend BB;
*-*-END-of-e-03-1-1-1001a.vhdl-*-*
echo x - e-03-1-1-1002a.vhdl
sed 's/^X//' >e-03-1-1-1002a.vhdl <<'*-*-END-of-e-03-1-1-1002a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: E-03-1-1-1002A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that the predefined type BOOLEAN has no values other than FALSE and
X-- TRUE. Check for integer literals '0' and '1', bit literals '0' and '1',
X-- string literals 'TRUE' and 'FALSE'.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xentity E  is
X    port (PT: BOOLEAN) ;
Xend E;
X
Xarchitecture BB of E is
X-- L_X_1: block
X begin
X  process
X    variable V: BOOLEAN;
X  begin
X
X    V := 0;
X        -- SEMANTIC ERROR: TYPE INCOMPATIBILITY IN ASSIGNMENT
X
X    V := 1;
X        -- SEMANTIC ERROR: TYPE INCOMPATIBILITY IN ASSIGNMENT
X
X    V := '0';
X        -- SEMANTIC ERROR: TYPE INCOMPATIBILITY IN ASSIGNMENT
X
X    V := '1';
X        -- SEMANTIC ERROR: TYPE INCOMPATIBILITY IN ASSIGNMENT
X
X    V := "0";
X        -- SEMANTIC ERROR: TYPE INCOMPATIBILITY IN ASSIGNMENT
X
X    V := "1";
X        -- SEMANTIC ERROR: TYPE INCOMPATIBILITY IN ASSIGNMENT
X
X    V := B"0";
X        -- SEMANTIC ERROR: TYPE INCOMPATIBILITY IN ASSIGNMENT
X
X    V := B"1";
X        -- SEMANTIC ERROR: TYPE INCOMPATIBILITY IN ASSIGNMENT
X
X    V := "FALSE";
X        -- SEMANTIC ERROR: TYPE INCOMPATIBILITY IN ASSIGNMENT
X
X    V := "TRUE";
X        -- SEMANTIC ERROR: TYPE INCOMPATIBILITY IN ASSIGNMENT
X
X    return;
X  end process;
X--  end block;
Xend BB;
*-*-END-of-e-03-1-1-1002a.vhdl-*-*
echo x - e-03-1-1-1003a.vhdl
sed 's/^X//' >e-03-1-1-1003a.vhdl <<'*-*-END-of-e-03-1-1-1003a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: E-03-1-1-1003A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that the predefined type CHARACTER has no values other than the (128)
X-- characters of the ASCII character set. Check for single-digit integer
X-- literals, single-character identifiers, and string literals.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xentity E  is
X    port (PT: BOOLEAN) ;
Xend E;
X
Xarchitecture BB of E is
X-- L_X_1: block
X  begin
X  process
X    variable V: CHARACTER;
X  begin
X
X    V := 0;
X        -- SEMANTIC ERROR: TYPE INCOMPATIBILITY IN ASSIGNMENT
X
X    V := 1;
X        -- SEMANTIC ERROR: TYPE INCOMPATIBILITY IN ASSIGNMENT
X
X    V := "0";
X        -- SEMANTIC ERROR: TYPE INCOMPATIBILITY IN ASSIGNMENT
X
X    V := "1";
X        -- SEMANTIC ERROR: TYPE INCOMPATIBILITY IN ASSIGNMENT
X
X    V := B"0";
X        -- SEMANTIC ERROR: TYPE INCOMPATIBILITY IN ASSIGNMENT
X
X    V := B"1";
X        -- SEMANTIC ERROR: TYPE INCOMPATIBILITY IN ASSIGNMENT
X
X    V := "A";
X        -- SEMANTIC ERROR: TYPE INCOMPATIBILITY IN ASSIGNMENT
X
X    V := "Z";
X        -- SEMANTIC ERROR: TYPE INCOMPATIBILITY IN ASSIGNMENT
X
X    V := A;
X        -- SEMANTIC ERROR: TYPE INCOMPATIBILITY IN ASSIGNMENT
X
X    V := Z;
X        -- SEMANTIC ERROR: TYPE INCOMPATIBILITY IN ASSIGNMENT
X
X    return;
X  end process;
X--  end block;
Xend BB;
X
X
*-*-END-of-e-03-1-1-1003a.vhdl-*-*
echo x - e-03-1-1-1004a.vhdl
sed 's/^X//' >e-03-1-1-1004a.vhdl <<'*-*-END-of-e-03-1-1-1004a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: E-03-1-1-1004A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that the predefined types Severity_Level has no value other
X-- NOTE, WARNING, ERROR, FAILURE. Check for identifiers and string literals.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xpackage P is
X  function F1 (S1: Severity_Level)return BOOLEAN;
Xend P;
X
Xpackage body P is
X  function F1 (S1: Severity_Level)return BOOLEAN is
X 
X     variable I2 : Integer;
X     variable B  : Real;
X     variable C1 : Character;
X     variable S2 : Severity_Level;
X
X  begin
X     S2 := "NOTE";
X               -- ERROR: not of type Severity_Level
X
X     S2 := "WARNING";
X               -- ERROR: not of type Severity_Level
X
X     S2 := "ERROR";
X               -- ERROR: not of type Severity_Level
X
X     S2 := "FAILURE";
X               -- ERROR: not of type Severity_Level
X
X     I2 := 2;
X     B := 2.2;
X     C1 := 'a';
X     if (S1 = I2) 
X		-- SEMANTIC ERROR: RHS incompatible with type of LHs
X		then return false;
X     elsif (S1 = B) 
X		-- SEMANTIC ERROR: RHS incompatible with type of LHs
X		then return false;
X     elsif (S1 = C1) 
X		-- SEMANTIC ERROR: RHS incompatible with type of LHs
X		then return false;
X     else return true;
X     end if;
X   end F1;
Xend P;
*-*-END-of-e-03-1-1-1004a.vhdl-*-*
echo x - e-03-1-2-0001a.vhdl
sed 's/^X//' >e-03-1-2-0001a.vhdl <<'*-*-END-of-e-03-1-2-0001a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: E-03-1-2-0001A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X--	Check that nonstatic expressions are not permitted in
X--	range constraints in integer type definitons
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xpackage P is
Xprocedure e412 (variable Pexp1 : inout integer);
Xend P;
X
Xpackage body P is
Xprocedure e412 (variable Pexp1 : inout integer) is
X	type Int1 is range 0 to Pexp1;
X			-- SEMANTICS ERROR: Bound expression in range 
X			-- constraint must be static
Xbegin
X	null;
Xend;	
X
Xend P;
*-*-END-of-e-03-1-2-0001a.vhdl-*-*
echo x - e-03-1-2-0002a.vhdl
sed 's/^X//' >e-03-1-2-0002a.vhdl <<'*-*-END-of-e-03-1-2-0002a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: E-03-1-2-0002A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that expressions in range constraints in integer type definitions must
X-- be of some integer type.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X             
Xentity E  is
X    port (PT: BOOLEAN) ;
X    type ENUM1 is (ONE, TWO, THREE);
X
X    type I1 is range 1 to 9.0;
X        -- SEMANTIC ERROR: RANGE CONSTRAINT IN INTEGER TYPE DEFINITION
X        -- MUST BE OF INTEGER TYPE
X
X    type I2 is range FALSE to TRUE;
X        -- SEMANTIC ERROR: RANGE CONSTRAINT IN INTEGER TYPE DEFINITION
X        -- MUST BE OF INTEGER TYPE
X
X    type I3 is range "0" to "9";
X        -- SEMANTIC ERROR: RANGE CONSTRAINT IN INTEGER TYPE DEFINITION
X        -- MUST BE OF INTEGER TYPE
X
X    type I4 is range "000" to "999";
X        -- SEMANTIC ERROR: RANGE CONSTRAINT IN INTEGER TYPE DEFINITION
X        -- MUST BE OF INTEGER TYPE
X
X    type I5 is range B"000" to B"111";
X        -- SEMANTIC ERROR: RANGE CONSTRAINT IN INTEGER TYPE DEFINITION
X        -- MUST BE OF INTEGER TYPE
X
X    type I6 is range TWO to THREE;
X        -- SEMANTIC ERROR: RANGE CONSTRAINT IN INTEGER TYPE DEFINITION
X        -- MUST BE OF INTEGER TYPE
X
Xend E;
*-*-END-of-e-03-1-2-0002a.vhdl-*-*
echo x - e-03-1-3-0001a.vhdl
sed 's/^X//' >e-03-1-3-0001a.vhdl <<'*-*-END-of-e-03-1-3-0001a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: E-03-1-3-0001A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that a physical type definition must have a base unit declaration.
X-- CS 6/8/84
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xpackage P is
X
X    type UPLE is range 1 to 8
X      units
X          single = 1 single;
X        -- SYNTAX ERROR: BASE UNIT DECLARATION MISSING
X          double = 2 single;
X          triple = 3 single;
X          quadruple = 2 double;
X          pentuple = 5 single;
X          sextuple = 2 triple;
X          septuple = 7 single;
X          octuple = 2 quadruple;
X      end units;
X
Xend P;
*-*-END-of-e-03-1-3-0001a.vhdl-*-*
echo x - e-03-1-3-0002a.vhdl
sed 's/^X//' >e-03-1-3-0002a.vhdl <<'*-*-END-of-e-03-1-3-0002a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: E-03-1-3-0002A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that a physical type definition may not have more than one base unit
X-- declaration.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xpackage P is
X
X    type UPLE is range 1 to 8
X      units
X          single;
X          double;
X        -- SYNTAX ERROR: MORE THAN ONE BASE UNIT DECLARATION
X          triple = 3 single;
X          quadruple = 2 double;
X          pentuple = 5 single;
X          sextuple = 2 triple;
X          septuple = 7 single;
X          octuple = 2 quadruple;
X      end units;
X
Xend P;
*-*-END-of-e-03-1-3-0002a.vhdl-*-*
echo x - e-03-1-3-0003a.vhdl
sed 's/^X//' >e-03-1-3-0003a.vhdl <<'*-*-END-of-e-03-1-3-0003a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: E-03-1-3-0003A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that a physical type definition must have a range constraint.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xpackage P is
X
X    type UPLE is 
X      units
X        -- SYNTAX ERROR: PHYSICAL TYPE DEFINITION MUST HAVE RANGE CONSTRAINT
X          single;
X          double = 2 single;
X          triple = 3 single;
X          quadruple = 2 double;
X          pentuple = 5 single;
X          sextuple = 2 triple;
X          septuple = 7 single;
X          octuple = 2 quadruple;
X      end units;
X
Xend P;
X
*-*-END-of-e-03-1-3-0003a.vhdl-*-*
echo x - e-03-1-3-0004a.vhdl
sed 's/^X//' >e-03-1-3-0004a.vhdl <<'*-*-END-of-e-03-1-3-0004a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: E-03-1-3-0004A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that a range constraint in a physical type definition must have static
X-- expressions of some integer type as bounds.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
X
Xpackage P is
X    type I1 is range 0  to 10;
Xend P;
X
X-- with package P; 
Xuse P.all;
Xentity E  is
X    generic (GEN1: I1) ;
X        port (PT1: I1) ;
X
Xend E;
X
Xarchitecture BB1 of E is
X-- L_X_1: block
X begin
X  process
X    type UPLE is range 1 to PT1
X        -- SEMANTIC ERROR: PHYSICAL TYPE DEFINITION RANGE CONSTRAINT
X        -- MUST BE STATIC
X      units
X          single;
X          double = 2 single;
X          triple = 3 single;
X          quadruple = 2 double;
X          pentuple = 5 single;
X          sextuple = 2 triple;
X          septuple = 7 single;
X          octuple = 2 quadruple;
X      end units;
X
X  begin
X    return;
X  end process;
X--  end block;
Xend BB1;
X
Xarchitecture BB2 of E is
X-- L_X_2: block
X begin
X  process
X    constant V2: I1 := GEN1;
X
X    type UPLE is range 1 to GEN1
X        -- SEMANTIC ERROR: PHYSICAL TYPE DEFINITION RANGE CONSTRAINT
X        -- MUST BE STATIC
X      units
X          single;
X          double = 2 single;
X          triple = 3 single;
X          quadruple = 2 double;
X          pentuple = 5 single;
X          sextuple = 2 triple;
X          septuple = 7 single;
X          octuple = 2 quadruple;
X      end units;
X
X  begin
X    return;
X  end process;
X--  end block;
Xend BB2;
X
Xarchitecture BB3 of E is
X-- L_X_3: block
X begin
X  process
X    constant V2: I1 := GEN1;
X
X    type UPLE is range 1 to V2
X        -- SEMANTIC ERROR: PHYSICAL TYPE DEFINITION RANGE CONSTRAINT
X        -- MUST BE STATIC
X      units
X          single;
X          double = 2 single;
X          triple = 3 single;
X          quadruple = 2 double;
X          pentuple = 5 single;
X          sextuple = 2 triple;
X          septuple = 7 single;
X          octuple = 2 quadruple;
X      end units;
X
X  begin
X    return;
X  end process;
X--  end block;
Xend BB3;
X
Xarchitecture BB5 of E is
X-- L_X_5: block
X begin
X  process
X
X    type UPLE is range 1.0 to 9.0
X        -- SEMANTIC ERROR: PHYSICAL TYPE DEFINITION RANGE CONSTRAINT
X        -- MUST BE OF INTEGER TYPE
X      units
X          single;
X          double = 2 single;
X          triple = 3 single;
X          quadruple = 2 double;
X          pentuple = 5 single;
X          sextuple = 2 triple;
X          septuple = 7 single;
X          octuple = 2 quadruple;
X      end units;
X
X  begin
X    return;
X  end process;
X--  end block;
Xend BB5;
X
Xarchitecture BB6 of E is
X-- L_X_6: block
X begin
X  process
X    type ENUM1 is (ONE, TWO, THREE, FOUR, FIVE);
X
X    type UPLE is range ONE to FIVE
X        -- SEMANTIC ERROR: PHYSICAL TYPE DEFINITION RANGE CONSTRAINT
X        -- MUST BE OF INTEGER TYPE
X      units
X          single;
X          double = 2 single;
X          triple = 3 single;
X          quadruple = 2 double;
X          pentuple = 5 single;
X          sextuple = 2 triple;
X          septuple = 7 single;
X          octuple = 2 quadruple;
X      end units;
X
X  begin
X    return;
X  end process;
X--  end block;
Xend BB6;
X
*-*-END-of-e-03-1-3-0004a.vhdl-*-*
echo x - e-03-1-3-0005a.vhdl
sed 's/^X//' >e-03-1-3-0005a.vhdl <<'*-*-END-of-e-03-1-3-0005a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: E-03-1-3-0005A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that unit names (base unit and secondary units) are unique within the
X-- scope of the physical type definition.
X-- CS 6/8/84
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xpackage P1 is
X
X    type UPLE1 is range 1 to 8
X      units
X          single;
X          double = 2 single;
X          triple = 3 single;
X      end units;
X
X    type UPLE2 is range 1 to 8
X      units
X          single;
X        -- SEMANTIC ERROR: UNIT NAME CONFICT
X          duet = 2 single;
X          trio = 3 single;
X      end units;
X
Xend P1;
X
Xpackage P2 is
X
X    type UPLE1 is range 1 to 8
X      units
X          single;
X          double = 2 single;
X          triple = 3 single;
X      end units;
X
X    type UPLE2 is range 1 to 8
X      units
X          solo;
X          double = 2 solo;
X        -- SEMANTIC ERROR: UNIT NAME CONFLICT
X          trio = 3 solo;
X      end units;
X
Xend P2;
X
Xpackage P3 is
X
X    type PAIR is (DOUBLE);
X
X    type UPLE is range 1 to 8
X      units
X          single;
X          double = 2 single;
X        -- SEMANTIC ERROR: UNIT NAME CONFLICT
X          triple = 3 single;
X      end units;
X
Xend P3;
X
Xpackage P4 is
X
X    type UPLE is range 1 to 8
X      units
X          single;
X          double = 2 single;
X          triple = 3 single;
X      end units;
X
X    type PAIR is (DOUBLE);
X        -- SEMANTIC ERROR: UNIT NAME CONFLICT
X
Xend P4;
X
*-*-END-of-e-03-1-3-0005a.vhdl-*-*
echo x - e-03-1-3-0006a.vhdl
sed 's/^X//' >e-03-1-3-0006a.vhdl <<'*-*-END-of-e-03-1-3-0006a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: E-03-1-3-0006A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that secondary unit names must be defined directly or indirectly
X-- in terms of the base unit of the type declaration in which they
X-- appear (no definitions that make reference to units defined outside this
X-- physical type definition, and no definitions that make no use of units
X-- defined in this physical type definition).
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xpackage P1 is 
X
X    type UPLE is range 1 to 8
X      units
X          single;
X          double = 2 solo;
X        -- SEMANTIC ERROR: UNIT NOT DEFINED IN THIS PHYSICAL TYPE
X          triple = 3 single;
X      end units;
X
Xend P1;
X
Xpackage P2 is 
X
X    type UPLE1 is range 1 to 8
X      units
X          single;
X          double = 2 single;
X          triple = 3 single;
X      end units;
X
X    type UPLE2 is range 1 to 8
X      units
X          solo;
X          duet = 2 single;
X        -- SEMANTIC ERROR: UNIT NOT DEFINED IN THIS PHYSICAL TYPE
X          trio = 3 solo;
X      end units;
X
Xend P2;
X
Xpackage P3 is 
X
X    type GROUP is (SINGLE);
X    type UPLE2 is range 1 to 8
X      units
X          solo;
X          duet = 2 single;
X        -- SEMANTIC ERROR: UNIT NOT DEFINED IN THIS PHYSICAL TYPE
X          trio = 3 solo;
X      end units;
X
Xend P3;
X
*-*-END-of-e-03-1-3-0006a.vhdl-*-*
echo x - e-03-1-3-0007a.vhdl
sed 's/^X//' >e-03-1-3-0007a.vhdl <<'*-*-END-of-e-03-1-3-0007a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: E-03-1-3-0007A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that the abstract literal portion of a physical literal in secondary
X-- unit declaration must be an integer literal.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xpackage P1 is
X
X    type UPLE is range 1 to 8
X      units
X          single;
X          double = 2.0 single;
X        -- SYNTAX ERROR: ABSTRACT LITERAL PORTION OF A PHYSICAL LITERAL IN
X        -- UNIT DECLARATION MUST BE AN INTEGER LITERAL
X      end units;
X
Xend P1;
X
Xpackage P2 is
X
X    type UPLE is range 1 to 8
X      units
X          single;
X          double = 1+1 single;
X        -- SYNTAX ERROR: ABSTRACT LITERAL PORTION OF A PHYSICAL LITERAL IN
X        -- UNIT DECLARATION MUST BE AN INTEGER LITERAL
X      end units;
X
Xend P2;
X
Xentity E (PT: BOOLEAN) is
X
X    type INTTWO is range 2 to 2;
X    constant TWO: INTTWO := 2;
X    type UPLE is range 1 to 8
X      units
X          single;
X          double = TWO single;
X        -- SYNTAX ERROR: ABSTRACT LITERAL PORTION OF A PHYSICAL LITERAL IN
X        -- UNIT DECLARATION MUST BE AN INTEGER LITERAL
X      end units;
X
Xend E;
*-*-END-of-e-03-1-3-0007a.vhdl-*-*
echo x - e-03-1-3-0008a.vhdl
sed 's/^X//' >e-03-1-3-0008a.vhdl <<'*-*-END-of-e-03-1-3-0008a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: E-03-1-3-0008A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that the number of base units that correspond to a secondary
X-- unit name must be within the range of a values specified by the
X-- range constraint.  As special case, check when 1 is not
X-- within the specified range.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xentity E  is
X    port (PT:BOOLEAN) ;
Xend E;
X
Xarchitecture BB of E is
X-- L_X_1: block
X begin
X  process
X
X   type Clock is range 1 to 60
X     units
X       s;           -- seconds
X       min = 60s;   -- minute
X       hr  = 3600s; -- hour
X-- ERROR: THE NUMBER OF BASE UNITS IS NOT IN THE RANGE CONSTRAINT.
X     end units;
X
X
X   type TIME is range 2 to 1E18
X    units 
X     fs;
X     ps = fs; 
X--ERROR: THE NUMBER OF BASE UNITS IS NOT IN THE RANGE CONTRAINT.
X    end units;
X  begin
X   return;
X  end process;
X--  end block;
Xend BB;
*-*-END-of-e-03-1-3-0008a.vhdl-*-*
echo x - e-03-1-3-0009a.vhdl
sed 's/^X//' >e-03-1-3-0009a.vhdl <<'*-*-END-of-e-03-1-3-0009a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: E-03-1-3-0009A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X--	Check that unit names must be declared before they are used.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xpackage DJ is
X    type Phys_o is range 1 to 60
X        units
X    	  base_o;
X    	  sec2   = 10 sec1;
X    	  sec1   = 6 base_o;
X    	end units;
Xend DJ;
*-*-END-of-e-03-1-3-0009a.vhdl-*-*
echo x - e-03-1-3-0010a.vhdl
sed 's/^X//' >e-03-1-3-0010a.vhdl <<'*-*-END-of-e-03-1-3-0010a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: E-03-1-3-0010A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X--    Check that the position number of any physical literal
X--    must belong to the range specified by the range constraints
X--    in the physical type declaration.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xpackage Hurricane is
X	type gloria is range 1 to 6
X	    units
X		prim;
X		sec1 = 6 prim;
X		sec2 = 36 sec1;
X			-- SEMANTICS ERROR: Position Number of sec2 exceeds 
X			-- range of physical type
X	    end units;
Xend Hurricane;	
*-*-END-of-e-03-1-3-0010a.vhdl-*-*
echo x - e-03-1-4-0001a.vhdl
sed 's/^X//' >e-03-1-4-0001a.vhdl <<'*-*-END-of-e-03-1-4-0001a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: E-03-1-4-0001A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that nonstatic expressions are not permitted in floating point
X-- constraints in floating point type definitions.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xpackage P is
X
X    type REAL0 is range 1.0 to 10.0;
X
X    function F return REAL0 is
X    begin
X        return 1.0;
X    end F;
X
Xend P;
X
X-- with package P; 
Xuse P.all;
Xentity E  is
X    generic (GEN: REAL0) ;
X        port (PT: REAL0) ;
X
X
X
X    type REAL1 is range PT to PT;
X        -- SEMANTIC ERROR: RANGE CONSTRAINT IN FLOATING POINT TYPE
X        -- DEFINITION MUST BE STATIC
X
X    type REAL2 is range GEN to GEN;
X        -- SEMANTIC ERROR: RANGE CONSTRAINT IN FLOATING POINT TYPE
X        -- DEFINITION MUST BE STATIC
X
X    type REAL3 is range F to F;
X        -- SEMANTIC ERROR: RANGE CONSTRAINT IN FLOATING POINT TYPE
X        -- DEFINITION MUST BE STATIC
X
Xend E;
X
X
X-- with package P; 
Xuse P.all;
Xentity E  is
X    generic (GEN: REAL0) ;
X        port (PT: REAL0) ;
X
X
X
Xend E;
X
Xarchitecture BB of E is
X-- L_X_1: block
X begin
X  process
X
X    constant V2: REAL0 := GEN;
X    constant V3: REAL0 := F;
X
X    type REAL4 is range V2 to V2;
X        -- SEMANTIC ERROR: RANGE CONSTRAINT IN FLOATING POINT TYPE
X        -- DEFINITION MUST BE STATIC
X
X    type REAL5 is range V3 to V3;
X        -- SEMANTIC ERROR: RANGE CONSTRAINT IN FLOATING POINT TYPE
X        -- DEFINITION MUST BE STATIC
X
X  begin
X    return;
X  end process;
X--  end block;
Xend BB;
*-*-END-of-e-03-1-4-0001a.vhdl-*-*
echo x - e-03-1-4-0002a.vhdl
sed 's/^X//' >e-03-1-4-0002a.vhdl <<'*-*-END-of-e-03-1-4-0002a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: E-03-1-4-0002A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that expressions in floating point constraints in floating point type
X-- definitions must be of some floating point type.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xentity E  is
X    port (PT: BOOLEAN) ;
X    type ENUM1 is (ONE, TWO, THREE);
X
X    type REAL1 is range 1.0 to 9;
X        -- SEMANTIC ERROR: RANGE CONSTRAINT IN FLOATING POINT TYPE
X        -- DEFINITION MUST BE OF FLOATING POINT TYPE
X
X    type REAL2 is range 0.0 to TRUE;
X        -- SEMANTIC ERROR: RANGE CONSTRAINT IN FLOATING POINT TYPE
X        -- DEFINITION MUST BE OF FLOATING POINT TYPE
X
X    type REAL3 is range "0" to 9.0 ;
X        -- SEMANTIC ERROR: RANGE CONSTRAINT IN FLOATING POINT TYPE
X        -- DEFINITION MUST BE OF FLOATING POINT TYPE
X
X    type REAL4 is range 0.00 to "999";
X        -- SEMANTIC ERROR: RANGE CONSTRAINT IN FLOATING POINT TYPE
X        -- DEFINITION MUST BE OF FLOATING POINT TYPE
X
X    type REAL5 is range B"000" to B"111";
X        -- SEMANTIC ERROR: RANGE CONSTRAINT IN FLOATING POINT TYPE
X        -- DEFINITION MUST BE OF FLOATING POINT TYPE
X
X    type REAL6 is range TWO to 3.0;
X        -- SEMANTIC ERROR: RANGE CONSTRAINT IN FLOATING POINT TYPE
X        -- DEFINITION MUST BE OF FLOATING POINT TYPE
X
Xend E;
X
*-*-END-of-e-03-1-4-0002a.vhdl-*-*
echo x - e-03-1-4-0003a.vhdl
sed 's/^X//' >e-03-1-4-0003a.vhdl <<'*-*-END-of-e-03-1-4-0003a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: E-03-1-4-0003A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that if the range specified in the range constraint exceeds the range
X-- provided by the implementation, an error occurs (REAL'LOW-1..REAL'HIGH+1).
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xentity E  is
X    port (PT: BOOLEAN) ;
X    type REAL1 is range REAL'LOW-1.0 to REAL'HIGH+1.0;
X
X        -- SEMANTIC ERROR: RANGE EXCEEDS IMPLEMENTATION
Xend E;
*-*-END-of-e-03-1-4-0003a.vhdl-*-*
echo x - e-03-2-1-0001a.vhdl
sed 's/^X//' >e-03-2-1-0001a.vhdl <<'*-*-END-of-e-03-2-1-0001a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: E-03-2-1-0001A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that an index subtype definition cannot occur in a constrained array
X-- definition and that a discrete range cannot occur in an unconstrained array
X-- definition (that is, all indexes are specified with 'range <>' or no indexes
X-- are specified with 'range <>').
X-- JB  (DB 7/12/85)
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xpackage P is
X
X    subtype BFALSE is BOOLEAN range FALSE to FALSE;
X    type ONETWO is range 1 to 2;
X
X    type A1 is array (BFALSE range <>, FALSE to FALSE) of INTEGER range 0 to 0;
X        -- SYNTAX ERROR: CONSTRAINED AND UNCONSTRAINED INDEX RANGES
X        -- CANNOT BE MIXED
X
X    type A2 is array (FALSE to FALSE, BFALSE range <>) of ONETWO;
X        -- SYNTAX ERROR: CONSTRAINED AND UNCONSTRAINED INDEX RANGES
X        -- CANNOT BE MIXED
X
X    type A3 is array (1 to 2, ONETWO range <>) of BFALSE;
X        -- SYNTAX ERROR: CONSTRAINED AND UNCONSTRAINED INDEX RANGES
X        -- CANNOT BE MIXED
X
X    type A4 is array (ONETWO range <>, 1 to 2) of REAL range 0.0 downto -5.5;
X        -- SYNTAX ERROR: CONSTRAINED AND UNCONSTRAINED INDEX RANGES
X        -- CANNOT BE MIXED
X
X    type A5 is array (FALSE to FALSE, BFALSE range <>, 1 to 2) of BIT;
X        -- SYNTAX ERROR: CONSTRAINED AND UNCONSTRAINED INDEX RANGES
X        -- CANNOT BE MIXED
X
X    type A6 is array (ONETWO range <>, FALSE to FALSE, BFALSE range <>) of REAL;
X        -- SYNTAX ERROR: CONSTRAINED AND UNCONSTRAINED INDEX RANGES
X        -- CANNOT BE MIXED
X
Xend P;
*-*-END-of-e-03-2-1-0001a.vhdl-*-*
echo x - e-03-2-1-0002a.vhdl
sed 's/^X//' >e-03-2-1-0002a.vhdl <<'*-*-END-of-e-03-2-1-0002a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: E-03-2-1-0002A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that the type specified in an index subtype definition and in a
X-- discrete range in an index constraint must be a discrete type. Check for
X-- physical types, floating point, record types with single discrete component,
X-- array types with single discrete component.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xentity E  is
X    port (PT: BOOLEAN) ;
X
X    type ONE is range 1 to 1;
X
X    type PHYS1 is range 1 to 1
X      units
X          base1;
X      end units;
X
X    type REAL1 is range 1.0 to 1.0;
X
X    type R1 is record
X                 RE1: ONE;
X               end record;
X
X    type A1 is array (1 to 1) of ONE;
X
Xend E;
X
Xarchitecture BB of E is
X-- L_X_1: block
X begin
X  process
X
X    constant C1: PHYS1 := 1 base1;
X    constant C2: REAL1 := 1.0;
X
X    type A2 is array (PHYS1 range <>) of ONE;
X        -- SEMANTIC ERROR: INDEX MUST BE A DISCRETE TYPE
X
X    type A3 is array (REAL1 range <>) of ONE;
X        -- SEMANTIC ERROR: INDEX MUST BE A DISCRETE TYPE
X
X    type A4 is array (R1 range <>) of ONE;
X        -- SEMANTIC ERROR: INDEX MUST BE A DISCRETE TYPE
X
X    type A5 is array (A1 range <>) of ONE;
X        -- SEMANTIC ERROR: INDEX MUST BE A DISCRETE TYPE
X
X    type A6 is array (C1 to C1) of ONE;
X        -- SEMANTIC ERROR: INDEX MUST BE A DISCRETE TYPE
X
X    type A7 is array (C2 to C2) of ONE;
X        -- SEMANTIC ERROR: INDEX MUST BE A DISCRETE TYPE
X
X  begin
X    return;
X  end process;
X--  end block;
Xend BB;
*-*-END-of-e-03-2-1-0002a.vhdl-*-*
echo x - e-03-2-1-0003a.vhdl
sed 's/^X//' >e-03-2-1-0003a.vhdl <<'*-*-END-of-e-03-2-1-0003a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: E-03-2-1-0003A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that in range specifications in discrete ranges in index constraints,
X-- the lower bound and the upper bound must be of the same type.
X-- CS 6/12/83
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xpackage P is
X    type I1 is range 1 to 1;
X    type I2 is range 1 to 1;
X    type ENUM1 is (ONE);
X    type ENUM2 is (ONE);
Xend P;
X
X-- with package P; 
Xuse P.all;
X
Xentity E  is
X    generic (GEN1: I1; GEN2: I2; GEN3: ENUM1; GEN4: ENUM2) ;
X        port (PT: BOOLEAN) ;
X
X
X
Xend E;
X
Xarchitecture BB of E is
X-- L_X_1: block
X begin
X  process
X    constant V1: I1 := 1;
X    constant V2: I2 := 1;
X    constant V3: ENUM1 := ONE;
X    constant V4: ENUM2 := ONE;
X    type A1 is array (I1 range <>) of BOOLEAN;
X    type A2 is array (ENUM1 range <>) of BOOLEAN;
X
X    type A4 is array (GEN1 to GEN2) of BOOLEAN;
X        -- SEMANTIC ERROR: BOUNDS OF INDEX CONSTRAINT MUST BE OF THE
X        -- SAME TYPE
X
X    type A5 is array (GEN3 to GEN4) of BOOLEAN;
X        -- SEMANTIC ERROR: BOUNDS OF INDEX CONSTRAINT MUST BE OF THE
X        -- SAME TYPE
X
X    type A6 is array (V1 to V2) of BOOLEAN;
X        -- SEMANTIC ERROR: BOUNDS OF INDEX CONSTRAINT MUST BE OF THE
X        -- SAME TYPE
X
X    type A7 is array (V3 to V4) of BOOLEAN;
X        -- SEMANTIC ERROR: BOUNDS OF INDEX CONSTRAINT MUST BE OF THE
X        -- SAME TYPE
X
X    subtype A8 is A1 (GEN1 to GEN2);
X        -- SEMANTIC ERROR: BOUNDS OF INDEX CONSTRAINT MUST BE OF THE
X        -- SAME TYPE
X
X    subtype A9 is A1 (V1 to  V2);
X        -- SEMANTIC ERROR: BOUNDS OF INDEX CONSTRAINT MUST BE OF THE
X        -- SAME TYPE
X
X    subtype A10 is A2 (GEN3 to GEN4);
X        -- SEMANTIC ERROR: BOUNDS OF INDEX CONSTRAINT MUST BE OF THE
X        -- SAME TYPE
X
X    subtype A11 is A2 (V3 to V4);
X        -- SEMANTIC ERROR: BOUNDS OF INDEX CONSTRAINT MUST BE OF THE
X        -- SAME TYPE
X
X    variable V5: A1 (GEN1 to GEN2);
X        -- SEMANTIC ERROR: BOUNDS OF INDEX CONSTRAINT MUST BE OF THE
X        -- SAME TYPE
X
X    variable V6: A1 (V1 to V2);
X        -- SEMANTIC ERROR: BOUNDS OF INDEX CONSTRAINT MUST BE OF THE
X        -- SAME TYPE
X
X    variable V7: A1 (GEN3 to GEN4);
X        -- SEMANTIC ERROR: BOUNDS OF INDEX CONSTRAINT MUST BE OF THE
X        -- SAME TYPE
X
X    variable V8: A1 (V3 to V4);
X        -- SEMANTIC ERROR: BOUNDS OF INDEX CONSTRAINT MUST BE OF THE
X        -- SAME TYPE
X
X  begin
X    return;
X  end process;
X--  end block;
Xend BB;
*-*-END-of-e-03-2-1-0003a.vhdl-*-*
echo x - e-03-2-1-0004a.vhdl
sed 's/^X//' >e-03-2-1-0004a.vhdl <<'*-*-END-of-e-03-2-1-0004a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: E-03-2-1-0004A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that if a subtype indication in an array subtype declaration or in an
X-- array object declaration has an index constraint, the number of discrete
X-- ranges must match the number of indices in the unconstrained array
X-- definition, and the base type of the type mark or of the range specification 
X-- of each index constraint must be the same as the base type of the
X-- corresponding index subtype definition in the unconstrained array definition.
X-- CS 6/12/84(E4321006a.vhd)
X-- JB  (DB 7/24/85)
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xentity E  is
X    port (PT: BOOLEAN) ;
Xend E;
X
Xarchitecture BB of E is
X-- L_X_1: block
X begin
X  process
X    type I1 is range 1 to 1;
X    type I2 is range 1 to 1;
X    type ENUM1 is (ONE);
X    type ENUM2 is (ONE);
X    constant V1: I1 := 1;
X    constant V2: I2 := 1;
X    constant V3: ENUM1 := ONE;
X    constant V4: ENUM2 := ONE;
X    type A1 is array (I1 range <>) of BOOLEAN;
X    type A2 is array (ENUM1 range <>, ENUM1 range <>) of BOOLEAN;
X    type A3 is array (I1 range <>, I1 range <>, I1 range <>) of BOOLEAN;
X
X    subtype A4 is A3 (V1 to V1);
X        -- SEMANTIC ERROR: NUMBER OF DISCRETE RANGES MUST MATCH NUMBER
X        -- OF INDICES IN ARRAY TYPE DEFINITION
X
X    subtype A5 is A2 (V3 to V3, V3 to V3, V3 to V3);
X        -- SEMANTIC ERROR: NUMBER OF DISCRETE RANGES MUST MATCH NUMBER
X        -- OF INDICES IN ARRAY TYPE DEFINITION
X
X    subtype A6 is A1 (V1 to V1, V1 to V1);
X        -- SEMANTIC ERROR: NUMBER OF DISCRETE RANGES MUST MATCH NUMBER
X        -- OF INDICES IN ARRAY TYPE DEFINITION
X
X    variable A7: A2 (V3 to V3);
X        -- SEMANTIC ERROR: NUMBER OF DISCRETE RANGES MUST MATCH NUMBER
X        -- OF INDICES IN ARRAY TYPE DEFINITION
X
X    variable A8: A1 (V1 to V1, V1 to V1, V1 to 1);
X        -- SEMANTIC ERROR: NUMBER OF DISCRETE RANGES MUST MATCH NUMBER
X        -- OF INDICES IN ARRAY TYPE DEFINITION
X
X    variable A9: A3 (V1 to V1, V1 to V1);
X        -- SEMANTIC ERROR: NUMBER OF DISCRETE RANGES MUST MATCH NUMBER
X        -- OF INDICES IN ARRAY TYPE DEFINITION
X
X    subtype A10 is A1 (V2 to V2);
X        -- SEMANTIC ERROR: TYPE OF DISCRETE RANGE MUST MATCH TYPE OF
X        -- INDEX IN ARRAY TYPE DEFINITION
X
X    subtype A11 is A2 (V3 to V3, V4 to V4);
X        -- SEMANTIC ERROR: TYPE OF DISCRETE RANGE MUST MATCH TYPE OF
X        -- INDEX IN ARRAY TYPE DEFINITION
X
X    subtype A12 is A3 (V1 to V1, V2 to V2, V1 to V1);
X        -- SEMANTIC ERROR: TYPE OF DISCRETE RANGE MUST MATCH TYPE OF
X        -- INDEX IN ARRAY TYPE DEFINITION
X
X    variable A13: A1 (V3 to V3);
X        -- SEMANTIC ERROR: TYPE OF DISCRETE RANGE MUST MATCH TYPE OF
X        -- INDEX IN ARRAY TYPE DEFINITION
X
X    variable A14: A2 (V2 to V2, V3 to V3);
X        -- SEMANTIC ERROR: TYPE OF DISCRETE RANGE MUST MATCH TYPE OF
X        -- INDEX IN ARRAY TYPE DEFINITION
X
X    variable A15: A3 (V4 to V4, V1 to V1, V1 to V1);
X        -- SEMANTIC ERROR: TYPE OF DISCRETE RANGE MUST MATCH TYPE OF
X        -- INDEX IN ARRAY TYPE DEFINITION
X
X  begin
X    return;
X  end process;
X--  end block;
Xend BB;
*-*-END-of-e-03-2-1-0004a.vhdl-*-*
echo x - e-03-2-1-0005a.vhdl
sed 's/^X//' >e-03-2-1-0005a.vhdl <<'*-*-END-of-e-03-2-1-0005a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: E-03-2-1-0005A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that the index bounds of an array object must be generic expressions.
X-- JB  (DB 7/24/85)
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xpackage P is
X
X    type I1 is range 1 to 1;
X    type ENUM1 is (ONE);
X
X    function F1 (IN1 : I1) return I1 is
X    begin
X        return IN1;
X    end F1;
X
X    function F2 (IN1 : ENUM1) return ENUM1 is
X    begin
X        return IN1;
X    end F2;
X
Xend P;
X
X-- with package P; 
Xuse P.all;
Xprocedure BB is
X    type A1 is array (I1 range <>) of BOOLEAN;
X    type A2 is array (ENUM1 range <>) of BOOLEAN;
X    variable V1: I1 := 1;
X    variable V2: ENUM1 := ONE;
X    variable V3: A1 (1 to 1);
X    variable V4: A2 (ONE to ONE);
X
X    variable V5: A1 (V1 to V1);
X        -- SEMANTIC ERROR: BOUNDS OF ARRAY OBJECT MUST BE GENERIC
X
X    variable V6: A2 (V2 to V2);
X        -- SEMANTIC ERROR: BOUNDS OF ARRAY OBJECT MUST BE GENERIC
X
X    variable V7: A1 (F1(V1) to F1(V1));
X        -- SEMANTIC ERROR: BOUNDS OF ARRAY OBJECT MUST BE GENERIC
X
X    variable V8: A2 (F2(V2) to F2(V2));
X        -- SEMANTIC ERROR: BOUNDS OF ARRAY OBJECT MUST BE GENERIC
X
X    alias AL1: A1 (V1 to V1) is V3 (1 to 1);
X        -- SEMANTIC ERROR: BOUNDS OF ARRAY OBJECT MUST BE GENERIC
X
X    alias AL2: A1 (F1(V1) to F1(V1)) is V3 (1 to 1);
X        -- SEMANTIC ERROR: BOUNDS OF ARRAY OBJECT MUST BE GENERIC
X
X    alias AL3: A2 (V2 to V2) is V4 (ONE to ONE);
X        -- SEMANTIC ERROR: BOUNDS OF ARRAY OBJECT MUST BE GENERIC
X
X    alias AL4: A2 (F2(V2) to F2(V2)) is V4 (ONE to ONE);
X        -- SEMANTIC ERROR: BOUNDS OF ARRAY OBJECT MUST BE GENERIC
Xbegin
X  null;
Xend BB;
*-*-END-of-e-03-2-1-0005a.vhdl-*-*
echo x - e-03-2-1-0006a.vhdl
sed 's/^X//' >e-03-2-1-0006a.vhdl <<'*-*-END-of-e-03-2-1-0006a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: E-03-2-1-0006A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that the range bounds, if any, in the element subtype indication of an
X-- array must be generic expressions.
X-- CS 6/12/84
X-- JB  (DB 7/24/85)
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xpackage P is
X
X    
X    type INT1 is range 1 downto 1;
X    type ENUM1 is (ONE);
X    type PHYS1 is range 1 to 1
X      units
X          BASE1;
X      end units;
X
X    function FINT1(I : Integer) return INT1 is
X    begin
X        return 1;
X    end FINT1;
X
X    function FENUM1 (En : ENUM1) return ENUM1 is
X    begin
X        return ONE;
X    end FENUM1;
X
X    function FCHAR (Ch : CHARACTER) return CHARACTER is
X    begin
X        return 'C';
X    end FCHAR;
X
Xend P;
X
X-- with package P; 
Xuse P.all;
Xentity E  is
X         -- SEMANTIC ERROR: ARRAY ELEMENT BOUNDS MUST BE GENERIC
X         type A2 is array (ENUM1 range <>) ;
X	     port (PT: BOOLEAN) ;
Xend E;
X
Xarchitecture AB of E is
X-- L_X_1: block
X    begin
X    process
X         variable CONI : integer := 2;
X         variable CONE : ENUM1 := ONE;
X         variable CONC : CHARACTER := 'b';
X
X         type A1 is array (INT1 range <>) of INT1;
X         type AI1 is array (1 to 1) of A1(FINT1(CONI) to FINT1(CONI));
X of ENUM1;
X         type AE1 is array (1 to 1) of A2(FENUM1(CONE) to FENUM1(CONE));
X         -- SEMANTIC ERROR: ARRAY ELEMENT BOUNDS MUST BE GENERIC
X         type A3 is array (CHARACTER range <>) of CHARACTER;
X         type AC1 is array (1 to 1) of A3(FCHAR(CONC) to FCHAR(CONC));
X         -- SEMANTIC ERROR: ARRAY ELEMENT BOUNDS MUST BE GENERIC
X         type A4 is array (BOOLEAN range <>) of BOOLEAN;
X         type AB1 is array (1 to 1) of A4(PT to PT);
X         -- SEMANTIC ERROR: ARRAY ELEMENT BOUNDS MUST BE GENERIC
X
X      begin
X         null;
X      end process;
X--     end block L_X_1;
X
Xend AB;
X
X-- with package P; 
Xuse P.all;
Xentity E  is
X        -- SEMANTIC ERROR: ARRAY ELEMENT BOUNDS MUST BE GENERIC
X    type AE2 is array (1 to 1) ;
X        port (PT: BOOLEAN) ;
X    type A1 is array (INT1 range <>) of INT1;
X    type A2 is array (ENUM1 range <>) of ENUM1;
X    type A3 is array (CHARACTER range <>) of CHARACTER;
X    type A4 is array (BOOLEAN range <>) of BOOLEAN;
Xend E;
X
Xarchitecture AB of E is
X-- L_X_1:block
X    initialize INT1 to 1;
X    initialize ENUM1 to ONE;
X    signal S1: INT1;
X    signal S2: ENUM1;
X    type AI2 is array (1 to 1) of A1(S1 to S1);
X of A2(S2 to S2);
X        -- SEMANTIC ERROR: ARRAY ELEMENT BOUNDS MUST BE GENERIC
X    type AB2 is array (1 to 1) of A4(PT to PT);
X        -- SEMANTIC ERROR: ARRAY ELEMENT BOUNDS MUST BE GENERIC
Xbegin
X  process
X    variable V3: CHARACTER := 'D';
X    type A6 is array (1 to 1) of A3(V3 to V3);
X        -- SEMANTIC ERROR: ARRAY ELEMENT BOUNDS MUST BE GENERIC
X  begin
X    null;
X  end process;
X-- end block;
Xend AB;
*-*-END-of-e-03-2-1-0006a.vhdl-*-*
echo x - e-03-2-1-0007a.vhdl
sed 's/^X//' >e-03-2-1-0007a.vhdl <<'*-*-END-of-e-03-2-1-0007a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: E-03-2-1-0007A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that for an array object declared by an object declaration, the subtype
X-- indication must define a constrained array subtype, unless this object is a
X-- constant.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xpackage P is
X  type I1 is range 1 to 1;
X
Xend P;
X
X-- with package P ; 
Xuse P.all;
Xentity E  is
X     generic (G1 : BIT_VECTOR) ;
X         port (PT: BIT_VECTOR) ;
X
Xend E;
X
X
Xarchitecture BB of E is
X-- L_X_1: block
X
X    type I1 is range 1 to 1;
X    type A1 is array (integer range <>) of bit;
X
X    constant V1:  A1 := B"10";
X
X    alias AL1: A1 is V1;
X        -- SEMANTIC ERROR: SUBTYPE INDICATION OF ARRAY OBJECT DECLARATION
X        -- MUST DENOTE A CONSTRAINED ARRRAY
X
X begin
X  process
X
X    variable V2: A1 := B"00";
X        -- SEMANTIC ERROR: SUBTYPE INDICATION OF ARRAY OBJECT DECLARATION
X        -- MUST DENOTE A CONSTRAINED ARRRAY
X
X    variable V3: A1;
X        -- SEMANTIC ERROR: SUBTYPE INDICATION OF ARRAY OBJECT DECLARATION
X        -- MUST DENOTE A CONSTRAINED ARRRAY
X
X
X  begin
X    return;
X  end process;
X--  end block;
Xend BB;
*-*-END-of-e-03-2-1-0007a.vhdl-*-*
echo x - e-03-2-1-0008a.vhdl
sed 's/^X//' >e-03-2-1-0008a.vhdl <<'*-*-END-of-e-03-2-1-0008a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: E-03-2-1-0008A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that the type of an array element cannot be an unconstrained array
X-- type.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xentity E  is
X    port (PT: BOOLEAN) ;
X
X    type I1 is range 1 to 1;
X    type A1 is array (I1 range <>) of BOOLEAN;
X    type A2 is array (I1'(1) to I1'(1)) of A1;
X        -- SEMANTIC ERROR: ARRAY ELEMENT CANNOT BE AN UNCONSTRAINED ARRAY
X
X    type A3 is array (I1 range <>) of A1 (1 to 1);
X    type A4 is array (I1'(1) to I1'(1)) of A3;
X        -- SEMANTIC ERROR: ARRAY ELEMENT CANNOT BE AN UNCONSTRAINED ARRAY
X
Xend E;
*-*-END-of-e-03-2-1-0008a.vhdl-*-*
echo x - e-03-2-1-0009a.vhdl
sed 's/^X//' >e-03-2-1-0009a.vhdl <<'*-*-END-of-e-03-2-1-0009a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: E-03-2-1-0009A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X--   Check that a subtype indication which appears as a discrete range 
X--   must not contain a characteristic indication
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xpackage more_errors is
X	type bad_array_type is array (atomic INTEGER range 12 to 22) of BIT;
Xend more_errors;
*-*-END-of-e-03-2-1-0009a.vhdl-*-*
echo x - e-03-2-2-0001a.vhdl
sed 's/^X//' >e-03-2-2-0001a.vhdl <<'*-*-END-of-e-03-2-2-0001a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: E-03-2-2-0001A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that the identifiers of all elements of a record type must be distinct.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xpackage P is
X
X    type R1 is record
X                 RE1: INTEGER;
X                 RE2: BIT;
X                 RE3: BOOLEAN;
X                 RE1: REAL;
X        -- SEMANTIC ERROR: IDENTIFIERS OF ELEMENTS OF A RECORD TYPE MUST
X        -- BE DISTINCT
X               end record;
X
Xend P;
*-*-END-of-e-03-2-2-0001a.vhdl-*-*
echo x - e-03-2-2-0002a.vhdl
sed 's/^X//' >e-03-2-2-0002a.vhdl <<'*-*-END-of-e-03-2-2-0002a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: E-03-2-2-0002A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that the use of a name that denotes a record element is not allowed
X-- within the record type definition that declares the element.
X-- CS 6/13/84
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xpackage P is
X
X    type I1 is range 1 to 1;
X
X    type R1 is record
X                 RE1: I1;
X                 RE2: RE1;
X        -- SEMANTIC ERROR: NAME OF RECORD ELEMENT CANNOT BE USED
X        -- WITHIN THE RECORD TYPE DEFINITION
X               end record;
X
X    type A1 is array (I1 range <>) of BOOLEAN;
X
X    type R2 is record
X                 RE1: I1;
X                 RE2: A1 (1 to RE1);
X        -- SEMANTIC ERROR: NAME OF RECORD ELEMENT CANNOT BE USED
X        -- WITHIN THE RECORD TYPE DEFINITION
X               end record;
X
Xend P;
*-*-END-of-e-03-2-2-0002a.vhdl-*-*
echo x - e-03-2-2-0003a.vhdl
sed 's/^X//' >e-03-2-2-0003a.vhdl <<'*-*-END-of-e-03-2-2-0003a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: E-03-2-2-0003A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that a record type declaration must contain at least one element.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xpackage P is
X
X    type R1 is record
X               end record;
X        -- SYNTAX ERROR: RECORD TYPE DECLARATION MUST CONTAIN AT
X        -- LEAST ONE ELEMENT
X
Xend P;
*-*-END-of-e-03-2-2-0003a.vhdl-*-*
echo x - e-03-2-2-0004a.vhdl
sed 's/^X//' >e-03-2-2-0004a.vhdl <<'*-*-END-of-e-03-2-2-0004a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: E-03-2-2-0004A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that the type of a record element cannot be an unconstrained array.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xpackage P is
X
X    type I1 is range 1 to 1;
X    type A1 is array (I1 range <>) of BOOLEAN;
X
X    type R1 is record
X                 RE1: A1;
X        -- SEMANTIC ERROR: TYPE OF RECORD ELEMENT CANNOT BE AN
X        -- UNCONSTRAINED ARRAY
X               end record;
X
X    type R2 is record
X                 RE1: A1 (1 to 1);
X        -- OK
X                 RE2: A1;
X        -- SEMANTIC ERROR: TYPE OF RECORD ELEMENT CANNOT BE AN
X        -- UNCONSTRAINED ARRAY
X               end record;
X
Xend P;
*-*-END-of-e-03-2-2-0004a.vhdl-*-*
echo x - e-03-2-2-0005a.vhdl
sed 's/^X//' >e-03-2-2-0005a.vhdl <<'*-*-END-of-e-03-2-2-0005a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: E-03-2-2-0005A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that the bounds of an array element of a record type must be generic
X-- expressions.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xpackage P is
X
X    type I1 is range 1 to 1;
X
X    function F(I2 : I1) return I1 is
X    begin
X        return I2;
X    end F;
X
Xend P;
X
X-- with package P; 
Xuse P.all;
X
Xentity E  is
X        -- MUST BE GENERIC
X               end record;
X
X    type R2 is record
X                 RE1: A1 (PT1 to PT1) ;
X		     port (PT1: I1 := 1) ;
Xend E;
X
Xarchitecture BB of E is
X-- L_X_1: block
X begin
X  process
X
X    variable V1: I1 := 1;
X    type A1 is array (I1 range <>) of BOOLEAN;
X
X    type R1 is record
X                 RE1: A1 (F(V1) to F(PT1));
X        -- SEMANTIC ERROR: BOUNDS OF ARRAY ELEMENT IN RECORD DECLARATION
X;
X        -- SEMANTIC ERROR: BOUNDS OF ARRAY ELEMENT IN RECORD DECLARATION
X        -- MUST BE GENERIC
X               end record;
X
X    type R3 is record
X                 RE1: A1 (V1 to V1);
X        -- SEMANTIC ERROR: BOUNDS OF ARRAY ELEMENT IN RECORD DECLARATION
X        -- MUST BE GENERIC
X               end record;
X
X  begin
X    return;
X  end process;
X--  end bLock;
Xend BB;
*-*-END-of-e-03-2-2-0005a.vhdl-*-*
echo x - s-03-1-0-0001a.vhdl
sed 's/^X//' >s-03-1-0-0001a.vhdl <<'*-*-END-of-s-03-1-0-0001a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: S-03-1-0-0001A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that a "null" range is allowed in the iteration scheme of a loop
X-- statement or the generation scheme of a generate statement.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xentity E  is
X    port (PT: BOOLEAN) ;
Xend E;
X
Xarchitecture BB of E is
X-- L_X_1: block
X begin
X    GEN1:
X     for I in 1 downto 2 generate
X--       L_X_2: block
X        begin
X         process
X          variable J : INTEGER;
X           begin
X            J in J * J;
X         end process;
X--       end block;
X    end generate GEN1;
X
X  process
X   variable I : INTEGER;
X  begin
X    LOOP1:
X     for J in 1 downto 30 loop
X      I in I + I;
X    end loop LOOP1;
X  end process;
X--  end block;
Xend BB;
*-*-END-of-s-03-1-0-0001a.vhdl-*-*
echo x - s-03-1-0-0002a.vhdl
sed 's/^X//' >s-03-1-0-0002a.vhdl <<'*-*-END-of-s-03-1-0-0002a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: S-03-1-0-0002A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that the range constraint on a subtype may be a descending range while
X-- the parent type is an ascending range. Check that the range constraint on a
X-- subtype may be an ascending range while the parent type is a descending
X-- range.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xpackage P is
X
X    type I1 is range 1 to 10;
X    subtype I11 is I1 range 9 downto 2;
X    subtype I111 is I11 range 3 to 8;
X
X    type REAL1 is range 1.0 to 9.0;
X    subtype REAL11 is REAL1 range 8.0 downto 2.0;
X    subtype REAL111 is REAL11 range 3.0 to 7.0;
X
X    type ENUM1 is (ONE, TWO, THREE, FOUR, FIVE, SIX);
X    subtype ENUM11 is ENUM1 range FIVE downto TWO;
X    subtype ENUM111 is ENUM11 range THREE to FOUR;
X
Xend P;
*-*-END-of-s-03-1-0-0002a.vhdl-*-*
echo x - s-03-1-0-0003a.vhdl
sed 's/^X//' >s-03-1-0-0003a.vhdl <<'*-*-END-of-s-03-1-0-0003a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: S-03-1-0-0003A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that the direction of an integer type, real type, and physical
X-- type is the direction of it's range constraint.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Steve)Grout@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xentity be is
Xend be;
X
Xarchitecture bop of be is
X-- be_bop : block
X    begin
X    	process
X            type Ints is range 0 to 60;
X            subtype Sints is Ints range 60 downto 0;
X
X    	    type Reale is range 0.0 to 60.0;
X    	    subtype sreale is Reale range 60.0 downto 0.0;
X
X    	    type Phys_o is range 1 to 36
X    		units
X    		  part;
X    		  seg = 6 part;
X    		  aall = 6 seg;
X    		end units;
X            subtype Sphys_o is Phys_o range aall downto part;
X
X    	    Variable Always_true : BOOLEAN range True to True;
X         begin
X            case Always_true is
X              when (
X                   ((Ints'left = Sints'right) and (Ints'right = SInts'left))
X                                   and
X                   ((Reale'left = Sreale'right) and (Reale'right = Sreale'left))
X                                  and
X               ((Phys_o'left = Sphys_o'right) and (Phys_o'right = SPhys_o'left))
X                   )
X                =>  null;
X            end case;
X
X    	 end process ;
X--     end block;
Xend Bop;
*-*-END-of-s-03-1-0-0003a.vhdl-*-*
echo x - s-03-1-1-0001a.vhdl
sed 's/^X//' >s-03-1-1-0001a.vhdl <<'*-*-END-of-s-03-1-1-0001a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: S-03-1-1-0001A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that the position value of the nth listed enumeration literal is n-1.
X-- As a special case, check that the position value of the first listed
X-- enumeration literal is zero.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xentity E  is
X    port (PT: BOOLEAN) ;
Xend E;
X
Xarchitecture BB of E is
X-- B1: block
X begin
X  process
X
X    subtype BTRUE is BOOLEAN range TRUE to TRUE;
X    type ENUM1 is (ZERO, ONE, TWO, THREE);
X    type ENUM2 is (TRUE, FALSE);
X    type ENUM3 is ('1', '0');
X    type ENUM4 is ('Z', 'Y', 'X');
X    variable V1: BTRUE;
X
X  begin
X
X    case V1 is
X        when (
X                  (ENUM1'POS(ZERO) = 0)
X              and (ENUM1'POS(ONE) = 1)
X              and (ENUM1'POS(TWO) = 2)
X              and (ENUM1'POS(THREE) = 3)
X              and (ENUM2'POS(TRUE) = 0)
X              and (ENUM2'POS(FALSE) = 1)
X              and (ENUM3'POS('1') = 0)
X              and (ENUM3'POS('0') = 1)
X              and (ENUM4'POS('Z') = 0)
X              and (ENUM4'POS('Y') = 1)
X              and (ENUM4'POS('X') = 2)
X             ) => return;
X        when others => return;
X    end case;
X
X  end process;
X-- end block;
Xend BB;
*-*-END-of-s-03-1-1-0001a.vhdl-*-*
echo x - s-03-1-1-0002a.vhdl
sed 's/^X//' >s-03-1-1-0002a.vhdl <<'*-*-END-of-s-03-1-1-0002a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: S-03-1-1-0002A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that enumeration literals may be overloaded. As a special case check
X-- where two enumeration types have identical enumeration literals.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Steve)Grout@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xentity E  is
X    port (PT: BOOLEAN) ;
Xend E;
X
Xarchitecture BB of E is
X-- B1: block
X begin
X  process
X    subtype BTRUE is BOOLEAN range TRUE to TRUE;
X
X    type ENUM1 is (XX, YY, ZZ);
X    type ENUM2 is (XX);
X    type ENUM3 is (XX, YY, ZZ);
X
X    type ENUM4 is ('A', 'B', 'C');
X    type ENUM5 is ('A');
X    type ENUM6 is ('A', 'B', 'C');
X
X    variable V1: BTRUE;
X
X  begin
X
X    case V1 is
X        when (
X                   (ENUM1'POS(XX) = ENUM2'POS(XX))
X               and (ENUM2'POS(XX) = ENUM3'POS(XX))
X               and (ENUM1'POS(YY) = ENUM3'POS(YY))
X               and (ENUM1'POS(ZZ) = ENUM3'POS(ZZ))
X               and (ENUM4'POS('A') = ENUM5'POS('A'))
X               and (ENUM5'POS('A') = ENUM6'POS('A'))
X               and (ENUM4'POS('B') = ENUM6'POS('B'))
X               and (ENUM4'POS('C') = ENUM6'POS('C'))
X             ) => return;
X        when others => return;
X    end case;
X  end process;
X--  end block;
Xend BB;
X
*-*-END-of-s-03-1-1-0002a.vhdl-*-*
echo x - s-03-1-1-1001a.vhdl
sed 's/^X//' >s-03-1-1-1001a.vhdl <<'*-*-END-of-s-03-1-1-1001a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: S-03-1-1-1001A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that the predefined type BIT has the values '0' and '1'.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xentity E  is
X    port (PT: BOOLEAN) ;
Xend E;
X
Xarchitecture BB of E is
X-- B1: block
X begin
X  process
X    variable V: BIT;
X  begin
X    V := '0';
X    V := '1';
X    return;
X  end process;
X--  end block;
Xend BB;
*-*-END-of-s-03-1-1-1001a.vhdl-*-*
echo x - s-03-1-1-1002a.vhdl
sed 's/^X//' >s-03-1-1-1002a.vhdl <<'*-*-END-of-s-03-1-1-1002a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: S-03-1-1-1002A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that BIT'('0') < BIT'('1').
X-- CS 6/7/84
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xentity E  is
X    port (PT: BOOLEAN) ;
Xend E;
X
Xarchitecture BB of E is
X-- B1: block
X begin
X  process
X    subtype BTRUE is BOOLEAN range TRUE to TRUE;
X    variable V: BTRUE;
X  begin
X    case V is
X        when (
X                  (BIT'POS('0') = 0)
X              and (BIT'POS('1') = 1)
X             ) => return;
X        when others => return;
X    end case;
X  end process;
X--  end block;
Xend BB;
X
*-*-END-of-s-03-1-1-1002a.vhdl-*-*
echo x - s-03-1-1-1003a.vhdl
sed 's/^X//' >s-03-1-1-1003a.vhdl <<'*-*-END-of-s-03-1-1-1003a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: S-03-1-1-1003A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that the predefined type BOOLEAN has the values FALSE and TRUE.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xentity E  is
X    port (PT: BOOLEAN) ;
Xend E;
X
Xarchitecture BB of E is
X-- B1: block
X begin
X  process
X    variable V: BOOLEAN;
X  begin
X    V := FALSE;
X    V := TRUE;
X    return;
X  end process;
X--  end block;
Xend BB;
*-*-END-of-s-03-1-1-1003a.vhdl-*-*
echo x - s-03-1-1-1004a.vhdl
sed 's/^X//' >s-03-1-1-1004a.vhdl <<'*-*-END-of-s-03-1-1-1004a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: S-03-1-1-1004A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that BOOLEAN'(FALSE) < BOOLEAN'(TRUE).
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xentity E  is
X    port (PT: BOOLEAN) ;
Xend E;
X
Xarchitecture BB of E is
X-- B1: block
X begin
X  process
X    subtype BTRUE is BOOLEAN range TRUE to TRUE;
X    variable V: BTRUE;
X  begin
X    case V is
X        when (
X                  (BOOLEAN'POS(FALSE) = 0)
X              and (BOOLEAN'POS(TRUE) = 1)
X             ) => return;
X        when others => return;
X    end case;
X
X  end process;
X--  end block;
Xend BB;
*-*-END-of-s-03-1-1-1004a.vhdl-*-*
echo x - s-03-1-1-1005a.vhdl
sed 's/^X//' >s-03-1-1-1005a.vhdl <<'*-*-END-of-s-03-1-1-1005a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: S-03-1-1-1005A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that the predefined type CHARACTER has as its values the (128)
X-- characters of the ASCII character set.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xentity E  is
X    port (PT: BOOLEAN) ;
Xend E;
X
Xarchitecture BB of E is
X-- B1: block
X begin 
X  process
X    variable V: CHARACTER;
X  begin
X
X    V := NUL;  V := SOH;  V := STX;  V := ETX;
X    V := EOT;  V := ENQ;  V := ACK;  V := BEL;
X                         
X    V := BS;   V := HT;   V := LF;   V := VT;                        
X    V := FF;   V := CR;   V := SO;   V := SI;
X                                              
X    V := DLE;  V := DC1;  V := DC2;  V := DC3;  
X    V := DC4;  V := NAK;  V := SYN;  V := ETB;
X                         
X    V := CAN;  V := EM;   V := SUB;  V := ESC;  
X    V := FSP;  V := GSP;  V := RSP;  V := USP;
X                         
X    V := ' ';  V := '!';  V := '"';  V := '#';  
X    V := '$';  V := '%';  V := '&';  V := ''';
X                         
X    V := '(';  V := ')';  V := '*';  V := '+';  
X    V := ',';  V := '-';  V := '.';  V := '/';
X                         
X    V := '0';  V := '1';  V := '2';  V := '3';  
X    V := '4';  V := '5';  V := '6';  V := '7';
X                         
X    V := '8';  V := '9';  V := ':';  V := ';';  
X    V := '<';  V := '=';  V := '>';  V := '?';
X     
X    V := '@';  V := 'A';  V := 'B';  V := 'C';  
X    V := 'D';  V := 'E';  V := 'F';  V := 'G';
X                         
X    V := 'H';  V := 'I';  V := 'J';  V := 'K';  
X    V := 'L';  V := 'M';  V := 'N';  V := 'O';
X                         
X    V := 'P';  V := 'Q';  V := 'R';  V := 'S';  
X    V := 'T';  V := 'U';  V := 'V';  V := 'W';  
X                         
X    V := 'X';  V := 'Y';  V := 'Z';  V := '[';  
X    V := '\';  V := ']';  V := '^';  V := '_';
X                         
X    V := '`';  V := 'a';  V := 'b';  V := 'c';  
X    V := 'd';  V := 'e';  V := 'f';  V := 'g';
X                         
X    V := 'h';  V := 'i';  V := 'j';  V := 'k';  
X    V := 'l';  V := 'm';  V := 'n';  V := 'o';
X                         
X    V := 'p';  V := 'q';  V := 'r';  V := 's';  
X    V := 't';  V := 'u';  V := 'v';  V := 'w';  
X                         
X    V := 'x';  V := 'y';  V := 'z';  V := '{';  
X    V := '|';  V := '}';  V := '~';  V := DEL;
X
X  end process;  
X--  end block;
Xend BB;
*-*-END-of-s-03-1-1-1005a.vhdl-*-*
echo x - s-03-1-1-1006a.vhdl
sed 's/^X//' >s-03-1-1-1006a.vhdl <<'*-*-END-of-s-03-1-1-1006a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: S-03-1-1-1006A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that the enumeration literals of type CHARACTER have the ordering given
X-- in package STANDARD.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xentity E  is
X    port (PT: BOOLEAN) ;
Xend E;
X
Xarchitecture BB of E is
X-- B1: block
X begin
X  process
X    subtype BTRUE is BOOLEAN range TRUE to TRUE;
X    variable V: BTRUE;
X  begin
X    case V is
X        when (
X                  (CHARACTER'POS(NUL) = 0)  and (CHARACTER'POS(SOH) = 1)  
X              and (CHARACTER'POS(STX) = 2)  and (CHARACTER'POS(ETX) = 3)
X              and (CHARACTER'POS(EOT) = 4)  and (CHARACTER'POS(ENQ) = 5)  
X              and (CHARACTER'POS(ACK) = 6)  and (CHARACTER'POS(BEL) = 7)
X                         
X              and (CHARACTER'POS(BS) = 8)   and (CHARACTER'POS(HT) = 9)   
X              and (CHARACTER'POS(LF) = 10)   and (CHARACTER'POS(VT) = 11) 
X              and (CHARACTER'POS(FF) = 12)   and (CHARACTER'POS(CR) = 13)   
X              and (CHARACTER'POS(SO) = 14)   and (CHARACTER'POS(SI) = 15)
X                                              
X              and (CHARACTER'POS(DLE) = 16)  and (CHARACTER'POS(DC1) = 17)  
X              and (CHARACTER'POS(DC2) = 18)  and (CHARACTER'POS(DC3) = 19)  
X              and (CHARACTER'POS(DC4) = 20)  and (CHARACTER'POS(NAK) = 21)  
X              and (CHARACTER'POS(SYN) = 22)  and (CHARACTER'POS(ETB) = 23)
X                         
X              and (CHARACTER'POS(CAN) = 24)  and (CHARACTER'POS(EM) = 25)   
X              and (CHARACTER'POS(SUB) = 26)  and (CHARACTER'POS(ESC) = 27)  
X              and (CHARACTER'POS(FSP) = 28)  and (CHARACTER'POS(GSP) = 29)   
X              and (CHARACTER'POS(RSP) = 30)   and (CHARACTER'POS(USP) = 31)
X                         
X              and (CHARACTER'POS(' ') = 32)  and (CHARACTER'POS('!') = 33)  
X              and (CHARACTER'POS('"') = 34)  and (CHARACTER'POS('#') = 35)  
X              and (CHARACTER'POS('$') = 36)  and (CHARACTER'POS('%') = 37)  
X              and (CHARACTER'POS('&') = 38)  and (CHARACTER'POS(''') = 39)
X                         
X              and (CHARACTER'POS('(') = 40)  and (CHARACTER'POS(')') = 41)  
X              and (CHARACTER'POS('*') = 42)  and (CHARACTER'POS('+') = 43)  
X              and (CHARACTER'POS(',') = 44)  and (CHARACTER'POS('-') = 45)  
X              and (CHARACTER'POS('.') = 46)  and (CHARACTER'POS('/') = 47)
X                         
X              and (CHARACTER'POS('0') = 48)  and (CHARACTER'POS('1') = 49)  
X              and (CHARACTER'POS('2') = 50)  and (CHARACTER'POS('3') = 51)  
X              and (CHARACTER'POS('4') = 52)  and (CHARACTER'POS('5') = 53)  
X              and (CHARACTER'POS('6') = 54)  and (CHARACTER'POS('7') = 55)
X                         
X              and (CHARACTER'POS('8') = 56)  and (CHARACTER'POS('9') = 57)  
X              and (CHARACTER'POS(':') = 58)  and (CHARACTER'POS(';') = 59)  
X              and (CHARACTER'POS('<') = 60)  and (CHARACTER'POS('=') = 61)  
X              and (CHARACTER'POS('>') = 62)  and (CHARACTER'POS('?') = 63)
X     
X              and (CHARACTER'POS('@') = 64)  and (CHARACTER'POS('A') = 65)  
X              and (CHARACTER'POS('B') = 66)  and (CHARACTER'POS('C') = 67)  
X              and (CHARACTER'POS('D') = 68)  and (CHARACTER'POS('E') = 69)  
X              and (CHARACTER'POS('F') = 70)  and (CHARACTER'POS('G') = 71)
X                         
X              and (CHARACTER'POS('H') = 72)  and (CHARACTER'POS('I') = 73)  
X              and (CHARACTER'POS('J') = 74)  and (CHARACTER'POS('K') = 75)  
X              and (CHARACTER'POS('L') = 76)  and (CHARACTER'POS('M') = 77)  
X              and (CHARACTER'POS('N') = 78)  and (CHARACTER'POS('O') = 79)
X                         
X              and (CHARACTER'POS('P') = 80)  and (CHARACTER'POS('Q') = 81)  
X              and (CHARACTER'POS('R') = 82)  and (CHARACTER'POS('S') = 83)  
X              and (CHARACTER'POS('T') = 84)  and (CHARACTER'POS('U') = 85)  
X              and (CHARACTER'POS('V') = 86)  and (CHARACTER'POS('W') = 87)  
X                         
X              and (CHARACTER'POS('X') = 88)  and (CHARACTER'POS('Y') = 89)  
X              and (CHARACTER'POS('Z') = 90)  and (CHARACTER'POS('[') = 91)  
X              and (CHARACTER'POS('\') = 92)  and (CHARACTER'POS(']') = 93)  
X              and (CHARACTER'POS('^') = 94)  and (CHARACTER'POS('_') = 95)
X                         
X              and (CHARACTER'POS('`') = 96)  and (CHARACTER'POS('a') = 97)  
X              and (CHARACTER'POS('b') = 98)  and (CHARACTER'POS('c') = 99)  
X              and (CHARACTER'POS('d') = 100)  and (CHARACTER'POS('e') = 101)  
X              and (CHARACTER'POS('f') = 102)  and (CHARACTER'POS('g') = 103)
X                         
X              and (CHARACTER'POS('h') = 104)  and (CHARACTER'POS('i') = 105)  
X              and (CHARACTER'POS('j') = 106)  and (CHARACTER'POS('k') = 107)  
X              and (CHARACTER'POS('l') = 108)  and (CHARACTER'POS('m') = 109)  
X              and (CHARACTER'POS('n') = 110)  and (CHARACTER'POS('o') = 111)
X                         
X              and (CHARACTER'POS('p') = 112)  and (CHARACTER'POS('q') = 113)  
X              and (CHARACTER'POS('r') = 114)  and (CHARACTER'POS('s') = 115)  
X              and (CHARACTER'POS('t') = 116)  and (CHARACTER'POS('u') = 117)  
X              and (CHARACTER'POS('v') = 118)  and (CHARACTER'POS('w') = 119)  
X                         
X              and (CHARACTER'POS('x') = 120)  and (CHARACTER'POS('y') = 121)  
X              and (CHARACTER'POS('z') = 122)  and (CHARACTER'POS('{') = 123)  
X              and (CHARACTER'POS('|') = 124)  and (CHARACTER'POS('}') = 125)  
X              and (CHARACTER'POS('~') = 126)  and (CHARACTER'POS(DEL) = 127)
X             ) => return;
X
X        when others => return;
X    end case;
X  end process;
X--  end block;
Xend BB;
X
*-*-END-of-s-03-1-1-1006a.vhdl-*-*
echo x - s-03-1-1-1007a.vhdl
sed 's/^X//' >s-03-1-1-1007a.vhdl <<'*-*-END-of-s-03-1-1-1007a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: S-03-1-1-1007A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that the predefined type Severity_Level has no value other than 
X-- NOTE, WARNING, ERROR, AND FAILURE.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xpackage P is
Xfunction F1(PT: Severity_level) return BOOLEAN;
Xend P;
X
Xpackage body P is
Xfunction F1(PT: Severity_level) return BOOLEAN is
X
X begin
X    case PT is
X       	when NOTE    => return True;
X      	when WARNING => return True;
X	when ERROR   => return True;
X	when FAILURE => return True;
X	when others  => return false;
X    end case;
X end F1;
Xend P;
*-*-END-of-s-03-1-1-1007a.vhdl-*-*
echo x - s-03-1-1-1008a.vhdl
sed 's/^X//' >s-03-1-1-1008a.vhdl <<'*-*-END-of-s-03-1-1-1008a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: S-03-1-1-1008A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that the enumeration literals of type Severity_Level have the
X-- ordering given in the package STANDARD.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xpackage P is
Xfunction F1 return BOOLEAN;
Xend P;
X
Xpackage body P is
X function F1 return BOOLEAN is
X	subtype S1 is severity_level range NOTE to FAILURE;
X        variable Always_true : boolean range True to True;
X begin
X    case Always_true is
X      when (( S1'BASE'LOW = NOTE) and (S1'SUCC(NOTE) = WARNING) and
X           ( S1'SUCC(WARNING) = ERROR) and  (S1'SUCC(ERROR) = FAILURE ))
X        => return True;
X    end case;
X end F1;
Xend P;
*-*-END-of-s-03-1-1-1008a.vhdl-*-*
echo x - s-03-1-2-0001a.vhdl
sed 's/^X//' >s-03-1-2-0001a.vhdl <<'*-*-END-of-s-03-1-2-0001a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: S-03-1-2-0001A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that expressions in range constraints in integer type definitions need
X-- not be of the same integer type.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xentity E  is
X    port (PT: BOOLEAN) ;
X    type I1 is range 1 to 10;
X    type I2 is range 11 to 20;
Xend E;
X
Xarchitecture BB of E is
X-- B1: block
X begin
X  process
X
X    constant V1: I1 := 1;
X    constant V2: I2 := 20;
X
X    type I3 is range 1 to V1;
X    type I4 is range V1 to 20;
X    type I5 is range V1 to V2;
X    type I6 is range I1'(1) to 1;
X    type I7 is range 1 to I1'(1);
X    type I8 is range I1'(1) to I2'(20);
X    type I9 is range I1'(V1) to I2'(V2);
X
X  begin
X    return;
X  end process;
X--  end block;
Xend BB;
*-*-END-of-s-03-1-2-0001a.vhdl-*-*
echo x - s-03-1-2-1001a.vhdl
sed 's/^X//' >s-03-1-2-1001a.vhdl <<'*-*-END-of-s-03-1-2-1001a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: S-03-1-2-1001A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that the integer type INTEGER is predefined.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xentity E  is
X    port (PT: BOOLEAN) ;
Xend E;
X
Xarchitecture BB of E is
X-- C: block
X begin
X  process
X    variable V1: INTEGER;
X  begin
X    return;
X  end process;
X--  end block;
Xend BB;
*-*-END-of-s-03-1-2-1001a.vhdl-*-*
echo x - s-03-1-2-1002a.vhdl
sed 's/^X//' >s-03-1-2-1002a.vhdl <<'*-*-END-of-s-03-1-2-1002a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: S-03-1-2-1002A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X--	Check that INTEGER'LEFT < INTEGER'RIGHT for the 
X--	predefined type INTEGER;
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xpackage P1 is
Xprocedure p;
Xend P1;
X
Xpackage body P1 is
Xprocedure p is
X    variable Always_true : boolean range True to True;
Xbegin
X    case Always_true is
X      when ( INTEGER'LEFT < INTEGER'RIGHT ) => null;
X    end case;
Xend p;
Xend P1;
*-*-END-of-s-03-1-2-1002a.vhdl-*-*
echo x - s-03-1-3-0001a.vhdl
sed 's/^X//' >s-03-1-3-0001a.vhdl <<'*-*-END-of-s-03-1-3-0001a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: S-03-1-3-0001A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that a physical type definition may have zero secondary unit
X-- declarations.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xpackage P is
X
X    type UPLE is range 1 to 8
X      units
X          single;
X      end units;
X
Xend P;
*-*-END-of-s-03-1-3-0001a.vhdl-*-*
echo x - s-03-1-3-0002a.vhdl
sed 's/^X//' >s-03-1-3-0002a.vhdl <<'*-*-END-of-s-03-1-3-0002a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: S-03-1-3-0002A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that the bounds in a range constraint in a physical type definition
X-- need not be of the same integer type. Check that negative bounds are allowed.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer  (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xentity E  is
X    port (PT: BOOLEAN) ;
X    type I1 is range 1 to 10;
X    type I2 is range 11 to 20;
Xend E;
X
Xarchitecture BB of E is
X-- C: block
X begin
X  process
X
X    constant V1: I1 := 1;
X    constant V2: I2 := 20;
X
X    type I3 is range 1 to V1
X      units
X          base3;
X      end units;
X
X    type I4 is range V1 to 20
X      units
X          base4;
X      end units;
X
X    type I5 is range V1 to V2
X      units
X          base5;
X      end units;
X
X    type I6 is range I1'(1) to 1
X          units
X            base6;
X      end units;
X
X    type I7 is range 1 to I1'(1)
X      units
X          base7;
X      end units;
X
X    type I8 is range I1'(1) to I2'(20)
X      units
X          base8;
X      end units;
X
X    type I9 is range I1'(V1) to I2'(V2)
X      units
X          base9;
X      end units;
X
X    type I10 is range -10 to 10
X      units
X          base10;
X      end units;
X
X    type I11 is range -10 to -1
X      units
X          base11;
X      end units;
X
X  begin
X    return;
X  end process;
X--  end block;
Xend BB;
*-*-END-of-s-03-1-3-0002a.vhdl-*-*
echo x - s-03-1-3-0003a.vhdl
sed 's/^X//' >s-03-1-3-0003a.vhdl <<'*-*-END-of-s-03-1-3-0003a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: S-03-1-3-0003A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that the relative order of secondary unit declarations is not fixed
X-- as long as units are not used before they are declared.
X-- JB  (DB 7/17/85)
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xpackage P1 is
X    type UPLE is range 1 to 8
X      units
X          single;
X          duple = 2 single;
X          triple = 3 single;
X          quadruple = 2 duple;
X          pentuple = 5 single;
X          sextuple = 2 triple;
X          septuple = 7 single;
X          octuple = 2 quadruple;
X      end units;
Xend P1;
X
Xpackage P2 is
X    type UPLE is range 1 to 8
X      units
X          single;
X          pentuple = 5 single;
X          triple = 3 single;
X          duple = 2 single;
X          septuple = 7 single;
X          quadruple = 2 duple;
X          octuple = 2 quadruple;
X          sextuple = 2 triple;
X      end units;
Xend P2;
*-*-END-of-s-03-1-3-0003a.vhdl-*-*
echo x - s-03-1-3-0004a.vhdl
sed 's/^X//' >s-03-1-3-0004a.vhdl <<'*-*-END-of-s-03-1-3-0004a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: S-03-1-3-0004A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that the abstract literal portion of a physical literal in a secondary
X-- unit declaration may be omitted, and if it is omitted it is equivalent to a
X-- physical literal with the integer '1' followed by the unit name (check
X-- equivalence by taking its POS).
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xentity E  is
X    port (PT: BOOLEAN) ;
X
X    type UPLE is range 1 to 8
X      units
X          single;
X          solo = 1 single;
X          monode = single;
X          double = 2 single;
X          pair = 1 double;
X          gemminate = double;
X      end units;
X
Xend E;
X
Xarchitecture BB of E is
X-- B5: block
X begin
X  process
X
X    subtype BTRUE is BOOLEAN range TRUE to TRUE;
X    variable V1: BTRUE;
X
X  begin
X    case V1 is
X        when (
X                  (UPLE'POS(SOLO) = 1)
X              and (UPLE'POS(DOUBLE) = 2)
X              and (UPLE'POS(SOLO) = UPLE'POS(MONODE))
X              and (UPLE'POS(GEMMINATE) = UPLE'POS(PAIR))
X             ) => return;
X        when others => return;
X    end case;
X  end process;
X--  end block;
Xend BB;
*-*-END-of-s-03-1-3-0004a.vhdl-*-*
echo x - s-03-1-3-0005a.vhdl
sed 's/^X//' >s-03-1-3-0005a.vhdl <<'*-*-END-of-s-03-1-3-0005a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: S-03-1-3-0005A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that the position number of a physical literal consisting solely of a
X-- unit name is the number of units of the base unit contained in the unit name.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xentity E  is
X    port (PT: BOOLEAN) ;
X
X    type UPLE is range 1 to 8
X      units
X          single;
X          solo =  single;
X          double = 2 single;
X          duet =  double;
X          triple = 3 single;
X          trio = triple;
X          quadruple = 4 single;
X          quartet = quadruple;
X      end units;
X
Xend E;
X
Xarchitecture BB of E is
X-- B6: block
X begin
X  process
X
X    subtype BTRUE is BOOLEAN range TRUE to TRUE;
X    variable V1: BTRUE;
X
X  begin
X    case V1 is
X        when (
X                  (UPLE'POS(SOLO) = 1)
X              and (UPLE'POS(DUET) = 2)
X              and (UPLE'POS(TRIO) = 3)
X              and (UPLE'POS(QUARTET) = 4)
X             ) => return;
X        when others => return;
X    end case;
X  end process;
X--  end block;
Xend BB;
*-*-END-of-s-03-1-3-0005a.vhdl-*-*
echo x - s-03-1-3-0006a.vhdl
sed 's/^X//' >s-03-1-3-0006a.vhdl <<'*-*-END-of-s-03-1-3-0006a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: S-03-1-3-0006A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that the position number of a physical literal with an abstract literal
X-- part is rounded up to the nearest integer of the product of the abstract 
X-- literal part of physical literal and the position number of its unit name.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xentity E  is
X    port (PT: BOOLEAN) ;
X
X    type UPLE is range 1 to 8
X      units
X          single;
X          double = 2 single;
X          quadruple = 2 double;
X          octuple = 2 quadruple;
X      end units;
X
Xend E;
X
Xarchitecture BB of E is
X-- B4: block
X begin
X  process
X    subtype BTRUE is BOOLEAN range TRUE to TRUE;
X    variable V1: BTRUE;
X
X  begin
X    case V1 is
X      when (
X                (UPLE'POS(3 double) = 3 * UPLE'POS(double))
X            and (UPLE'POS(0.4 octuple) = 4)
X            and (UPLE'POS(0.5 octuple) = 4) 
X            and (UPLE'POS(0.6 octuple) = 5) 
X           ) => return;
X      when others => return;
X    end case;
X  end process;
X--  end block;
Xend BB;
*-*-END-of-s-03-1-3-0006a.vhdl-*-*
echo x - s-03-1-3-1001a.vhdl
sed 's/^X//' >s-03-1-3-1001a.vhdl <<'*-*-END-of-s-03-1-3-1001a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: S-03-1-3-1001A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that the physical type time (with units fs, ps, ns, us, ms, s, min, hr
X-- in their conventional magnitudes) is predefined in package STANDARD.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xentity E  is
X    port (PT: BOOLEAN) ;
Xend E;
X
Xarchitecture BB of E is
X-- B1: block
X begin
X  process
X    subtype BTRUE is BOOLEAN range TRUE to TRUE;
X    variable V1: BTRUE;
X  begin
X    case V1 is
X        when (
X                  (TIME'POS(fs) = 1)
X              and (TIME'POS(ps) = 1000 * TIME'POS(fs))
X              and (TIME'POS(ns) = 1000 * TIME'POS(ps))
X              and (TIME'POS(us) = 1000 * TIME'POS(ns))
X              and (TIME'POS(ms) = 1000 * TIME'POS(us))
X              and (TIME'POS(s)  = 1000 * TIME'POS(ms))
X              and (TIME'POS(min) =  60 * TIME'POS(s))
X              and (TIME'POS(hr) =   60 * TIME'POS(min))
X             ) => return;
X        when others => return;
X    end case;
X  end process;
X--  end block;
Xend BB;
*-*-END-of-s-03-1-3-1001a.vhdl-*-*
echo x - s-03-1-4-0001a.vhdl
sed 's/^X//' >s-03-1-4-0001a.vhdl <<'*-*-END-of-s-03-1-4-0001a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: S-03-1-4-0001A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that expressions in floating point constraints in floating point type
X-- definitions need not be of the same floating point type.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xentity E  is
X    port (PT: BOOLEAN) ;
X    type REAL1 is range 1.0 to 10.0;
X    type REAL2 is range 10.0 to 20.0;
Xend E;
X
Xarchitecture BB of E is
X-- B1: block
X begin
X  process
X
X    constant V1: REAL1 := 1.0;
X    constant V2: REAL2 := 20.0;
X
X    type REAL3 is range 1.0 to V1;
X    type REAL4 is range V1 to 20.0;
X    type REAL5 is range V1 to V2;
X    type REAL6 is range REAL1'(1.0) to 1.0;
X    type REAL7 is range 1.0 to REAL1'(1.0);
X    type REAL8 is range REAL1'(1.0) to REAL2'(20.0);
X    type REAL9 is range REAL1'(V1) to REAL2'(V2);
X
X  begin
X    return;
X  end process;
X--  end block;
Xend BB;
X
*-*-END-of-s-03-1-4-0001a.vhdl-*-*
echo x - s-03-1-4-1001a.vhdl
sed 's/^X//' >s-03-1-4-1001a.vhdl <<'*-*-END-of-s-03-1-4-1001a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: S-03-1-4-1001A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check the type floating point type REAL is predefined.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xentity E  is
X    port (PT: BOOLEAN) ;
Xend E;
X
Xarchitecture BB of E is
X-- B1: block
X begin
X  process
X    variable REAL1: REAL;
X  begin
X    return;
X  end process;
X--  end block;
Xend BB;
*-*-END-of-s-03-1-4-1001a.vhdl-*-*
echo x - s-03-1-4-1002a.vhdl
sed 's/^X//' >s-03-1-4-1002a.vhdl <<'*-*-END-of-s-03-1-4-1002a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: S-03-1-4-1002A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X--	Check that REAL'LEFT < REAL'RIGHT for the 
X--	predefined type REAL;
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deeene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xpackage P1 is
Xprocedure p;
Xend P1;
X
Xpackage body P1 is
Xprocedure p is
X    variable Always_true : boolean range True to True;
Xbegin
X    case Always_true is
X      when ( REAL'LEFT < REAL'RIGHT ) => null;
X    end case;
Xend p;
Xend P1;
*-*-END-of-s-03-1-4-1002a.vhdl-*-*
echo x - s-03-2-1-0001a.vhdl
sed 's/^X//' >s-03-2-1-0001a.vhdl <<'*-*-END-of-s-03-2-1-0001a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: S-03-2-1-0001A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that the type specified in an index subtype definition and in the
X-- discrete ranges in index constraints can be any discrete type. 
X-- Check for integer, user defined enumeration, bit, boolean,
X-- character. Check for various odd range specifications, e.g. big negative
X-- numbers.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xpackage P is
X
X    type ENUM1 is (ZERO, ONE, TWO, THREE, FOUR, FIVE, SIX);
X    type A1 is array (INTEGER range <>) of BOOLEAN;
X    type A2 is array (BOOLEAN range <>) of BOOLEAN;
X    type A3 is array (BIT range <>) of BOOLEAN;
X    type A4 is array (CHARACTER range <>) of BOOLEAN;
X    type A5 is array (ENUM1 range <>) of BOOLEAN;
X    subtype A11 is A1 (INTEGER'LOW to 0);
X    subtype A12 is A1 (0 downto INTEGER'LOW);
X    subtype A21 is A2 (FALSE to FALSE);
X    subtype A22 is A2 (TRUE downto FALSE);
X    subtype A31 is A3 (BIT'('0') to BIT'('1'));
X    subtype A32 is A3 (BIT'('1') downto BIT'('0'));
X    subtype A41 is A4 (NUL to NUL);
X    subtype A42 is A4 (DEL downto NUL);
X    subtype A51 is A5 (ZERO to ZERO);
X    subtype A52 is A5 (SIX downto ZERO);
X
Xend P;
*-*-END-of-s-03-2-1-0001a.vhdl-*-*
echo x - s-03-2-1-0002a.vhdl
sed 's/^X//' >s-03-2-1-0002a.vhdl <<'*-*-END-of-s-03-2-1-0002a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: S-03-2-1-0002A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that in multidimensional arrays, the index types need not be the same.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xpackage P is
X
X    type ENUM1 is (ZERO, ONE, TWO, THREE, FOUR, FIVE, SIX);
X    type A1 is array (INTEGER range <>,
X                      BIT range <>,
X                      BOOLEAN range <>,
X                      CHARACTER range <>,
X                      ENUM1 range <>) of BOOLEAN;
X
X    type A2 is array (0 to 0,
X		      BIT'('0') to BIT'('0'),
X                      FALSE to FALSE,
X                      NUL to NUL,
X                      ZERO to ZERO) of BOOLEAN;
X
Xend P;
*-*-END-of-s-03-2-1-0002a.vhdl-*-*
echo x - s-03-2-1-0003a.vhdl
sed 's/^X//' >s-03-2-1-0003a.vhdl <<'*-*-END-of-s-03-2-1-0003a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: S-03-2-1-0003A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that an array element whose type is an array type may have 
X-- generic expressions as its bounds.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xpackage P is
X
X    type I1 is range 1 to 10;
X    type REAL1 is range 1.0 to 9.0;
X    type ENUM1 is (ZERO, ONE, TWO, THREE, FOUR, FIVE, SIX);
X    type PHYS1 is range 1 to 10
X      units
X          base1;
X      end units;
X    
Xend P;
X
X-- with package P; 
Xuse P.all;
X
Xentity E  is
X    generic (GEN1: I1; GEN2: REAL1; GEN3: ENUM1;
X             GEN4: BOOLEAN; GEN5: PHYS1) ;
X	         port (PT: BOOLEAN) ;
X
X
X    type A1 is array (FALSE to TRUE) of I1 range GEN1 to GEN1;
X    type A2 is array (FALSE to TRUE) of REAL1 range GEN2 to GEN2;
X    type A3 is array (FALSE to TRUE) of ENUM1 range GEN3 to GEN3;
X    type A4 is array (FALSE to TRUE) of BOOLEAN range GEN4 to GEN4;
X    type A5 is array (FALSE to TRUE) of PHYS1 range GEN5 to GEN5;
X  
Xend E;
*-*-END-of-s-03-2-1-0003a.vhdl-*-*
echo x - s-03-2-1-0004a.vhdl
sed 's/^X//' >s-03-2-1-0004a.vhdl <<'*-*-END-of-s-03-2-1-0004a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: S-03-2-1-0004A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that in constant array object declarations, the subtype indication may
X-- be an unconstrained array type.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xpackage some_types is
X    type A1 is array (INTEGER range <>) of BOOLEAN;
Xend some_types;
X
X-- with package some_types; 
Xuse some_types.all;
Xentity E  is
X	generic (ARR : A1) ;
X	    port (PT: BOOLEAN) ;
X 
Xend E;
X
Xarchitecture BB of E is
X-- B: block
X begin
X  process
X    constant V1: A1 := ARR;
X  begin
X    return;
X  end process;
X--  end block;
Xend BB;
*-*-END-of-s-03-2-1-0004a.vhdl-*-*
echo x - s-03-2-1-1001a.vhdl
sed 's/^X//' >s-03-2-1-1001a.vhdl <<'*-*-END-of-s-03-2-1-1001a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: S-03-2-1-1001A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that the type STRING is predefined in package STANDARD as
X-- "array(POSITIVE range <>) of CHARACTER".
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xentity E  is
X    port (PT: BOOLEAN) ;
Xend E;
X
Xarchitecture BB of E is
X-- B: block
X begin
X  process
X    subtype STR1 is STRING (1 to 1);
X    subtype STR2 is STRING (1 to 2);
X    variable V1: STR2;
X    variable V2: STRING (1 to INTEGER'HIGH);
X    variable V3: STRING (INTEGER'HIGH downto 1);
X  
X  begin
X    V1 := "AB";
X    V1 (1) := NUL;
X    V1 (2) := DEL;
X    return;
X  end process;
X--  end BLock;
Xend BB;
*-*-END-of-s-03-2-1-1001a.vhdl-*-*
echo x - s-03-2-1-1002a.vhdl
sed 's/^X//' >s-03-2-1-1002a.vhdl <<'*-*-END-of-s-03-2-1-1002a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: S-03-2-1-1002A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that type BIT_VECTOR is predefined in package STANDARD as
X-- "array( NATURAL range <>) of BIT".
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xentity E  is
X    port (PT: BOOLEAN) ;
Xend E;
X
Xarchitecture BB of E is
X-- B: block
X begin
X  process
X
X    subtype BV1 is BIT_VECTOR ( 0 to 0);
X    subtype BV2 is BIT_VECTOR ( 0 to 1);
X    variable V1: BV2;
X    variable V2: BIT_VECTOR ( 0 to INTEGER'HIGH);
X    variable V3: BIT_VECTOR (INTEGER'HIGH downto 0);
X
X  begin
X    V1 := B"10";
X    V1(0) := '0';
X    V1(1) := '1';
X    V2(0 to 3) := X"F";
X    V2(0 to 2) := O"7";
X  end process;
X--  end block;
Xend BB;
*-*-END-of-s-03-2-1-1002a.vhdl-*-*
echo x - s-03-2-2-0001a.vhdl
sed 's/^X//' >s-03-2-2-0001a.vhdl <<'*-*-END-of-s-03-2-2-0001a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: S-03-2-2-0001A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that an element declaration with several identifiers is equivalent to a
X-- sequence of single element declarations.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xentity E  is
X    port (PT: BOOLEAN) ;
Xend E;
X
Xarchitecture BB of E is
X-- B: block
X begin
X  process
X
X    type R1 is record
X                 RE1, RE2, RE3: BOOLEAN;
X                 RE4, RE5: INTEGER;
X                 RE6, RE7, RE8: REAL;
X               end record;
X
X    type R2 is record
X                 RE1: BOOLEAN;
X                 RE2: BOOLEAN;
X                 RE3: BOOLEAN;
X                 RE4: INTEGER;
X                 RE5: INTEGER;
X                 RE6: REAL;
X                 RE7: REAL;
X                 RE8: REAL;
X               end record;
X
X    variable V1: R1 ; 
X
X    variable V2: R2 ; 
X			
X  begin
X    if (
X            (V1.RE1 = V2.RE1)
X        and (V1.RE2 = V2.RE2)
X        and (V1.RE3 = V2.RE3)
X        and (V1.RE4 = V2.RE4)
X        and (V1.RE5 = V2.RE5)
X        and (V1.RE6 = V2.RE6)
X        and (V1.RE7 = V2.RE7)
X        and (V1.RE8 = V2.RE8)
X        ) then
X        return;
X    end if;
X  end process;
X--  end block;
Xend BB;
*-*-END-of-s-03-2-2-0001a.vhdl-*-*
echo x - s-03-2-2-0002a.vhdl
sed 's/^X//' >s-03-2-2-0002a.vhdl <<'*-*-END-of-s-03-2-2-0002a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: S-03-2-2-0002A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that two different record type declarations may have the same set of
X-- record element declarations.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xpackage P is
X
X    type R1 is record
X                 RE1: INTEGER;
X                 RE2: BOOLEAN;
X                 RE3: REAL;
X                 RE4: BIT;
X                 RE5: CHARACTER;
X               end record;
X
X    type R2 is record
X                 RE1: INTEGER;
X                 RE2: BOOLEAN;
X                 RE3: REAL;
X                 RE4: BIT;
X                 RE5: CHARACTER;
X               end record;
X
X    type R3 is record
X                 RE1: BOOLEAN;
X               end record;
X
X    type R4 is record
X                 RE1: BOOLEAN;
X               end record;
X
Xend P;
*-*-END-of-s-03-2-2-0002a.vhdl-*-*
echo x - s-03-2-2-0003a.vhdl
sed 's/^X//' >s-03-2-2-0003a.vhdl <<'*-*-END-of-s-03-2-2-0003a.vhdl-*-*'
X
X-------------------------------------------------------------------------------
X	--
X	--		Copyright Intermetrics 1986
X	--
X	-- 	This material may be reproduced by or for the 
X	--      U.S. Government pursuant to the copyright license 
X	-- 	under DAR clause 7-104.9(a) (1981 May)
X	--
X	--
X-------------------------------------------------------------------------------
X-- File: %P%
X-- Original file name: S-03-2-2-0003A.VHD
X-- Version: %W% - last modified %E%
X-- sccsid:  -- %G% %W% --
X-- Description:
X-- Check that an array element of a record type may have generic expressions for
X-- its bounds.
X-- 
X-- Modification History:
X-- ---------------------------------------------------------------------------
X-- Updated to 1076-1987 VHDL, checked w/Recognizer. (Deene)Ogden@mcc.com 20jun88
X-- ***************************************************************************
X-- Begin test: >>>
X
Xpackage P is
X
X    type I1 is range 1 to 10;
X    type A1 is array (I1 range <>) of BOOLEAN;
X
Xend P;
X
X-- with package P; 
Xuse P.all;
X
Xentity E  is
X    generic (GEN1, GEN2: I1) ;
X        port (PT: BOOLEAN) ;
X
X
X    type R1 is record
X                 RE1: A1 (2 to 9);
X                 RE2: A1 (GEN1 to GEN2);
X               end record;
X
Xend E;
*-*-END-of-s-03-2-2-0003a.vhdl-*-*
exit

--
Steve Grout @ MCC VLSI CAD Program, Austin TX.  [512] 343-0860 
ARPA: grout@mcc.arpa
UUCP: {ihnp4,seismo,harvard,gatech,pyramid}!ut-sally!im4u!milano!grout