// File: 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
subq $0x310, %rsp            # imm = 0x310
leaq -0x70(%rbp), %rdi
callq 0x8060
leaq -0x91(%rbp), %rdi
movq %rdi, -0x1f0(%rbp)
callq 0x34f0
movq -0x1f0(%rbp), %rdx
leaq 0xcbb8(%rip), %rsi      # 0x1419d
leaq -0x90(%rbp), %rdi
callq 0x7fb0
jmp 0x75f3
xorl %eax, %eax
movl %eax, %edx
leaq -0x70(%rbp), %rdi
leaq -0x90(%rbp), %rsi
movl $0x1, %ecx
callq 0x98e0
jmp 0x760e
leaq -0x90(%rbp), %rdi
callq 0x3578
leaq -0x91(%rbp), %rdi
callq 0x33a0
movq 0x149ab(%rip), %rdi     # 0x1bfd8
leaq 0xd421(%rip), %rsi      # 0x14a55
callq 0x3340
movq %rax, -0x1f8(%rbp)
jmp 0x7642
movq -0x1f8(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x80b0
movq %rax, -0x200(%rbp)
jmp 0x765b
movq -0x200(%rbp), %rdi
leaq 0xcb26(%rip), %rsi      # 0x1418f
callq 0x3340
movq %rax, -0x208(%rbp)
jmp 0x7677
movq -0x208(%rbp), %rdi
movq 0x14933(%rip), %rsi     # 0x1bfb8
callq 0x3380
jmp 0x768c
leaq -0xc9(%rbp), %rdi
movq %rdi, -0x210(%rbp)
callq 0x34f0
movq -0x210(%rbp), %rdx
leaq 0xcb13(%rip), %rsi      # 0x141c0
leaq -0xc8(%rbp), %rdi
callq 0x7fb0
jmp 0x76bb
xorl %eax, %eax
movl %eax, %edx
leaq -0x70(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
movl $0x1, %ecx
callq 0x98e0
jmp 0x76d6
leaq -0xc8(%rbp), %rdi
callq 0x3578
leaq -0xc9(%rbp), %rdi
callq 0x33a0
movq 0x148e3(%rip), %rdi     # 0x1bfd8
leaq 0xd369(%rip), %rsi      # 0x14a65
callq 0x3340
movq %rax, -0x218(%rbp)
jmp 0x770a
movq -0x218(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x80b0
movq %rax, -0x220(%rbp)
jmp 0x7723
movq -0x220(%rbp), %rdi
leaq 0xca81(%rip), %rsi      # 0x141b2
callq 0x3340
movq %rax, -0x228(%rbp)
jmp 0x773f
movq -0x228(%rbp), %rdi
movq 0x1486b(%rip), %rsi     # 0x1bfb8
callq 0x3380
jmp 0x7754
leaq -0xf1(%rbp), %rdi
movq %rdi, -0x230(%rbp)
callq 0x34f0
movq -0x230(%rbp), %rdx
leaq 0xca6f(%rip), %rsi      # 0x141e4
leaq -0xf0(%rbp), %rdi
callq 0x7fb0
jmp 0x7783
xorl %eax, %eax
movl %eax, %edx
leaq -0x70(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
movl $0x1, %ecx
callq 0x98e0
jmp 0x779e
leaq -0xf0(%rbp), %rdi
callq 0x3578
leaq -0xf1(%rbp), %rdi
callq 0x33a0
movq 0x1481b(%rip), %rdi     # 0x1bfd8
leaq 0xd2b1(%rip), %rsi      # 0x14a75
callq 0x3340
movq %rax, -0x238(%rbp)
jmp 0x77d2
movq -0x238(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x80b0
movq %rax, -0x240(%rbp)
jmp 0x77eb
movq -0x240(%rbp), %rdi
leaq 0xc9dd(%rip), %rsi      # 0x141d6
callq 0x3340
movq %rax, -0x248(%rbp)
jmp 0x7807
movq -0x248(%rbp), %rdi
movq 0x147a3(%rip), %rsi     # 0x1bfb8
callq 0x3380
jmp 0x781c
leaq -0x119(%rbp), %rdi
movq %rdi, -0x250(%rbp)
callq 0x34f0
movq -0x250(%rbp), %rdx
leaq 0xc9ea(%rip), %rsi      # 0x14227
leaq -0x118(%rbp), %rdi
callq 0x7fb0
jmp 0x784b
xorl %eax, %eax
movl %eax, %edx
leaq -0x70(%rbp), %rdi
leaq -0x118(%rbp), %rsi
movl $0x1, %ecx
callq 0x98e0
jmp 0x7866
leaq -0x118(%rbp), %rdi
callq 0x3578
leaq -0x119(%rbp), %rdi
callq 0x33a0
movq 0x14753(%rip), %rdi     # 0x1bfd8
leaq 0xd1f9(%rip), %rsi      # 0x14a85
callq 0x3340
movq %rax, -0x258(%rbp)
jmp 0x789a
movq -0x258(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x80b0
movq %rax, -0x260(%rbp)
jmp 0x78b3
movq -0x260(%rbp), %rdi
leaq 0xc958(%rip), %rsi      # 0x14219
callq 0x3340
movq %rax, -0x268(%rbp)
jmp 0x78cf
movq -0x268(%rbp), %rdi
movq 0x146db(%rip), %rsi     # 0x1bfb8
callq 0x3380
jmp 0x78e4
leaq -0x141(%rbp), %rdi
movq %rdi, -0x270(%rbp)
callq 0x34f0
movq -0x270(%rbp), %rdx
leaq 0xcc6b(%rip), %rsi      # 0x14570
leaq -0x140(%rbp), %rdi
callq 0x7fb0
jmp 0x7913
xorl %eax, %eax
movl %eax, %edx
leaq -0x70(%rbp), %rdi
leaq -0x140(%rbp), %rsi
movl $0x1, %ecx
callq 0x98e0
jmp 0x792e
leaq -0x140(%rbp), %rdi
callq 0x3578
leaq -0x141(%rbp), %rdi
callq 0x33a0
movq 0x1468b(%rip), %rdi     # 0x1bfd8
leaq 0xd141(%rip), %rsi      # 0x14a95
callq 0x3340
movq %rax, -0x278(%rbp)
jmp 0x7962
movq -0x278(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x80b0
movq %rax, -0x280(%rbp)
jmp 0x797b
movq -0x280(%rbp), %rdi
leaq 0xcbd9(%rip), %rsi      # 0x14562
callq 0x3340
movq %rax, -0x288(%rbp)
jmp 0x7997
movq -0x288(%rbp), %rdi
movq 0x14613(%rip), %rsi     # 0x1bfb8
callq 0x3380
jmp 0x79ac
leaq -0x169(%rbp), %rdi
movq %rdi, -0x290(%rbp)
callq 0x34f0
movq -0x290(%rbp), %rdx
leaq 0xd0f6(%rip), %rsi      # 0x14ac3
leaq -0x168(%rbp), %rdi
callq 0x7fb0
jmp 0x79db
xorl %eax, %eax
movl %eax, %edx
leaq -0x70(%rbp), %rdi
leaq -0x168(%rbp), %rsi
movl $0x1, %ecx
callq 0x98e0
jmp 0x79f6
leaq -0x168(%rbp), %rdi
callq 0x3578
leaq -0x169(%rbp), %rdi
callq 0x33a0
movq 0x145c3(%rip), %rdi     # 0x1bfd8
leaq 0xd089(%rip), %rsi      # 0x14aa5
callq 0x3340
movq %rax, -0x298(%rbp)
jmp 0x7a2a
movq -0x298(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x80b0
movq %rax, -0x2a0(%rbp)
jmp 0x7a43
movq -0x2a0(%rbp), %rdi
leaq 0xd064(%rip), %rsi      # 0x14ab5
callq 0x3340
movq %rax, -0x2a8(%rbp)
jmp 0x7a5f
movq -0x2a8(%rbp), %rdi
movq 0x1454b(%rip), %rsi     # 0x1bfb8
callq 0x3380
jmp 0x7a74
leaq -0x191(%rbp), %rdi
movq %rdi, -0x2b0(%rbp)
callq 0x34f0
movq -0x2b0(%rbp), %rdx
leaq 0xd052(%rip), %rsi      # 0x14ae7
leaq -0x190(%rbp), %rdi
callq 0x7fb0
jmp 0x7aa3
xorl %eax, %eax
movl %eax, %edx
leaq -0x70(%rbp), %rdi
leaq -0x190(%rbp), %rsi
movl $0x1, %ecx
callq 0x98e0
jmp 0x7abe
leaq -0x190(%rbp), %rdi
callq 0x3578
leaq -0x191(%rbp), %rdi
callq 0x33a0
movq 0x144fb(%rip), %rdi     # 0x1bfd8
leaq 0xcfe5(%rip), %rsi      # 0x14ac9
callq 0x3340
movq %rax, -0x2b8(%rbp)
jmp 0x7af2
movq -0x2b8(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x80b0
movq %rax, -0x2c0(%rbp)
jmp 0x7b0b
movq -0x2c0(%rbp), %rdi
leaq 0xcfc0(%rip), %rsi      # 0x14ad9
callq 0x3340
movq %rax, -0x2c8(%rbp)
jmp 0x7b27
movq -0x2c8(%rbp), %rdi
movq 0x14483(%rip), %rsi     # 0x1bfb8
callq 0x3380
jmp 0x7b3c
leaq -0x1b9(%rbp), %rdi
movq %rdi, -0x2d0(%rbp)
callq 0x34f0
movq -0x2d0(%rbp), %rdx
leaq 0xcfab(%rip), %rsi      # 0x14b08
leaq -0x1b8(%rbp), %rdi
callq 0x7fb0
jmp 0x7b6b
xorl %eax, %eax
movl %eax, %edx
leaq -0x70(%rbp), %rdi
leaq -0x1b8(%rbp), %rsi
movl $0x1, %ecx
callq 0x98e0
jmp 0x7b86
leaq -0x1b8(%rbp), %rdi
callq 0x3578
leaq -0x1b9(%rbp), %rdi
callq 0x33a0
movq 0x14433(%rip), %rdi     # 0x1bfd8
leaq 0xcf3e(%rip), %rsi      # 0x14aea
callq 0x3340
movq %rax, -0x2d8(%rbp)
jmp 0x7bba
movq -0x2d8(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x80b0
movq %rax, -0x2e0(%rbp)
jmp 0x7bd3
movq -0x2e0(%rbp), %rdi
leaq 0xcf19(%rip), %rsi      # 0x14afa
callq 0x3340
movq %rax, -0x2e8(%rbp)
jmp 0x7bef
movq -0x2e8(%rbp), %rdi
movq 0x143bb(%rip), %rsi     # 0x1bfb8
callq 0x3380
jmp 0x7c04
leaq -0x1e1(%rbp), %rdi
movq %rdi, -0x2f0(%rbp)
callq 0x34f0
movq -0x2f0(%rbp), %rdx
leaq 0xcf04(%rip), %rsi      # 0x14b29
leaq -0x1e0(%rbp), %rdi
callq 0x7fb0
jmp 0x7c33
xorl %eax, %eax
movl %eax, %edx
leaq -0x70(%rbp), %rdi
leaq -0x1e0(%rbp), %rsi
movl $0x1, %ecx
callq 0x98e0
jmp 0x7c4e
leaq -0x1e0(%rbp), %rdi
callq 0x3578
leaq -0x1e1(%rbp), %rdi
callq 0x33a0
movq 0x1436b(%rip), %rdi     # 0x1bfd8
leaq 0xce97(%rip), %rsi      # 0x14b0b
callq 0x3340
movq %rax, -0x2f8(%rbp)
jmp 0x7c82
movq -0x2f8(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x80b0
movq %rax, -0x300(%rbp)
jmp 0x7c9b
movq -0x300(%rbp), %rdi
leaq 0xce72(%rip), %rsi      # 0x14b1b
callq 0x3340
movq %rax, -0x308(%rbp)
jmp 0x7cb7
movq -0x308(%rbp), %rdi
movq 0x142f3(%rip), %rsi     # 0x1bfb8
callq 0x3380
jmp 0x7ccc
leaq -0x70(%rbp), %rdi
callq 0x8b00
addq $0x310, %rsp            # imm = 0x310
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x7d10
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x3578
leaq -0x91(%rbp), %rdi
callq 0x33a0
jmp 0x7f45
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x7f45
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x7d6a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
leaq -0xc8(%rbp), %rdi
callq 0x3578
leaq -0xc9(%rbp), %rdi
callq 0x33a0
jmp 0x7f45
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x7dad
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
leaq -0xf0(%rbp), %rdi
callq 0x3578
leaq -0xf1(%rbp), %rdi
callq 0x33a0
jmp 0x7f45
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x7df0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
leaq -0x118(%rbp), %rdi
callq 0x3578
leaq -0x119(%rbp), %rdi
callq 0x33a0
jmp 0x7f45
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x7e33
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
leaq -0x140(%rbp), %rdi
callq 0x3578
leaq -0x141(%rbp), %rdi
callq 0x33a0
jmp 0x7f45
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x7e76
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
leaq -0x168(%rbp), %rdi
callq 0x3578
leaq -0x169(%rbp), %rdi
callq 0x33a0
jmp 0x7f45
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x7eb9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
leaq -0x190(%rbp), %rdi
callq 0x3578
leaq -0x191(%rbp), %rdi
callq 0x33a0
jmp 0x7f45
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x7ef9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
leaq -0x1b8(%rbp), %rdi
callq 0x3578
leaq -0x1b9(%rbp), %rdi
callq 0x33a0
jmp 0x7f45
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x7f39
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
leaq -0x1e0(%rbp), %rdi
callq 0x3578
leaq -0x1e1(%rbp), %rdi
callq 0x33a0
leaq -0x70(%rbp), %rdi
callq 0x8b00
movq -0xa0(%rbp), %rdi
callq 0x34e0
nopw (%rax,%rax)