===
Variable : Direct assignment
===

$MyVariable = 1, 2, 3

$Path = "C:\Windows\System32"

---

(program
  (statement_list
    (pipeline
      (assignment_expression
        (left_assignment_expression
          (logical_expression
            (bitwise_expression
              (comparison_expression
                (additive_expression
                  (multiplicative_expression
                    (format_expression
                      (range_expression
                        (array_literal_expression
                          (unary_expression
                            (variable)))))))))))
        (assignement_operator)
        (pipeline
          (logical_expression
            (bitwise_expression
              (comparison_expression
                (additive_expression
                  (multiplicative_expression
                    (format_expression
                      (range_expression
                        (array_literal_expression
                          (array_literal_expression
                            (array_literal_expression
                              (unary_expression
                                (integer_literal
                                  (decimal_integer_literal))))
                            (unary_expression
                              (integer_literal
                                (decimal_integer_literal))))
                          (unary_expression
                            (integer_literal
                              (decimal_integer_literal))))))))))))))
    (pipeline
      (assignment_expression
        (left_assignment_expression
          (logical_expression
            (bitwise_expression
              (comparison_expression
                (additive_expression
                  (multiplicative_expression
                    (format_expression
                      (range_expression
                        (array_literal_expression
                          (unary_expression
                            (variable)))))))))))
        (assignement_operator)
        (pipeline
          (logical_expression
            (bitwise_expression
              (comparison_expression
                (additive_expression
                  (multiplicative_expression
                    (format_expression
                      (range_expression
                        (array_literal_expression
                          (unary_expression
                            (string_literal
                              (expandable_string_literal))))))))))))))))

===
Variable : Command results
===

$Processes = Get-Process

$Today = (Get-Date).DateTime

---

(program
  (statement_list
    (pipeline
      (assignment_expression
        (left_assignment_expression
          (logical_expression
            (bitwise_expression
              (comparison_expression
                (additive_expression
                  (multiplicative_expression
                    (format_expression
                      (range_expression
                        (array_literal_expression
                          (unary_expression
                            (variable)))))))))))
        (assignement_operator)
        (pipeline
          (command
            (command_name)))))
    (pipeline
      (assignment_expression
        (left_assignment_expression
          (logical_expression
            (bitwise_expression
              (comparison_expression
                (additive_expression
                  (multiplicative_expression
                    (format_expression
                      (range_expression
                        (array_literal_expression
                          (unary_expression
                            (variable)))))))))))
        (assignement_operator)
        (pipeline
          (logical_expression
            (bitwise_expression
              (comparison_expression
                (additive_expression
                  (multiplicative_expression
                    (format_expression
                      (range_expression
                        (array_literal_expression
                          (unary_expression
                            (member_access
                              (parenthesized_expression
                                (pipeline
                                  (command
                                    (command_name))))
                              (member_name
                                (simple_name)))))))))))))))))

===
Variable : Multi assignment
===

$a = $b = $c = 0

---

(program
  (statement_list
    (pipeline
      (assignment_expression
        (left_assignment_expression
          (logical_expression
            (bitwise_expression
              (comparison_expression
                (additive_expression
                  (multiplicative_expression
                    (format_expression
                      (range_expression
                        (array_literal_expression
                          (unary_expression
                            (variable)))))))))))
        (assignement_operator)
        (pipeline
          (assignment_expression
            (left_assignment_expression
              (logical_expression
                (bitwise_expression
                  (comparison_expression
                    (additive_expression
                      (multiplicative_expression
                        (format_expression
                          (range_expression
                            (array_literal_expression
                              (unary_expression
                                (variable)))))))))))
            (assignement_operator)
            (pipeline
              (assignment_expression
                (left_assignment_expression
                  (logical_expression
                    (bitwise_expression
                      (comparison_expression
                        (additive_expression
                          (multiplicative_expression
                            (format_expression
                              (range_expression
                                (array_literal_expression
                                  (unary_expression
                                    (variable)))))))))))
                (assignement_operator)
                (pipeline
                  (logical_expression
                    (bitwise_expression
                      (comparison_expression
                        (additive_expression
                          (multiplicative_expression
                            (format_expression
                              (range_expression
                                (array_literal_expression
                                  (unary_expression
                                    (integer_literal
                                      (decimal_integer_literal))))))))))))))))))))

===
Variable : Multi variables, Multi assignment
===

$i,$j,$k = 10, "red", $true
$i,$j = 10, "red", $true

---

(program
  (statement_list
    (pipeline
      (assignment_expression
        (left_assignment_expression
          (logical_expression
            (bitwise_expression
              (comparison_expression
                (additive_expression
                  (multiplicative_expression
                    (format_expression
                      (range_expression
                        (array_literal_expression
                          (array_literal_expression
                            (array_literal_expression
                              (unary_expression
                                (variable)))
                            (unary_expression
                              (variable)))
                          (unary_expression
                            (variable)))))))))))
        (assignement_operator)
        (pipeline
          (logical_expression
            (bitwise_expression
              (comparison_expression
                (additive_expression
                  (multiplicative_expression
                    (format_expression
                      (range_expression
                        (array_literal_expression
                          (array_literal_expression
                            (array_literal_expression
                              (unary_expression
                                (integer_literal
                                  (decimal_integer_literal))))
                            (unary_expression
                              (string_literal
                                (expandable_string_literal))))
                          (unary_expression
                            (variable)))))))))))))
    (pipeline
      (assignment_expression
        (left_assignment_expression
          (logical_expression
            (bitwise_expression
              (comparison_expression
                (additive_expression
                  (multiplicative_expression
                    (format_expression
                      (range_expression
                        (array_literal_expression
                          (array_literal_expression
                            (unary_expression
                              (variable)))
                          (unary_expression
                            (variable)))))))))))
        (assignement_operator)
        (pipeline
          (logical_expression
            (bitwise_expression
              (comparison_expression
                (additive_expression
                  (multiplicative_expression
                    (format_expression
                      (range_expression
                        (array_literal_expression
                          (array_literal_expression
                            (array_literal_expression
                              (unary_expression
                                (integer_literal
                                  (decimal_integer_literal))))
                            (unary_expression
                              (string_literal
                                (expandable_string_literal))))
                          (unary_expression
                            (variable)))))))))))))))

