// File: CobaltXII[P]cxcc/./parser/parser.hpp
// Function: parser_t::parse_additive_term()
expression_t* parse_additive_term() {
		expression_t* node = parse_multiplicative_term();
		token_t token;
		while (input.peek().type == tk_plus ||
			   input.peek().type == tk_minus)
		{
			token = input.peek();
			binary_operator_t binary_operator = bi_error;
			if (token.type == tk_plus) {
				expect(tk_plus);
				binary_operator = bi_addition;
			} else if (token.type == tk_minus) {
				expect(tk_minus);
				binary_operator = bi_subtraction;
			}
			node = new expression_t((binary_expression_t){node, parse_multiplicative_term(), binary_operator}, EXPRESSION_DEBUG);
		}
		return node;
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1e0, %rsp            # imm = 0x1E0
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x1a0(%rbp)
callq 0x14f70
movq %rax, -0x10(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x8e00
movq -0x1a0(%rbp), %rsi
addq $0x20, %rsi
movb $0x0, -0xc9(%rbp)
leaq -0x80(%rbp), %rdi
callq 0xd3a0
jmp 0x14d09
movb $0x1, %al
cmpl $0x2f, -0x80(%rbp)
movb %al, -0x1a1(%rbp)
je 0x14d47
movq -0x1a0(%rbp), %rsi
addq $0x20, %rsi
leaq -0xc8(%rbp), %rdi
callq 0xd3a0
jmp 0x14d30
movb $0x1, -0xc9(%rbp)
cmpl $0x30, -0xc8(%rbp)
sete %al
movb %al, -0x1a1(%rbp)
movb -0x1a1(%rbp), %al
movb %al, -0x1a2(%rbp)
testb $0x1, -0xc9(%rbp)
jne 0x14d5e
jmp 0x14d6a
leaq -0xc8(%rbp), %rdi
callq 0xb430
leaq -0x80(%rbp), %rdi
callq 0xb430
movb -0x1a2(%rbp), %al
testb $0x1, %al
jne 0x14d82
jmp 0x14f29
movq -0x1a0(%rbp), %rsi
addq $0x20, %rsi
leaq -0x108(%rbp), %rdi
callq 0xd3a0
jmp 0x14d9b
leaq -0x48(%rbp), %rdi
leaq -0x108(%rbp), %rsi
callq 0xb3e0
leaq -0x108(%rbp), %rdi
callq 0xb430
movl $0x1d, -0x10c(%rbp)
cmpl $0x2f, -0x48(%rbp)
jne 0x14e30
movq -0x1a0(%rbp), %rsi
leaq -0x148(%rbp), %rdi
movl $0x2f, %edx
callq 0xe580
jmp 0x14de1
leaq -0x148(%rbp), %rdi
callq 0xb430
movl $0x0, -0x10c(%rbp)
jmp 0x14e68
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x14f4d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x80(%rbp), %rdi
callq 0xb430
jmp 0x14f4d
cmpl $0x30, -0x48(%rbp)
jne 0x14e66
movq -0x1a0(%rbp), %rsi
leaq -0x180(%rbp), %rdi
movl $0x30, %edx
callq 0xe580
jmp 0x14e50
leaq -0x180(%rbp), %rdi
callq 0xb430
movl $0x1, -0x10c(%rbp)
jmp 0x14e68
movl $0x118, %edi            # imm = 0x118
callq 0x32e0
movq %rax, -0x1b0(%rbp)
jmp 0x14e7b
movq -0x1a0(%rbp), %rdi
movq -0x10(%rbp), %rax
movq %rax, -0x198(%rbp)
leaq -0x190(%rbp), %rax
movq %rax, -0x1c0(%rbp)
callq 0x14f70
movq %rax, -0x1b8(%rbp)
jmp 0x14ea9
movq -0x1b0(%rbp), %rdi
movq -0x1c0(%rbp), %rax
movq -0x1b8(%rbp), %rcx
movq %rcx, (%rax)
movl -0x10c(%rbp), %eax
movl %eax, -0x188(%rbp)
movq -0x20(%rbp), %rsi
movq -0x18(%rbp), %rdx
movq -0x188(%rbp), %rcx
movq %rsp, %rax
movq %rcx, 0x10(%rax)
movups -0x198(%rbp), %xmm0
movups %xmm0, (%rax)
callq 0x13070
jmp 0x14ef4
movq -0x1b0(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x14cec
movq -0x1b0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
movl $0x118, %esi            # imm = 0x118
callq 0x32f0
jmp 0x14f4d
movq -0x10(%rbp), %rax
movq %rax, -0x1c8(%rbp)
leaq -0x48(%rbp), %rdi
callq 0xb430
movq -0x1c8(%rbp), %rax
addq $0x1e0, %rsp            # imm = 0x1E0
popq %rbp
retq
leaq -0x48(%rbp), %rdi
callq 0xb430
movq -0x88(%rbp), %rdi
callq 0x34c0
nopw %cs:(%rax,%rax)
nopl (%rax)