public final void arrayInitList() throws RecognitionException
    {
        
        AST ast1 = null, ast2 = null;
        
        try {
            // CPP.g:141:3: ( '{' arrayInit arrayInitListEx '}' )
            // CPP.g:141:5: '{' arrayInit arrayInitListEx '}'
            {
                this.match(this.input, 28, FOLLOW_28_in_arrayInitList466);
                if (this.state.failed) {
                    return;
                }
                this.pushFollow(FOLLOW_arrayInit_in_arrayInitList473);
                this.arrayInit();
                
                this.state._fsp--;
                if (this.state.failed) {
                    return;
                }
                if (this.state.backtracking == 0) {
                    ast1 = this.out;
                    this.out = null;
                }
                this.pushFollow(FOLLOW_arrayInitListEx_in_arrayInitList481);
                this.arrayInitListEx();
                
                this.state._fsp--;
                if (this.state.failed) {
                    return;
                }
                if (this.state.backtracking == 0) {
                    ast2 = this.out;
                    this.out = null;
                }
                this.match(this.input, 29, FOLLOW_29_in_arrayInitList489);
                if (this.state.failed) {
                    return;
                }
                if (this.state.backtracking == 0) {
                    this.out = new ArrayInitializerListAST((ArrayInitializerAST) ast1, (ArrayInitializerListAST) ast2);
                }
                
            }
            
        }
        catch (RecognitionException re) {
            this.reportError(re);
            this.recover(this.input, re);
        } finally {
        }
        return;
    }