// File: Silica[P]PSL/./PSL/parser.h
// Function: PSL::variable::Parser::ParseFor(PSL::variable&, PSL::variable&)
void ParseFor(variable &g, variable &c)
	{
		variable v;
		size_t l = 0;
		if (!t->getNextIf('('/*')'*/))
			Error(TINA, '('/*')'*/, "for");
		if (!t->getNextIf(';'))
		{
			v.pushcode(new Variable::POP);
			ParseExpression(v, ';');
			l = v.codelength();
		}
		Variable::OpCode *oc = NULL;
		if (!t->getNextIf(';'))
		{
			ParseExpression(v, ';');
			if (v.codelength() - l)
			{
				oc = new Variable::JF(static_cast<int>(v.codelength()));
				v.pushcode(oc);
			}
		}
		variable x;
		if (!t->getNextIf(/*'('*/')'))
			ParseExpression(x, /*'('*/')');
		ParseDangling(g, v);
		size_t cline = v.codelength();
		if (x.codelength())
		{
			v.pushcode(new Variable::POP);
			v.getcode()->push(x.getcode());
		}
		v.pushcode(new Variable::JMP(static_cast<int>(l)));
		if (oc)
			oc->set(static_cast<int>(v.codelength()));
		if (t->checkNext() == Tokenizer::IDENTIFIER && t->nstr == "else")
		{
			t->getNext();
			ParseDangling(g, v);
		}
		if (Variable::Code *z = v.getcode())
			c.pushcode(new Variable::LOOP(z, cline));
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x110, %rsp            # imm = 0x110
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x68(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x1a130
movq -0x68(%rbp), %rax
movq $0x0, -0x28(%rbp)
movq (%rax), %rdi
movl $0x28, %esi
callq 0x27d30
movb %al, -0x59(%rbp)
jmp 0x275c6
movb -0x59(%rbp), %al
testb $0x1, %al
jne 0x27604
jmp 0x275cf
movq -0x68(%rbp), %rdi
leaq 0x175bd(%rip), %rcx     # 0x3eb97
movl $0x2, %esi
movl $0x28, %edx
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
callq 0x27d80
jmp 0x275f1
jmp 0x27604
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x27a0d
movq -0x68(%rbp), %rax
movq (%rax), %rdi
movl $0x3b, %esi
callq 0x27d30
movb %al, -0x69(%rbp)
jmp 0x2761a
movb -0x69(%rbp), %al
testb $0x1, %al
jne 0x27678
jmp 0x27623
movl $0x8, %edi
callq 0x1ee10
movq %rax, -0x78(%rbp)
jmp 0x27633
movq -0x78(%rbp), %rdi
callq 0x27110
movq -0x78(%rbp), %rsi
leaq -0x20(%rbp), %rdi
callq 0x23150
jmp 0x2764b
movq -0x68(%rbp), %rdi
leaq -0x20(%rbp), %rsi
movl $0x3b, %edx
xorl %ecx, %ecx
callq 0x27150
jmp 0x27661
leaq -0x20(%rbp), %rdi
callq 0x27030
movq %rax, -0x80(%rbp)
jmp 0x27670
movq -0x80(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x68(%rbp), %rax
movq $0x0, -0x40(%rbp)
movq (%rax), %rdi
movl $0x3b, %esi
callq 0x27d30
movb %al, -0x81(%rbp)
jmp 0x27699
movb -0x81(%rbp), %al
testb $0x1, %al
jne 0x27759
jmp 0x276a9
movq -0x68(%rbp), %rdi
leaq -0x20(%rbp), %rsi
movl $0x3b, %edx
xorl %ecx, %ecx
callq 0x27150
jmp 0x276bf
leaq -0x20(%rbp), %rdi
callq 0x27030
movq %rax, -0x90(%rbp)
jmp 0x276d1
movq -0x90(%rbp), %rax
subq -0x28(%rbp), %rax
cmpq $0x0, %rax
je 0x27757
movl $0x10, %edi
callq 0x2a950
movq %rax, -0x98(%rbp)
jmp 0x276f5
leaq -0x20(%rbp), %rdi
callq 0x27030
movq %rax, -0xa0(%rbp)
jmp 0x27707
movq -0x98(%rbp), %rdi
movq -0xa0(%rbp), %rax
movl %eax, %esi
callq 0x33390
jmp 0x2771e
movq -0x98(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rsi
leaq -0x20(%rbp), %rdi
callq 0x23150
jmp 0x27738
jmp 0x27757
movq -0x98(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
callq 0x2a9b0
jmp 0x27a0d
jmp 0x27759
leaq -0x48(%rbp), %rdi
callq 0x1a130
jmp 0x27764
movq -0x68(%rbp), %rax
movq (%rax), %rdi
movl $0x29, %esi
callq 0x27d30
movb %al, -0xa1(%rbp)
jmp 0x2777d
movb -0xa1(%rbp), %al
testb $0x1, %al
jne 0x277b2
jmp 0x27789
movq -0x68(%rbp), %rdi
leaq -0x48(%rbp), %rsi
movl $0x29, %edx
xorl %ecx, %ecx
callq 0x27150
jmp 0x2779f
jmp 0x277b2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x27a04
movq -0x68(%rbp), %rdi
movq -0x10(%rbp), %rsi
leaq -0x20(%rbp), %rdx
callq 0x33330
jmp 0x277c5
leaq -0x20(%rbp), %rdi
callq 0x27030
movq %rax, -0xb0(%rbp)
jmp 0x277d7
movq -0xb0(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x27030
movq %rax, -0xb8(%rbp)
jmp 0x277f4
movq -0xb8(%rbp), %rax
cmpq $0x0, %rax
je 0x2786d
movl $0x8, %edi
callq 0x1ee10
movq %rax, -0xc0(%rbp)
jmp 0x27814
movq -0xc0(%rbp), %rdi
callq 0x27110
movq -0xc0(%rbp), %rsi
leaq -0x20(%rbp), %rdi
callq 0x23150
jmp 0x27832
leaq -0x20(%rbp), %rdi
callq 0x27070
movq %rax, -0xc8(%rbp)
jmp 0x27844
leaq -0x48(%rbp), %rdi
callq 0x27070
movq %rax, -0xd0(%rbp)
jmp 0x27856
movq -0xd0(%rbp), %rsi
movq -0xc8(%rbp), %rdi
callq 0x1bd00
jmp 0x2786b
jmp 0x2786d
movl $0x10, %edi
callq 0x2a950
movq %rax, -0xd8(%rbp)
jmp 0x27880
movq -0xd8(%rbp), %rdi
movl -0x28(%rbp), %esi
callq 0x31670
jmp 0x27891
movq -0xd8(%rbp), %rsi
leaq -0x20(%rbp), %rdi
callq 0x23150
jmp 0x278a3
cmpq $0x0, -0x40(%rbp)
je 0x27901
movq -0x40(%rbp), %rax
movq %rax, -0xe8(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x27030
movq %rax, -0xe0(%rbp)
jmp 0x278c7
movq -0xe8(%rbp), %rdi
movq -0xe0(%rbp), %rax
movl %eax, %esi
movq (%rdi), %rax
movq 0x20(%rax), %rax
callq *%rax
jmp 0x278e2
jmp 0x27901
movq -0xd8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
callq 0x2a9b0
jmp 0x27a04
movq -0x68(%rbp), %rax
movq (%rax), %rdi
callq 0x232e0
movl %eax, -0xec(%rbp)
jmp 0x27915
movl -0xec(%rbp), %eax
cmpl $0x1, %eax
jne 0x27960
movq -0x68(%rbp), %rax
movq (%rax), %rdi
addq $0x68, %rdi
leaq 0x171eb(%rip), %rsi     # 0x3eb1d
callq 0x26a00
testb $0x1, %al
jne 0x2793d
jmp 0x27960
movq -0x68(%rbp), %rax
movq (%rax), %rdi
callq 0x26620
jmp 0x2794b
movq -0x68(%rbp), %rdi
movq -0x10(%rbp), %rsi
leaq -0x20(%rbp), %rdx
callq 0x33330
jmp 0x2795e
jmp 0x27960
leaq -0x20(%rbp), %rdi
callq 0x27070
movq %rax, -0xf8(%rbp)
jmp 0x27972
movq -0xf8(%rbp), %rax
movq %rax, -0x58(%rbp)
cmpq $0x0, -0x58(%rbp)
je 0x279e9
movq -0x18(%rbp), %rax
movq %rax, -0x108(%rbp)
movl $0x18, %edi
callq 0x333d0
movq %rax, -0x100(%rbp)
jmp 0x279a2
movq -0x100(%rbp), %rdi
movq -0x58(%rbp), %rsi
movq -0x50(%rbp), %rdx
callq 0x333f0
jmp 0x279b8
movq -0x100(%rbp), %rsi
movq -0x108(%rbp), %rdi
callq 0x23150
jmp 0x279cd
jmp 0x279e9
movq -0x100(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
callq 0x33450
jmp 0x27a04
leaq -0x48(%rbp), %rdi
callq 0xcdc0
leaq -0x20(%rbp), %rdi
callq 0xcdc0
addq $0x110, %rsp            # imm = 0x110
popq %rbp
retq
leaq -0x48(%rbp), %rdi
callq 0xcdc0
leaq -0x20(%rbp), %rdi
callq 0xcdc0
movq -0x30(%rbp), %rdi
callq 0xc280
nop