// File: /workspace/github_c_makefile_star2_O0/creationix[P]color-control/src/compile.c
// Function: generate_statement
static void generate_statement(mpc_ast_t* ast) {
  if (is(ast, "number|decimal|regex")) return generate_number(parse_number(ast));
  if (is(ast, "number|hex|regex")) return generate_number(parse_number(ast));
  if (is(ast, "number|boolean|string")) return generate_number(parse_number(ast));
  if (is(ast, "ident|regex")) return generate_get(ast);
  if (is(ast, "for|>")) return generate_for(ast);
  if (is(ast, "assign|>")) return generate_assign(ast);
  if (is(ast, "call|>")) return generate_call(ast);
  if (is(ast, "sum|>")) return generate_sum(ast);
  if (is(ast, "product|>")) return generate_product(ast);
  if (is(ast, "equality|>")) return generate_equality(ast);
  if (is(ast, "not|>")) return generate_not(ast);
  if (is(ast, "if|>")) return generate_if(ast);
  if (is(ast, "value|>")) return generate_value(ast);
  mpc_ast_print_to(ast, stderr);
  fprintf(stderr, "UNKNOWN: %s\n", ast->tag);
  assert(false);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x1fc6(%rip), %rsi      # 0x117ed
callq 0xc680
testb $0x1, %al
jne 0xf832
jmp 0xf847
movq -0x8(%rbp), %rdi
callq 0xc5b0
movl %eax, %edi
callq 0xfa60
jmp 0xfa50
movq -0x8(%rbp), %rdi
leaq 0x1fcb(%rip), %rsi      # 0x1181d
callq 0xc680
testb $0x1, %al
jne 0xf85d
jmp 0xf872
movq -0x8(%rbp), %rdi
callq 0xc5b0
movl %eax, %edi
callq 0xfa60
jmp 0xfa50
movq -0x8(%rbp), %rdi
leaq 0x1f85(%rip), %rsi      # 0x11802
callq 0xc680
testb $0x1, %al
jne 0xf888
jmp 0xf89d
movq -0x8(%rbp), %rdi
callq 0xc5b0
movl %eax, %edi
callq 0xfa60
jmp 0xfa50
movq -0x8(%rbp), %rdi
leaq 0x2583(%rip), %rsi      # 0x11e2b
callq 0xc680
testb $0x1, %al
jne 0xf8b3
jmp 0xf8c1
movq -0x8(%rbp), %rdi
callq 0xfd20
jmp 0xfa50
movq -0x8(%rbp), %rdi
leaq 0x256b(%rip), %rsi      # 0x11e37
callq 0xc680
testb $0x1, %al
jne 0xf8d7
jmp 0xf8e5
movq -0x8(%rbp), %rdi
callq 0xfd70
jmp 0xfa50
movq -0x8(%rbp), %rdi
leaq 0x254d(%rip), %rsi      # 0x11e3d
callq 0xc680
testb $0x1, %al
jne 0xf8fb
jmp 0xf909
movq -0x8(%rbp), %rdi
callq 0xfec0
jmp 0xfa50
movq -0x8(%rbp), %rdi
leaq 0x2532(%rip), %rsi      # 0x11e46
callq 0xc680
testb $0x1, %al
jne 0xf91f
jmp 0xf92d
movq -0x8(%rbp), %rdi
callq 0xff30
jmp 0xfa50
movq -0x8(%rbp), %rdi
leaq 0x2515(%rip), %rsi      # 0x11e4d
callq 0xc680
testb $0x1, %al
jne 0xf943
jmp 0xf951
movq -0x8(%rbp), %rdi
callq 0x10030
jmp 0xfa50
movq -0x8(%rbp), %rdi
leaq 0x24f7(%rip), %rsi      # 0x11e53
callq 0xc680
testb $0x1, %al
jne 0xf967
jmp 0xf975
movq -0x8(%rbp), %rdi
callq 0x10100
jmp 0xfa50
movq -0x8(%rbp), %rdi
leaq 0x24dd(%rip), %rsi      # 0x11e5d
callq 0xc680
testb $0x1, %al
jne 0xf98b
jmp 0xf999
movq -0x8(%rbp), %rdi
callq 0x10200
jmp 0xfa50
movq -0x8(%rbp), %rdi
leaq 0x24c4(%rip), %rsi      # 0x11e68
callq 0xc680
testb $0x1, %al
jne 0xf9af
jmp 0xf9bd
movq -0x8(%rbp), %rdi
callq 0x103d0
jmp 0xfa50
movq -0x8(%rbp), %rdi
leaq 0x24a6(%rip), %rsi      # 0x11e6e
callq 0xc680
testb $0x1, %al
jne 0xf9d3
jmp 0xf9de
movq -0x8(%rbp), %rdi
callq 0x10420
jmp 0xfa50
movq -0x8(%rbp), %rdi
leaq 0x248a(%rip), %rsi      # 0x11e73
callq 0xc680
testb $0x1, %al
jne 0xf9f4
jmp 0xf9ff
movq -0x8(%rbp), %rdi
callq 0x10480
jmp 0xfa50
movq -0x8(%rbp), %rdi
movq 0x75ee(%rip), %rax      # 0x16ff8
movq (%rax), %rsi
callq 0x9480
movq 0x75df(%rip), %rax      # 0x16ff8
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq (%rax), %rdx
leaq 0x2451(%rip), %rsi      # 0x11e7b
movb $0x0, %al
callq 0x2120
leaq 0x1df6(%rip), %rdi      # 0x1182e
leaq 0x1df5(%rip), %rsi      # 0x11834
movl $0xf0, %edx
leaq 0x243d(%rip), %rcx      # 0x11e88
callq 0x20c0
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)