===
Variable : Typed variables
===

[string]$words = "Hello"
$words = 2
$words += 10

---

(program
  (statement_list
    (pipeline
      (assignment_expression
        (left_assignment_expression
          (logical_expression
            (bitwise_expression
              (comparison_expression
                (additive_expression
                  (multiplicative_expression
                    (format_expression
                      (range_expression
                        (array_literal_expression
                          (unary_expression
                            (expression_with_unary_operator
                              (cast_expression
                                (type_literal
                                  (type_spec
                                    (type_name
                                      (type_identifier))))
                                (unary_expression
                                  (variable))))))))))))))
        (assignement_operator)
        (pipeline
          (logical_expression
            (bitwise_expression
              (comparison_expression
                (additive_expression
                  (multiplicative_expression
                    (format_expression
                      (range_expression
                        (array_literal_expression
                          (unary_expression
                            (string_literal
                              (expandable_string_literal))))))))))))))
    (pipeline
      (assignment_expression
        (left_assignment_expression
          (logical_expression
            (bitwise_expression
              (comparison_expression
                (additive_expression
                  (multiplicative_expression
                    (format_expression
                      (range_expression
                        (array_literal_expression
                          (unary_expression
                            (variable)))))))))))
        (assignement_operator)
        (pipeline
          (logical_expression
            (bitwise_expression
              (comparison_expression
                (additive_expression
                  (multiplicative_expression
                    (format_expression
                      (range_expression
                        (array_literal_expression
                          (unary_expression
                            (integer_literal
                              (decimal_integer_literal))))))))))))))
    (pipeline
      (assignment_expression
        (left_assignment_expression
          (logical_expression
            (bitwise_expression
              (comparison_expression
                (additive_expression
                  (multiplicative_expression
                    (format_expression
                      (range_expression
                        (array_literal_expression
                          (unary_expression
                            (variable)))))))))))
        (assignement_operator)
        (pipeline
          (logical_expression
            (bitwise_expression
              (comparison_expression
                (additive_expression
                  (multiplicative_expression
                    (format_expression
                      (range_expression
                        (array_literal_expression
                          (unary_expression
                            (integer_literal
                              (decimal_integer_literal))))))))))))))))

===
Variable : Simple variable
===

$aSimpleVariable001

$91

$__Z

$env:PROGRAM_LOCATION

---

(program
  (statement_list
    (pipeline
      (logical_expression
        (bitwise_expression
          (comparison_expression
            (additive_expression
              (multiplicative_expression
                (format_expression
                  (range_expression
                    (array_literal_expression
                      (unary_expression
                        (variable)))))))))))
    (pipeline
      (logical_expression
        (bitwise_expression
          (comparison_expression
            (additive_expression
              (multiplicative_expression
                (format_expression
                  (range_expression
                    (array_literal_expression
                      (unary_expression
                        (variable)))))))))))
    (pipeline
      (logical_expression
        (bitwise_expression
          (comparison_expression
            (additive_expression
              (multiplicative_expression
                (format_expression
                  (range_expression
                    (array_literal_expression
                      (unary_expression
                        (variable)))))))))))
    (pipeline
      (logical_expression
        (bitwise_expression
          (comparison_expression
            (additive_expression
              (multiplicative_expression
                (format_expression
                  (range_expression
                    (array_literal_expression
                      (unary_expression
                        (variable)))))))))))))

===
Variable : Special variables
===

$$

$^

$?

---

(program
  (statement_list
    (pipeline
      (logical_expression
        (bitwise_expression
          (comparison_expression
            (additive_expression
              (multiplicative_expression
                (format_expression
                  (range_expression
                    (array_literal_expression
                      (unary_expression
                        (variable)))))))))))
    (pipeline
      (logical_expression
        (bitwise_expression
          (comparison_expression
            (additive_expression
              (multiplicative_expression
                (format_expression
                  (range_expression
                    (array_literal_expression
                      (unary_expression
                        (variable)))))))))))
    (pipeline
      (logical_expression
        (bitwise_expression
          (comparison_expression
            (additive_expression
              (multiplicative_expression
                (format_expression
                  (range_expression
                    (array_literal_expression
                      (unary_expression
                        (variable)))))))))))))

===
Variable : Brace variable
===

${Simple}

${More-interestin'}

${
    Really &&
    quite ^
    unusual???
}

---

(program
  (statement_list
    (pipeline
      (logical_expression
        (bitwise_expression
          (comparison_expression
            (additive_expression
              (multiplicative_expression
                (format_expression
                  (range_expression
                    (array_literal_expression
                      (unary_expression
                        (variable
                          (braced_variable))))))))))))
    (pipeline
      (logical_expression
        (bitwise_expression
          (comparison_expression
            (additive_expression
              (multiplicative_expression
                (format_expression
                  (range_expression
                    (array_literal_expression
                      (unary_expression
                        (variable
                          (braced_variable))))))))))))
    (pipeline
      (logical_expression
        (bitwise_expression
          (comparison_expression
            (additive_expression
              (multiplicative_expression
                (format_expression
                  (range_expression
                    (array_literal_expression
                      (unary_expression
                        (variable
                          (braced_variable))))))))))))))
