// File: /workspace/github_cpp_makefile_star2_O1/lishen2[P]Excel_formula_parser_cpp/main.cpp
// Function: printParser(ExcelFormula::FormulaParser&)
void printParser(FormulaParser& parser)
{
	vector<Token*> tokens = parser.getTokens();
	cout << "Formula:" << parser.getFormula() << endl;
	cout << "Tokens:" << endl;
	
	int indent = 0;
	for(vector<Token*>::iterator it = tokens.begin();
			it != tokens.end();
			++it)
	{
		if((*it)->getSubtype() == Token::Start)
		{
			++indent;
		}
		printIndent(indent);
		cout << (*it)->getPrintableString() << endl;
		if((*it)->getSubtype() == Token::Stop)
		{
			--indent;
		}
	}

	cout << endl;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %rdi, %r14
leaq 0x20(%rdi), %rsi
leaq -0x40(%rbp), %rdi
callq 0x2832
movq 0x5b57(%rip), %rbx      # 0x7fd8
leaq 0x2b7e(%rip), %rsi      # 0x5006
movl $0x8, %edx
movq %rbx, %rdi
callq 0x21a0
movq (%r14), %r14
testq %r14, %r14
je 0x24b9
movq %r14, %rdi
callq 0x20c0
movq 0x5b2c(%rip), %rdi      # 0x7fd8
movq %r14, %rsi
movq %rax, %rdx
callq 0x21a0
jmp 0x24d0
movq (%rbx), %rax
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %rdi
movl 0x20(%rbx,%rax), %esi
orl $0x1, %esi
callq 0x2240
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x2160
movsbl %al, %esi
movq 0x5aea(%rip), %rdi      # 0x7fd8
callq 0x2030
movq %rax, %rdi
callq 0x2100
movq 0x5ad6(%rip), %rbx      # 0x7fd8
leaq 0x2b06(%rip), %rsi      # 0x500f
movl $0x7, %edx
movq %rbx, %rdi
callq 0x21a0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x2160
movsbl %al, %esi
movq 0x5aa4(%rip), %rdi      # 0x7fd8
callq 0x2030
movq %rax, %rdi
callq 0x2100
movq -0x40(%rbp), %rbx
cmpq -0x38(%rbp), %rbx
je 0x2609
xorl %eax, %eax
movq 0x5a80(%rip), %r14      # 0x7fd8
leaq 0x2aa5(%rip), %r15      # 0x5004
movq (%rbx), %rcx
xorl %r12d, %r12d
cmpl $0x1, 0x24(%rcx)
sete %r12b
addl %eax, %r12d
jle 0x258a
movl %r12d, %r13d
movl $0x1, %edx
movq %r14, %rdi
movq %r15, %rsi
callq 0x21a0
decl %r13d
jne 0x2575
movq (%rbx), %rsi
leaq -0x60(%rbp), %rdi
callq 0x41a0
movq -0x60(%rbp), %rsi
movq -0x58(%rbp), %rdx
movq %r14, %rdi
callq 0x21a0
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x2160
movsbl %al, %esi
movq %r13, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2100
movq -0x60(%rbp), %rdi
leaq -0x50(%rbp), %rax
cmpq %rax, %rdi
je 0x25e9
movq -0x50(%rbp), %rsi
incq %rsi
callq 0x2180
movq (%rbx), %rax
xorl %ecx, %ecx
cmpl $0x2, 0x24(%rax)
sete %cl
subl %ecx, %r12d
addq $0x8, %rbx
movl %r12d, %eax
cmpq -0x38(%rbp), %rbx
jne 0x255f
movq 0x59c8(%rip), %rdi      # 0x7fd8
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x2160
movsbl %al, %esi
movq 0x59ad(%rip), %rdi      # 0x7fd8
callq 0x2030
movq %rax, %rdi
callq 0x2100
movq -0x40(%rbp), %rdi
testq %rdi, %rdi
je 0x264d
movq -0x30(%rbp), %rsi
subq %rdi, %rsi
callq 0x2180
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x2680
jmp 0x2680
jmp 0x2680
movq %rax, %rbx
movq -0x60(%rbp), %rdi
leaq -0x50(%rbp), %rax
cmpq %rax, %rdi
je 0x2683
movq -0x50(%rbp), %rsi
incq %rsi
callq 0x2180
jmp 0x2683
movq %rax, %rbx
movq -0x40(%rbp), %rdi
testq %rdi, %rdi
je 0x2698
movq -0x30(%rbp), %rsi
subq %rdi, %rsi
callq 0x2180
movq %rbx, %rdi
callq 0x2250