================================================================================
Ambiguous name I
================================================================================
assert arr (st);
--------------------------------------------------------------------------------

(design_file
  (assertion_statement
    (conditional_expression
      (ambiguous_name
        prefix: (simple_name)
        (expression_list
          (expression
            (simple_name)))))))

================================================================================
Descending range
================================================================================
assert arr (h downto l);
--------------------------------------------------------------------------------

(design_file
  (assertion_statement
    (conditional_expression
      (slice_name
        prefix: (simple_name)
        (descending_range
          high: (simple_expression
            (simple_name))
          low: (simple_expression
            (simple_name)))))))

================================================================================
Ascending range
================================================================================
assert arr (h to l);
--------------------------------------------------------------------------------

(design_file
  (assertion_statement
    (conditional_expression
      (slice_name
        prefix: (simple_name)
        (ascending_range
          low: (simple_expression
            (simple_name))
          high: (simple_expression
            (simple_name)))))))

================================================================================
Attribute range
================================================================================
assert arr (st'range);
assert arr (st'reverse_range);
--------------------------------------------------------------------------------

(design_file
  (assertion_statement
    (conditional_expression
      (slice_name
        prefix: (simple_name)
        (attribute_name
          prefix: (simple_name)
          designator: (predefined_designator)))))
  (assertion_statement
    (conditional_expression
      (slice_name
        prefix: (simple_name)
        (attribute_name
          prefix: (simple_name)
          designator: (predefined_designator))))))

================================================================================
Prefix
================================================================================
assert amb (amb)(h downto l);
--------------------------------------------------------------------------------

(design_file
  (assertion_statement
    (conditional_expression
      (slice_name
        prefix: (ambiguous_name
          prefix: (simple_name)
          (expression_list
            (expression
              (simple_name))))
        (descending_range
          high: (simple_expression
            (simple_name))
          low: (simple_expression
            (simple_name)))))))

================================================================================
Prefix - Selected name
================================================================================
assert MAC_CONFIG(i).TypeSwitch(0 to SWITCH_COUNT - 1);
--------------------------------------------------------------------------------

(design_file
  (assertion_statement
    (conditional_expression
      (slice_name
        prefix: (selected_name
          prefix: (ambiguous_name
            prefix: (simple_name)
            (expression_list
              (expression
                (simple_name))))
          suffix: (simple_name))
        (ascending_range
          low: (simple_expression
            (integer_decimal))
          high: (simple_expression
            (simple_expression
              (simple_name)
              (integer_decimal))))))))
