// File: CobaltXII[P]cxcc/./parser/parser.hpp
// Function: parser_t::parse_relational_term()
expression_t* parse_relational_term() {
		expression_t* node = parse_shift_term();
		token_t token;
		while (input.peek().type == tk_bi_relational_greater_than ||
			   input.peek().type == tk_bi_relational_lesser_than ||
			   input.peek().type == tk_bi_relational_greater_than_or_equal_to ||
			   input.peek().type == tk_bi_relational_lesser_than_or_equal_to)
		{
			token = input.peek();
			binary_operator_t binary_operator = bi_error;
			if (token.type == tk_bi_relational_greater_than) {
				expect(tk_bi_relational_greater_than);
				binary_operator = bi_relational_greater_than;
			} else if (token.type == tk_bi_relational_lesser_than) {
				expect(tk_bi_relational_lesser_than);
				binary_operator = bi_relational_lesser_than;
			} else if (token.type == tk_bi_relational_greater_than_or_equal_to) {
				expect(tk_bi_relational_greater_than_or_equal_to);
				binary_operator = bi_relational_greater_than_or_equal_to;
			} else if (token.type == tk_bi_relational_lesser_than_or_equal_to) {
				expect(tk_bi_relational_lesser_than_or_equal_to);
				binary_operator = bi_relational_lesser_than_or_equal_to;
			}
			node = new expression_t((binary_expression_t){node, parse_shift_term(), binary_operator}, EXPRESSION_DEBUG);
		}
		return node;
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x2d0, %rsp            # imm = 0x2D0
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x290(%rbp)
callq 0x14a10
movq %rax, -0x10(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x8e00
movq -0x290(%rbp), %rsi
addq $0x20, %rsi
movb $0x0, -0xc9(%rbp)
movb $0x0, -0x109(%rbp)
movb $0x0, -0x149(%rbp)
leaq -0x80(%rbp), %rdi
callq 0xd3a0
jmp 0x14647
movb $0x1, %al
cmpl $0x20, -0x80(%rbp)
movb %al, -0x291(%rbp)
je 0x146eb
movq -0x290(%rbp), %rsi
addq $0x20, %rsi
leaq -0xc8(%rbp), %rdi
callq 0xd3a0
jmp 0x14672
movb $0x1, -0xc9(%rbp)
movb $0x1, %al
cmpl $0x21, -0xc8(%rbp)
movb %al, -0x291(%rbp)
je 0x146eb
movq -0x290(%rbp), %rsi
addq $0x20, %rsi
leaq -0x108(%rbp), %rdi
callq 0xd3a0
jmp 0x146a3
movb $0x1, -0x109(%rbp)
movb $0x1, %al
cmpl $0x22, -0x108(%rbp)
movb %al, -0x291(%rbp)
je 0x146eb
movq -0x290(%rbp), %rsi
addq $0x20, %rsi
leaq -0x148(%rbp), %rdi
callq 0xd3a0
jmp 0x146d4
movb $0x1, -0x149(%rbp)
cmpl $0x23, -0x148(%rbp)
sete %al
movb %al, -0x291(%rbp)
movb -0x291(%rbp), %al
movb %al, -0x292(%rbp)
testb $0x1, -0x149(%rbp)
jne 0x14702
jmp 0x1470e
leaq -0x148(%rbp), %rdi
callq 0xb430
testb $0x1, -0x109(%rbp)
jne 0x14719
jmp 0x14725
leaq -0x108(%rbp), %rdi
callq 0xb430
testb $0x1, -0xc9(%rbp)
jne 0x14730
jmp 0x1473c
leaq -0xc8(%rbp), %rdi
callq 0xb430
leaq -0x80(%rbp), %rdi
callq 0xb430
movb -0x292(%rbp), %al
testb $0x1, %al
jne 0x14754
jmp 0x149d0
movq -0x290(%rbp), %rsi
addq $0x20, %rsi
leaq -0x188(%rbp), %rdi
callq 0xd3a0
jmp 0x1476d
leaq -0x48(%rbp), %rdi
leaq -0x188(%rbp), %rsi
callq 0xb3e0
leaq -0x188(%rbp), %rdi
callq 0xb430
movl $0x1d, -0x18c(%rbp)
cmpl $0x20, -0x48(%rbp)
jne 0x14863
movq -0x290(%rbp), %rsi
leaq -0x1c8(%rbp), %rdi
movl $0x20, %edx
callq 0xe580
jmp 0x147b7
leaq -0x1c8(%rbp), %rdi
callq 0xb430
movl $0xf, -0x18c(%rbp)
jmp 0x1490f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x149f4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x14855
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x1483c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
testb $0x1, -0x109(%rbp)
jne 0x1482e
jmp 0x1483a
leaq -0x108(%rbp), %rdi
callq 0xb430
jmp 0x1483c
testb $0x1, -0xc9(%rbp)
jne 0x14847
jmp 0x14853
leaq -0xc8(%rbp), %rdi
callq 0xb430
jmp 0x14855
leaq -0x80(%rbp), %rdi
callq 0xb430
jmp 0x149f4
cmpl $0x21, -0x48(%rbp)
jne 0x1489b
movq -0x290(%rbp), %rsi
leaq -0x200(%rbp), %rdi
movl $0x21, %edx
callq 0xe580
jmp 0x14883
leaq -0x200(%rbp), %rdi
callq 0xb430
movl $0x10, -0x18c(%rbp)
jmp 0x1490d
cmpl $0x22, -0x48(%rbp)
jne 0x148d3
movq -0x290(%rbp), %rsi
leaq -0x238(%rbp), %rdi
movl $0x22, %edx
callq 0xe580
jmp 0x148bb
leaq -0x238(%rbp), %rdi
callq 0xb430
movl $0x11, -0x18c(%rbp)
jmp 0x1490b
cmpl $0x23, -0x48(%rbp)
jne 0x14909
movq -0x290(%rbp), %rsi
leaq -0x270(%rbp), %rdi
movl $0x23, %edx
callq 0xe580
jmp 0x148f3
leaq -0x270(%rbp), %rdi
callq 0xb430
movl $0x12, -0x18c(%rbp)
jmp 0x1490b
jmp 0x1490d
jmp 0x1490f
movl $0x118, %edi            # imm = 0x118
callq 0x32e0
movq %rax, -0x2a0(%rbp)
jmp 0x14922
movq -0x290(%rbp), %rdi
movq -0x10(%rbp), %rax
movq %rax, -0x288(%rbp)
leaq -0x280(%rbp), %rax
movq %rax, -0x2b0(%rbp)
callq 0x14a10
movq %rax, -0x2a8(%rbp)
jmp 0x14950
movq -0x2a0(%rbp), %rdi
movq -0x2b0(%rbp), %rax
movq -0x2a8(%rbp), %rcx
movq %rcx, (%rax)
movl -0x18c(%rbp), %eax
movl %eax, -0x278(%rbp)
movq -0x20(%rbp), %rsi
movq -0x18(%rbp), %rdx
movq -0x278(%rbp), %rcx
movq %rsp, %rax
movq %rcx, 0x10(%rax)
movups -0x288(%rbp), %xmm0
movups %xmm0, (%rax)
callq 0x13070
jmp 0x1499b
movq -0x2a0(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x1461c
movq -0x2a0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
movl $0x118, %esi            # imm = 0x118
callq 0x32f0
jmp 0x149f4
movq -0x10(%rbp), %rax
movq %rax, -0x2b8(%rbp)
leaq -0x48(%rbp), %rdi
callq 0xb430
movq -0x2b8(%rbp), %rax
addq $0x2d0, %rsp            # imm = 0x2D0
popq %rbp
retq
leaq -0x48(%rbp), %rdi
callq 0xb430
movq -0x88(%rbp), %rdi
callq 0x34c0
nopl (%rax)