public final void stmt() throws RecognitionException
    {
        try {
            // CPP.g:307:3: ( blockStmt | exprStmt | ifStmt | forStmt | whileStmt | doStmt |
            // breakStmt | continueStmt | returnStmt | switchStmt | caseStmt | defaultStmt |
            // declarationStmt )
            int alt19 = 13;
            switch (this.input.LA(1))
            {
                case 28:
                {
                    alt19 = 1;
                }
                    break;
                case IDENTIFIER:
                case CHARACTER_LITERAL:
                case STRING_LITERAL:
                case HEX_LITERAL:
                case DECIMAL_LITERAL:
                case OCTAL_LITERAL:
                case FLOATING_POINT_LITERAL:
                case 30:
                case 42:
                case 44:
                case 80:
                case 81:
                case 84:
                case 85:
                case 86:
                case 87:
                {
                    alt19 = 2;
                }
                    break;
                case 45:
                {
                    alt19 = 3;
                }
                    break;
                case 47:
                {
                    alt19 = 4;
                }
                    break;
                case 48:
                {
                    alt19 = 5;
                }
                    break;
                case 49:
                {
                    alt19 = 6;
                }
                    break;
                case 54:
                {
                    alt19 = 7;
                }
                    break;
                case 55:
                {
                    alt19 = 8;
                }
                    break;
                case 56:
                {
                    alt19 = 9;
                }
                    break;
                case 50:
                {
                    alt19 = 10;
                }
                    break;
                case 51:
                {
                    alt19 = 11;
                }
                    break;
                case 53:
                {
                    alt19 = 12;
                }
                    break;
                case 31:
                case 32:
                case 33:
                case 34:
                case 35:
                case 36:
                case 37:
                case 38:
                case 39:
                case 40:
                case 41:
                {
                    alt19 = 13;
                }
                    break;
                default:
                    if (this.state.backtracking > 0) {
                        this.state.failed = true;
                        return;
                    }
                    NoViableAltException nvae = new NoViableAltException("", 19, 0, this.input);
                    
                    throw nvae;
            }
            
            switch (alt19)
            {
                case 1:
                    // CPP.g:307:5: blockStmt
                {
                    this.pushFollow(FOLLOW_blockStmt_in_stmt1189);
                    this.blockStmt();
                    
                    this.state._fsp--;
                    if (this.state.failed) {
                        return;
                    }
                    
                }
                    break;
                case 2:
                    // CPP.g:309:5: exprStmt
                {
                    this.pushFollow(FOLLOW_exprStmt_in_stmt1197);
                    this.exprStmt();
                    
                    this.state._fsp--;
                    if (this.state.failed) {
                        return;
                    }
                    
                }
                    break;
                case 3:
                    // CPP.g:310:5: ifStmt
                {
                    this.pushFollow(FOLLOW_ifStmt_in_stmt1203);
                    this.ifStmt();
                    
                    this.state._fsp--;
                    if (this.state.failed) {
                        return;
                    }
                    
                }
                    break;
                case 4:
                    // CPP.g:311:5: forStmt
                {
                    this.pushFollow(FOLLOW_forStmt_in_stmt1210);
                    this.forStmt();
                    
                    this.state._fsp--;
                    if (this.state.failed) {
                        return;
                    }
                    
                }
                    break;
                case 5:
                    // CPP.g:312:5: whileStmt
                {
                    this.pushFollow(FOLLOW_whileStmt_in_stmt1217);
                    this.whileStmt();
                    
                    this.state._fsp--;
                    if (this.state.failed) {
                        return;
                    }
                    
                }
                    break;
                case 6:
                    // CPP.g:313:5: doStmt
                {
                    this.pushFollow(FOLLOW_doStmt_in_stmt1224);
                    this.doStmt();
                    
                    this.state._fsp--;
                    if (this.state.failed) {
                        return;
                    }
                    
                }
                    break;
                case 7:
                    // CPP.g:314:5: breakStmt
                {
                    this.pushFollow(FOLLOW_breakStmt_in_stmt1231);
                    this.breakStmt();
                    
                    this.state._fsp--;
                    if (this.state.failed) {
                        return;
                    }
                    
                }
                    break;
                case 8:
                    // CPP.g:315:5: continueStmt
                {
                    this.pushFollow(FOLLOW_continueStmt_in_stmt1238);
                    this.continueStmt();
                    
                    this.state._fsp--;
                    if (this.state.failed) {
                        return;
                    }
                    
                }
                    break;
                case 9:
                    // CPP.g:316:5: returnStmt
                {
                    this.pushFollow(FOLLOW_returnStmt_in_stmt1245);
                    this.returnStmt();
                    
                    this.state._fsp--;
                    if (this.state.failed) {
                        return;
                    }
                    
                }
                    break;
                case 10:
                    // CPP.g:317:5: switchStmt
                {
                    this.pushFollow(FOLLOW_switchStmt_in_stmt1251);
                    this.switchStmt();
                    
                    this.state._fsp--;
                    if (this.state.failed) {
                        return;
                    }
                    
                }
                    break;
                case 11:
                    // CPP.g:318:5: caseStmt
                {
                    this.pushFollow(FOLLOW_caseStmt_in_stmt1257);
                    this.caseStmt();
                    
                    this.state._fsp--;
                    if (this.state.failed) {
                        return;
                    }
                    
                }
                    break;
                case 12:
                    // CPP.g:319:5: defaultStmt
                {
                    this.pushFollow(FOLLOW_defaultStmt_in_stmt1263);
                    this.defaultStmt();
                    
                    this.state._fsp--;
                    if (this.state.failed) {
                        return;
                    }
                    
                }
                    break;
                case 13:
                    // CPP.g:320:5: declarationStmt
                {
                    this.pushFollow(FOLLOW_declarationStmt_in_stmt1269);
                    this.declarationStmt();
                    
                    this.state._fsp--;
                    if (this.state.failed) {
                        return;
                    }
                    
                }
                    break;
                
            }
        }
        catch (RecognitionException re) {
            this.reportError(re);
            this.recover(this.input, re);
        } finally {
        }
        return;
    }