================================================================================
binary operator
================================================================================

f(1 + 1) -> ok;
f([] ++ []) -> ok.

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

(source_file
  (fun_decl
    (function_clause
      (atom)
      (expr_args
        (binary_op_expr
          (integer)
          (integer)))
      (clause_body
        (atom)))
    (function_clause
      (atom)
      (expr_args
        (binary_op_expr
          (list)
          (list)))
      (clause_body
        (atom)))))

================================================================================
unary operator
================================================================================

f(+1) -> ok.

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

(source_file
  (fun_decl
    (function_clause
      (atom)
      (expr_args
        (unary_op_expr
          (integer)))
      (clause_body
        (atom)))))

================================================================================
match
================================================================================

f(A = B) -> ok.

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

(source_file
  (fun_decl
    (function_clause
      (atom)
      (expr_args
        (match_expr
          (var)
          (var)))
      (clause_body
        (atom)))))

================================================================================
record index
================================================================================

f(#record.field) -> ok.

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

(source_file
  (fun_decl
    (function_clause
      (atom)
      (expr_args
        (record_index_expr
          (record_name
            (atom))
          (record_field_name
            (atom))))
      (clause_body
        (atom)))))

================================================================================
record pat
================================================================================

f(#record{a = 1}) -> ok.

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

(source_file
  (fun_decl
    (function_clause
      (atom)
      (expr_args
        (record_expr
          (record_name
            (atom))
          (record_field
            (atom)
            (field_expr
              (integer)))))
      (clause_body
        (atom)))))
