// File: /workspace/github_c_makefile_star2_O1/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
leaq 0x5daa(%rip), %rax      # 0x8004
movl $0x1, %ebx
testq %rdi, %rdi
je 0x2295
movl 0x4(%rdi), %esi
testl %esi, %esi
je 0x2295
leal -0x1(%rsi), %ecx
cmpl $0x44, %ecx
ja 0x239b
movslq (%rax,%rcx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
movq 0x28(%rdi), %rcx
movq (%rcx), %rdi
jmp 0x225f
movq 0x28(%rdi), %rcx
movq 0x8(%rcx), %rdi
jmp 0x225f
xorl %ebx, %ebx
movl %ebx, %eax
addq $0x8, %rsp
popq %rbx
popq %rbp
retq
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2a5e
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2803
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2635
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2a2f
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x267d
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x29ef
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2a8d
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2b25
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x26f9
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x26ac
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x23f0
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x29c0
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x248a
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2524
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2922
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2b54
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x28f3
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2832
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x25ae
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2895
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2951
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x24b9
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x27bb
leaq 0x5d76(%rip), %rdi      # 0x8118
xorl %eax, %eax
callq 0x2090
jmp 0x2295
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x257f
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x24e8
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2750
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2439
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x28c4
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2980