===
Expression: Value: Function Call: Empty
===

a := function_call_no_param()

a := function_call_no_param ()

a := function_call_no_param ( )

---

(file
  (assignment
    (identifier)
    (expression
      (value
        (function_call
          (identifier)))))
  (assignment
    (identifier)
    (expression
      (value
        (function_call
          (identifier)))))
  (assignment
    (identifier)
    (expression
      (value
        (function_call
          (identifier))))))

===
Expression: Value: Function Call: One param
===


a := function_call(identifier)

a := function_call(`backtick`)

a := function_call(```indented backtick```)

a := function_call('raw string')

a := function_call('''indented raw string''')

a := function_call("normal string")

a := function_call("""indented normal string""")

a := function_call(arch())

a := function_call(shell(`python3 --help`))

---

(file
  (assignment
    (identifier)
    (expression
      (value
        (function_call
          (identifier)
          (function_parameters
            (expression
              (value
                (identifier))))))))
  (assignment
    (identifier)
    (expression
      (value
        (function_call
          (identifier)
          (function_parameters
            (expression
              (value
                (external_command
                  (content)))))))))
  (assignment
    (identifier)
    (expression
      (value
        (function_call
          (identifier)
          (function_parameters
            (expression
              (value
                (external_command
                  (content)))))))))
  (assignment
    (identifier)
    (expression
      (value
        (function_call
          (identifier)
          (function_parameters
            (expression
              (value
                (string))))))))
  (assignment
    (identifier)
    (expression
      (value
        (function_call
          (identifier)
          (function_parameters
            (expression
              (value
                (string))))))))
  (assignment
    (identifier)
    (expression
      (value
        (function_call
          (identifier)
          (function_parameters
            (expression
              (value
                (string))))))))
  (assignment
    (identifier)
    (expression
      (value
        (function_call
          (identifier)
          (function_parameters
            (expression
              (value
                (string))))))))
  (assignment
    (identifier)
    (expression
      (value
        (function_call
          (identifier)
          (function_parameters
            (expression
              (value
                (function_call
                  (identifier)))))))))
  (assignment
    (identifier)
    (expression
      (value
        (function_call
          (identifier)
          (function_parameters
            (expression
              (value
                (function_call
                  (identifier)
                  (function_parameters
                    (expression
                      (value
                        (external_command
                          (content))))))))))))))

===
Expression: Value: Function Call: One param, trailing comma
===

a := function_call(`python3 --help`,)

---

(file
  (assignment
    (identifier)
    (expression
      (value
        (function_call
          (identifier)
          (function_parameters
            (expression
              (value
                (external_command
                  (content))))))))))

===
Expression: Value: Function Call: Multiple params
===

a := function_call(`python3 --help`, (other_function_call_in_parentheses()))

---

(file
  (assignment
    (identifier)
    (expression
      (value
        (function_call
          (identifier)
          (function_parameters
            (expression
              (value
                (external_command
                  (content))))
            (expression
              (value
                (expression
                  (value
                    (function_call
                      (identifier))))))))))))

===
Expression: Value: Function Call: Multiple params, trailing comma
===

a := function_call(
  `python3 --help`,
  "abc",
)

---

(file
  (assignment
    (identifier)
    (expression
      (value
        (function_call
          (identifier)
          (function_parameters
            (expression
              (value
                (external_command
                  (content))))
            (expression
              (value
                (string)))))))))
