// File: /workspace/github_cpp_makefile_star2_O1/yanlinlin82[P]jsonxx/demo.new.cpp
// Function: test_parser()
void test_parser()
{
	json j;
	j.parse("null");  std::cout << "[TEST:125] j = " << j << " // expected: null" << std::endl;
	j.parse("false"); std::cout << "[TEST:126] j = " << j << " // expected: false" << std::endl;
	j.parse("true");  std::cout << "[TEST:127] j = " << j << " // expected: true" << std::endl;

	j.parse("123");   std::cout << "[TEST:129] j = " << j << " // expected: 123" << std::endl;
	j.parse("3.14");  std::cout << "[TEST:130] j = " << j << " // expected: 3.14" << std::endl;
	j.parse("-.618"); std::cout << "[TEST:131] j = " << j << " // expected: -.618" << std::endl;

	j.parse("\"\""); std::cout << "[TEST:133] j = " << j << " // expected: \"\"" << std::endl;
	j.parse("[]"); std::cout << "[TEST:134] j = " << j << " // expected: []" << std::endl;
	j.parse("{}"); std::cout << "[TEST:135] j = " << j << " // expected: {}" << std::endl;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x98, %rsp
xorl %eax, %eax
leaq -0x90(%rbp), %r15
movl %eax, -0x18(%r15)
movq %r15, -0x10(%r15)
movq %rax, -0x8(%r15)
movb $0x0, (%r15)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%r15)
movq %rax, 0x20(%r15)
leaq -0x60(%rbp), %rcx
movl %eax, (%rcx)
movq %rax, 0x8(%rcx)
movq %rcx, 0x10(%rcx)
movq %rcx, 0x18(%rcx)
movq %rax, 0x20(%rcx)
leaq -0x28(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x70de(%rip), %rsi      # 0xf0ad
leaq 0x70db(%rip), %rdx      # 0xf0b1
leaq -0x38(%rbp), %rdi
callq 0xe00e
leaq -0xa8(%rbp), %rdi
leaq -0x38(%rbp), %rsi
xorl %edx, %edx
movl $0x1, %ecx
callq 0x9da8
movq -0x38(%rbp), %rdi
cmpq %r14, %rdi
je 0x800b
movq -0x28(%rbp), %rsi
incq %rsi
callq 0x2220
movq 0xbfc6(%rip), %rdi      # 0x13fd8
leaq 0x794c(%rip), %rsi      # 0xf965
movl $0xf, %edx
callq 0x2270
leaq -0x38(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x9e1e
movq -0x38(%rbp), %rsi
movq -0x30(%rbp), %rdx
movq 0xbf96(%rip), %rdi      # 0x13fd8
callq 0x2270
movq %rax, %rbx
movq -0x38(%rbp), %rdi
cmpq %r14, %rdi
je 0x805f
movq -0x28(%rbp), %rsi
incq %rsi
callq 0x2220
leaq 0x7039(%rip), %rsi      # 0xf09f
movl $0x12, %edx
movq %rbx, %rdi
callq 0x2270
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2200
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2150
leaq -0x38(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x7028(%rip), %rsi      # 0xf0d0
leaq 0x7026(%rip), %rdx      # 0xf0d5
callq 0xe00e
leaq -0xa8(%rbp), %rdi
leaq -0x38(%rbp), %rsi
xorl %edx, %edx
movl $0x1, %ecx
callq 0x9da8
movq -0x38(%rbp), %rdi
cmpq %r14, %rdi
je 0x80e0
movq -0x28(%rbp), %rsi
incq %rsi
callq 0x2220
movq 0xbef1(%rip), %rdi      # 0x13fd8
leaq 0x7887(%rip), %rsi      # 0xf975
movl $0xf, %edx
callq 0x2270
leaq -0x38(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x9e1e
movq -0x38(%rbp), %rsi
movq -0x30(%rbp), %rdx
movq 0xbec1(%rip), %rdi      # 0x13fd8
callq 0x2270
movq %rax, %rbx
movq -0x38(%rbp), %rdi
cmpq %r14, %rdi
je 0x8134
movq -0x28(%rbp), %rsi
incq %rsi
callq 0x2220
leaq 0x6f87(%rip), %rsi      # 0xf0c2
movl $0x13, %edx
movq %rbx, %rdi
callq 0x2270
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2200
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2150
leaq -0x38(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x6f77(%rip), %rsi      # 0xf0f4
leaq 0x6f74(%rip), %rdx      # 0xf0f8
callq 0xe00e
leaq -0xa8(%rbp), %rdi
leaq -0x38(%rbp), %rsi
xorl %edx, %edx
movl $0x1, %ecx
callq 0x9da8
movq -0x38(%rbp), %rdi
cmpq %r14, %rdi
je 0x81b5
movq -0x28(%rbp), %rsi
incq %rsi
callq 0x2220
movq 0xbe1c(%rip), %rdi      # 0x13fd8
leaq 0x77c2(%rip), %rsi      # 0xf985
movl $0xf, %edx
callq 0x2270
leaq -0x38(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x9e1e
movq -0x38(%rbp), %rsi
movq -0x30(%rbp), %rdx
movq 0xbdec(%rip), %rdi      # 0x13fd8
callq 0x2270
movq %rax, %rbx
movq -0x38(%rbp), %rdi
cmpq %r14, %rdi
je 0x8209
movq -0x28(%rbp), %rsi
incq %rsi
callq 0x2220
leaq 0x6ed6(%rip), %rsi      # 0xf0e6
movl $0x12, %edx
movq %rbx, %rdi
callq 0x2270
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2200
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2150
leaq -0x38(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x6ee5(%rip), %rsi      # 0xf137
leaq 0x6ee1(%rip), %rdx      # 0xf13a
callq 0xe00e
leaq -0xa8(%rbp), %rdi
leaq -0x38(%rbp), %rsi
xorl %edx, %edx
movl $0x1, %ecx
callq 0x9da8
movq -0x38(%rbp), %rdi
cmpq %r14, %rdi
je 0x828a
movq -0x28(%rbp), %rsi
incq %rsi
callq 0x2220
movq 0xbd47(%rip), %rdi      # 0x13fd8
leaq 0x76fd(%rip), %rsi      # 0xf995
movl $0xf, %edx
callq 0x2270
leaq -0x38(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x9e1e
movq -0x38(%rbp), %rsi
movq -0x30(%rbp), %rdx
movq 0xbd17(%rip), %rdi      # 0x13fd8
callq 0x2270
movq %rax, %rbx
movq -0x38(%rbp), %rdi
cmpq %r14, %rdi
je 0x82de
movq -0x28(%rbp), %rsi
incq %rsi
callq 0x2220
leaq 0x6e44(%rip), %rsi      # 0xf129
movl $0x11, %edx
movq %rbx, %rdi
callq 0x2270
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2200
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2150
leaq -0x38(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x7159(%rip), %rsi      # 0xf480
leaq 0x7156(%rip), %rdx      # 0xf484
callq 0xe00e
leaq -0xa8(%rbp), %rdi
leaq -0x38(%rbp), %rsi
xorl %edx, %edx
movl $0x1, %ecx
callq 0x9da8
movq -0x38(%rbp), %rdi
cmpq %r14, %rdi
je 0x835f
movq -0x28(%rbp), %rsi
incq %rsi
callq 0x2220
movq 0xbc72(%rip), %rdi      # 0x13fd8
leaq 0x7638(%rip), %rsi      # 0xf9a5
movl $0xf, %edx
callq 0x2270
leaq -0x38(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x9e1e
movq -0x38(%rbp), %rsi
movq -0x30(%rbp), %rdx
movq 0xbc42(%rip), %rdi      # 0x13fd8
callq 0x2270
movq %rax, %rbx
movq -0x38(%rbp), %rdi
cmpq %r14, %rdi
je 0x83b3
movq -0x28(%rbp), %rsi
incq %rsi
callq 0x2220
leaq 0x70b8(%rip), %rsi      # 0xf472
movl $0x12, %edx
movq %rbx, %rdi
callq 0x2270
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2200
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2150
leaq -0x38(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x75d7(%rip), %rsi      # 0xf9d3
leaq 0x75d5(%rip), %rdx      # 0xf9d8
callq 0xe00e
leaq -0xa8(%rbp), %rdi
leaq -0x38(%rbp), %rsi
xorl %edx, %edx
movl $0x1, %ecx
callq 0x9da8
movq -0x38(%rbp), %rdi
cmpq %r14, %rdi
je 0x8434
movq -0x28(%rbp), %rsi
incq %rsi
callq 0x2220
movq 0xbb9d(%rip), %rdi      # 0x13fd8
leaq 0x7573(%rip), %rsi      # 0xf9b5
movl $0xf, %edx
callq 0x2270
leaq -0x38(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x9e1e
movq -0x38(%rbp), %rsi
movq -0x30(%rbp), %rdx
movq 0xbb6d(%rip), %rdi      # 0x13fd8
callq 0x2270
movq %rax, %rbx
movq -0x38(%rbp), %rdi
cmpq %r14, %rdi
je 0x8488
movq -0x28(%rbp), %rsi
incq %rsi
callq 0x2220
leaq 0x7536(%rip), %rsi      # 0xf9c5
movl $0x13, %edx
movq %rbx, %rdi
callq 0x2270
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2200
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2150
leaq -0x38(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x7526(%rip), %rsi      # 0xf9f7
leaq 0x7521(%rip), %rdx      # 0xf9f9
callq 0xe00e
leaq -0xa8(%rbp), %rdi
leaq -0x38(%rbp), %rsi
xorl %edx, %edx
movl $0x1, %ecx
callq 0x9da8
movq -0x38(%rbp), %rdi
cmpq %r14, %rdi
je 0x8509
movq -0x28(%rbp), %rsi
incq %rsi
callq 0x2220
movq 0xbac8(%rip), %rdi      # 0x13fd8
leaq 0x74c2(%rip), %rsi      # 0xf9d9
movl $0xf, %edx
callq 0x2270
leaq -0x38(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x9e1e
movq -0x38(%rbp), %rsi
movq -0x30(%rbp), %rdx
movq 0xba98(%rip), %rdi      # 0x13fd8
callq 0x2270
movq %rax, %rbx
movq -0x38(%rbp), %rdi
cmpq %r14, %rdi
je 0x855d
movq -0x28(%rbp), %rsi
incq %rsi
callq 0x2220
leaq 0x7485(%rip), %rsi      # 0xf9e9
movl $0x10, %edx
movq %rbx, %rdi
callq 0x2270
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2200
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2150
leaq -0x38(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x7472(%rip), %rsi      # 0xfa18
leaq 0x746d(%rip), %rdx      # 0xfa1a
callq 0xe00e
leaq -0xa8(%rbp), %rdi
leaq -0x38(%rbp), %rsi
xorl %edx, %edx
movl $0x1, %ecx
callq 0x9da8
movq -0x38(%rbp), %rdi
cmpq %r14, %rdi
je 0x85de
movq -0x28(%rbp), %rsi
incq %rsi
callq 0x2220
movq 0xb9f3(%rip), %rdi      # 0x13fd8
leaq 0x740e(%rip), %rsi      # 0xf9fa
movl $0xf, %edx
callq 0x2270
leaq -0x38(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x9e1e
movq -0x38(%rbp), %rsi
movq -0x30(%rbp), %rdx
movq 0xb9c3(%rip), %rdi      # 0x13fd8
callq 0x2270
movq %rax, %rbx
movq -0x38(%rbp), %rdi
cmpq %r14, %rdi
je 0x8632
movq -0x28(%rbp), %rsi
incq %rsi
callq 0x2220
leaq 0x73d1(%rip), %rsi      # 0xfa0a
movl $0x10, %edx
movq %rbx, %rdi
callq 0x2270
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2200
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2150
leaq -0x38(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x73be(%rip), %rsi      # 0xfa39
leaq 0x73b9(%rip), %rdx      # 0xfa3b
callq 0xe00e
leaq -0xa8(%rbp), %rdi
leaq -0x38(%rbp), %rsi
xorl %edx, %edx
movl $0x1, %ecx
callq 0x9da8
movq -0x38(%rbp), %rdi
cmpq %r14, %rdi
je 0x86b3
movq -0x28(%rbp), %rsi
incq %rsi
callq 0x2220
movq 0xb91e(%rip), %rdi      # 0x13fd8
leaq 0x735a(%rip), %rsi      # 0xfa1b
movl $0xf, %edx
callq 0x2270
leaq -0x38(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x9e1e
movq -0x38(%rbp), %rsi
movq -0x30(%rbp), %rdx
movq 0xb8ee(%rip), %rdi      # 0x13fd8
callq 0x2270
movq %rax, %rbx
movq -0x38(%rbp), %rdi
cmpq %r14, %rdi
je 0x8707
movq -0x28(%rbp), %rsi
incq %rsi
callq 0x2220
leaq 0x731d(%rip), %rsi      # 0xfa2b
movl $0x10, %edx
movq %rbx, %rdi
callq 0x2270
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2200
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2150
leaq -0x80(%rbp), %rbx
leaq -0x68(%rbp), %r14
movq %r14, %rdi
callq 0xb90e
movq %rbx, %rdi
callq 0xabf8
movq -0x38(%r14), %rdi
cmpq %r15, %rdi
je 0x8772
movq -0x90(%rbp), %rsi
incq %rsi
callq 0x2220
addq $0x98, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x87b2
jmp 0x87b2
jmp 0x87ce
jmp 0x87b2
jmp 0x87b2
jmp 0x87ce
jmp 0x87b2
jmp 0x87b2
jmp 0x87ce
jmp 0x87b2
jmp 0x87b2
jmp 0x87ce
jmp 0x87b2
jmp 0x87b2
jmp 0x87ce
jmp 0x87b2
jmp 0x87b2
jmp 0x87ce
jmp 0x87b2
jmp 0x87b2
jmp 0x87ce
jmp 0x87b2
jmp 0x87b2
jmp 0x87ce
jmp 0x87b2
movq %rax, %rbx
movq -0x38(%rbp), %rdi
cmpq %r14, %rdi
je 0x87d1
movq -0x28(%rbp), %rsi
incq %rsi
callq 0x2220
jmp 0x87d1
jmp 0x87ce
movq %rax, %rbx
leaq -0xa8(%rbp), %rdi
callq 0x8fe2
movq %rbx, %rdi
callq 0x2370