// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_source_s_expand_definition
er_t xoico_source_s_expand_definition( const xoico_source_s* o, const xoico_host* host, sz_t indent, x_sink* sink )
{
    // xoico_source.x:81:5
    
    if( o->size > 0 || st_s_equal_sc(&(o->ext),"h" ) )
    {
        x_sink_push_fa(sink,"\n" );
        x_sink_push_fa(sink,"#rn{ }/*#rn{*}*/\n", indent, sz_max( 0, 116 - indent ) );
        x_sink_push_fa(sink,"#rn{ }// source: #<sc_t>.#<sc_t>\n", indent, o->name.sc, o->ext.sc );
    
        if( st_s_equal_sc(&(o->ext),"h" ) )
        {
            x_sink_push_fa(sink,"#rn{ }##include \"#<sc_t>.#<sc_t>\"\n", indent, o->name.sc, o->ext.sc );
        }
        {const xoico_source_s* __a=o ;if(__a)for(sz_t __i=0;__i<__a->size;__i++){xoico_group_s* e=__a->data[__i]; BLM_TRY(xoico_group_s_expand_definition(e,indent, sink ))
    }}}
    
    if( o->embed_plain_data_as_string_function )
    {BLM_INIT_LEVEL(1);
        x_sink_push_fa(sink,"\n" );
        x_sink_push_fa(sink,"#rn{ }/*#rn{*}*/\n", indent, sz_max( 0, 116 - indent ) );
        x_sink_push_fa(sink,"#rn{ }// source: #<sc_t>.#<sc_t>\n", indent, o->name.sc, o->ext.sc );
        x_sink_push_fa(sink,"#rn{ }// Embedded as string function.\n", indent );
    
        st_s func_global_name;BLM_T_INIT_SPUSH(st_s, &func_global_name);st_s_push_fa(&(func_global_name),"#<sc_t>_#<sc_t>", o->name.sc, o->ext.sc );
        st_s_replace_sc_sc(&(func_global_name),".", "_" );
    
        x_sink_push_fa(sink,"#rn{ }st_s* #<sc_t>( void )\n", indent, func_global_name.sc );
        x_sink_push_fa(sink,"#rn{ }{\n"                            , indent );
    
        x_sink_push_fa(sink,"#rn{ }    sc_t sc[] =\n", indent );
        x_sink_push_fa(sink,"#rn{ }    {\n" , indent );
        x_sink_push_fa(sink,"#rn{ }        \"" , indent );
    
        sz_t lines = 0;
    
        for(sz_t i = 0; i < o->plain_data->size; i++ )
        {
            u0_t c = o->plain_data->data[ i ];
            switch( c )
            {
                case '\\': x_sink_push_sc(sink,"\\\\" ); break;
                case '"' : x_sink_push_sc(sink,"\\\"" ); break;
                case '\n':
                {
                    if( i + 1 < o->plain_data->size )
                    {
                        x_sink_push_fa(sink,"\\n\",\n" );
                        x_sink_push_fa(sink,"#rn{ }        \"" , indent );
                        lines++;
                    }
                }
                break;
    
                default: x_sink_push_char(sink,c );  break;
            }
        }
        x_sink_push_fa(sink,"\\n\"\n" );
        x_sink_push_fa(sink,"#rn{ }    };\n", indent );
        lines++;
    
        x_sink_push_fa(sink,"#rn{ }    st_s* st = st_s_create();\n", indent );
        x_sink_push_fa(sink,"#rn{ }    for( sz_t i = 0; i < #<sz_t>; i++ )\n", indent, lines );
        x_sink_push_fa(sink,"#rn{ }    {\n", indent );
        x_sink_push_fa(sink,"#rn{ }        st_s_push_sc( st, sc[ i ] );\n", indent );
        x_sink_push_fa(sink,"#rn{ }    }\n", indent );
        x_sink_push_fa(sink,"#rn{ }    return st;\n", indent, func_global_name.sc );
        x_sink_push_fa(sink,"#rn{ }}\n", indent, func_global_name.sc );
    BLM_DOWN();}
    
    return  0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
movq %rcx, %r14
movq %rdx, %rbx
movq %rdi, %r15
cmpq $0x0, 0x70(%rdi)
pushq $0x74
popq %r12
jne 0x198e5
leaq 0x48(%r15), %rdi
leaq 0x9349d(%rip), %rsi     # 0xacd75
callq 0x19c6c
testb %al, %al
je 0x199a5
leaq 0xaccdf(%rip), %rsi     # 0xc65cb
movq %r14, %rdi
xorl %eax, %eax
callq 0xdd43
movq %r12, %rax
subq %rbx, %rax
testq %rax, %rax
movl $0x0, %ecx
cmovgq %rax, %rcx
leaq 0x928dc(%rip), %rsi     # 0xac1eb
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xdd43
leaq 0x48(%r15), %r13
movq 0x30(%r15), %rcx
movq 0x50(%r15), %r8
leaq 0x928ce(%rip), %rsi     # 0xac1fd
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xdd43
leaq 0x93432(%rip), %rsi     # 0xacd75
movq %r13, %rdi
callq 0x19c6c
testb %al, %al
je 0x1996b
movq 0x30(%r15), %rcx
movq 0x50(%r15), %r8
leaq 0x928c1(%rip), %rsi     # 0xac21f
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xdd43
xorl %ebp, %ebp
cmpq 0x70(%r15), %rbp
jae 0x199a5
movq 0x68(%r15), %rax
movq (%rax,%rbp,8), %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0x16ebd
incq %rbp
testq %rax, %rax
je 0x1996d
movq %rax, %r13
leaq 0xfe438(%rip), %rax     # 0x117dd0
movq (%rax), %rdi
callq 0x71b64
jmp 0x19c5a
cmpb $0x1, 0x88(%r15)
jne 0x19b86
leaq 0xfe416(%rip), %rax     # 0x117dd0
movq (%rax), %rsi
leaq 0x28(%rsp), %r13
movq %r13, (%rsp)
movq %r13, %rdi
callq 0x717f5
movq $0x1, 0x10(%r13)
leaq 0xacbee(%rip), %rsi     # 0xc65cb
xorl %ebp, %ebp
movq %r14, %rdi
xorl %eax, %eax
callq 0xdd43
subq %rbx, %r12
testq %r12, %r12
cmovleq %rbp, %r12
leaq 0x927f1(%rip), %rsi     # 0xac1eb
movq %r14, %rdi
movq %rbx, %rdx
movq %r12, %rcx
xorl %eax, %eax
callq 0xdd43
movq 0x30(%r15), %rcx
movq 0x50(%r15), %r8
leaq 0x927e4(%rip), %rsi     # 0xac1fd
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xdd43
leaq 0x92815(%rip), %rsi     # 0xac242
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xdd43
leaq 0x8(%rsp), %r12
movq %r12, %rdi
callq 0x8e048
movabsq $-0x503db0e6e1c2e704, %rsi # imm = 0xAFC24F191E3D18FC
movq %r13, %rdi
movq %r12, %rdx
callq 0x71998
movq 0x30(%r15), %rdx
movq 0x50(%r15), %rcx
leaq 0x91311(%rip), %rsi     # 0xaad7c
movq %r12, %rdi
xorl %eax, %eax
callq 0x8f4ef
leaq 0x94117(%rip), %rsi     # 0xadb93
leaq 0x940f1(%rip), %rdx     # 0xadb74
movq %r12, %rdi
callq 0x8fec2
movq 0x8(%r12), %rcx
leaq 0x9135b(%rip), %rsi     # 0xaadf2
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xdd43
leaq 0x91364(%rip), %rsi     # 0xaae0f
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xdd43
leaq 0x91359(%rip), %rsi     # 0xaae18
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xdd43
leaq 0x9135c(%rip), %rsi     # 0xaae2f
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xdd43
leaq 0x91355(%rip), %rsi     # 0xaae3c
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xdd43
leaq 0x91351(%rip), %r13     # 0xaae4c
xorl %r12d, %r12d
xorl %ebp, %ebp
movq 0x80(%r15), %rax
movq 0x10(%rax), %rcx
cmpq %rcx, %rbp
jae 0x19b8e
movq 0x8(%rax), %rax
movzbl (%rax,%rbp), %eax
cmpl $0xa, %eax
je 0x19b40
cmpl $0x22, %eax
je 0x19b2f
cmpl $0x5c, %eax
jne 0x19b73
movq %r14, %rdi
movq %r13, %rsi
jmp 0x19b39
movq %r14, %rdi
leaq 0x91316(%rip), %rsi     # 0xaae4f
callq 0x11689
jmp 0x19b7e
leaq 0x1(%rbp), %rax
cmpq %rcx, %rax
jae 0x19b7e
movq %r14, %rdi
leaq 0x912ff(%rip), %rsi     # 0xaae52
xorl %eax, %eax
callq 0xdd43
movq %r14, %rdi
leaq 0x912d8(%rip), %rsi     # 0xaae3c
movq %rbx, %rdx
xorl %eax, %eax
callq 0xdd43
incq %r12
jmp 0x19b7e
movsbl %al, %esi
movq %r14, %rdi
callq 0x10e57
incq %rbp
jmp 0x19b00
xorl %r13d, %r13d
jmp 0x19c5a
leaq 0x912c3(%rip), %rsi     # 0xaae58
xorl %r13d, %r13d
movq %r14, %rdi
xorl %eax, %eax
callq 0xdd43
leaq 0x912b4(%rip), %rsi     # 0xaae5d
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xdd43
incq %r12
leaq 0x912ab(%rip), %rsi     # 0xaae6b
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xdd43
leaq 0x912bc(%rip), %rsi     # 0xaae90
movq %r14, %rdi
movq %rbx, %rdx
movq %r12, %rcx
xorl %eax, %eax
callq 0xdd43
leaq 0x91244(%rip), %rsi     # 0xaae2f
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xdd43
leaq 0x912c0(%rip), %rsi     # 0xaaebf
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xdd43
leaq 0x912d8(%rip), %rsi     # 0xaaeeb
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xdd43
movq 0x10(%rsp), %rcx
leaq 0x912cc(%rip), %rsi     # 0xaaef8
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xdd43
movq 0x10(%rsp), %rcx
leaq 0x912c9(%rip), %rsi     # 0xaaf0e
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xdd43
movq %rsp, %rdi
callq 0x71b48
movq %r13, %rax
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq