// File: /workspace/github_c_makefile_star2_O3/ShinyaKato[P]skcc/preprocess.c
// Function: group
void group(struct preprocessor *pp) {
  while(!check_pp_token(pp, PP_NONE)) {
    if(check_pp_token(pp, PP_SHARP)) {
      skip_pp_token_with_space(pp);

      if(check_if_section(pp)) {
        if_section(pp);
      } else if(check_group_end(pp)) {
        break;
      } else if(check_keyword(pp, "include")) {
        skip_pp_token_with_space(pp);
        include_directive(pp);
      } else if(check_keyword(pp, "define")) {
        skip_pp_token_with_space(pp);
        define_directive(pp);
      } else if(check_keyword(pp, "undef")) {
        skip_pp_token_with_space(pp);
        undef_directive(pp);
      } else if(check_keyword(pp, "line")) {
        warning("#line directive is not implemented yet.\n");
        skip_line(pp);
      } else if(check_keyword(pp, "error")) {
        warning("#error directive is not implemented yet.\n");
        skip_line(pp);
      } else if(check_keyword(pp, "pragma")) {
        warning("#pragma directive is not implemented yet.\n");
        skip_line(pp);
      } else if(check_pp_token(pp, PP_SPACE)) {
        skip_line(pp);
      } else {
        struct pp_token *directive = read_pp_token(pp);
        error("unknown directive: \"#%s\".\n", directive->text->head);
      }
    } else {
      parse_text_line(pp);
    }
  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
movl $0x3e, %esi
callq 0x45e4
testl %eax, %eax
jne 0x5208
leaq 0x2dcf(%rip), %r14      # 0x7dce
leaq 0x310f(%rip), %r15      # 0x8115
leaq 0x310f(%rip), %r12      # 0x811c
leaq 0x310e(%rip), %r13      # 0x8122
leaq 0x2ef5(%rip), %rbp      # 0x7f10
movq %rbx, %rdi
movl $0x39, %esi
callq 0x45e4
movq %rbx, %rdi
testl %eax, %eax
je 0x505d
callq 0x45b6
movq %rax, %rdi
callq 0x1e94
movq %rbx, %rdi
callq 0x4680
movq %rbx, %rdi
callq 0x5ecb
movq %rbx, %rdi
testl %eax, %eax
je 0x5067
callq 0x5565
jmp 0x51f3
callq 0x5e26
jmp 0x51f3
callq 0x5f09
testl %eax, %eax
jne 0x5208
movq %rbx, %rdi
movq %r14, %rsi
callq 0x461e
movq %rbx, %rdi
testl %eax, %eax
je 0x50a8
callq 0x45b6
movq %rax, %rdi
callq 0x1e94
movq %rbx, %rdi
callq 0x4680
movq %rbx, %rdi
callq 0x57fd
jmp 0x51f3
movq %r15, %rsi
callq 0x461e
movq %rbx, %rdi
testl %eax, %eax
je 0x50d9
callq 0x45b6
movq %rax, %rdi
callq 0x1e94
movq %rbx, %rdi
callq 0x4680
movq %rbx, %rdi
callq 0x5a7e
jmp 0x51f3
movq %r12, %rsi
callq 0x461e
movq %rbx, %rdi
testl %eax, %eax
je 0x510a
callq 0x45b6
movq %rax, %rdi
callq 0x1e94
movq %rbx, %rdi
callq 0x4680
movq %rbx, %rdi
callq 0x5dea
jmp 0x51f3
movq %r13, %rsi
callq 0x461e
testl %eax, %eax
je 0x513e
movq %rbp, %rdi
movl $0x4c1, %esi            # imm = 0x4C1
leaq 0x3002(%rip), %rdx      # 0x8127
xorl %eax, %eax
callq 0x1176
movq %rbx, %rdi
callq 0x45b6
cmpl $0x3b, (%rax)
jne 0x512c
jmp 0x51f3
movq %rbx, %rdi
leaq 0x1ec8(%rip), %rsi      # 0x7010
callq 0x461e
testl %eax, %eax
je 0x5176
movq %rbp, %rdi
movl $0x4c4, %esi            # imm = 0x4C4
leaq 0x2ff0(%rip), %rdx      # 0x8150
xorl %eax, %eax
callq 0x1176
movq %rbx, %rdi
callq 0x45b6
cmpl $0x3b, (%rax)
jne 0x5167
jmp 0x51f3
movq %rbx, %rdi
leaq 0x2ffa(%rip), %rsi      # 0x817a
callq 0x461e
testl %eax, %eax
je 0x51ae
movq %rbp, %rdi
movl $0x4c7, %esi            # imm = 0x4C7
leaq 0x2fe9(%rip), %rdx      # 0x8181
xorl %eax, %eax
callq 0x1176
movq %rbx, %rdi
callq 0x45b6
cmpl $0x3b, (%rax)
jne 0x519f
jmp 0x51f3
movq %rbx, %rdi
movl $0x3c, %esi
callq 0x45e4
testl %eax, %eax
je 0x51ce
movq %rbx, %rdi
callq 0x45b6
cmpl $0x3b, (%rax)
jne 0x51bf
jmp 0x51f3
movq %rbx, %rdi
callq 0x45b6
movq 0x10(%rax), %rax
movq (%rax), %rcx
movq %rbp, %rdi
movl $0x4cd, %esi            # imm = 0x4CD
leaq 0x2fc0(%rip), %rdx      # 0x81ac
xorl %eax, %eax
callq 0x142c
movq %rbx, %rdi
movl $0x3e, %esi
callq 0x45e4
testl %eax, %eax
je 0x501b
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq