// File: /workspace/github_cpp_makefile_star2_O1/Silica[P]PSL/./PSL/parser.h
// Function: PSL::variable::Parser::ParseTable(PSL::variable&)
void ParseTable(variable &c)
	{
		c.pushcode(new Variable::PUSH_NULL);
		while (int n = t->checkNext())
		{
			if (n == ']')
			{
				t->getNext();
				return;
			}
			else if (n == Tokenizer::IDENTIFIER || n == Tokenizer::STRING)
			{
				string name = t->nstr;
				t->getNext();
				if (t->getNextIf(':'))
				{
					getexp11(c);
					c.pushcode(new Variable::SET_MEMBER(name));
				}
				else
				{
					if (n == Tokenizer::IDENTIFIER)
						c.pushcode(new Variable::VARIABLE(name));
					else
						c.pushcode(new Variable::PUSH_STRING(name));
					getSuffOp(c);
					getexp11(c, true);
					c.pushcode(new Variable::ARRAY_PUSH);
				}
			}
			else if (n == Tokenizer::INT)
			{
				int i = t->nint;
				t->getNext();
				if (t->getNextIf(':'))
				{
					getexp11(c);
					c.pushcode(new Variable::SET_INDEX(i));
				}
				else
				{
					c.pushcode(new Variable::PUSH_INT(i));
					getSuffOp(c);
					getexp11(c, true);
					c.pushcode(new Variable::ARRAY_PUSH);
				}
			}
			else
			{
				getexp11(c);
				c.pushcode(new Variable::ARRAY_PUSH);
			}
			if (!t->getNextIf(','))
			{
				if (t->checkNext() != ']')
				{
					Error(TINA, ',', "object member");
					return;
				}
			}
		}
	}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
