DSL EXPRESSION:
$z = {"a":1, "b":2, "c":3}["b"]


AST:
"block" [tt:block] [nt:StatementBlock]
    "=" [tt:equals] [nt:Assignment]
        "$z" [tt:field_name] [nt:DirectFieldValue]
        "[]" [tt:[]] [nt:ArrayOrMapIndexAccess]
            "{}" [tt:{}] [nt:MapLiteral]
                ":" [tt:colon] [nt:MapLiteralKeyValuePair]
                    ""a"" [tt:string_literal] [nt:string_literal]
                    "1" [tt:int_literal] [nt:int_literal]
                ":" [tt:colon] [nt:MapLiteralKeyValuePair]
                    ""b"" [tt:string_literal] [nt:string_literal]
                    "2" [tt:int_literal] [nt:int_literal]
                ":" [tt:colon] [nt:MapLiteralKeyValuePair]
                    ""c"" [tt:string_literal] [nt:string_literal]
                    "3" [tt:int_literal] [nt:int_literal]
            ""b"" [tt:string_literal] [nt:string_literal]

