================================================================================
Simple waveform assignment - Minimal
================================================================================
t <= w;
L: t <= w;
--------------------------------------------------------------------------------

(design_file
  (simple_concurrent_signal_assignment
    target: (simple_name)
    (waveforms
      (waveform_element
        (expression
          (simple_name)))))
  (simple_concurrent_signal_assignment
    (label
      (identifier))
    target: (simple_name)
    (waveforms
      (waveform_element
        (expression
          (simple_name))))))

================================================================================
Simple waveform assignment - Delay mechanism
================================================================================
t <= transport w;
t <= inertial w;
t <= reject 10 ns inertial w;
--------------------------------------------------------------------------------

(design_file
  (simple_concurrent_signal_assignment
    target: (simple_name)
    (delay_mechanism
      (transport))
    (waveforms
      (waveform_element
        (expression
          (simple_name)))))
  (simple_concurrent_signal_assignment
    target: (simple_name)
    (delay_mechanism
      (inertial))
    (waveforms
      (waveform_element
        (expression
          (simple_name)))))
  (simple_concurrent_signal_assignment
    target: (simple_name)
    (delay_mechanism
      (inertial
        reject: (time_expression
          (physical_literal
            (integer_decimal)
            unit: (simple_name)))))
    (waveforms
      (waveform_element
        (expression
          (simple_name))))))

================================================================================
Waveform element
================================================================================
t <= val;
t <= val after 42 ns;
t <= null after 42 ns;
--------------------------------------------------------------------------------

(design_file
  (simple_concurrent_signal_assignment
    target: (simple_name)
    (waveforms
      (waveform_element
        (expression
          (simple_name)))))
  (simple_concurrent_signal_assignment
    target: (simple_name)
    (waveforms
      (waveform_element
        (expression
          (simple_name))
        (time_expression
          (physical_literal
            (integer_decimal)
            unit: (simple_name))))))
  (simple_concurrent_signal_assignment
    target: (simple_name)
    (waveforms
      (waveform_element
        (expression
          (null))
        (time_expression
          (physical_literal
            (integer_decimal)
            unit: (simple_name)))))))

================================================================================
Waveforms
================================================================================
t <= unaffected;
t <= val1 after 10 ns,
     val2 after 20 ns,
     null;
--------------------------------------------------------------------------------

(design_file
  (simple_concurrent_signal_assignment
    target: (simple_name)
    (waveforms
      (unaffected)))
  (simple_concurrent_signal_assignment
    target: (simple_name)
    (waveforms
      (waveform_element
        (expression
          (simple_name))
        (time_expression
          (physical_literal
            (integer_decimal)
            unit: (simple_name))))
      (waveform_element
        (expression
          (simple_name))
        (time_expression
          (physical_literal
            (integer_decimal)
            unit: (simple_name))))
      (waveform_element
        (expression
          (null))))))

================================================================================
Simple force assignment
================================================================================
t <= force     expr;
t <= force in  expr;
t <= force out expr;
--------------------------------------------------------------------------------

(design_file
  (simple_force_assignment
    target: (simple_name)
    (expression
      (simple_name)))
  (simple_force_assignment
    target: (simple_name)
    (force_mode)
    (expression
      (simple_name)))
  (simple_force_assignment
    target: (simple_name)
    (force_mode)
    (expression
      (simple_name))))

================================================================================
Simple release assignment
================================================================================
t <= release;
t <= release in;
t <= release out;
--------------------------------------------------------------------------------

(design_file
  (simple_release_assignment
    target: (simple_name))
  (simple_release_assignment
    target: (simple_name)
    (force_mode))
  (simple_release_assignment
    target: (simple_name)
    (force_mode)))

================================================================================
Guarded assignment
================================================================================
t <= guarded w;
--------------------------------------------------------------------------------

(design_file
  (simple_concurrent_signal_assignment
    target: (simple_name)
    (waveforms
      (waveform_element
        (expression
          (simple_name))))))
