public final void initializer() throws RecognitionException
    {
        
        //AST ast1 = null;
        
        try {
            // CPP.g:130:3: ( '=' ( varInit | arrayInit | arrayInitList ) )
            // CPP.g:130:5: '=' ( varInit | arrayInit | arrayInitList )
            {
                this.match(this.input, 27, FOLLOW_27_in_initializer425);
                if (this.state.failed) {
                    return;
                }
                // CPP.g:131:3: ( varInit | arrayInit | arrayInitList )
                int alt8 = 3;
                int LA8_0 = this.input.LA(1);
                
                if ((((LA8_0 >= IDENTIFIER) && (LA8_0 <= FLOATING_POINT_LITERAL)) || (LA8_0 == 30) || (LA8_0 == 42)
                        || (LA8_0 == 44) || ((LA8_0 >= 80) && (LA8_0 <= 81)) || ((LA8_0 >= 84) && (LA8_0 <= 87)))) {
                    alt8 = 1;
                }
                else if ((LA8_0 == 28)) {
                    int LA8_2 = this.input.LA(2);
                    
                    if ((((LA8_2 >= IDENTIFIER) && (LA8_2 <= FLOATING_POINT_LITERAL))
                            || ((LA8_2 >= 29) && (LA8_2 <= 30)) || (LA8_2 == 42) || (LA8_2 == 44)
                            || ((LA8_2 >= 80) && (LA8_2 <= 81)) || ((LA8_2 >= 84) && (LA8_2 <= 87)))) {
                        alt8 = 2;
                    }
                    else if ((LA8_2 == 28)) {
                        alt8 = 3;
                    }
                    else {
                        if (this.state.backtracking > 0) {
                            this.state.failed = true;
                            return;
                        }
                        NoViableAltException nvae = new NoViableAltException("", 8, 2, this.input);
                        
                        throw nvae;
                    }
                }
                else {
                    if (this.state.backtracking > 0) {
                        this.state.failed = true;
                        return;
                    }
                    NoViableAltException nvae = new NoViableAltException("", 8, 0, this.input);
                    
                    throw nvae;
                }
                switch (alt8)
                {
                    case 1:
                        // CPP.g:131:5: varInit
                    {
                        this.pushFollow(FOLLOW_varInit_in_initializer431);
                        this.varInit();
                        
                        this.state._fsp--;
                        if (this.state.failed) {
                            return;
                        }
                        
                    }
                        break;
                    case 2:
                        // CPP.g:132:5: arrayInit
                    {
                        this.pushFollow(FOLLOW_arrayInit_in_initializer437);
                        this.arrayInit();
                        
                        this.state._fsp--;
                        if (this.state.failed) {
                            return;
                        }
                        
                    }
                        break;
                    case 3:
                        // CPP.g:133:5: arrayInitList
                    {
                        this.pushFollow(FOLLOW_arrayInitList_in_initializer443);
                        this.arrayInitList();
                        
                        this.state._fsp--;
                        if (this.state.failed) {
                            return;
                        }
                        
                    }
                        break;
                    
                }
                
            }
            
        }
        catch (RecognitionException re) {
            this.reportError(re);
            this.recover(this.input, re);
        } finally {
        }
        return;
    }