// File: /workspace/github_cpp_makefile_star2_O3/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 0x711f(%rip), %rsi      # 0xf0ad
leaq 0x711c(%rip), %rdx      # 0xf0b1
leaq -0x38(%rbp), %rdi
callq 0xdf96
leaq -0xa8(%rbp), %rdi
leaq -0x38(%rbp), %rsi
xorl %edx, %edx
movl $0x1, %ecx
callq 0x9d5a
movq -0x38(%rbp), %rdi
cmpq %r14, %rdi
je 0x7fca
movq -0x28(%rbp), %rsi
incq %rsi
callq 0x2220
movq 0xc007(%rip), %rdi      # 0x13fd8
leaq 0x798d(%rip), %rsi      # 0xf965
movl $0xf, %edx
callq 0x2270
leaq -0x38(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x9dd2
movq -0x38(%rbp), %rsi
movq -0x30(%rbp), %rdx
movq 0xbfd7(%rip), %rdi      # 0x13fd8
callq 0x2270
movq %rax, %rbx
movq -0x38(%rbp), %rdi
cmpq %r14, %rdi
je 0x801e
movq -0x28(%rbp), %rsi
incq %rsi
callq 0x2220
leaq 0x707a(%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 0x7069(%rip), %rsi      # 0xf0d0
leaq 0x7067(%rip), %rdx      # 0xf0d5
callq 0xdf96
leaq -0xa8(%rbp), %rdi
leaq -0x38(%rbp), %rsi
xorl %edx, %edx
movl $0x1, %ecx
callq 0x9d5a
movq -0x38(%rbp), %rdi
cmpq %r14, %rdi
je 0x809f
movq -0x28(%rbp), %rsi
incq %rsi
callq 0x2220
movq 0xbf32(%rip), %rdi      # 0x13fd8
leaq 0x78c8(%rip), %rsi      # 0xf975
movl $0xf, %edx
callq 0x2270
leaq -0x38(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x9dd2
movq -0x38(%rbp), %rsi
movq -0x30(%rbp), %rdx
movq 0xbf02(%rip), %rdi      # 0x13fd8
callq 0x2270
movq %rax, %rbx
movq -0x38(%rbp), %rdi
cmpq %r14, %rdi
je 0x80f3
movq -0x28(%rbp), %rsi
incq %rsi
callq 0x2220
leaq 0x6fc8(%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 0x6fb8(%rip), %rsi      # 0xf0f4
leaq 0x6fb5(%rip), %rdx      # 0xf0f8
callq 0xdf96
leaq -0xa8(%rbp), %rdi
leaq -0x38(%rbp), %rsi
xorl %edx, %edx
movl $0x1, %ecx
callq 0x9d5a
movq -0x38(%rbp), %rdi
cmpq %r14, %rdi
je 0x8174
movq -0x28(%rbp), %rsi
incq %rsi
callq 0x2220
movq 0xbe5d(%rip), %rdi      # 0x13fd8
leaq 0x7803(%rip), %rsi      # 0xf985
movl $0xf, %edx
callq 0x2270
leaq -0x38(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x9dd2
movq -0x38(%rbp), %rsi
movq -0x30(%rbp), %rdx
movq 0xbe2d(%rip), %rdi      # 0x13fd8
callq 0x2270
movq %rax, %rbx
movq -0x38(%rbp), %rdi
cmpq %r14, %rdi
je 0x81c8
movq -0x28(%rbp), %rsi
incq %rsi
callq 0x2220
leaq 0x6f17(%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 0x6f26(%rip), %rsi      # 0xf137
leaq 0x6f22(%rip), %rdx      # 0xf13a
callq 0xdf96
leaq -0xa8(%rbp), %rdi
leaq -0x38(%rbp), %rsi
xorl %edx, %edx
movl $0x1, %ecx
callq 0x9d5a
movq -0x38(%rbp), %rdi
cmpq %r14, %rdi
je 0x8249
movq -0x28(%rbp), %rsi
incq %rsi
callq 0x2220
movq 0xbd88(%rip), %rdi      # 0x13fd8
leaq 0x773e(%rip), %rsi      # 0xf995
movl $0xf, %edx
callq 0x2270
leaq -0x38(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x9dd2
movq -0x38(%rbp), %rsi
movq -0x30(%rbp), %rdx
movq 0xbd58(%rip), %rdi      # 0x13fd8
callq 0x2270
movq %rax, %rbx
movq -0x38(%rbp), %rdi
cmpq %r14, %rdi
je 0x829d
movq -0x28(%rbp), %rsi
incq %rsi
callq 0x2220
leaq 0x6e85(%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 0x719a(%rip), %rsi      # 0xf480
leaq 0x7197(%rip), %rdx      # 0xf484
callq 0xdf96
leaq -0xa8(%rbp), %rdi
leaq -0x38(%rbp), %rsi
xorl %edx, %edx
movl $0x1, %ecx
callq 0x9d5a
movq -0x38(%rbp), %rdi
cmpq %r14, %rdi
je 0x831e
movq -0x28(%rbp), %rsi
incq %rsi
callq 0x2220
movq 0xbcb3(%rip), %rdi      # 0x13fd8
leaq 0x7679(%rip), %rsi      # 0xf9a5
movl $0xf, %edx
callq 0x2270
leaq -0x38(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x9dd2
movq -0x38(%rbp), %rsi
movq -0x30(%rbp), %rdx
movq 0xbc83(%rip), %rdi      # 0x13fd8
callq 0x2270
movq %rax, %rbx
movq -0x38(%rbp), %rdi
cmpq %r14, %rdi
je 0x8372
movq -0x28(%rbp), %rsi
incq %rsi
callq 0x2220
leaq 0x70f9(%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 0x7618(%rip), %rsi      # 0xf9d3
leaq 0x7616(%rip), %rdx      # 0xf9d8
callq 0xdf96
leaq -0xa8(%rbp), %rdi
leaq -0x38(%rbp), %rsi
xorl %edx, %edx
movl $0x1, %ecx
callq 0x9d5a
movq -0x38(%rbp), %rdi
cmpq %r14, %rdi
je 0x83f3
movq -0x28(%rbp), %rsi
incq %rsi
callq 0x2220
movq 0xbbde(%rip), %rdi      # 0x13fd8
leaq 0x75b4(%rip), %rsi      # 0xf9b5
movl $0xf, %edx
callq 0x2270
leaq -0x38(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x9dd2
movq -0x38(%rbp), %rsi
movq -0x30(%rbp), %rdx
movq 0xbbae(%rip), %rdi      # 0x13fd8
callq 0x2270
movq %rax, %rbx
movq -0x38(%rbp), %rdi
cmpq %r14, %rdi
je 0x8447
movq -0x28(%rbp), %rsi
incq %rsi
callq 0x2220
leaq 0x7577(%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 0x7567(%rip), %rsi      # 0xf9f7
leaq 0x7562(%rip), %rdx      # 0xf9f9
callq 0xdf96
leaq -0xa8(%rbp), %rdi
leaq -0x38(%rbp), %rsi
xorl %edx, %edx
movl $0x1, %ecx
callq 0x9d5a
movq -0x38(%rbp), %rdi
cmpq %r14, %rdi
je 0x84c8
movq -0x28(%rbp), %rsi
incq %rsi
callq 0x2220
movq 0xbb09(%rip), %rdi      # 0x13fd8
leaq 0x7503(%rip), %rsi      # 0xf9d9
movl $0xf, %edx
callq 0x2270
leaq -0x38(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x9dd2
movq -0x38(%rbp), %rsi
movq -0x30(%rbp), %rdx
movq 0xbad9(%rip), %rdi      # 0x13fd8
callq 0x2270
movq %rax, %rbx
movq -0x38(%rbp), %rdi
cmpq %r14, %rdi
je 0x851c
movq -0x28(%rbp), %rsi
incq %rsi
callq 0x2220
leaq 0x74c6(%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 0x74b3(%rip), %rsi      # 0xfa18
leaq 0x74ae(%rip), %rdx      # 0xfa1a
callq 0xdf96
leaq -0xa8(%rbp), %rdi
leaq -0x38(%rbp), %rsi
xorl %edx, %edx
movl $0x1, %ecx
callq 0x9d5a
movq -0x38(%rbp), %rdi
cmpq %r14, %rdi
je 0x859d
movq -0x28(%rbp), %rsi
incq %rsi
callq 0x2220
movq 0xba34(%rip), %rdi      # 0x13fd8
leaq 0x744f(%rip), %rsi      # 0xf9fa
movl $0xf, %edx
callq 0x2270
leaq -0x38(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x9dd2
movq -0x38(%rbp), %rsi
movq -0x30(%rbp), %rdx
movq 0xba04(%rip), %rdi      # 0x13fd8
callq 0x2270
movq %rax, %rbx
movq -0x38(%rbp), %rdi
cmpq %r14, %rdi
je 0x85f1
movq -0x28(%rbp), %rsi
incq %rsi
callq 0x2220
leaq 0x7412(%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 0x73ff(%rip), %rsi      # 0xfa39
leaq 0x73fa(%rip), %rdx      # 0xfa3b
callq 0xdf96
leaq -0xa8(%rbp), %rdi
leaq -0x38(%rbp), %rsi
xorl %edx, %edx
movl $0x1, %ecx
callq 0x9d5a
movq -0x38(%rbp), %rdi
cmpq %r14, %rdi
je 0x8672
movq -0x28(%rbp), %rsi
incq %rsi
callq 0x2220
movq 0xb95f(%rip), %rdi      # 0x13fd8
leaq 0x739b(%rip), %rsi      # 0xfa1b
movl $0xf, %edx
callq 0x2270
leaq -0x38(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x9dd2
movq -0x38(%rbp), %rsi
movq -0x30(%rbp), %rdx
movq 0xb92f(%rip), %rdi      # 0x13fd8
callq 0x2270
movq %rax, %rbx
movq -0x38(%rbp), %rdi
cmpq %r14, %rdi
je 0x86c6
movq -0x28(%rbp), %rsi
incq %rsi
callq 0x2220
leaq 0x735e(%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 0xb8d2
movq %rbx, %rdi
callq 0xabb6
movq -0x38(%r14), %rdi
cmpq %r15, %rdi
je 0x8731
movq -0x90(%rbp), %rsi
incq %rsi
callq 0x2220
addq $0x98, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x8771
jmp 0x8771
jmp 0x878d
jmp 0x8771
jmp 0x8771
jmp 0x878d
jmp 0x8771
jmp 0x8771
jmp 0x878d
jmp 0x8771
jmp 0x8771
jmp 0x878d
jmp 0x8771
jmp 0x8771
jmp 0x878d
jmp 0x8771
jmp 0x8771
jmp 0x878d
jmp 0x8771
jmp 0x8771
jmp 0x878d
jmp 0x8771
jmp 0x8771
jmp 0x878d
jmp 0x8771
movq %rax, %rbx
movq -0x38(%rbp), %rdi
cmpq %r14, %rdi
je 0x8790
movq -0x28(%rbp), %rsi
incq %rsi
callq 0x2220
jmp 0x8790
jmp 0x878d
movq %rax, %rbx
leaq -0xa8(%rbp), %rdi
callq 0x8fa2
movq %rbx, %rdi
callq 0x2370