// File: /workspace/github_c_makefile_star2_O3/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
movl $0x1, %ebx
testq %rdi, %rdi
je 0x229a
leaq 0x5da0(%rip), %rax      # 0x8004
movl 0x4(%rdi), %esi
testl %esi, %esi
je 0x229a
leal -0x1(%rsi), %ecx
cmpl $0x44, %ecx
ja 0x2395
movslq (%rax,%rcx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
movq 0x28(%rdi), %rcx
jmp 0x228e
movq 0x28(%rdi), %rcx
addq $0x8, %rcx
movq (%rcx), %rdi
testq %rdi, %rdi
jne 0x2264
jmp 0x229a
xorl %ebx, %ebx
movl %ebx, %eax
addq $0x8, %rsp
popq %rbx
popq %rbp
retq
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2a63
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2808
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2682
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2a34
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x263a
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x29f4
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2a92
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2b2a
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x29c5
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x248f
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x26b1
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2b59
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2927
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2529
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x26fe
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x28f8
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2956
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x23f5
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x25b3
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2584
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x27c0
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x289a
leaq 0x5d7c(%rip), %rdi      # 0x8118
xorl %eax, %eax
callq 0x2090
jmp 0x229a
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2837
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2755
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x24ed
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x24be
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x243e
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x28c9
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2985