// File: menhits[P]phplus/src/ResolveLiteral.cpp
// Function: resolveDubLiteral(std::shared_ptr<TokenData>)
Action resolveDubLiteral(Token token)
{
	string in=token->getText();
	
	double val=0;
	int pointPos=0;
	
	for (auto i=in.begin(); i!=in.end(); ++i)
	{
		if (*i=='.' || *i=='_')
		{
			if (pointPos==0)
			{
				pointPos=10;
			}
			else
			{
				error.log(string() + "multiple decimal points tersedia pada nomor '" + in + "'", SOURCE_ERROR, token);
				return voidAction;
			}
		}
		else if (*i>='0' && *i<='9')
		{
			if (pointPos)
			{
				val+=(double)(*i-'0')/pointPos;
				pointPos*=10;
			}
			else
			{
				val=val*10+(*i-'0');
			}
		}
		else
		{
			error.log(string() + "bad character '" + *i + "' tersedia pada nomor '" + in + "'", SOURCE_ERROR, token);
			return voidAction;
		}
	}
	
	double out=val;
	return constGetAction(&out, Dub, token->getText(), globalNamespace);
}

// Assembly:
subq $0x258, %rsp            # imm = 0x258
movq %rsi, 0x30(%rsp)
movq %rdi, %rax
movq 0x30(%rsp), %rdi
movq %rax, 0x38(%rsp)
movq %rax, %rcx
movq %rcx, 0x40(%rsp)
movq %rax, 0x250(%rsp)
movq %rdi, 0x248(%rsp)
callq 0x1bb70
movq %rax, %rsi
leaq 0x228(%rsp), %rdi
callq 0x1bb80
xorps %xmm0, %xmm0
movsd %xmm0, 0x220(%rsp)
movl $0x0, 0x21c(%rsp)
leaq 0x228(%rsp), %rdi
callq 0xb320
movq %rax, 0x210(%rsp)
leaq 0x228(%rsp), %rdi
callq 0xb230
movq %rax, 0x208(%rsp)
leaq 0x210(%rsp), %rdi
leaq 0x208(%rsp), %rsi
callq 0x9b600
testb $0x1, %al
jne 0x9a405
jmp 0x9a918
leaq 0x210(%rsp), %rdi
callq 0x9b640
movsbl (%rax), %eax
cmpl $0x2e, %eax
je 0x9a433
leaq 0x210(%rsp), %rdi
callq 0x9b640
movsbl (%rax), %eax
cmpl $0x5f, %eax
jne 0x9a5ee
cmpl $0x0, 0x21c(%rsp)
jne 0x9a44d
movl $0xa, 0x21c(%rsp)
jmp 0x9a5e9
leaq 0x188(%rsp), %rdi
movq %rdi, 0x28(%rsp)
callq 0xb4e0
movq 0x28(%rsp), %rsi
leaq 0x3b576(%rip), %rdx     # 0xd59e1
leaq 0x1a8(%rsp), %rdi
callq 0xfa60
jmp 0x9a47a
leaq 0x1c8(%rsp), %rdi
leaq 0x1a8(%rsp), %rsi
leaq 0x228(%rsp), %rdx
callq 0x2e070
jmp 0x9a499
leaq 0x3c5fa(%rip), %rdx     # 0xd6a9a
leaq 0x1e8(%rsp), %rdi
leaq 0x1c8(%rsp), %rsi
callq 0xfa60
jmp 0x9a4b7
movq 0x30(%rsp), %rsi
leaq 0x168(%rsp), %rdi
movq %rdi, 0x20(%rsp)
callq 0x1bc90
movq 0x20(%rsp), %rcx
leaq 0x7dee9(%rip), %rdi     # 0x1183c3
leaq 0x1e8(%rsp), %rsi
xorl %edx, %edx
callq 0x34c70
jmp 0x9a4eb
leaq 0x168(%rsp), %rdi
callq 0xfc00
leaq 0x1e8(%rsp), %rdi
callq 0xb6e8
leaq 0x1c8(%rsp), %rdi
callq 0xb6e8
leaq 0x1a8(%rsp), %rdi
callq 0xb6e8
leaq 0x188(%rsp), %rdi
callq 0xb6e8
movq 0x38(%rsp), %rdi
leaq 0x7dee0(%rip), %rsi     # 0x118418
callq 0x1ac60
movl $0x1, 0x164(%rsp)
jmp 0x9aa00
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x180(%rsp)
movl %eax, 0x17c(%rsp)
jmp 0x9a5d7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x180(%rsp)
movl %eax, 0x17c(%rsp)
jmp 0x9a5ca
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x180(%rsp)
movl %eax, 0x17c(%rsp)
jmp 0x9a5bd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x180(%rsp)
movl %eax, 0x17c(%rsp)
leaq 0x168(%rsp), %rdi
callq 0xfc00
leaq 0x1e8(%rsp), %rdi
callq 0xb6e8
leaq 0x1c8(%rsp), %rdi
callq 0xb6e8
leaq 0x1a8(%rsp), %rdi
callq 0xb6e8
leaq 0x188(%rsp), %rdi
callq 0xb6e8
jmp 0x9aa1a
jmp 0x9a904
leaq 0x210(%rsp), %rdi
callq 0x9b640
movsbl (%rax), %eax
cmpl $0x30, %eax
jl 0x9a6bb
leaq 0x210(%rsp), %rdi
callq 0x9b640
movsbl (%rax), %eax
cmpl $0x39, %eax
jg 0x9a6bb
cmpl $0x0, 0x21c(%rsp)
je 0x9a671
leaq 0x210(%rsp), %rdi
callq 0x9b640
movsbl (%rax), %eax
subl $0x30, %eax
cvtsi2sd %eax, %xmm0
cvtsi2sdl 0x21c(%rsp), %xmm1
divsd %xmm1, %xmm0
addsd 0x220(%rsp), %xmm0
movsd %xmm0, 0x220(%rsp)
imull $0xa, 0x21c(%rsp), %eax
movl %eax, 0x21c(%rsp)
jmp 0x9a6b6
movsd 0x220(%rsp), %xmm0
movsd %xmm0, 0x18(%rsp)
leaq 0x210(%rsp), %rdi
callq 0x9b640
movsd 0x18(%rsp), %xmm0
movsbl (%rax), %eax
subl $0x30, %eax
cvtsi2sd %eax, %xmm1
movsd 0x3b30b(%rip), %xmm2    # 0xd59b0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0x220(%rsp)
jmp 0x9a902
leaq 0xa0(%rsp), %rdi
movq %rdi, 0x10(%rsp)
callq 0xb4e0
movq 0x10(%rsp), %rsi
leaq 0x3b2df(%rip), %rdx     # 0xd59b8
leaq 0xc0(%rsp), %rdi
callq 0xfa60
jmp 0x9a6e8
leaq 0x210(%rsp), %rdi
callq 0x9b640
movsbl (%rax), %edx
leaq 0xe0(%rsp), %rdi
leaq 0xc0(%rsp), %rsi
callq 0x37040
jmp 0x9a70f
leaq 0x3b2f9(%rip), %rdx     # 0xd5a0f
leaq 0x100(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
callq 0xfa60
jmp 0x9a72d
leaq 0x120(%rsp), %rdi
leaq 0x100(%rsp), %rsi
leaq 0x228(%rsp), %rdx
callq 0x2e070
jmp 0x9a74c
leaq 0x3c347(%rip), %rdx     # 0xd6a9a
leaq 0x140(%rsp), %rdi
leaq 0x120(%rsp), %rsi
callq 0xfa60
jmp 0x9a76a
movq 0x30(%rsp), %rsi
leaq 0x90(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0x1bc90
movq 0x8(%rsp), %rcx
leaq 0x7dc36(%rip), %rdi     # 0x1183c3
leaq 0x140(%rsp), %rsi
xorl %edx, %edx
callq 0x34c70
jmp 0x9a79e
leaq 0x90(%rsp), %rdi
callq 0xfc00
leaq 0x140(%rsp), %rdi
callq 0xb6e8
leaq 0x120(%rsp), %rdi
callq 0xb6e8
leaq 0x100(%rsp), %rdi
callq 0xb6e8
leaq 0xe0(%rsp), %rdi
callq 0xb6e8
leaq 0xc0(%rsp), %rdi
callq 0xb6e8
leaq 0xa0(%rsp), %rdi
callq 0xb6e8
movq 0x38(%rsp), %rdi
leaq 0x7dc13(%rip), %rsi     # 0x118418
callq 0x1ac60
movl $0x1, 0x164(%rsp)
jmp 0x9aa00
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x180(%rsp)
movl %eax, 0x17c(%rsp)
jmp 0x9a8f0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x180(%rsp)
movl %eax, 0x17c(%rsp)
jmp 0x9a8e3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x180(%rsp)
movl %eax, 0x17c(%rsp)
jmp 0x9a8d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x180(%rsp)
movl %eax, 0x17c(%rsp)
jmp 0x9a8c9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x180(%rsp)
movl %eax, 0x17c(%rsp)
jmp 0x9a8bc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x180(%rsp)
movl %eax, 0x17c(%rsp)
leaq 0x90(%rsp), %rdi
callq 0xfc00
leaq 0x140(%rsp), %rdi
callq 0xb6e8
leaq 0x120(%rsp), %rdi
callq 0xb6e8
leaq 0x100(%rsp), %rdi
callq 0xb6e8
leaq 0xe0(%rsp), %rdi
callq 0xb6e8
leaq 0xc0(%rsp), %rdi
callq 0xb6e8
leaq 0xa0(%rsp), %rdi
callq 0xb6e8
jmp 0x9aa1a
jmp 0x9a904
jmp 0x9a906
leaq 0x210(%rsp), %rdi
callq 0x9b650
jmp 0x9a3d2
movsd 0x220(%rsp), %xmm0
movsd %xmm0, 0x88(%rsp)
leaq 0x7dbc7(%rip), %rsi     # 0x1184f8
leaq 0x78(%rsp), %rdi
callq 0x1a920
movq 0x30(%rsp), %rdi
callq 0x1bb70
movq %rax, %rsi
leaq 0x58(%rsp), %rdi
callq 0x1bb80
jmp 0x9a954
leaq 0x7dacd(%rip), %rsi     # 0x118428
leaq 0x48(%rsp), %rdi
movq %rdi, (%rsp)
callq 0x1a8f0
movq 0x38(%rsp), %rdi
movq (%rsp), %r8
leaq 0x88(%rsp), %rsi
leaq 0x78(%rsp), %rdx
leaq 0x58(%rsp), %rcx
callq 0xc5050
jmp 0x9a98b
leaq 0x48(%rsp), %rdi
callq 0x1a6e0
leaq 0x58(%rsp), %rdi
callq 0xb6e8
leaq 0x78(%rsp), %rdi
callq 0x1a950
movl $0x1, 0x164(%rsp)
jmp 0x9aa00
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x180(%rsp)
movl %eax, 0x17c(%rsp)
jmp 0x9a9f4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x180(%rsp)
movl %eax, 0x17c(%rsp)
leaq 0x48(%rsp), %rdi
callq 0x1a6e0
leaq 0x58(%rsp), %rdi
callq 0xb6e8
leaq 0x78(%rsp), %rdi
callq 0x1a950
jmp 0x9aa1a
leaq 0x228(%rsp), %rdi
callq 0xb6e8
movq 0x40(%rsp), %rax
addq $0x258, %rsp            # imm = 0x258
retq
leaq 0x228(%rsp), %rdi
callq 0xb6e8
movq 0x180(%rsp), %rdi
callq 0xb680
nopw %cs:(%rax,%rax)