===
Simple type expression #1
===

[string]

---

(program
  (statement_list
    (pipeline
      (pipeline_chain
        (logical_expression
          (bitwise_expression
            (comparison_expression
              (additive_expression
                (multiplicative_expression
                  (format_expression
                    (range_expression
                      (array_literal_expression
                        (unary_expression
                          (type_literal
                            (type_spec
                              (type_name
                                (type_identifier)))))))))))))))))

===
Simple type expression #2
===

[System.Collections.ArrayList]

---

(program
  (statement_list
    (pipeline
      (pipeline_chain
        (logical_expression
          (bitwise_expression
            (comparison_expression
              (additive_expression
                (multiplicative_expression
                  (format_expression
                    (range_expression
                      (array_literal_expression
                        (unary_expression
                          (type_literal
                            (type_spec
                              (type_name
                                (type_name
                                  (type_name
                                    (type_identifier))
                                  (type_identifier))
                                (type_identifier)))))))))))))))))

===
Array type expression #1
===

[int[]]

---

(program
  (statement_list
    (pipeline
      (pipeline_chain
        (logical_expression
          (bitwise_expression
            (comparison_expression
              (additive_expression
                (multiplicative_expression
                  (format_expression
                    (range_expression
                      (array_literal_expression
                        (unary_expression
                          (type_literal
                            (type_spec
                              (array_type_name
                                (type_name
                                  (type_identifier))))))))))))))))))

===
Array type expression #1
===

[System.DateTime[]]

---

(program
  (statement_list
    (pipeline
      (pipeline_chain
        (logical_expression
          (bitwise_expression
            (comparison_expression
              (additive_expression
                (multiplicative_expression
                  (format_expression
                    (range_expression
                      (array_literal_expression
                        (unary_expression
                          (type_literal
                            (type_spec
                              (array_type_name
                                (type_name
                                  (type_name
                                    (type_identifier))
                                  (type_identifier))))))))))))))))))

===
Generic type expression #1
===

[MyType[psobject]]

---

(program
  (statement_list
    (pipeline
      (pipeline_chain
        (logical_expression
          (bitwise_expression
            (comparison_expression
              (additive_expression
                (multiplicative_expression
                  (format_expression
                    (range_expression
                      (array_literal_expression
                        (unary_expression
                          (type_literal
                            (type_spec
                              (generic_type_name
                                (type_name
                                  (type_identifier)))
                              (generic_type_arguments
                                (type_spec
                                  (type_name
                                    (type_identifier)))))))))))))))))))

===
Generic type expression #2
===

[System.Collections.Generic.Dictionary[string, System.IO.FileInfo]]

---

(program
  (statement_list
    (pipeline
      (pipeline_chain
        (logical_expression
          (bitwise_expression
            (comparison_expression
              (additive_expression
                (multiplicative_expression
                  (format_expression
                    (range_expression
                      (array_literal_expression
                        (unary_expression
                          (type_literal
                            (type_spec
                              (generic_type_name
                                (type_name
                                  (type_name
                                    (type_name
                                      (type_name
                                        (type_identifier))
                                      (type_identifier))
                                    (type_identifier))
                                  (type_identifier)))
                              (generic_type_arguments
                                (type_spec
                                  (type_name
                                    (type_identifier)))
                                (type_spec
                                  (type_name
                                    (type_name
                                      (type_name
                                        (type_identifier))
                                      (type_identifier))
                                    (type_identifier)))))))))))))))))))

===
Complex type expression
===

[System.Collections.Generic.Dictionary[int[], System.Collections.Generic.List[string[]]]]

---

(program
  (statement_list
    (pipeline
      (pipeline_chain
        (logical_expression
          (bitwise_expression
            (comparison_expression
              (additive_expression
                (multiplicative_expression
                  (format_expression
                    (range_expression
                      (array_literal_expression
                        (unary_expression
                          (type_literal
                            (type_spec
                              (generic_type_name
                                (type_name
                                  (type_name
                                    (type_name
                                      (type_name
                                        (type_identifier))
                                      (type_identifier))
                                    (type_identifier))
                                  (type_identifier)))
                              (generic_type_arguments
                                (type_spec
                                  (array_type_name
                                    (type_name
                                      (type_identifier))))
                                (type_spec
                                  (generic_type_name
                                    (type_name
                                      (type_name
                                        (type_name
                                          (type_name
                                            (type_identifier))
                                          (type_identifier))
                                        (type_identifier))
                                      (type_identifier)))
                                  (generic_type_arguments
                                    (type_spec
                                      (array_type_name
                                        (type_name
                                          (type_identifier))))))))))))))))))))))

===
Type-attributed variable
===

[string]$str

---

(program
  (statement_list
    (pipeline
      (pipeline_chain
        (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)))))))))))))))))
