================================================================================
Ternary expression
================================================================================

x = (a gt b) ? a : b

--------------------------------------------------------------------------------

(source_file
  (assignment
    left: (identifier)
    right: (ternary_expression
      (parenthesized_expression
        (binary_expression
          left: (identifier)
          right: (identifier)))
      (identifier)
      (identifier))))

================================================================================
Matrix multiply
================================================================================

result = a # b

--------------------------------------------------------------------------------

(source_file
  (assignment
    left: (identifier)
    right: (binary_expression
      left: (identifier)
      right: (identifier))))

================================================================================
Matrix multiply transpose
================================================================================

result = a ## b

--------------------------------------------------------------------------------

(source_file
  (assignment
    left: (identifier)
    right: (binary_expression
      left: (identifier)
      right: (identifier))))

================================================================================
MDS open and close
================================================================================

mds$open, 'experiment', shot_num
mds$close

--------------------------------------------------------------------------------

(source_file
  (procedure_call
    (identifier)
    (argument_list
      (string_literal)
      (identifier)))
  (procedure_call
    (identifier)))

================================================================================
MDS value with path
================================================================================

signal = mds$value('\diagnostics::channel_01')

--------------------------------------------------------------------------------

(source_file
  (assignment
    left: (identifier)
    right: (call_expression
      (identifier)
      (argument_list
        (string_literal)))))

================================================================================
MDS put
================================================================================

mds$put, '\controls::gains', '$', gain_array

--------------------------------------------------------------------------------

(source_file
  (procedure_call
    (identifier)
    (argument_list
      (string_literal)
      (string_literal)
      (identifier))))

================================================================================
MDS value with string concatenation
================================================================================

result = mds$value('data[_n-1,' + string(idx) + ']')

--------------------------------------------------------------------------------

(source_file
  (assignment
    left: (identifier)
    right: (call_expression
      (identifier)
      (argument_list
        (binary_expression
          left: (binary_expression
            left: (string_literal)
            right: (call_expression
              (identifier)
              (argument_list
                (identifier))))
          right: (string_literal))))))
