// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_che_s_trans_number_literal
er_t xoico_che_s_trans_number_literal( xoico_che_s* o, x_source* source, xoico_che_result* result )
{
    // xoico_che.x:462:1
    
    bl_t hex = false;
    if( x_source_parse_bl(source,"#?'0x'" ) )
    {
        BLM_TRY(xoico_che_result_a_push_sc(result,"0x" ))
        hex = true;
    }
    else if( x_source_parse_bl(source,"#?'0X'" ) )
    {
        BLM_TRY(xoico_che_result_a_push_sc(result,"0X" ))
        hex = true;
    }
    
    if( hex )
    {
        while( x_source_parse_bl(source,"#?(([0]>='0'&&[0]<='9')||([0]>='a'&&[0]<='f')||([0]>='A'&&[0]<='F'))" ) )
        {
            BLM_TRY(xoico_che_result_a_push_char(result,x_source_get_char(source) ))
        }
    }
    else // decimal
    {
        while( x_source_parse_bl(source,"#?([0]>='0'&&[0]<='9')" ) ) BLM_TRY(xoico_che_result_a_push_char(result,x_source_get_char(source) ))
    }
    
    if( x_source_parse_bl(source,"#?([0]=='.')" ) )
    {
        BLM_TRY(xoico_che_result_a_push_char(result,x_source_get_char(source) ))
        while( x_source_parse_bl(source,"#?([0]>='0'&&[0]<='9')" ) ) BLM_TRY(xoico_che_result_a_push_char(result,x_source_get_char(source) ))
    }
    
    bl_t exponent = false;
    
    if( x_source_parse_bl(source,"#?([0]=='e'||[0]=='E')" ) )
    {
        BLM_TRY(xoico_che_result_a_push_char(result,x_source_get_char(source) ))
        exponent = true;
    }
    
    if( exponent )
    {
        if( x_source_parse_bl(source,"#?([0]=='+'||[0]=='-')" ) )
        {
            BLM_TRY(xoico_che_result_a_push_char(result,x_source_get_char(source) ))
        }
    
        while( x_source_parse_bl(source,"#?([0]>='0'&&[0]<='9')" ) )
        {
            BLM_TRY(xoico_che_result_a_push_char(result,x_source_get_char(source) ))
        }
    }
    
    // suffix
    while( x_source_parse_bl(source,"#?([0]=='l'||[0]=='L'||[0]=='u'||[0]=='U'||[0]=='f'||[0]=='F')" ) )
    {
        BLM_TRY(xoico_che_result_a_push_char(result,x_source_get_char(source) ))
    }
    
    return  0;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %rbx
movq %rsi, %r14
leaq 0x8fb3d(%rip), %rsi     # 0xad3f9
movq %r14, %rdi
callq 0xe5ff
testb %al, %al
je 0x1d8d1
leaq 0x8fb31(%rip), %rsi     # 0xad400
jmp 0x1d8eb
leaq 0x8fb2b(%rip), %rsi     # 0xad403
movq %r14, %rdi
callq 0xe5ff
testb %al, %al
je 0x1d92f
leaq 0x8fb1f(%rip), %rsi     # 0xad40a
movq %rbx, %rdi
callq 0x1d59d
testq %rax, %rax
jne 0x1da7f
leaq 0x8fb0a(%rip), %r12     # 0xad40d
movq %r14, %rdi
movq %r12, %rsi
callq 0xe5ff
testb %al, %al
je 0x1d962
movq %r14, %rdi
callq 0x104a2
movsbl %al, %esi
movq %rbx, %rdi
callq 0x1daa5
testq %rax, %rax
je 0x1d903
jmp 0x1da7f
leaq 0x97e2c(%rip), %r12     # 0xb5762
movq %r14, %rdi
movq %r12, %rsi
callq 0xe5ff
testb %al, %al
je 0x1d962
movq %r14, %rdi
callq 0x104a2
movsbl %al, %esi
movq %rbx, %rdi
callq 0x1daa5
testq %rax, %rax
je 0x1d936
jmp 0x1da7f
leaq 0x8fae9(%rip), %rsi     # 0xad452
movq %r14, %rdi
callq 0xe5ff
testb %al, %al
je 0x1d9c7
movq %r14, %rdi
callq 0x104a2
movsbl %al, %esi
movq %rbx, %rdi
callq 0x1daa5
testq %rax, %rax
jne 0x1da7f
leaq 0x97dca(%rip), %r12     # 0xb5762
movq %r14, %rdi
movq %r12, %rsi
callq 0xe5ff
testb %al, %al
je 0x1d9c7
movq %r14, %rdi
callq 0x104a2
movsbl %al, %esi
movq %rbx, %rdi
callq 0x1daa5
movq %rax, %r15
testq %rax, %rax
je 0x1d998
jmp 0x1da82
leaq 0x8fa91(%rip), %rsi     # 0xad45f
movq %r14, %rdi
callq 0xe5ff
testb %al, %al
je 0x1da54
movq %r14, %rdi
callq 0x104a2
movsbl %al, %esi
movq %rbx, %rdi
callq 0x1daa5
testq %rax, %rax
jne 0x1da7f
leaq 0x8fa79(%rip), %rsi     # 0xad476
movq %r14, %rdi
callq 0xe5ff
testb %al, %al
je 0x1da21
movq %r14, %rdi
callq 0x104a2
movsbl %al, %esi
movq %rbx, %rdi
callq 0x1daa5
testq %rax, %rax
jne 0x1da7f
leaq 0x97d3a(%rip), %r12     # 0xb5762
movq %r14, %rdi
movq %r12, %rsi
callq 0xe5ff
testb %al, %al
je 0x1da54
movq %r14, %rdi
callq 0x104a2
movsbl %al, %esi
movq %rbx, %rdi
callq 0x1daa5
movq %rax, %r15
testq %rax, %rax
je 0x1da28
jmp 0x1da82
leaq 0x8fa32(%rip), %rsi     # 0xad48d
movq %r14, %rdi
callq 0xe5ff
testb %al, %al
je 0x1daa0
movq %r14, %rdi
callq 0x104a2
movsbl %al, %esi
movq %rbx, %rdi
callq 0x1daa5
testq %rax, %rax
je 0x1da54
movq %rax, %r15
leaq 0xfa347(%rip), %rax     # 0x117dd0
movq (%rax), %rdi
callq 0x71b64
movq %r15, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
xorl %r15d, %r15d
jmp 0x1da91