// File: /workspace/github_cpp_makefile_star2_O2/gioannides[P]Language_Processors/src/../include/ast/class_forward_declarations.hpp
// Function: findSize(Context&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
inline void findSize(Context& contxt,std::string IDENTIFIER){
			int i,j;
			bool found = false;
			
			for(i=contxt.Variables.size()-1; i>=0; i--) {
				for (j=contxt.Scopes.size()-1; j>=0; j--)
				{
					if(contxt.Variables[i].scope == contxt.Scopes[j] && IDENTIFIER == contxt.Variables[i].id) 
					{
						found = true;
						if(contxt.lhs_of_assignment){
							contxt.SizeOf = contxt.Variables[i].word_size;
						}
						else if(contxt.Variables[i].DataType == "int"){
							if( contxt.SizeOf < 4)
								contxt.SizeOf = 4;
						}
						else if(contxt.Variables[i].DataType == "float"){
							if( contxt.SizeOf < 4)
								contxt.SizeOf = 4;
						}
						else if(contxt.Variables[i].DataType == "char"){
							if( contxt.SizeOf < 1)
								contxt.SizeOf = 1;
						}
						else if(contxt.Variables[i].DataType == "short"){
							if( contxt.SizeOf < 2)
								contxt.SizeOf = 2;
						}
						else if(contxt.Variables[i].DataType == "long"){
							if( contxt.SizeOf < 8)
								contxt.SizeOf = 8;
						}
						else if(contxt.Variables[i].DataType == "unsigned"){
							if( contxt.SizeOf < 4)
								contxt.SizeOf = 4;
						}
						else if(contxt.Variables[i].DataType == "signed"){
							if( contxt.SizeOf < 4)
								contxt.SizeOf = 4;
						}
						else if(contxt.Variables[i].DataType == "double"){
							if( contxt.SizeOf < 8)
								contxt.SizeOf = 8;
						}
						else if(contxt.Variables[i].DataType == "void"){
							if( contxt.SizeOf < 1)
								contxt.SizeOf = 1;
						}				
						i = -1;
						j = -1;
					}									
				}
			  }
			  if(!found){
				for(i=contxt.Variables.size()-1; i>=0; i--) {
					if(contxt.Variables[i].scope == "global" && IDENTIFIER == contxt.Variables[i].id) 
					{

						if(contxt.lhs_of_assignment){
							contxt.SizeOf = contxt.Variables[i].word_size;
						}
						else if(contxt.Variables[i].DataType == "int"){
							if( contxt.SizeOf < 4)
								contxt.SizeOf = 4;
						}
						else if(contxt.Variables[i].DataType == "float"){
							if( contxt.SizeOf < 4)
								contxt.SizeOf = 4;
						}
						else if(contxt.Variables[i].DataType == "char"){
							if( contxt.SizeOf < 1)
								contxt.SizeOf = 1;
						}
						else if(contxt.Variables[i].DataType == "short"){
							if( contxt.SizeOf < 2)
								contxt.SizeOf = 2;
						}
						else if(contxt.Variables[i].DataType == "long"){
							if( contxt.SizeOf < 8)
								contxt.SizeOf = 8;
						}
						else if(contxt.Variables[i].DataType == "unsigned"){
							if( contxt.SizeOf < 4)
								contxt.SizeOf = 4;
						}
						else if(contxt.Variables[i].DataType == "signed"){
							if( contxt.SizeOf < 4)
								contxt.SizeOf = 4;
						}
						else if(contxt.Variables[i].DataType == "double"){
							if( contxt.SizeOf < 8)
								contxt.SizeOf = 8;
						}
						else if(contxt.Variables[i].DataType == "void"){
							if( contxt.SizeOf < 1)
								contxt.SizeOf = 1;
						}				
						i = -1;
						j = -1;
						}									
					}
			}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, (%rsp)
movq %rdi, %r14
movq 0x248(%rdi), %rax
subq 0x240(%rdi), %rax
movl $0xb0, %ecx
cqto
idivq %rcx
movq %rax, %rbp
xorl %r12d, %r12d
pushq $-0x1
popq %r13
decl %ebp
js 0x162e7
movq 0x468(%r14), %rbx
subq 0x460(%r14), %rbx
shrq $0x5, %rbx
decl %ebx
js 0x160ba
movslq %ebp, %rax
movq 0x240(%r14), %rcx
imulq $0xb0, %rax, %r15
leaq (%rcx,%r15), %rdi
addq $0x30, %rdi
movl %ebx, %esi
shlq $0x5, %rsi
addq 0x460(%r14), %rsi
callq 0xcbbb
testb %al, %al
je 0x160d4
movq 0x240(%r14), %rax
leaq (%rax,%r15), %rsi
addq $0x8, %rsi
movq (%rsp), %rdi
callq 0xcbbb
testb %al, %al
je 0x160d4
movq 0x240(%r14), %rax
cmpb $0x1, 0x1d2(%r14)
jne 0x1613a
movl (%rax,%r15), %eax
jmp 0x1618b
leaq (%rax,%r15), %rdi
addq $0x58, %rdi
leaq 0x1804d(%rip), %rsi     # 0x2e196
callq 0x820e
testb %al, %al
jne 0x16171
movq 0x240(%r14), %rax
leaq (%rax,%r15), %rdi
addq $0x58, %rdi
leaq 0x17427(%rip), %rsi     # 0x2d58f
callq 0x820e
testb %al, %al
je 0x161a0
cmpl $0x4, 0x1fc(%r14)
movb $0x1, %r12b
movl %r13d, %ebp
movl %r13d, %ebx
pushq $0x4
popq %rax
jge 0x160d4
movl %eax, 0x1fc(%r14)
movb $0x1, %r12b
movl %r13d, %ebp
movl %r13d, %ebx
jmp 0x160d4
movq 0x240(%r14), %rax
leaq (%rax,%r15), %rdi
addq $0x58, %rdi
leaq 0x173f8(%rip), %rsi     # 0x2d5ae
callq 0x820e
testb %al, %al
je 0x161db
cmpl $0x0, 0x1fc(%r14)
movb $0x1, %r12b
movl %r13d, %ebp
movl %r13d, %ebx
pushq $0x1
popq %rax
jg 0x160d4
jmp 0x1618b
movq 0x240(%r14), %rax
leaq (%rax,%r15), %rdi
addq $0x58, %rdi
leaq 0x173c8(%rip), %rsi     # 0x2d5b9
callq 0x820e
testb %al, %al
je 0x16212
cmpl $0x2, 0x1fc(%r14)
movb $0x1, %r12b
movl %r13d, %ebp
movl %r13d, %ebx
pushq $0x2
jmp 0x16184
movq 0x240(%r14), %rax
leaq (%rax,%r15), %rdi
addq $0x58, %rdi
leaq 0x17426(%rip), %rsi     # 0x2d64e
callq 0x820e
testb %al, %al
je 0x16249
cmpl $0x8, 0x1fc(%r14)
movb $0x1, %r12b
movl %r13d, %ebp
movl %r13d, %ebx
pushq $0x8
jmp 0x16184
movq 0x240(%r14), %rax
leaq (%rax,%r15), %rdi
addq $0x58, %rdi
leaq 0x173fb(%rip), %rsi     # 0x2d65a
callq 0x820e
testb %al, %al
jne 0x16171
movq 0x240(%r14), %rax
leaq (%rax,%r15), %rdi
addq $0x58, %rdi
leaq 0x173da(%rip), %rsi     # 0x2d65c
callq 0x820e
testb %al, %al
jne 0x16171
movq 0x240(%r14), %rax
leaq (%rax,%r15), %rdi
addq $0x58, %rdi
leaq 0x173ae(%rip), %rsi     # 0x2d653
callq 0x820e
testb %al, %al
jne 0x16231
movq 0x240(%r14), %rax
leaq (%rax,%r15), %rdi
addq $0x58, %rdi
leaq 0x1739f(%rip), %rsi     # 0x2d663
callq 0x820e
movb $0x1, %r12b
movl %r13d, %ebp
movl %r13d, %ebx
testb %al, %al
je 0x160d4
cmpl $0x0, 0x1fc(%r14)
jmp 0x161ca
testb $0x1, %r12b
je 0x162fc
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x248(%r14), %rax
subq 0x240(%r14), %rax
movl $0xb0, %ecx
cqto
idivq %rcx
movq %rax, %rbp
leaq 0x1734a(%rip), %r15     # 0x2d668
pushq $-0x1
popq %r13
leaq 0x17e6d(%rip), %rbx     # 0x2e196
decl %ebp
js 0x162ed
movl %ebp, %eax
movq 0x240(%r14), %rcx
imulq $0xb0, %rax, %r12
leaq (%rcx,%r12), %rdi
addq $0x30, %rdi
movq %r15, %rsi
callq 0x820e
testb %al, %al
je 0x16329
movq 0x240(%r14), %rax
leaq (%rax,%r12), %rsi
addq $0x8, %rsi
movq (%rsp), %rdi
callq 0xcbbb
testb %al, %al
je 0x16329
movq 0x240(%r14), %rax
cmpb $0x1, 0x1d2(%r14)
jne 0x16384
movl (%rax,%r12), %eax
jmp 0x163cb
leaq (%rax,%r12), %rdi
addq $0x58, %rdi
movq %rbx, %rsi
callq 0x820e
testb %al, %al
jne 0x163b7
movq 0x240(%r14), %rax
leaq (%rax,%r12), %rdi
addq $0x58, %rdi
leaq 0x171e1(%rip), %rsi     # 0x2d58f
callq 0x820e
testb %al, %al
je 0x163da
cmpl $0x4, 0x1fc(%r14)
movl %r13d, %ebp
pushq $0x4
popq %rax
jge 0x16329
movl %eax, 0x1fc(%r14)
movl %r13d, %ebp
jmp 0x16329
movq 0x240(%r14), %rax
leaq (%rax,%r12), %rdi
addq $0x58, %rdi
leaq 0x171be(%rip), %rsi     # 0x2d5ae
callq 0x820e
testb %al, %al
je 0x1640f
cmpl $0x0, 0x1fc(%r14)
movl %r13d, %ebp
pushq $0x1
popq %rax
jg 0x16329
jmp 0x163cb
movq 0x240(%r14), %rax
leaq (%rax,%r12), %rdi
addq $0x58, %rdi
leaq 0x17194(%rip), %rsi     # 0x2d5b9
callq 0x820e
testb %al, %al
je 0x1643d
cmpl $0x2, 0x1fc(%r14)
movl %r13d, %ebp
pushq $0x2
jmp 0x163c4
movq 0x240(%r14), %rax
leaq (%rax,%r12), %rdi
addq $0x58, %rdi
leaq 0x171fb(%rip), %rsi     # 0x2d64e
callq 0x820e
testb %al, %al
je 0x1646e
cmpl $0x8, 0x1fc(%r14)
movl %r13d, %ebp
pushq $0x8
jmp 0x163c4
movq 0x240(%r14), %rax
leaq (%rax,%r12), %rdi
addq $0x58, %rdi
leaq 0x171d6(%rip), %rsi     # 0x2d65a
callq 0x820e
testb %al, %al
jne 0x163b7
movq 0x240(%r14), %rax
leaq (%rax,%r12), %rdi
addq $0x58, %rdi
leaq 0x171b5(%rip), %rsi     # 0x2d65c
callq 0x820e
testb %al, %al
jne 0x163b7
movq 0x240(%r14), %rax
leaq (%rax,%r12), %rdi
addq $0x58, %rdi
leaq 0x17189(%rip), %rsi     # 0x2d653
callq 0x820e
testb %al, %al
jne 0x1645c
movq 0x240(%r14), %rax
leaq (%rax,%r12), %rdi
addq $0x58, %rdi
leaq 0x1717a(%rip), %rsi     # 0x2d663
callq 0x820e
movl %r13d, %ebp
testb %al, %al
jne 0x163f9
jmp 0x16329