private void reduce_0(int reduction) throws IOException, LexerException, ParserException
    {
        switch(reduction)
        {
            case 0: /* reduce AAprograma1Programa */
            {
                ArrayList<Object> list = new0();
                push(goTo(0), list, false);
            }
            break;
            case 1: /* reduce AAprograma2Programa */
            {
                ArrayList<Object> list = new1();
                push(goTo(0), list, false);
            }
            break;
            case 2: /* reduce AAprograma3Programa */
            {
                ArrayList<Object> list = new2();
                push(goTo(0), list, false);
            }
            break;
            case 3: /* reduce AAprograma4Programa */
            {
                ArrayList<Object> list = new3();
                push(goTo(0), list, false);
            }
            break;
            case 4: /* reduce ADeclVariavelDeclaracao */
            {
                ArrayList<Object> list = new4();
                push(goTo(1), list, false);
            }
            break;
            case 5: /* reduce ADeclConstanteDeclaracao */
            {
                ArrayList<Object> list = new5();
                push(goTo(1), list, false);
            }
            break;
            case 6: /* reduce ASequenciaVarVarSeq */
            {
                ArrayList<Object> list = new6();
                push(goTo(2), list, false);
            }
            break;
            case 7: /* reduce AUnicaVarVarSeq */
            {
                ArrayList<Object> list = new7();
                push(goTo(2), list, false);
            }
            break;
            case 8: /* reduce ATipoRealTipo */
            {
                ArrayList<Object> list = new8();
                push(goTo(3), list, false);
            }
            break;
            case 9: /* reduce ATipoIntTipo */
            {
                ArrayList<Object> list = new9();
                push(goTo(3), list, false);
            }
            break;
            case 10: /* reduce ATipoCharTipo */
            {
                ArrayList<Object> list = new10();
                push(goTo(3), list, false);
            }
            break;
            case 11: /* reduce AVariavelSimplesVar */
            {
                ArrayList<Object> list = new11();
                push(goTo(4), list, false);
            }
            break;
            case 12: /* reduce AVariavelArrayVar */
            {
                ArrayList<Object> list = new12();
                push(goTo(4), list, false);
            }
            break;
            case 13: /* reduce AInteiroValor */
            {
                ArrayList<Object> list = new13();
                push(goTo(5), list, false);
            }
            break;
            case 14: /* reduce ARealValor */
            {
                ArrayList<Object> list = new14();
                push(goTo(5), list, false);
            }
            break;
            case 15: /* reduce AStringValor */
            {
                ArrayList<Object> list = new15();
                push(goTo(5), list, false);
            }
            break;
            case 16: /* reduce AAtribuicaoComando */
            {
                ArrayList<Object> list = new16();
                push(goTo(6), list, false);
            }
            break;
            case 17: /* reduce ALeiaComando */
            {
                ArrayList<Object> list = new17();
                push(goTo(6), list, false);
            }
            break;
            case 18: /* reduce AEscrevaComando */
            {
                ArrayList<Object> list = new18();
                push(goTo(6), list, false);
            }
            break;
            case 19: /* reduce ASeComando */
            {
                ArrayList<Object> list = new19();
                push(goTo(6), list, false);
            }
            break;
            case 20: /* reduce AAavaliecomando1Comando */
            {
                ArrayList<Object> list = new20();
                push(goTo(6), list, false);
            }
            break;
            case 21: /* reduce AAavaliecomando2Comando */
            {
                ArrayList<Object> list = new21();
                push(goTo(6), list, false);
            }
            break;
            case 22: /* reduce AAenquantocomando1Comando */
            {
                ArrayList<Object> list = new22();
                push(goTo(6), list, false);
            }
            break;
            case 23: /* reduce AAenquantocomando2Comando */
            {
                ArrayList<Object> list = new23();
                push(goTo(6), list, false);
            }
            break;
            case 24: /* reduce AArepitacomando1Comando */
            {
                ArrayList<Object> list = new24();
                push(goTo(6), list, false);
            }
            break;
            case 25: /* reduce AArepitacomando2Comando */
            {
                ArrayList<Object> list = new25();
                push(goTo(6), list, false);
            }
            break;
            case 26: /* reduce AAparacomando1Comando */
            {
                ArrayList<Object> list = new26();
                push(goTo(6), list, false);
            }
            break;
            case 27: /* reduce AAparacomando2Comando */
            {
                ArrayList<Object> list = new27();
                push(goTo(6), list, false);
            }
            break;
            case 28: /* reduce AAparapassocomando1Comando */
            {
                ArrayList<Object> list = new28();
                push(goTo(6), list, false);
            }
            break;
            case 29: /* reduce AAparapassocomando2Comando */
            {
                ArrayList<Object> list = new29();
                push(goTo(6), list, false);
            }
            break;
            case 30: /* reduce AComandoSeq */
            {
                ArrayList<Object> list = new30();
                push(goTo(7), list, false);
            }
            break;
            case 31: /* reduce AAcasoseq1CasoSeq */
            {
                ArrayList<Object> list = new31();
                push(goTo(8), list, false);
            }
            break;
            case 32: /* reduce AAcasoseq2CasoSeq */
            {
                ArrayList<Object> list = new32();
                push(goTo(8), list, false);
            }
            break;
            case 33: /* reduce AAcasosenao1CasoSenao */
            {
                ArrayList<Object> list = new33();
                push(goTo(9), list, false);
            }
            break;
            case 34: /* reduce AAcasosenao2CasoSenao */
            {
                ArrayList<Object> list = new34();
                push(goTo(9), list, false);
            }
            break;
            case 35: /* reduce AAcomsenaosedecl1SeDecl */
            {
                ArrayList<Object> list = new35();
                push(goTo(10), list, false);
            }
            break;
            case 36: /* reduce AAcomsenaosedecl2SeDecl */
            {
                ArrayList<Object> list = new36();
                push(goTo(10), list, false);
            }
            break;
            case 37: /* reduce AAcomsenaosedecl3SeDecl */
            {
                ArrayList<Object> list = new37();
                push(goTo(10), list, false);
            }
            break;
            case 38: /* reduce AAcomsenaosedecl4SeDecl */
            {
                ArrayList<Object> list = new38();
                push(goTo(10), list, false);
            }
            break;
            case 39: /* reduce AAsemsenaosedecl1SeDecl */
            {
                ArrayList<Object> list = new39();
                push(goTo(10), list, false);
            }
            break;
            case 40: /* reduce AAsemsenaosedecl2SeDecl */
            {
                ArrayList<Object> list = new40();
                push(goTo(10), list, false);
            }
            break;
            case 41: /* reduce AComOpExp */
            {
                ArrayList<Object> list = new41();
                push(goTo(11), list, false);
            }
            break;
            case 42: /* reduce ASemOpExp */
            {
                ArrayList<Object> list = new42();
                push(goTo(11), list, false);
            }
            break;
            case 43: /* reduce AComOp2Termo */
            {
                ArrayList<Object> list = new43();
                push(goTo(12), list, false);
            }
            break;
            case 44: /* reduce ASemOp2Termo */
            {
                ArrayList<Object> list = new44();
                push(goTo(12), list, false);
            }
            break;
            case 45: /* reduce ANegativoTermo */
            {
                ArrayList<Object> list = new45();
                push(goTo(12), list, false);
            }
            break;
            case 46: /* reduce AEmparentadoFator */
            {
                ArrayList<Object> list = new46();
                push(goTo(13), list, false);
            }
            break;
            case 47: /* reduce AConstanteFator */
            {
                ArrayList<Object> list = new47();
                push(goTo(13), list, false);
            }
            break;
            case 48: /* reduce AVariavelFator */
            {
                ArrayList<Object> list = new48();
                push(goTo(13), list, false);
            }
            break;
            case 49: /* reduce ASomaOp */
            {
                ArrayList<Object> list = new49();
                push(goTo(14), list, false);
            }
            break;
            case 50: /* reduce ASubtracaoOp */
            {
                ArrayList<Object> list = new50();
                push(goTo(14), list, false);
            }
            break;
            case 51: /* reduce AMultiplicacaoOp2 */
            {
                ArrayList<Object> list = new51();
                push(goTo(15), list, false);
            }
            break;
            case 52: /* reduce ADivisaoOp2 */
            {
                ArrayList<Object> list = new52();
                push(goTo(15), list, false);
            }
            break;
            case 53: /* reduce ASequenciaExpExpSeq */
            {
                ArrayList<Object> list = new53();
                push(goTo(16), list, false);
            }
            break;
            case 54: /* reduce AUnicaExpExpSeq */
            {
                ArrayList<Object> list = new54();
                push(goTo(16), list, false);
            }
            break;
            case 55: /* reduce AExpLogica */
            {
                ArrayList<Object> list = new55();
                push(goTo(17), list, false);
            }
            break;
            case 56: /* reduce ADisjuncaoExpLogica2 */
            {
                ArrayList<Object> list = new56();
                push(goTo(18), list, false);
            }
            break;
            case 57: /* reduce ADisjuncaoxExpLogica2 */
            {
                ArrayList<Object> list = new57();
                push(goTo(18), list, false);
            }
            break;
            case 58: /* reduce ASimplesExpLogica2 */
            {
                ArrayList<Object> list = new58();
                push(goTo(18), list, false);
            }
            break;
            case 59: /* reduce AConjuncaoExpLogica3 */
            {
                ArrayList<Object> list = new59();
                push(goTo(19), list, false);
            }
            break;
            case 60: /* reduce ASimplesExpLogica3 */
            {
                ArrayList<Object> list = new60();
                push(goTo(19), list, false);
            }
            break;
            case 61: /* reduce ASimplesExpLogica4 */
            {
                ArrayList<Object> list = new61();
                push(goTo(20), list, false);
            }
            break;
            case 62: /* reduce ANegadaExpLogica4 */
            {
                ArrayList<Object> list = new62();
                push(goTo(20), list, false);
            }
            break;
            case 63: /* reduce AParentadoExpLogica4 */
            {
                ArrayList<Object> list = new63();
                push(goTo(20), list, false);
            }
            break;
            case 64: /* reduce AParentadonegadoExpLogica4 */
            {
                ArrayList<Object> list = new64();
                push(goTo(20), list, false);
            }
            break;
            case 65: /* reduce AIgualOpLogicos */
            {
                ArrayList<Object> list = new65();
                push(goTo(21), list, false);
            }
            break;
            case 66: /* reduce ADifOpLogicos */
            {
                ArrayList<Object> list = new66();
                push(goTo(21), list, false);
            }
            break;
            case 67: /* reduce AMenoriOpLogicos */
            {
                ArrayList<Object> list = new67();
                push(goTo(21), list, false);
            }
            break;
            case 68: /* reduce AMaioriOpLogicos */
            {
                ArrayList<Object> list = new68();
                push(goTo(21), list, false);
            }
            break;
            case 69: /* reduce AMenorOpLogicos */
            {
                ArrayList<Object> list = new69();
                push(goTo(21), list, false);
            }
            break;
            case 70: /* reduce AMaiorOpLogicos */
            {
                ArrayList<Object> list = new70();
                push(goTo(21), list, false);
            }
            break;
            case 71: /* reduce ATerminal$Declaracao */
            {
                ArrayList<Object> list = new71();
                push(goTo(22), list, true);
            }
            break;
            case 72: /* reduce ANonTerminal$Declaracao */
            {
                ArrayList<Object> list = new72();
                push(goTo(22), list, true);
            }
            break;
            case 73: /* reduce ATerminal$Comando */
            {
                ArrayList<Object> list = new73();
                push(goTo(23), list, true);
            }
            break;
            case 74: /* reduce ANonTerminal$Comando */
            {
                ArrayList<Object> list = new74();
                push(goTo(23), list, true);
            }
            break;
            case 75: /* reduce ATerminal$CasoSenao */
            {
                ArrayList<Object> list = new75();
                push(goTo(24), list, true);
            }
            break;
            case 76: /* reduce ANonTerminal$CasoSenao */
            {
                ArrayList<Object> list = new76();
                push(goTo(24), list, true);
            }
            break;
            case 77: /* reduce ATerminal$CasoSeq */
            {
                ArrayList<Object> list = new77();
                push(goTo(25), list, true);
            }
            break;
            case 78: /* reduce ANonTerminal$CasoSeq */
            {
                ArrayList<Object> list = new78();
                push(goTo(25), list, true);
            }
            break;
            case 79: /* reduce ATerminal$ComandoSeq */
            {
                ArrayList<Object> list = new79();
                push(goTo(26), list, true);
            }
            break;
            case 80: /* reduce ANonTerminal$ComandoSeq */
            {
                ArrayList<Object> list = new80();
                push(goTo(26), list, true);
            }
            break;
        }
    }



    @SuppressWarnings({ "unchecked", "rawtypes" }