// File: /workspace/github_c_makefile_star2_O2/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
leaq 0x1864(%rip), %r14      # 0xb64d
leaq 0x188d(%rip), %r15      # 0xb67d
leaq 0x186b(%rip), %r12      # 0xb662
leaq 0x1e8d(%rip), %r13      # 0xbc8b
leaq 0x1e92(%rip), %rbp      # 0xbc97
movq %rbx, %rdi
movq %r14, %rsi
callq 0x8b19
testb %al, %al
jne 0xa0de
movq %rbx, %rdi
movq %r15, %rsi
callq 0x8b19
testb %al, %al
jne 0xa0de
movq %rbx, %rdi
movq %r12, %rsi
callq 0x8b19
testb %al, %al
jne 0xa0de
movq %rbx, %rdi
movq %r13, %rsi
callq 0x8b19
testb %al, %al
jne 0xa0fb
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x8b19
testb %al, %al
jne 0xa130
movq %rbx, %rdi
leaq 0x1e2f(%rip), %rsi      # 0xbc9d
callq 0x8b19
testb %al, %al
je 0x9ea9
movq 0x38(%rbx), %rax
movq (%rax), %rax
movq 0x8(%rax), %rdi
callq 0xa4eb
addb $-0x66, %al
movzwl 0x7350(%rip), %ecx      # 0x111e0
leal 0x1(%rcx), %edx
movw %dx, 0x7346(%rip)       # 0x111e0
leaq 0x735f(%rip), %rdx      # 0x11200
movb %al, (%rcx,%rdx)
jmp 0xa0ce
movq %rbx, %rdi
leaq 0x1df3(%rip), %rsi      # 0xbca6
callq 0x8b19
testb %al, %al
jne 0xa1c1
movq %rbx, %rdi
leaq 0x1de3(%rip), %rsi      # 0xbcad
callq 0x8b19
testb %al, %al
je 0x9efd
movq 0x38(%rbx), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movzbl (%rax), %ecx
movb $-0x7b, %al
cmpl $0x2d, %ecx
je 0xa0a7
cmpl $0x2b, %ecx
jne 0xa322
movb $-0x7c, %al
jmp 0xa0a7
movq %rbx, %rdi
leaq 0x1dac(%rip), %rsi      # 0xbcb3
callq 0x8b19
testb %al, %al
je 0x9f43
movq 0x38(%rbx), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movzbl (%rax), %ecx
cmpl $0x25, %ecx
je 0x9fc8
movb $-0x7a, %al
cmpl $0x2a, %ecx
je 0xa0a7
cmpl $0x2f, %ecx
jne 0xa341
movb $-0x79, %al
jmp 0xa0a7
movq %rbx, %rdi
leaq 0x1d70(%rip), %rsi      # 0xbcbd
callq 0x8b19
testb %al, %al
je 0x9f8c
movq 0x38(%rbx), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rcx
movzbl (%rcx), %eax
movl %eax, %edx
subl $0x3c, %edx
jne 0x9fcf
cmpb $0x0, 0x1(%rcx)
je 0xa099
movzbl 0x1(%rcx), %edx
subl $0x3d, %edx
jne 0x9f83
movzbl 0x2(%rcx), %edx
negl %edx
xorl %edi, %edi
pushq $0x2
popq %rsi
jmp 0x9ff3
movq %rbx, %rdi
leaq 0x1d32(%rip), %rsi      # 0xbcc8
callq 0x8b19
testb %al, %al
je 0xa04d
movzwl 0x7236(%rip), %eax      # 0x111e0
leal 0x1(%rax), %ecx
movw %cx, 0x722c(%rip)       # 0x111e0
leaq 0x7245(%rip), %rcx      # 0x11200
movb $-0x6f, (%rax,%rcx)
movq 0x38(%rbx), %rax
jmp 0xa08f
movb $-0x78, %al
jmp 0xa0a7
leal -0x3e(%rax), %esi
negl %esi
movl %esi, %r8d
cmpl $0x3e, %eax
sete %dil
jne 0x9fe8
movzbl 0x1(%rcx), %r8d
negl %r8d
testl %r8d, %r8d
je 0xa09d
negl %edx
testl %edx, %edx
je 0xa095
testb %dil, %dil
je 0xa00f
movzbl 0x1(%rcx), %esi
subl $0x3d, %esi
jne 0xa00d
movzbl 0x2(%rcx), %esi
negl %esi
testl %esi, %esi
je 0xa0a1
movl %eax, %edx
subl $0x3d, %edx
jne 0xa02b
movzbl 0x1(%rcx), %edx
subl $0x3d, %edx
jne 0xa02b
movzbl 0x2(%rcx), %edx
negl %edx
testl %edx, %edx
je 0xa0a5
subl $0x21, %eax
jne 0xa043
movzbl 0x1(%rcx), %eax
subl $0x3d, %eax
jne 0xa043
movzbl 0x2(%rcx), %eax
negl %eax
testl %eax, %eax
jne 0xa0c2
movb $-0x72, %al
jmp 0xa0a7
movq %rbx, %rdi
leaq 0x1c77(%rip), %rsi      # 0xbcce
callq 0x8b19
testb %al, %al
jne 0xa2cc
movq %rbx, %rdi
leaq 0x1c65(%rip), %rsi      # 0xbcd3
callq 0x8b19
testb %al, %al
je 0xa360
movq 0x38(%rbx), %rax
movq (%rax), %rcx
movq 0x8(%rcx), %rcx
cmpb $0x28, (%rcx)
jne 0xa3a5
addq $0x8, %rax
jmp 0xa0d6
movb $-0x74, %al
jmp 0xa0a7
movb $-0x76, %al
jmp 0xa0a7
movb $-0x77, %al
jmp 0xa0a7
movb $-0x75, %al
jmp 0xa0a7
movb $-0x73, %al
movzwl 0x7132(%rip), %ecx      # 0x111e0
leal 0x1(%rcx), %edx
movw %dx, 0x7128(%rip)       # 0x111e0
leaq 0x7141(%rip), %rdx      # 0x11200
movb %al, (%rcx,%rdx)
movq 0x38(%rbx), %rax
movq (%rax), %rdi
callq 0x9dd4
movq 0x38(%rbx), %rax
addq $0x10, %rax
movq (%rax), %rbx
jmp 0x9e05
movq %rbx, %rdi
callq 0x8a89
movl %eax, %edi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0xa3e0
movq 0x8(%rbx), %rdi
callq 0xa4eb
addb $-0x6e, %al
movzwl 0x70d3(%rip), %ecx      # 0x111e0
leal 0x1(%rcx), %edx
movw %dx, 0x70c9(%rip)       # 0x111e0
leaq 0x70e2(%rip), %rdx      # 0x11200
movb %al, (%rcx,%rdx)
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x38(%rbx), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdi
callq 0xa4eb
addb $-0x5e, %al
movzwl 0x7096(%rip), %ecx      # 0x111e0
leal 0x1(%rcx), %edx
movw %dx, 0x708c(%rip)       # 0x111e0
leaq 0x70a5(%rip), %r15      # 0x11200
movb %al, (%rcx,%r15)
movq 0x38(%rbx), %rax
movq 0x18(%rax), %rdi
callq 0x8a89
movl %eax, %ebp
leaq 0x1b98(%rip), %rsi      # 0xbd0d
movq %rbx, %rdi
callq 0x6dc4
testq %rax, %rax
je 0xa25b
movq %rax, %r14
movl %ebp, %edi
callq 0xa3e0
movq 0x38(%r14), %rax
movq 0x8(%rax), %rdi
callq 0x8a89
movl %eax, %ebp
movq 0x38(%r14), %rax
movq (%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x1b64(%rip), %rsi      # 0xbd15
callq 0x2150
cmpl $0x1, %eax
sbbl $0x0, %ebp
jmp 0xa273
movq 0x38(%rbx), %rax
movq (%rax), %rax
movq 0x8(%rax), %r14
xorl %r15d, %r15d
leaq 0x6b3a(%rip), %r12      # 0x10d10
cmpq $0xc0, %r15
je 0xa2ff
movq (%r15,%r12), %rdi
movq %r14, %rsi
callq 0x2150
testl %eax, %eax
je 0xa1f9
addq $0x10, %r15
jmp 0xa1d6
movl 0x8(%r15,%r12), %r14d
movl 0x30(%rbx), %eax
addl $-0x2, %eax
pushq $0x2
popq %rcx
cltd
idivl %ecx
movzbl %al, %r8d
cmpl %r14d, %r8d
jne 0xa3bc
movb 0xc(%r15,%r12), %al
movzwl 0x6fbd(%rip), %ecx      # 0x111e0
leal 0x1(%rcx), %edx
movw %dx, 0x6fb3(%rip)       # 0x111e0
leaq 0x6fcc(%rip), %rdx      # 0x11200
movb %al, (%rcx,%rdx)
shlq $0x4, %r14
xorl %r15d, %r15d
cmpq %r15, %r14
je 0xa121
movq 0x38(%rbx), %rax
movq 0x10(%rax,%r15), %rdi
callq 0x9dd4
addq $0x10, %r15
jmp 0xa23e
movzwl 0x6f7e(%rip), %eax      # 0x111e0
leal 0x1(%rax), %ecx
movw %cx, 0x6f74(%rip)       # 0x111e0
movb $0x0, (%rax,%r15)
decl %ebp
movl %ebp, %edi
callq 0xa3e0
leaq 0x1a98(%rip), %rsi      # 0xbd19
movq %rbx, %rdi
callq 0x6dc4
testq %rax, %rax
je 0xa29f
movq 0x38(%rax), %rax
movq 0x8(%rax), %rdi
callq 0x8a89
movl %eax, %edi
jmp 0xa2a2
pushq $0x1
popq %rdi
callq 0xa3e0
leaq 0x1a70(%rip), %rsi      # 0xbd1e
movq %rbx, %rdi
callq 0x6dc4
movq %rax, %rdi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x8fe5
movzwl 0x6f0d(%rip), %eax      # 0x111e0
leal 0x1(%rax), %ecx
movw %cx, 0x6f03(%rip)       # 0x111e0
leaq 0x6f1c(%rip), %rcx      # 0x11200
movb $-0x55, (%rax,%rcx)
movq 0x38(%rbx), %rax
movq 0x8(%rax), %rdi
callq 0x9dd4
movq 0x38(%rbx), %rax
movq 0x10(%rax), %rdi
jmp 0xa2b9
movq 0x6cf2(%rip), %rax      # 0x10ff8
movq (%rax), %rdi
leaq 0x1a79(%rip), %rsi      # 0xbd89
movq %r14, %rdx
xorl %eax, %eax
callq 0x2160
pushq $-0x1
popq %rdi
callq 0x2240
leaq 0x1365(%rip), %rdi      # 0xb68e
leaq 0x1364(%rip), %rsi      # 0xb694
leaq 0x1a67(%rip), %rcx      # 0xbd9e
movl $0xaf, %edx
callq 0x20e0
leaq 0x1346(%rip), %rdi      # 0xb68e
leaq 0x1345(%rip), %rsi      # 0xb694
leaq 0x1a67(%rip), %rcx      # 0xbdbd
movl $0xba, %edx
callq 0x20e0
movq 0x6c91(%rip), %r14      # 0x10ff8
movq (%r14), %rsi
movq %rbx, %rdi
callq 0x6d6a
movq (%r14), %rdi
movq (%rbx), %rdx
leaq 0x195c(%rip), %rsi      # 0xbcdb
xorl %eax, %eax
callq 0x2160
leaq 0x1301(%rip), %rdi      # 0xb68e
leaq 0x1300(%rip), %rsi      # 0xb694
leaq 0x194d(%rip), %rcx      # 0xbce8
movl $0xf0, %edx
callq 0x20e0
movq 0x6c4c(%rip), %rax      # 0x10ff8
movq (%rax), %rsi
movq %rbx, %rdi
callq 0x6d6a
jmp 0xa31a
movq (%r15,%r12), %rdx
movq 0x6c31(%rip), %rax      # 0x10ff8
movq (%rax), %rdi
leaq 0x1955(%rip), %rsi      # 0xbd26
movl %r14d, %ecx
xorl %eax, %eax
callq 0x2160
jmp 0xa31a