callq 0xf762
leaq 0x1eecf(%rip), %rcx     # 0x3ca88
movq %rcx, (%rax)
movq (%r14), %rcx
movq (%rcx), %rdi
movq (%rdi), %rcx
movq %rax, %rsi
callq *0x190(%rcx)
leaq 0x1f353(%rip), %r13     # 0x3cf28
leaq 0x1f3b4(%rip), %r15     # 0x3cf90
movq (%rbx), %r12
movl 0x38(%r12), %ebp
testl %ebp, %ebp
jns 0x1dbf7
movq %r12, %rdi
callq 0x199bc
movl %eax, %ebp
movl %eax, 0x38(%r12)
testl %ebp, %ebp
je 0x1dea7
cmpl $0x5d, %ebp
je 0x1de8e
cmpl $0x5, %ebp
je 0x1dc17
cmpl $0x2, %ebp
je 0x1dc27
cmpl $0x1, %ebp
jne 0x1dc43
movq (%rbx), %rdi
movq 0x68(%rdi), %rax
testq %rax, %rax
je 0x1dc50
incl (%rax)
jmp 0x1dc52
movq (%rbx), %rdi
movl 0x5c(%rdi), %ebp
cmpl $0x0, 0x38(%rdi)
jle 0x1dd11
movl $0xffffffff, 0x38(%rdi) # imm = 0xFFFFFFFF
jmp 0x1dd18
movq %rbx, %rdi
movq %r14, %rsi
xorl %edx, %edx
jmp 0x1dd9a
xorl %eax, %eax
movq %rax, (%rsp)
cmpl $0x0, 0x38(%rdi)
jle 0x1dc65
movl $0xffffffff, 0x38(%rdi) # imm = 0xFFFFFFFF
jmp 0x1dc6c
jns 0x1dc6c
callq 0x199bc
movq (%rbx), %r12
movl 0x38(%r12), %eax
testl %eax, %eax
jns 0x1dc85
movq %r12, %rdi
callq 0x199bc
movl %eax, 0x38(%r12)
cmpl $0x3a, %eax
jne 0x1dcc4
movl $0xffffffff, 0x38(%r12) # imm = 0xFFFFFFFF
movq %rbx, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x1c964
callq 0x10058
movq %r13, (%rax)
movq $0x0, 0x8(%rax)
movq (%rsp), %rcx
testq %rcx, %rcx
je 0x1ddbb
incl (%rcx)
jmp 0x1ddbd
cmpl $0x1, %ebp
jne 0x1dcf9
callq 0x10058
movq %rax, %r12
leaq 0x208d0(%rip), %rax     # 0x3e5a8
movq %rax, (%r12)
movq $0x0, 0x8(%r12)
movq (%rsp), %rax
testq %rax, %rax
je 0x1ddc3
incl (%rax)
jmp 0x1ddc5
callq 0x10058
movq %rax, %r12
movq %rax, %rdi
movq %rsp, %rsi
callq 0x1e086
jmp 0x1ddca
jns 0x1dd18
callq 0x199bc
movq (%rbx), %r12
movl 0x38(%r12), %eax
testl %eax, %eax
jns 0x1dd31
movq %r12, %rdi
callq 0x199bc
movl %eax, 0x38(%r12)
cmpl $0x3a, %eax
jne 0x1dd60
movl $0xffffffff, 0x38(%r12) # imm = 0xFFFFFFFF
movq %rbx, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x1c964
callq 0x10058
leaq 0x1f2a0(%rip), %rcx     # 0x3cff8
movq %rcx, (%rax)
movl %ebp, 0x8(%rax)
jmp 0x1dda7
callq 0x10058
movq %rax, %r12
movq %rax, %rdi
movl %ebp, %esi
callq 0x1df0e
movq (%r14), %rax
movq (%rax), %rdi
movq (%rdi), %rax
movq %r12, %rsi
callq *0x190(%rax)
movq %rbx, %rdi
movq %r14, %rsi
callq 0x1bfa0
movq %rbx, %rdi
movq %r14, %rsi
movl $0x1, %edx
callq 0x1c964
callq 0xf762
movq %r15, (%rax)
movq (%r14), %rcx
movq (%rcx), %rdi
movq (%rdi), %rcx
movq %rax, %rsi
callq *0x190(%rcx)
jmp 0x1de1f
xorl %ecx, %ecx
movq %rcx, 0x8(%rax)
jmp 0x1ddff
xorl %eax, %eax
movq %rax, 0x8(%r12)
movq (%r14), %rax
movq (%rax), %rdi
movq (%rdi), %rax
movq %r12, %rsi
callq *0x190(%rax)
movq %rbx, %rdi
movq %r14, %rsi
callq 0x1bfa0
movq %rbx, %rdi
movq %r14, %rsi
movl $0x1, %edx
callq 0x1c964
callq 0xf762
movq %r15, (%rax)
movq (%r14), %rcx
movq (%rcx), %rdi
movq (%rdi), %rcx
movq %rax, %rsi
callq *0x190(%rcx)
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x1de1f
callq 0xfbc0
movq (%rbx), %r12
movl 0x38(%r12), %eax
testl %eax, %eax
jns 0x1de38
movq %r12, %rdi
callq 0x199bc
movl %eax, 0x38(%r12)
cmpl $0x2c, %eax
jne 0x1de4b
movl $0xffffffff, 0x38(%r12) # imm = 0xFFFFFFFF
jmp 0x1dbdc
movq (%rbx), %r12
movl 0x38(%r12), %eax
testl %eax, %eax
jns 0x1de64
movq %r12, %rdi
callq 0x199bc
movl %eax, 0x38(%r12)
cmpl $0x5d, %eax
je 0x1dbdc
leaq 0xaa52(%rip), %rcx      # 0x288c6
movq %rbx, %rdi
movl $0x2, %esi
movl $0x2c, %edx
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
callq 0x1bdbc
jmp 0x1dea7
movq (%rbx), %rdi
cmpl $0x0, 0x38(%rdi)
jle 0x1dea0
movl $0xffffffff, 0x38(%rdi) # imm = 0xFFFFFFFF
jmp 0x1dea7
jns 0x1dea7
callq 0x199bc
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq %r12, %rdi
callq 0x1e0f4
jmp 0x1ded3
movq %rax, %rbx
movq %r12, %rdi
callq 0x1df62
jmp 0x1dee1
movq %rax, %rbx
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x1dee1
callq 0xfbc0
movq %rbx, %rdi
callq 0xc290
nop