- DocumentID: create-array
  Title: >-
    Create array (`%[]`) constructor
  CategoryID: parser
  Summary: >-
    Quickly generate arrays
  Description: |-
    `%[]` is a way of defining arrays in expressions and statements. Whenever a
    `%[]` array is outputted as a string, it will be converted to minified JSON.

    Array elements inside `%[]` can be whitespace and/or comma delimited. This
    allows for compatibility with both Bash muscle memory, and people more
    familiar with JSON.

    Additionally you can also embed `a` style parameters inside `%[]` arrays too.
  Examples: |-
    ### Arrays passed as a JSON string:

    ```
    » echo %[1..3]
    [1,2,3]

    » %[1..3] -> cat
    [1,2,3]
    ```

    ### Different supported syntax for creating a numeric array:

    #### As a range

    ```
    » %[1..3]
    [
        1,
        2,
        3
    ]
    ```

    #### JSON formatted

    ```
    » %[1,2,3]
    [
        1,
        2,
        3
    ]
    ```

    #### Whitespace separated

    ```
    » %[1 2 3]
    [
        1,
        2,
        3
    ]
    ```

    #### Values and ranges

    ```
    » %[1,2..3]
    [
        1,
        2,
        3
    ]
    ```

    ### Strings:

    #### barewords and whitespace separated

    This will allow you to copy/paste lists from traditional shells like Bash

    ```
    » %[foo bar]
    [
        "foo",
        "bar"
    ]
    ```

    #### JSON formatted

    ```
    » %["foo", "bar"]
    [
        "foo",
        "bar"
    ]
    ```

    ### Special ranges

    ```
    » %[June..August]
    [
        "June",
        "July",
        "August"
    ]
    ```

    A full list of special ranges are available at [docs/mkarray/special](../mkarray/special.md)

    ### Multiple expansion blocks:

    ```
    » %[[A,B]:[1..4]]
    [
        "A:1",
        "A:2",
        "A:3",
        "A:4",
        "B:1",
        "B:2",
        "B:3",
        "B:4"
    ]
    ```

    ### Nested arrays:

    ```
    » %[foo [bar]]
    [
        "foo",
        [
            "bar"
        ]
    ]
    ```

    The `%` prefix for the nested array is optional.

    ### JSON objects within arrays

    ```
    » %[foo {bar: baz}]
    [
        "foo",
        {
            "bar": "baz"
        }
    ]
    ```

    The `%` prefix for the nested object is optional.
  Detail: |-
    Murex supports a number of different formats that can be used to generate
    arrays. For more details on these please refer to the documents for each format

    {{ include "gen/includes/autogenerated.mkarray.inc.md" }}
  Related:
  - create-object
  - single-quote
  - double-quote
  - brace-quote
  - commands/expr
  - mkarray/special
  - commands/a
  - commands/ja
  - commands/ta
