// File: martinda3[P]Compiler/src/TCparser.cpp
// Function: toyc::TCparser::SimpleExpression()
ASexpression* TCparser::SimpleExpression() // WIP
	{
		// SimpleExpression --> Term { ADDOP Term }
		enteringDEBUG("Simple Expression");
		ASexpression* operand = NULL;
		ASexpression* operand2 = NULL;
		ASoperator* operand3 = NULL;
		operand = Term();
		while (buff->getTokenType() == ADDOP)
		{
			enteringDEBUG("Simple Expression Additional");
			operand3 = new ASoperator(accept(ADDOP));
			operand2 = Term();
			operand = new ASexpr(operand3, operand2, operand);
			exitingDEBUG("SimpleExpression Additional");
		}
		exitingDEBUG("Simple Expression");
		return operand;
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x110, %rsp            # imm = 0x110
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0xe0(%rbp)
leaq -0x29(%rbp), %rdi
movq %rdi, -0xd8(%rbp)
callq 0x95c0
movq -0xd8(%rbp), %rdx
leaq 0x212e9(%rip), %rsi     # 0x333f1
leaq -0x28(%rbp), %rdi
callq 0x13550
jmp 0x12113
leaq -0x28(%rbp), %rdi
callq 0xd790
jmp 0x1211e
leaq -0x28(%rbp), %rdi
callq 0x9658
leaq -0x29(%rbp), %rdi
callq 0x93b0
movq -0xe0(%rbp), %rdi
movq $0x0, -0x48(%rbp)
movq $0x0, -0x50(%rbp)
movq $0x0, -0x58(%rbp)
callq 0x12420
movq %rax, -0x48(%rbp)
movq -0xe0(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x1be60
cmpl $0x13, %eax
jne 0x1237e
leaq -0x79(%rbp), %rdi
movq %rdi, -0xe8(%rbp)
callq 0x95c0
movq -0xe8(%rbp), %rdx
leaq 0x21274(%rip), %rsi     # 0x33403
leaq -0x78(%rbp), %rdi
callq 0x13550
jmp 0x1219a
leaq -0x78(%rbp), %rdi
callq 0xd790
jmp 0x121a5
leaq -0x78(%rbp), %rdi
callq 0x9658
leaq -0x79(%rbp), %rdi
callq 0x93b0
movl $0x10, %edi
callq 0x9350
movq -0xe0(%rbp), %rdi
movq %rax, -0xf8(%rbp)
movl $0x13, %esi
callq 0xe670
movq %rax, -0xf0(%rbp)
jmp 0x121e2
movq -0xf0(%rbp), %rsi
movq -0xf8(%rbp), %rdi
callq 0x1eb20
jmp 0x121f7
movq -0xe0(%rbp), %rdi
movq -0xf8(%rbp), %rax
movq %rax, -0x58(%rbp)
callq 0x12420
movq %rax, -0x50(%rbp)
movl $0x48, %edi
callq 0x9350
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x100(%rbp)
movq -0x58(%rbp), %rsi
movq -0x50(%rbp), %rdx
movq -0x48(%rbp), %rcx
callq 0x2d6e0
jmp 0x1223c
movq -0x100(%rbp), %rax
movq %rax, -0x48(%rbp)
leaq -0xa1(%rbp), %rdi
movq %rdi, -0x108(%rbp)
callq 0x95c0
movq -0x108(%rbp), %rdx
leaq 0x211b8(%rip), %rsi     # 0x33420
leaq -0xa0(%rbp), %rdi
callq 0x13550
jmp 0x12276
leaq -0xa0(%rbp), %rdi
callq 0xda50
jmp 0x12284
leaq -0xa0(%rbp), %rdi
callq 0x9658
leaq -0xa1(%rbp), %rdi
callq 0x93b0
jmp 0x12158
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x122c4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x9658
leaq -0x29(%rbp), %rdi
callq 0x93b0
jmp 0x12412
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x122f5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x78(%rbp), %rdi
callq 0x9658
leaq -0x79(%rbp), %rdi
callq 0x93b0
jmp 0x12412
movq -0xf8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
movl $0x10, %esi
callq 0x9360
jmp 0x12412
movq -0x100(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
movl $0x48, %esi
callq 0x9360
jmp 0x12412
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x1236d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0xa0(%rbp), %rdi
callq 0x9658
leaq -0xa1(%rbp), %rdi
callq 0x93b0
jmp 0x12412
leaq -0xc9(%rbp), %rdi
movq %rdi, -0x110(%rbp)
callq 0x95c0
movq -0x110(%rbp), %rdx
leaq 0x21052(%rip), %rsi     # 0x333f1
leaq -0xc8(%rbp), %rdi
callq 0x13550
jmp 0x123ad
leaq -0xc8(%rbp), %rdi
callq 0xda50
jmp 0x123bb
leaq -0xc8(%rbp), %rdi
callq 0x9658
leaq -0xc9(%rbp), %rdi
callq 0x93b0
movq -0x48(%rbp), %rax
addq $0x110, %rsp            # imm = 0x110
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x12406
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0xc8(%rbp), %rdi
callq 0x9658
leaq -0xc9(%rbp), %rdi
callq 0x93b0
movq -0x38(%rbp), %rdi
callq 0x95b0
nopl (%rax,%rax)