// File: /workspace/github_cpp_makefile_star2_O2/CobaltXII[P]cxcc/./parser/parser.hpp
// Function: parser_t::parse_literal_no_suffix()
expression_t* parse_literal_no_suffix() {
		token_t peek = input.peek();
		int lineno = peek.lineno;
		int colno = peek.colno;
		#define EXPRESSION_DEBUG lineno, colno - peek.text.length() - 1
		if (peek.type == tk_lit_integer) {
			return new expression_t(expect(tk_lit_integer).text, "int", EXPRESSION_DEBUG);
		} else if (peek.type == tk_lit_string) {
			return new expression_t(expect(tk_lit_string).text, "str", EXPRESSION_DEBUG - 2);
		} else if (peek.type == tk_lit_character) {
			return new expression_t(expect(tk_lit_character).text, "chr", EXPRESSION_DEBUG - 2);
		} else if (peek.type == tk_identifier) {
			identifier_t identifier = parse_identifier();
			peek = input.peek();
			if (peek.type == tk_left_parenthesis) {
				expect(tk_left_parenthesis);
				std::vector<expression_t*> parameters;
				while (input.peek().type != tk_right_parenthesis) {
					parameters.push_back(parse_expression());
					if (input.peek().type != tk_right_parenthesis) {
						expect(tk_comma);
					}
				}
				expect(tk_right_parenthesis);
				return new expression_t({identifier, parameters}, EXPRESSION_DEBUG);
			} else {
				return new expression_t(identifier, "id", EXPRESSION_DEBUG);
			}
		} else if (peek.type == tk_left_parenthesis) {
			expect(tk_left_parenthesis);
			expression_t* subexpression = parse_expression();
			expect(tk_right_parenthesis);
			return subexpression;
		} else if (peek.type == tk_asterisk) {
			expect(tk_asterisk);
			return new expression_t({parse_literal(), un_value_of}, EXPRESSION_DEBUG);
		} else if (peek.type == tk_plus) {
			expect(tk_plus);
			return new expression_t({parse_literal(), un_arithmetic_positive}, EXPRESSION_DEBUG);
		} else if (peek.type == tk_minus) {
			expect(tk_minus);
			return new expression_t({parse_literal(), un_arithmetic_negative}, EXPRESSION_DEBUG);
		} else if (peek.type == tk_ampersand) {
			expect(tk_ampersand);
			return new expression_t({parse_literal(), un_address_of}, EXPRESSION_DEBUG);
		} else if (peek.type == tk_un_logical_not) {
			expect(tk_un_logical_not);
			return new expression_t({parse_literal(), un_logical_not}, EXPRESSION_DEBUG);
		} else if (peek.type == tk_un_binary_not) {
			expect(tk_un_binary_not);
			return new expression_t({parse_literal(), un_binary_not}, EXPRESSION_DEBUG);
		} else if (peek.type == tk_int) {
			expect(tk_int);
			while (input.peek().type == tk_asterisk) {
				expect(tk_asterisk);
			}
			return new expression_t("0", "int", EXPRESSION_DEBUG);
		} else {
			die("expected literal");
			return nullptr;
		}
		#undef EXPRESSION_DEBUG
	}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x528, %rsp            # imm = 0x528
