// File: JameyWoo[P]csmile/parse.cpp
// Function: params()
TreeNode* params() {
    TreeNode* t = new TreeNode("Params");  // 根节点, 参数s
    TreeNode* p = NULL;
    if (ptoken.type == "void") {
        p = new TreeNode("void");
        match("void");
        if (ptoken.type == "RightBracket") {
            if (t != NULL) {
                t->child[0]  = p;
                t->child_cnt = 1;
            }
        } else {
            t->child[0]  = param_list(p);
            t->child_cnt = 1;
        }
    } else {
        t->child[0]  = param_list(p);
        t->child_cnt = 1;
    }
    return t;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x110, %rsp            # imm = 0x110
movl $0xe0, %edi
callq 0x3280
movq %rax, -0xf0(%rbp)
movb $0x1, -0x3d(%rbp)
leaq -0x29(%rbp), %rdi
movq %rdi, -0xe8(%rbp)
callq 0x3480
movq -0xe8(%rbp), %rdx
leaq 0x18861(%rip), %rsi     # 0x211af
leaq -0x28(%rbp), %rdi
callq 0x4ef0
jmp 0x8959
movq -0xf0(%rbp), %rdi
leaq -0x28(%rbp), %rsi
callq 0xdb50
jmp 0x896b
movb $0x0, -0x3d(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x34e8
leaq -0x29(%rbp), %rdi
callq 0x32d0
movq -0xf0(%rbp), %rax
movq %rax, -0x8(%rbp)
movq $0x0, -0x48(%rbp)
leaq 0x25bed(%rip), %rdi     # 0x2e588
leaq 0x1875a(%rip), %rsi     # 0x210fc
callq 0x5e70
testb $0x1, %al
jne 0x89b0
jmp 0x8bb5
movl $0xe0, %edi
callq 0x3280
movq %rax, -0x100(%rbp)
movb $0x1, -0x6a(%rbp)
leaq -0x69(%rbp), %rdi
movq %rdi, -0xf8(%rbp)
callq 0x3480
movq -0xf8(%rbp), %rdx
leaq 0x18719(%rip), %rsi     # 0x210fc
leaq -0x68(%rbp), %rdi
callq 0x4ef0
jmp 0x89ee
movq -0x100(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0xdb50
jmp 0x8a00
movq -0x100(%rbp), %rax
movb $0x0, -0x6a(%rbp)
movq %rax, -0x48(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x34e8
leaq -0x69(%rbp), %rdi
callq 0x32d0
leaq -0xd9(%rbp), %rdi
movq %rdi, -0x108(%rbp)
callq 0x3480
movq -0x108(%rbp), %rdx
leaq 0x186ba(%rip), %rsi     # 0x210fc
leaq -0xd8(%rbp), %rdi
callq 0x4ef0
jmp 0x8a50
leaq -0xb8(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0x80b0
jmp 0x8a65
leaq -0xb8(%rbp), %rdi
callq 0x4ec0
leaq -0xd8(%rbp), %rdi
callq 0x34e8
leaq -0xd9(%rbp), %rdi
callq 0x32d0
leaq 0x25af8(%rip), %rdi     # 0x2e588
leaq 0x18625(%rip), %rsi     # 0x210bc
callq 0x5e70
testb $0x1, %al
jne 0x8aa5
jmp 0x8b95
cmpq $0x0, -0x8(%rbp)
je 0x8b93
movq -0x48(%rbp), %rcx
movq -0x8(%rbp), %rax
movq %rcx, (%rax)
movq -0x8(%rbp), %rax
movl $0x1, 0x28(%rax)
jmp 0x8b93
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x8aee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x34e8
leaq -0x29(%rbp), %rdi
callq 0x32d0
testb $0x1, -0x3d(%rbp)
jne 0x8aff
jmp 0x8b10
movq -0xf0(%rbp), %rdi
movl $0xe0, %esi
callq 0x3290
jmp 0x8be0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x8b38
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x34e8
leaq -0x69(%rbp), %rdi
callq 0x32d0
testb $0x1, -0x6a(%rbp)
jne 0x8b49
jmp 0x8b5a
movq -0x100(%rbp), %rdi
movl $0xe0, %esi
callq 0x3290
jmp 0x8be0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x8b85
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0xd8(%rbp), %rdi
callq 0x34e8
leaq -0xd9(%rbp), %rdi
callq 0x32d0
jmp 0x8be0
jmp 0x8bb3
movq -0x48(%rbp), %rdi
callq 0x87c0
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, (%rax)
movq -0x8(%rbp), %rax
movl $0x1, 0x28(%rax)
jmp 0x8bd3
movq -0x48(%rbp), %rdi
callq 0x87c0
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, (%rax)
movq -0x8(%rbp), %rax
movl $0x1, 0x28(%rax)
movq -0x8(%rbp), %rax
addq $0x110, %rsp            # imm = 0x110
popq %rbp
retq
movq -0x38(%rbp), %rdi
callq 0x3470
nopl (%rax)