// File: /workspace/github_c_makefile_star2_O2/gregtour[P]minimal-compiler/autostubs.c
// Function: ProcessNode
int ProcessNode(SYNTAX_TREE* node)
{
    if (node == NULL || node->production == 0)
        return 1;

    switch (node->production)
    {
        case 0x01: return ReduceProgram(node);
        case 0x02: return ReduceGstmtStarA(node);
        case 0x03: return ReduceGstmtStarB(node);
        case 0x04: return ReduceGstmtA(node);
        case 0x05: return ReduceStringListA(node);
        case 0x06: return ReduceStringListB(node);
        case 0x07: return ReduceGstmtB(node);
        case 0x08: return ReduceTypeDeclarationA(node);
        case 0x09: return ReduceTypeDeclarationB(node);
        case 0x0A: return ReduceGstmtC(node);
        case 0x0B: return ReduceGstmtD(node);
        case 0x0C: return ReduceParamStarA(node);
        case 0x0D: return ReduceParamStarB(node);
        case 0x0E: return ReduceParamStarC(node);
        case 0x0F: return ReduceBlockA(node);
        case 0x10: return ReduceBlockB(node);
        case 0x11: return ReduceTypeA(node);
        case 0x12: return ReduceTypeB(node);
        case 0x13: return ReduceTypeC(node);
        case 0x14: return ReduceTypeD(node);
        case 0x15: return ReduceFstmtStarA(node);
        case 0x16: return ReduceFstmtStarB(node);
        case 0x17: return ReduceFstmtA(node);
        case 0x18: return ReduceFstmtB(node);
        case 0x19: return ReduceFstmtC(node);
        case 0x1A: return ReduceFstmtD(node);
        case 0x1B: return ReduceFstmtE(node);
        case 0x1C: return ReduceElseA(node);
        case 0x1D: return ReduceElseB(node);
        case 0x1E: return ReduceFstmtF(node);
        case 0x1F: return ReduceFstmtG(node);
        case 0x20: return ReduceFstmtH(node);
        case 0x21: return ReduceFstmtI(node);
        case 0x22: return ReduceFstmtJ(node);
        case 0x23: return ReduceArgStarA(node);
        case 0x24: return ReduceArgStarB(node);
        case 0x25: return ReduceArgStarC(node);
        case 0x26: return ReduceExpr(node);
        case 0x27: return ReduceConditionA(node);
        case 0x28: return ReduceConditionB(node);
        case 0x29: return ReduceConditionC(node);
        case 0x2A: return ReduceLogicA(node);
        case 0x2B: return ReduceLogicB(node);
        case 0x2C: return ReduceComparisonA(node);
        case 0x2D: return ReduceComparisonB(node);
        case 0x2E: return ReduceComparisonC(node);
        case 0x2F: return ReduceComparisonD(node);
        case 0x30: return ReduceComparisonE(node);
        case 0x31: return ReduceComparisonF(node);
        case 0x32: return ReduceComparisonG(node);
        case 0x33: return ReduceArithmeticA(node);
        case 0x34: return ReduceArithmeticB(node);
        case 0x35: return ReduceArithmeticC(node);
        case 0x36: return ReduceTermA(node);
        case 0x37: return ReduceTermB(node);
        case 0x38: return ReduceTermC(node);
        case 0x39: return ReduceTermD(node);
        case 0x3A: return ReduceFactorA(node);
        case 0x3B: return ReduceFactorB(node);
        case 0x3C: return ReduceFactorC(node);
        case 0x3D: return ReduceFinalA(node);
        case 0x3E: return ReduceFinalB(node);
        case 0x3F: return ReduceFinalC(node);
        case 0x40: return ReduceFinalD(node);
        case 0x41: return ReduceFinalE(node);
        case 0x42: return ReduceFinalF(node);
        case 0x43: return ReduceFinalG(node);
        case 0x44: return ReduceBooleanA(node);
        case 0x45: return ReduceBooleanB(node);
    default:
        printf("Unknown production %i.\n", node->production);
        return 1;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
pushq %rax
pushq $0x1
popq %rbx
testq %rdi, %rdi
je 0x2280
movl 0x4(%rdi), %esi
testl %esi, %esi
je 0x2280
leal -0x1(%rsi), %eax
cmpl $0x44, %eax
ja 0x24e6
leaq 0x4d8f(%rip), %rcx      # 0x7004
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
xorl %ebx, %ebx
movl %ebx, %eax
addq $0x8, %rsp
popq %rbx
popq %rbp
retq
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2c8c
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2af8
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2b67
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x298d
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2c9d
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x27b5
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2a2b
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x290c
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2786
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x27f1
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2bc5
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2a5a
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x262d
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2be8
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2c2e
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x293b
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2c1d
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x273e
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2775
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2bfa
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2c5d
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2c0b
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x26fb
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2542
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x299e
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x223c
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x24f9
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x28fb
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x296a
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2571
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x28c4
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2530
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2b96
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2bd6
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x270c
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2593
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x25c2
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2b27
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2688
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2582
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2859
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x26b7
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2b38
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x283f
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x28a1
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x25f1
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x28b3
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x29cd
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2802
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2ac9
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x297b
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2ab8
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2a89
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2cae
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x29fc
leaq 0x4c2b(%rip), %rdi      # 0x7118
xorl %eax, %eax
callq 0x2090
jmp 0x2280