movq %rdi, %r12
leaq 0x20(%rdi), %rbx
leaq 0x48(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rsi
callq 0x5d52
movq 0x28(%r14), %rax
movq %rax, (%rsp)
movq 0x30(%r14), %rax
movq %rax, 0x8(%rsp)
movl (%r14), %eax
cmpq $0xc, %rax
ja 0x8e6b
leaq 0x73a3(%rip), %rcx      # 0x10104
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
movq %r12, %r15
jmpq *%rax
leaq 0x80(%rsp), %rdi
movq %r12, %rsi
callq 0x5e00
leaq 0x10(%rsp), %rdi
movq %rbx, %rsi
callq 0x5d52
leaq 0x48(%rsp), %r14
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
callq 0x5280
leaq 0x18(%rsp), %rdi
callq 0x2100
cmpl $0xc, (%r14)
jne 0x92ef
leaq 0x4f0(%rsp), %rdi
pushq $0xc
popq %rdx
movq %r12, %rsi
callq 0x62f0
leaq 0x4f8(%rsp), %rdi
callq 0x2100
leaq 0x100(%rsp), %r13
andq $0x0, 0x10(%r13)
xorps %xmm0, %xmm0
movaps %xmm0, (%r13)
leaq 0x18(%rsp), %r12
leaq 0x10(%rsp), %rbp
movq %rbp, %rdi
movq %rbx, %rsi
callq 0x5d52
movl 0x10(%rsp), %r14d
movq %r12, %rdi
callq 0x2100
cmpl $0xd, %r14d
je 0x9375
movq %r15, %rdi
callq 0x742e
movq %rax, 0x10(%rsp)
movq %r13, %rdi
movq %rbp, %rsi
callq 0x7c6c
movq %rbp, %rdi
movq %rbx, %rsi
callq 0x5d52
movl 0x10(%rsp), %r14d
leaq 0x18(%rsp), %rdi
callq 0x2100
cmpl $0xd, %r14d
je 0x8def
leaq 0x4b8(%rsp), %rdi
movq %r15, %rsi
pushq $0x12
popq %rdx
callq 0x62f0
leaq 0x4c0(%rsp), %rdi
callq 0x2100
jmp 0x8def
addl $-0x2d, %eax
cmpl $0x5, %eax
ja 0x8ed3
leaq 0x72be(%rip), %rcx      # 0x10138
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x2f8(%rsp), %rdi
pushq $0x2d
popq %rdx
movq %r12, %rsi
callq 0x62f0
leaq 0x300(%rsp), %rdi
callq 0x2100
movl $0x118, %edi            # imm = 0x118
callq 0x2240
movq %rax, %rbx
movq %r12, %rdi
callq 0x8c00
movslq (%rsp), %rcx
movslq 0x8(%rsp), %rdx
movq 0x58(%rsp), %r8
notq %r8
addq %rdx, %r8
pushq $0x4
jmp 0x92de
leaq 0x7b29(%rip), %rsi      # 0x10a03
leaq 0x118(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x3a1e
leaq 0x118(%rsp), %rsi
movq %r12, %rdi
callq 0x9baa
leaq 0x118(%rsp), %rdi
callq 0x2100
xorl %ebx, %ebx
jmp 0x95bb
movl $0x118, %edi            # imm = 0x118
callq 0x2240
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
pushq $0x3
popq %rdx
movq %r12, %rsi
callq 0x62f0
leaq 0xb0(%rsp), %rcx
movq %rcx, -0x10(%rcx)
leaq 0x28(%rsp), %rax
movq -0x10(%rax), %rdx
cmpq %rax, %rdx
je 0x9417
movq %rdx, 0xa0(%rsp)
movq 0x28(%rsp), %rcx
movq %rcx, 0xb0(%rsp)
jmp 0x941d
leaq 0x448(%rsp), %rdi
pushq $0xc
popq %rdx
movq %r12, %rsi
callq 0x62f0
leaq 0x450(%rsp), %rdi
callq 0x2100
movq %r12, %rdi
callq 0x742e
movq %rax, %rbx
leaq 0x410(%rsp), %rdi
pushq $0xd
popq %rdx
movq %r12, %rsi
callq 0x62f0
leaq 0x418(%rsp), %rdi
jmp 0x95b6
movl $0x118, %edi            # imm = 0x118
callq 0x2240
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
pushq $0x1
popq %rdx
movq %r12, %rsi
callq 0x62f0
leaq 0xf0(%rsp), %rcx
movq %rcx, -0x10(%rcx)
leaq 0x28(%rsp), %rax
movq -0x10(%rax), %rdx
cmpq %rax, %rdx
je 0x94a2
movq %rdx, 0xe0(%rsp)
movq 0x28(%rsp), %rcx
movq %rcx, 0xf0(%rsp)
jmp 0x94a8
movl $0x118, %edi            # imm = 0x118
callq 0x2240
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
pushq $0x2
popq %rdx
movq %r12, %rsi
callq 0x62f0
leaq 0xd0(%rsp), %rcx
movq %rcx, -0x10(%rcx)
leaq 0x28(%rsp), %rax
movq -0x10(%rax), %rdx
cmpq %rax, %rdx
je 0x9528
movq %rdx, 0xc0(%rsp)
movq 0x28(%rsp), %rcx
movq %rcx, 0xd0(%rsp)
jmp 0x952e
leaq 0x288(%rsp), %rdi
pushq $0x6
popq %rdx
movq %r12, %rsi
callq 0x62f0
leaq 0x290(%rsp), %rdi
callq 0x2100
leaq 0x10(%rsp), %r13
leaq 0x250(%rsp), %rbp
pushq $0x31
popq %r14
movq %r13, %rdi
movq %rbx, %rsi
callq 0x5d52
movl 0x10(%rsp), %r12d
leaq 0x18(%rsp), %rdi
callq 0x2100
cmpl $0x31, %r12d
jne 0x90c8
movq %rbp, %rdi
movq %r15, %rsi
movl %r14d, %edx
callq 0x62f0
leaq 0x258(%rsp), %rdi
callq 0x2100
jmp 0x908b
movl $0x118, %edi            # imm = 0x118
callq 0x2240
movq %rax, %rbx
leaq 0x7925(%rip), %rsi      # 0x10a01
leaq 0x158(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x3a1e
leaq 0x7410(%rip), %rsi      # 0x10505
leaq 0x138(%rsp), %rdi
leaq 0x80(%rsp), %rdx
callq 0x3a1e
movslq (%rsp), %rcx
movslq 0x8(%rsp), %rax
movq 0x58(%rsp), %r8
notq %r8
addq %rax, %r8
leaq 0x158(%rsp), %rsi
leaq 0x138(%rsp), %rdx
movq %rbx, %rdi
callq 0x9802
leaq 0x138(%rsp), %rdi
callq 0x2100
leaq 0x158(%rsp), %rdi
jmp 0x95b6
leaq 0x3d8(%rsp), %rdi
pushq $0x31
popq %rdx
movq %r12, %rsi
callq 0x62f0
leaq 0x3e0(%rsp), %rdi
callq 0x2100
movl $0x118, %edi            # imm = 0x118
callq 0x2240
movq %rax, %rbx
movq %r12, %rdi
callq 0x8c00
movslq (%rsp), %rcx
movslq 0x8(%rsp), %rdx
movq 0x58(%rsp), %r8
notq %r8
addq %rdx, %r8
movq %rbx, %rdi
movq %rax, %rsi
xorl %edx, %edx
jmp 0x92e5
leaq 0x3a0(%rsp), %rdi
pushq $0x2f
popq %rdx
movq %r12, %rsi
callq 0x62f0
leaq 0x3a8(%rsp), %rdi
callq 0x2100
movl $0x118, %edi            # imm = 0x118
callq 0x2240
movq %rax, %rbx
movq %r12, %rdi
callq 0x8c00
movslq (%rsp), %rcx
movslq 0x8(%rsp), %rdx
movq 0x58(%rsp), %r8
notq %r8
addq %rdx, %r8
pushq $0x1
jmp 0x92de
leaq 0x368(%rsp), %rdi
pushq $0x30
popq %rdx
movq %r12, %rsi
callq 0x62f0
leaq 0x370(%rsp), %rdi
callq 0x2100
movl $0x118, %edi            # imm = 0x118
callq 0x2240
movq %rax, %rbx
movq %r12, %rdi
callq 0x8c00
movslq (%rsp), %rcx
movslq 0x8(%rsp), %rdx
movq 0x58(%rsp), %r8
notq %r8
addq %rdx, %r8
pushq $0x2
jmp 0x92de
leaq 0x2c0(%rsp), %rdi
pushq $0x2e
popq %rdx
movq %r12, %rsi
callq 0x62f0
leaq 0x2c8(%rsp), %rdi
callq 0x2100
movl $0x118, %edi            # imm = 0x118
callq 0x2240
movq %rax, %rbx
movq %r12, %rdi
callq 0x8c00
movslq (%rsp), %rcx
movslq 0x8(%rsp), %rdx
movq 0x58(%rsp), %r8
notq %r8
addq %rdx, %r8
pushq $0x5
jmp 0x92de
leaq 0x330(%rsp), %rdi
pushq $0x32
popq %rdx
movq %r12, %rsi
callq 0x62f0
leaq 0x338(%rsp), %rdi
callq 0x2100
movl $0x118, %edi            # imm = 0x118
callq 0x2240
movq %rax, %rbx
movq %r12, %rdi
callq 0x8c00
movslq (%rsp), %rcx
movslq 0x8(%rsp), %rdx
movq 0x58(%rsp), %r8
notq %r8
addq %rdx, %r8
pushq $0x3
popq %rdx
movq %rbx, %rdi
movq %rax, %rsi
callq 0x9b12
jmp 0x95bb
movl $0x118, %edi            # imm = 0x118
callq 0x2240
movq %rax, %rbx
leaq 0x198(%rsp), %rdi
leaq 0x80(%rsp), %rsi
callq 0x22e0
leaq 0x76a2(%rip), %rsi      # 0x109ba
leaq 0x178(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x3a1e
movslq (%rsp), %rcx
movslq 0x8(%rsp), %rax
movq 0x58(%rsp), %r8
notq %r8
addq %rax, %r8
leaq 0x198(%rsp), %rsi
leaq 0x178(%rsp), %rdx
movq %rbx, %rdi
callq 0x9802
leaq 0x178(%rsp), %rdi
callq 0x2100
leaq 0x198(%rsp), %rdi
callq 0x2100
jmp 0x940a
leaq 0x480(%rsp), %rdi
pushq $0xd
popq %rdx
movq %r15, %rsi
callq 0x62f0
leaq 0x488(%rsp), %rdi
callq 0x2100
movl $0x118, %edi            # imm = 0x118
callq 0x2240
movq %rax, %rbx
leaq 0x218(%rsp), %rdi
leaq 0x80(%rsp), %rsi
callq 0x22e0
leaq 0x238(%rsp), %rdi
leaq 0x100(%rsp), %rsi
callq 0x999a
movslq (%rsp), %rdx
movslq 0x8(%rsp), %rax
movq 0x58(%rsp), %rcx
notq %rcx
addq %rax, %rcx
leaq 0x218(%rsp), %rsi
movq %rbx, %rdi
callq 0x99e8
leaq 0x218(%rsp), %rdi
callq 0x9afc
leaq 0x100(%rsp), %rdi
callq 0x9c56
leaq 0x80(%rsp), %rdi
jmp 0x95b6
movups (%rax), %xmm0
movups %xmm0, (%rcx)
leaq 0x18(%rsp), %r15
movq 0x8(%r15), %rcx
movq %rcx, 0xa8(%rsp)
movq %rax, (%r15)
andq $0x0, 0x8(%r15)
movb $0x0, 0x10(%r15)
leaq 0x75bb(%rip), %rsi      # 0x109fd
leaq 0x1b8(%rsp), %rdi
leaq 0x80(%rsp), %rdx
callq 0x3a1e
movslq (%rsp), %rcx
movslq 0x8(%rsp), %rax
movq 0x58(%rsp), %rdx
notq %rdx
leaq (%rax,%rdx), %r8
addq $-0x2, %r8
leaq 0xa0(%rsp), %rsi
leaq 0x1b8(%rsp), %rdx
movq %rbx, %rdi
callq 0x9802
leaq 0x1b8(%rsp), %rdi
callq 0x2100
leaq 0xa0(%rsp), %rdi
jmp 0x95ae
movups (%rax), %xmm0
movups %xmm0, (%rcx)
leaq 0x18(%rsp), %r15
movq 0x8(%r15), %rcx
movq %rcx, 0xe8(%rsp)
movq %rax, (%r15)
andq $0x0, 0x8(%r15)
movb $0x0, 0x10(%r15)
leaq 0x7038(%rip), %rsi      # 0x10505
leaq 0x1f8(%rsp), %rdi
leaq 0x80(%rsp), %rdx
callq 0x3a1e
movslq (%rsp), %rcx
movslq 0x8(%rsp), %rax
movq 0x58(%rsp), %r8
notq %r8
addq %rax, %r8
leaq 0xe0(%rsp), %rsi
leaq 0x1f8(%rsp), %rdx
movq %rbx, %rdi
callq 0x9802
leaq 0x1f8(%rsp), %rdi
callq 0x2100
leaq 0xe0(%rsp), %rdi
jmp 0x95ae
movups (%rax), %xmm0
movups %xmm0, (%rcx)
leaq 0x18(%rsp), %r15
movq 0x8(%r15), %rcx
movq %rcx, 0xc8(%rsp)
movq %rax, (%r15)
andq $0x0, 0x8(%r15)
movb $0x0, 0x10(%r15)
leaq 0x74a6(%rip), %rsi      # 0x109f9
leaq 0x1d8(%rsp), %rdi
leaq 0x80(%rsp), %rdx
callq 0x3a1e
movslq (%rsp), %rcx
movslq 0x8(%rsp), %rax
movq 0x58(%rsp), %rdx
notq %rdx
leaq (%rax,%rdx), %r8
addq $-0x2, %r8
leaq 0xc0(%rsp), %rsi
leaq 0x1d8(%rsp), %rdx
movq %rbx, %rdi
callq 0x9802
leaq 0x1d8(%rsp), %rdi
callq 0x2100
leaq 0xc0(%rsp), %rdi
callq 0x2100
movq %r15, %rdi
callq 0x2100
leaq 0x50(%rsp), %rdi
callq 0x2100
movq %rbx, %rax
addq $0x528, %rsp            # imm = 0x528
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r14
leaq 0x218(%rsp), %rdi
callq 0x9afc
jmp 0x9601
movq %rax, %r14
leaq 0x218(%rsp), %rdi
callq 0x2100
jmp 0x9601
movq %rax, %r14
movl $0x118, %esi            # imm = 0x118
movq %rbx, %rdi
callq 0x2250
jmp 0x9735
movq %rax, %r14
leaq 0x178(%rsp), %rdi
callq 0x2100
jmp 0x9628
movq %rax, %r14
leaq 0x198(%rsp), %rdi
callq 0x2100
jmp 0x963a
movq %rax, %r14
movl $0x118, %esi            # imm = 0x118
movq %rbx, %rdi
callq 0x2250
jmp 0x9742
jmp 0x9700
jmp 0x9700
jmp 0x9700
jmp 0x9700
jmp 0x9700
jmp 0x9700
jmp 0x9732
movq %rax, %r14
leaq 0x138(%rsp), %rdi
callq 0x2100
jmp 0x9684
movq %rax, %r14
leaq 0x158(%rsp), %rdi
jmp 0x96f3
jmp 0x9700
movq %rax, %r14
leaq 0x1d8(%rsp), %rdi
callq 0x2100
jmp 0x96c9
movq %rax, %r14
leaq 0x1f8(%rsp), %rdi
callq 0x2100
jmp 0x96d6
movq %rax, %r14
leaq 0x1b8(%rsp), %rdi
callq 0x2100
jmp 0x96e3
movq %rax, %r14
leaq 0xc0(%rsp), %rdi
jmp 0x96eb
movq %rax, %r14
leaq 0xe0(%rsp), %rdi
jmp 0x96eb
movq %rax, %r14
leaq 0xa0(%rsp), %rdi
callq 0x2100
movq %r15, %rdi
callq 0x2100
jmp 0x9703
jmp 0x9712
jmp 0x9700
jmp 0x9700
movq %rax, %r14
movl $0x118, %esi            # imm = 0x118
movq %rbx, %rdi
callq 0x2250
jmp 0x9756
movq %rax, %r14
jmp 0x9742
jmp 0x9753
movq %rax, %r14
leaq 0x118(%rsp), %rdi
jmp 0x974a
jmp 0x9753
jmp 0x9753
jmp 0x9732
jmp 0x9732
jmp 0x9732
jmp 0x9753
movq %rax, %r14
leaq 0x100(%rsp), %rdi
callq 0x9c56
leaq 0x80(%rsp), %rdi
callq 0x2100
jmp 0x9756
jmp 0x9753
movq %rax, %r14
leaq 0x50(%rsp), %rdi
callq 0x2100
movq %r14, %rdi
callq 0x2390