// File: /workspace/github_c_makefile_star2_O0/macournoyer[P]peg/compile.c
// Function: Rule_compile_c
void Rule_compile_c(Node *node)
{
  Node *n;

  for (n= rules;  n;  n= n->rule.next)
    consumesInput(n);

  fprintf(output, "%s", preamble);
  for (n= node;  n;  n= n->rule.next)
    fprintf(output, "YY_RULE(int) yy_%s(); /* %d */\n", n->rule.name, n->rule.id);
  fprintf(output, "\n");
  for (n= actions;  n;  n= n->action.list)
    {
      fprintf(output, "YY_ACTION(void) yy%s(char *yytext, int yyleng)\n{\n", n->action.name);
      fprintf(output, "  (void)yytext; (void)yyleng;\n");
      defineVariables(n->action.rule->rule.variables);
      fprintf(output, "  yyprintf((stderr, \"do yy%s\\n\"));\n", n->action.name);
      fprintf(output, "  %s;\n", n->action.text);
      undefineVariables(n->action.rule->rule.variables);
      fprintf(output, "}\n");
    }
  Rule_compile_c2(node);
  fprintf(output, footer, start->rule.name);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
leaq 0x6d25(%rip), %rax      # 0xc1a8
movq (%rax), %rax
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x54a8
movq -0x10(%rbp), %rdi
callq 0x5260
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x10(%rbp)
jmp 0x548a
leaq 0x6d11(%rip), %rax      # 0xc1c0
movq (%rax), %rdi
movq 0x6c3f(%rip), %rdx      # 0xc0f8
leaq 0x1cb6(%rip), %rsi      # 0x7176
movb $0x0, %al
callq 0x10c0
movq -0x8(%rbp), %rax
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x550b
leaq 0x6ce3(%rip), %rax      # 0xc1c0
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdx
movq -0x10(%rbp), %rax
movl 0x28(%rax), %ecx
leaq 0x2293(%rip), %rsi      # 0x7789
movb $0x0, %al
callq 0x10c0
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x10(%rbp)
jmp 0x54cf
leaq 0x6cae(%rip), %rax      # 0xc1c0
movq (%rax), %rdi
leaq 0x354f(%rip), %rsi      # 0x8a6b
movb $0x0, %al
callq 0x10c0
leaq 0x6c76(%rip), %rax      # 0xc1a0
movq (%rax), %rax
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x55ff
leaq 0x6c7d(%rip), %rax      # 0xc1c0
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rdx
leaq 0x2254(%rip), %rsi      # 0x77a9
movb $0x0, %al
callq 0x10c0
leaq 0x6c5d(%rip), %rax      # 0xc1c0
movq (%rax), %rdi
leaq 0x226e(%rip), %rsi      # 0x77db
movb $0x0, %al
callq 0x10c0
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x18(%rax), %rdi
callq 0x5640
leaq 0x6c34(%rip), %rax      # 0xc1c0
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rdx
leaq 0x225c(%rip), %rsi      # 0x77fa
movb $0x0, %al
callq 0x10c0
leaq 0x6c14(%rip), %rax      # 0xc1c0
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdx
leaq 0x2260(%rip), %rsi      # 0x781e
movb $0x0, %al
callq 0x10c0
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x18(%rax), %rdi
callq 0x56b0
leaq 0x6be3(%rip), %rax      # 0xc1c0
movq (%rax), %rdi
leaq 0x223e(%rip), %rsi      # 0x7825
movb $0x0, %al
callq 0x10c0
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x10(%rbp)
jmp 0x5531
movq -0x8(%rbp), %rdi
callq 0x5700
leaq 0x6bb1(%rip), %rax      # 0xc1c0
movq (%rax), %rdi
movq 0x6ae7(%rip), %rsi      # 0xc100
leaq 0x6b98(%rip), %rax      # 0xc1b8
movq (%rax), %rax
movq 0x10(%rax), %rdx
movb $0x0, %al
callq 0x10c0
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)