private static ArrayNode parseArrayNode(IdlModelLoader loader, SourceLocation location) {
        loader.increaseNestingLevel();
        ArrayNode.Builder builder = ArrayNode.builder().sourceLocation(location);

        IdlInternalTokenizer tokenizer = loader.getTokenizer();
        tokenizer.expect(IdlToken.LBRACKET);
        tokenizer.next();
        tokenizer.skipWsAndDocs();

        do {
            if (tokenizer.getCurrentToken() == IdlToken.RBRACKET) {
                break;
            } else {
                builder.withValue(expectAndSkipNode(loader));
                tokenizer.skipWsAndDocs();
            }
        } while (true);

        tokenizer.expect(IdlToken.RBRACKET);
        tokenizer.next();
        loader.decreaseNestingLevel();
        return builder.build();
    }
Parse a Node identifier String, taking into account keywords and forward references.

@param loader     IDL parser.
@param identifier Identifier to parse.
@param location   Source location to assign to the identifier.
@return Returns the parsed identifier.
smithy-model/src/main/java/software/amazon/smithy/model/loader/IdlNodeParser.java