// File: CobaltXII[P]cxcc/./parser/parser.hpp
// Function: parser_t::parse_assignment_term()
expression_t* parse_assignment_term() {
		std::vector<expression_t*> nodes;
		std::vector<binary_operator_t> operators;
		nodes.push_back(parse_logical_or_term());
		while (input.peek().type == tk_bi_assignment ||
			   input.peek().type == tk_bi_addition_assignment ||
			   input.peek().type == tk_bi_subtraction_assignment ||
			   input.peek().type == tk_bi_multiplication_assignment ||
			   input.peek().type == tk_bi_division_assignment ||
			   input.peek().type == tk_bi_modulo_assignment ||
			   input.peek().type == tk_bi_binary_and_assignment ||
			   input.peek().type == tk_bi_binary_or_assignment ||
			   input.peek().type == tk_bi_binary_xor_assignment ||
			   input.peek().type == tk_bi_binary_left_shift_assignment ||
			   input.peek().type == tk_bi_binary_right_shift_assignment)
		{
			token_t next = input.next();
			if (next.type == tk_bi_assignment) {
				operators.push_back(bi_assignment);
			} else if (next.type == tk_bi_addition_assignment) {
				operators.push_back(bi_addition_assignment);
			} else if (next.type == tk_bi_subtraction_assignment) {
				operators.push_back(bi_subtraction_assignment);
			} else if (next.type == tk_bi_multiplication_assignment) {
				operators.push_back(bi_multiplication_assignment);
			} else if (next.type == tk_bi_division_assignment) {
				operators.push_back(bi_division_assignment);
			} else if (next.type == tk_bi_modulo_assignment) {
				operators.push_back(bi_modulo_assignment);
			} else if (next.type == tk_bi_binary_and_assignment) {
				operators.push_back(bi_binary_and_assignment);
			} else if (next.type == tk_bi_binary_or_assignment) {
				operators.push_back(bi_binary_or_assignment);
			} else if (next.type == tk_bi_binary_xor_assignment) {
				operators.push_back(bi_binary_xor_assignment);
			} else if (next.type == tk_bi_binary_left_shift_assignment) {
				operators.push_back(bi_binary_left_shift_assignment);
			} else if (next.type == tk_bi_binary_right_shift_assignment) {
				operators.push_back(bi_binary_right_shift_assignment);
			}
			nodes.push_back(parse_logical_or_term());
		}
		if (nodes.size() == 1) {
			return nodes[0];
		} else {
			std::reverse(nodes.begin(), nodes.end());
			std::reverse(operators.begin(), operators.end());
			expression_t* node = new expression_t((binary_expression_t){nodes[1], nodes[0], operators[0]}, nodes[1]->lineno, nodes[1]->colno);
			nodes.erase(nodes.begin());
			nodes.erase(nodes.begin());
			operators.erase(operators.begin());
			while (nodes.size()) {
				expression_t* next = nodes[0];
				node = new expression_t((binary_expression_t){next, node, operators[0]}, next->lineno, next->colno);
				nodes.pop_back();
				operators.pop_back();
			}
			return node;
		}
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x4e0, %rsp            # imm = 0x4E0
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x440(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x12ca0
leaq -0x40(%rbp), %rdi
callq 0x12cc0
movq -0x440(%rbp), %rdi
callq 0x12d10
movq %rax, -0x438(%rbp)
jmp 0x12111
movq -0x438(%rbp), %rax
movq %rax, -0x48(%rbp)
leaq -0x28(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0x12ce0
jmp 0x1212b
jmp 0x1212d
movq -0x440(%rbp), %rsi
addq $0x20, %rsi
movb $0x0, -0xc9(%rbp)
movb $0x0, -0x109(%rbp)
movb $0x0, -0x149(%rbp)
movb $0x0, -0x189(%rbp)
movb $0x0, -0x1c9(%rbp)
movb $0x0, -0x209(%rbp)
movb $0x0, -0x249(%rbp)
movb $0x0, -0x289(%rbp)
movb $0x0, -0x2c9(%rbp)
movb $0x0, -0x309(%rbp)
leaq -0x90(%rbp), %rdi
callq 0xd3a0
jmp 0x1218c
movb $0x1, %al
cmpl $0x16, -0x90(%rbp)
movb %al, -0x441(%rbp)
je 0x123a6
movq -0x440(%rbp), %rsi
addq $0x20, %rsi
leaq -0xc8(%rbp), %rdi
callq 0xd3a0
jmp 0x121ba
movb $0x1, -0xc9(%rbp)
movb $0x1, %al
cmpl $0x17, -0xc8(%rbp)
movb %al, -0x441(%rbp)
je 0x123a6
movq -0x440(%rbp), %rsi
addq $0x20, %rsi
leaq -0x108(%rbp), %rdi
callq 0xd3a0
jmp 0x121ef
movb $0x1, -0x109(%rbp)
movb $0x1, %al
cmpl $0x18, -0x108(%rbp)
movb %al, -0x441(%rbp)
je 0x123a6
movq -0x440(%rbp), %rsi
addq $0x20, %rsi
leaq -0x148(%rbp), %rdi
callq 0xd3a0
jmp 0x12224
movb $0x1, -0x149(%rbp)
movb $0x1, %al
cmpl $0x19, -0x148(%rbp)
movb %al, -0x441(%rbp)
je 0x123a6
movq -0x440(%rbp), %rsi
addq $0x20, %rsi
leaq -0x188(%rbp), %rdi
callq 0xd3a0
jmp 0x12259
movb $0x1, -0x189(%rbp)
movb $0x1, %al
cmpl $0x1a, -0x188(%rbp)
movb %al, -0x441(%rbp)
je 0x123a6
movq -0x440(%rbp), %rsi
addq $0x20, %rsi
leaq -0x1c8(%rbp), %rdi
callq 0xd3a0
jmp 0x1228e
movb $0x1, -0x1c9(%rbp)
movb $0x1, %al
cmpl $0x1b, -0x1c8(%rbp)
movb %al, -0x441(%rbp)
je 0x123a6
movq -0x440(%rbp), %rsi
addq $0x20, %rsi
leaq -0x208(%rbp), %rdi
callq 0xd3a0
jmp 0x122c3
movb $0x1, -0x209(%rbp)
movb $0x1, %al
cmpl $0x26, -0x208(%rbp)
movb %al, -0x441(%rbp)
je 0x123a6
movq -0x440(%rbp), %rsi
addq $0x20, %rsi
leaq -0x248(%rbp), %rdi
callq 0xd3a0
jmp 0x122f8
movb $0x1, -0x249(%rbp)
movb $0x1, %al
cmpl $0x27, -0x248(%rbp)
movb %al, -0x441(%rbp)
je 0x123a6
movq -0x440(%rbp), %rsi
addq $0x20, %rsi
leaq -0x288(%rbp), %rdi
callq 0xd3a0
jmp 0x1232d
movb $0x1, -0x289(%rbp)
movb $0x1, %al
cmpl $0x28, -0x288(%rbp)
movb %al, -0x441(%rbp)
je 0x123a6
movq -0x440(%rbp), %rsi
addq $0x20, %rsi
leaq -0x2c8(%rbp), %rdi
callq 0xd3a0
jmp 0x1235e
movb $0x1, -0x2c9(%rbp)
movb $0x1, %al
cmpl $0x2b, -0x2c8(%rbp)
movb %al, -0x441(%rbp)
je 0x123a6
movq -0x440(%rbp), %rsi
addq $0x20, %rsi
leaq -0x308(%rbp), %rdi
callq 0xd3a0
jmp 0x1238f
movb $0x1, -0x309(%rbp)
cmpl $0x2c, -0x308(%rbp)
sete %al
movb %al, -0x441(%rbp)
movb -0x441(%rbp), %al
movb %al, -0x442(%rbp)
testb $0x1, -0x309(%rbp)
jne 0x123bd
jmp 0x123c9
leaq -0x308(%rbp), %rdi
callq 0xb430
testb $0x1, -0x2c9(%rbp)
jne 0x123d4
jmp 0x123e0
leaq -0x2c8(%rbp), %rdi
callq 0xb430
testb $0x1, -0x289(%rbp)
jne 0x123eb
jmp 0x123f7
leaq -0x288(%rbp), %rdi
callq 0xb430
testb $0x1, -0x249(%rbp)
jne 0x12402
jmp 0x1240e
leaq -0x248(%rbp), %rdi
callq 0xb430
testb $0x1, -0x209(%rbp)
jne 0x12419
jmp 0x12425
leaq -0x208(%rbp), %rdi
callq 0xb430
testb $0x1, -0x1c9(%rbp)
jne 0x12430
jmp 0x1243c
leaq -0x1c8(%rbp), %rdi
callq 0xb430
testb $0x1, -0x189(%rbp)
jne 0x12447
jmp 0x12453
leaq -0x188(%rbp), %rdi
callq 0xb430
testb $0x1, -0x149(%rbp)
jne 0x1245e
jmp 0x1246a
leaq -0x148(%rbp), %rdi
callq 0xb430
testb $0x1, -0x109(%rbp)
jne 0x12475
jmp 0x12481
leaq -0x108(%rbp), %rdi
callq 0xb430
testb $0x1, -0xc9(%rbp)
jne 0x1248c
jmp 0x12498
leaq -0xc8(%rbp), %rdi
callq 0xb430
leaq -0x90(%rbp), %rdi
callq 0xb430
movb -0x442(%rbp), %al
testb $0x1, %al
jne 0x124b3
jmp 0x128a8
movq -0x440(%rbp), %rsi
addq $0x20, %rsi
leaq -0x348(%rbp), %rdi
callq 0xe7d0
jmp 0x124cc
cmpl $0x16, -0x348(%rbp)
jne 0x126b6
movl $0x5, -0x34c(%rbp)
leaq -0x40(%rbp), %rdi
leaq -0x34c(%rbp), %rsi
callq 0x12ea0
jmp 0x124f5
jmp 0x12862
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x12c76
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x12688
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x1266f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x12656
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x1263d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x12624
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x1260b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x125f2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x125d9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x125c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
testb $0x1, -0x2c9(%rbp)
jne 0x125b2
jmp 0x125be
leaq -0x2c8(%rbp), %rdi
callq 0xb430
jmp 0x125c0
testb $0x1, -0x289(%rbp)
jne 0x125cb
jmp 0x125d7
leaq -0x288(%rbp), %rdi
callq 0xb430
jmp 0x125d9
testb $0x1, -0x249(%rbp)
jne 0x125e4
jmp 0x125f0
leaq -0x248(%rbp), %rdi
callq 0xb430
jmp 0x125f2
testb $0x1, -0x209(%rbp)
jne 0x125fd
jmp 0x12609
leaq -0x208(%rbp), %rdi
callq 0xb430
jmp 0x1260b
testb $0x1, -0x1c9(%rbp)
jne 0x12616
jmp 0x12622
leaq -0x1c8(%rbp), %rdi
callq 0xb430
jmp 0x12624
testb $0x1, -0x189(%rbp)
jne 0x1262f
jmp 0x1263b
leaq -0x188(%rbp), %rdi
callq 0xb430
jmp 0x1263d
testb $0x1, -0x149(%rbp)
jne 0x12648
jmp 0x12654
leaq -0x148(%rbp), %rdi
callq 0xb430
jmp 0x12656
testb $0x1, -0x109(%rbp)
jne 0x12661
jmp 0x1266d
leaq -0x108(%rbp), %rdi
callq 0xb430
jmp 0x1266f
testb $0x1, -0xc9(%rbp)
jne 0x1267a
jmp 0x12686
leaq -0xc8(%rbp), %rdi
callq 0xb430
jmp 0x12688
leaq -0x90(%rbp), %rdi
callq 0xb430
jmp 0x12c76
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x348(%rbp), %rdi
callq 0xb430
jmp 0x12c76
cmpl $0x17, -0x348(%rbp)
jne 0x126e0
movl $0x6, -0x350(%rbp)
leaq -0x40(%rbp), %rdi
leaq -0x350(%rbp), %rsi
callq 0x12ea0
jmp 0x126db
jmp 0x12860
cmpl $0x18, -0x348(%rbp)
jne 0x1270a
movl $0x7, -0x354(%rbp)
leaq -0x40(%rbp), %rdi
leaq -0x354(%rbp), %rsi
callq 0x12ea0
jmp 0x12705
jmp 0x1285e
cmpl $0x19, -0x348(%rbp)
jne 0x12734
movl $0x8, -0x358(%rbp)
leaq -0x40(%rbp), %rdi
leaq -0x358(%rbp), %rsi
callq 0x12ea0
jmp 0x1272f
jmp 0x1285c
cmpl $0x1a, -0x348(%rbp)
jne 0x1275e
movl $0x9, -0x35c(%rbp)
leaq -0x40(%rbp), %rdi
leaq -0x35c(%rbp), %rsi
callq 0x12ea0
jmp 0x12759
jmp 0x1285a
cmpl $0x1b, -0x348(%rbp)
jne 0x12788
movl $0xa, -0x360(%rbp)
leaq -0x40(%rbp), %rdi
leaq -0x360(%rbp), %rsi
callq 0x12ea0
jmp 0x12783
jmp 0x12858
cmpl $0x26, -0x348(%rbp)
jne 0x127b2
movl $0x16, -0x364(%rbp)
leaq -0x40(%rbp), %rdi
leaq -0x364(%rbp), %rsi
callq 0x12ea0
jmp 0x127ad
jmp 0x12856
cmpl $0x27, -0x348(%rbp)
jne 0x127d9
movl $0x17, -0x368(%rbp)
leaq -0x40(%rbp), %rdi
leaq -0x368(%rbp), %rsi
callq 0x12ea0
jmp 0x127d7
jmp 0x12854
cmpl $0x28, -0x348(%rbp)
jne 0x12800
movl $0x18, -0x36c(%rbp)
leaq -0x40(%rbp), %rdi
leaq -0x36c(%rbp), %rsi
callq 0x12ea0
jmp 0x127fe
jmp 0x12852
cmpl $0x2b, -0x348(%rbp)
jne 0x12827
movl $0x1b, -0x370(%rbp)
leaq -0x40(%rbp), %rdi
leaq -0x370(%rbp), %rsi
callq 0x12ea0
jmp 0x12825
jmp 0x12850
cmpl $0x2c, -0x348(%rbp)
jne 0x1284e
movl $0x1c, -0x374(%rbp)
leaq -0x40(%rbp), %rdi
leaq -0x374(%rbp), %rsi
callq 0x12ea0
jmp 0x1284c
jmp 0x1284e
jmp 0x12850
jmp 0x12852
jmp 0x12854
jmp 0x12856
jmp 0x12858
jmp 0x1285a
jmp 0x1285c
jmp 0x1285e
jmp 0x12860
jmp 0x12862
movq -0x440(%rbp), %rdi
callq 0x12d10
movq %rax, -0x450(%rbp)
jmp 0x12877
movq -0x450(%rbp), %rax
movq %rax, -0x380(%rbp)
leaq -0x28(%rbp), %rdi
leaq -0x380(%rbp), %rsi
callq 0x12ce0
jmp 0x12897
leaq -0x348(%rbp), %rdi
callq 0xb430
jmp 0x1212d
leaq -0x28(%rbp), %rdi
callq 0x12ed0
cmpq $0x1, %rax
jne 0x128da
leaq -0x28(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x12ef0
movq (%rax), %rax
movq %rax, -0x8(%rbp)
movl $0x1, -0x384(%rbp)
jmp 0x12c57
leaq -0x28(%rbp), %rdi
movq %rdi, -0x458(%rbp)
callq 0x12f50
movq -0x458(%rbp), %rdi
movq %rax, -0x390(%rbp)
callq 0x12f80
movq %rax, -0x398(%rbp)
movq -0x390(%rbp), %rdi
movq -0x398(%rbp), %rsi
callq 0x12f10
jmp 0x12919
leaq -0x40(%rbp), %rdi
movq %rdi, -0x460(%rbp)
callq 0x12ff0
movq -0x460(%rbp), %rdi
movq %rax, -0x3a0(%rbp)
callq 0x13020
movq %rax, -0x3a8(%rbp)
movq -0x3a0(%rbp), %rdi
movq -0x3a8(%rbp), %rsi
callq 0x12fb0
jmp 0x12958
movl $0x118, %edi            # imm = 0x118
callq 0x32e0
movq %rax, -0x468(%rbp)
jmp 0x1296b
leaq -0x28(%rbp), %rdi
movq %rdi, -0x480(%rbp)
movl $0x1, %esi
movq %rsi, -0x478(%rbp)
callq 0x12ef0
movq -0x480(%rbp), %rdi
movq (%rax), %rax
movq %rax, -0x3c8(%rbp)
xorl %eax, %eax
movl %eax, %esi
movq %rsi, -0x488(%rbp)
callq 0x12ef0
movq -0x488(%rbp), %rsi
movq (%rax), %rax
movq %rax, -0x3c0(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x13050
movq -0x480(%rbp), %rdi
movq -0x478(%rbp), %rsi
movl (%rax), %eax
movl %eax, -0x3b8(%rbp)
callq 0x12ef0
movq -0x480(%rbp), %rdi
movq -0x478(%rbp), %rsi
movq (%rax), %rax
movq 0x10(%rax), %rax
movq %rax, -0x470(%rbp)
callq 0x12ef0
movq -0x468(%rbp), %rdi
movq -0x470(%rbp), %rsi
movq (%rax), %rax
movq 0x18(%rax), %rdx
movq -0x3b8(%rbp), %rcx
movq %rsp, %rax
movq %rcx, 0x10(%rax)
movups -0x3c8(%rbp), %xmm0
movups %xmm0, (%rax)
callq 0x13070
jmp 0x12a32
movq -0x468(%rbp), %rax
movq %rax, -0x3b0(%rbp)
leaq -0x28(%rbp), %rdi
movq %rdi, -0x498(%rbp)
callq 0x12f50
movq %rax, -0x3d8(%rbp)
leaq -0x3d0(%rbp), %rdi
leaq -0x3d8(%rbp), %rsi
callq 0x13190
movq -0x498(%rbp), %rdi
movq -0x3d0(%rbp), %rsi
callq 0x13120
movq %rax, -0x490(%rbp)
jmp 0x12a86
movq -0x490(%rbp), %rax
movq %rax, -0x3e0(%rbp)
leaq -0x28(%rbp), %rdi
movq %rdi, -0x4a8(%rbp)
callq 0x12f50
movq %rax, -0x3f0(%rbp)
leaq -0x3e8(%rbp), %rdi
leaq -0x3f0(%rbp), %rsi
callq 0x13190
movq -0x4a8(%rbp), %rdi
movq -0x3e8(%rbp), %rsi
callq 0x13120
movq %rax, -0x4a0(%rbp)
jmp 0x12ada
movq -0x4a0(%rbp), %rax
movq %rax, -0x3f8(%rbp)
leaq -0x40(%rbp), %rdi
movq %rdi, -0x4b8(%rbp)
callq 0x12ff0
movq %rax, -0x408(%rbp)
leaq -0x400(%rbp), %rdi
leaq -0x408(%rbp), %rsi
callq 0x13240
movq -0x4b8(%rbp), %rdi
movq -0x400(%rbp), %rsi
callq 0x131d0
movq %rax, -0x4b0(%rbp)
jmp 0x12b2e
movq -0x4b0(%rbp), %rax
movq %rax, -0x410(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x12ed0
cmpq $0x0, %rax
je 0x12c42
xorl %eax, %eax
movl %eax, %esi
leaq -0x28(%rbp), %rdi
callq 0x12ef0
movq (%rax), %rax
movq %rax, -0x418(%rbp)
movl $0x118, %edi            # imm = 0x118
callq 0x32e0
movq %rax, -0x4c0(%rbp)
jmp 0x12b79
movq -0x418(%rbp), %rax
movq %rax, -0x430(%rbp)
movq -0x3b0(%rbp), %rax
movq %rax, -0x428(%rbp)
xorl %eax, %eax
movl %eax, %esi
leaq -0x40(%rbp), %rdi
callq 0x13050
movq -0x4c0(%rbp), %rdi
movl (%rax), %eax
movl %eax, -0x420(%rbp)
movq -0x418(%rbp), %rax
movq 0x10(%rax), %rsi
movq 0x18(%rax), %rdx
movq -0x420(%rbp), %rcx
movq %rsp, %rax
movq %rcx, 0x10(%rax)
movups -0x430(%rbp), %xmm0
movups %xmm0, (%rax)
callq 0x13070
jmp 0x12bdf
movq -0x4c0(%rbp), %rax
movq %rax, -0x3b0(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x13280
leaq -0x40(%rbp), %rdi
callq 0x132b0
jmp 0x12b3c
movq -0x468(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
movl $0x118, %esi            # imm = 0x118
callq 0x32f0
jmp 0x12c76
movq -0x4c0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
movl $0x118, %esi            # imm = 0x118
callq 0x32f0
jmp 0x12c76
movq -0x3b0(%rbp), %rax
movq %rax, -0x8(%rbp)
movl $0x1, -0x384(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x132e0
leaq -0x28(%rbp), %rdi
callq 0x13340
movq -0x8(%rbp), %rax
addq $0x4e0, %rsp            # imm = 0x4E0
popq %rbp
retq
leaq -0x40(%rbp), %rdi
callq 0x132e0
leaq -0x28(%rbp), %rdi
callq 0x13340
movq -0x50(%rbp), %rdi
callq 0x34c0
nopw %cs:(%rax,%rax)
nopl (%rax,%rax)