예제 #1
0
N_NIMCALL(NI, llstreamread_rgyTKC8s50wthTlyUpoMQg)(Tllstream_IHsOGFu33dIY69a9bLlFHlHw* s0, void* buf0, NI buflen0) {
	NI result0;
	result0 = (NI)0;
	switch ((*s0).kind) {
	case ((Tllstreamkind_jVcKY16LbOamXE9bxXUD6pQ) 0):
	{
		result0 = ((NI) 0);
	}
	break;
	case ((Tllstreamkind_jVcKY16LbOamXE9bxXUD6pQ) 1):
	{
		result0 = ((buflen0 <= (NI)(((*s0).s ? (*s0).s->Sup.len : 0) - (*s0).rd)) ? buflen0 : (NI)(((*s0).s ? (*s0).s->Sup.len : 0) - (*s0).rd));
		{
			if (!(((NI) 0) < result0)) goto LA5;
			copymem_fPlwH3r9agN9aEHB6yCPMh0wsystem(buf0, ((void*) ((&(*s0).s->data[(NI)(((NI) 0) + (*s0).rd)]))), ((NI) (result0)));
			(*s0).rd += result0;
		}
		LA5: ;
	}
	break;
	case ((Tllstreamkind_jVcKY16LbOamXE9bxXUD6pQ) 2):
	{
		result0 = readbuffer_nZ0pNe9cd9cXtoayexCiaDtA_2((*s0).f, buf0, ((NI) (buflen0)));
	}
	break;
	case ((Tllstreamkind_jVcKY16LbOamXE9bxXUD6pQ) 3):
	{
		result0 = llreadfromstdin_rgyTKC8s50wthTlyUpoMQg_2(s0, buf0, buflen0);
	}
	break;
	}
	return result0;
}
예제 #2
0
N_NIMCALL(NI, llreadfromstdin_rgyTKC8s50wthTlyUpoMQg_2)(Tllstream_IHsOGFu33dIY69a9bLlFHlHw* s0, void* buf0, NI buflen0) {
	NI result0;
	NimStringDesc* LOC1;
	NimStringDesc* line0;
	NI triples0;
	result0 = (NI)0;
	LOC1 = (NimStringDesc*)0;
	LOC1 = (*s0).s; (*s0).s = copyStringRC1(((NimStringDesc*) &T_ml9aueblxGz9aYsRLKvPmpow_6));
	if (LOC1) nimGCunrefNoCycle(LOC1);
	(*s0).rd = ((NI) 0);
	line0 = rawNewString(((NI) 120));
	triples0 = ((NI) 0);
	{
		while (1) {
			NimStringDesc* LOC4;
			NIM_BOOL LOC10;
			NI LOC11;
			LOC4 = (NimStringDesc*)0;
			{
				if (!(((*s0).s ? (*s0).s->Sup.len : 0) == ((NI) 0))) goto LA7;
				LOC4 = copyString(((NimStringDesc*) &T_ml9aueblxGz9aYsRLKvPmpow_8));
			}
			goto LA5;
			LA7: ;
			{
				LOC4 = copyString(((NimStringDesc*) &T_ml9aueblxGz9aYsRLKvPmpow_9));
			}
			LA5: ;
			LOC10 = (NIM_BOOL)0;
			LOC10 = readlinefromstdin_uSz3afZdESO5uHQzkWghlQ(LOC4, (&line0));
			if (!LOC10) goto LA3;
			(*s0).s = resizeString((*s0).s, line0->Sup.len + 0);
appendString((*s0).s, line0);
			(*s0).s = resizeString((*s0).s, 2);
appendString((*s0).s, ((NimStringDesc*) &T_ml9aueblxGz9aYsRLKvPmpow_7));
			LOC11 = (NI)0;
			LOC11 = counttriples_c9cKaDHVjOVjZCf9b4gTUrFg(line0);
			triples0 += LOC11;
			{
				NIM_BOOL LOC14;
				LOC14 = (NIM_BOOL)0;
				LOC14 = continueline_65hI3axOH0fBcQFDum9aTZgllstream(line0, (((NI) ((NI)(triples0 & ((NI) 1)))) == ((NI) 1)));
				if (!!(LOC14)) goto LA15;
				goto LA2;
			}
			LA15: ;
		} LA3: ;
	} LA2: ;
	(*s0).lineoffset += ((NI) 1);
	result0 = ((buflen0 <= (NI)(((*s0).s ? (*s0).s->Sup.len : 0) - (*s0).rd)) ? buflen0 : (NI)(((*s0).s ? (*s0).s->Sup.len : 0) - (*s0).rd));
	{
		if (!(((NI) 0) < result0)) goto LA19;
		copymem_fPlwH3r9agN9aEHB6yCPMh0wsystem(buf0, ((void*) ((&(*s0).s->data[(*s0).rd]))), ((NI) (result0)));
		(*s0).rd += result0;
	}
	LA19: ;
	return result0;
}
예제 #3
0
N_NIMCALL(NI, sspeekdata_7P4Enb2Vt3iOCL5K9cnGqYw_4)(Streamobj_RShkcoDOPnoCVhtpN1hDPQ* s_QXLskfGc1Jev0gVF9a0jofg, void* buffer0, NI buflen0) {
	NI result0;
	Stringstreamobj_lGsM0FdhfyxyplfYoMsgFQ* s0;
	result0 = (NI)0;
	s0 = ((Stringstreamobj_lGsM0FdhfyxyplfYoMsgFQ*) (s_QXLskfGc1Jev0gVF9a0jofg));
	result0 = ((buflen0 <= (NI)(((*s0).data ? (*s0).data->Sup.len : 0) - (*s0).pos)) ? buflen0 : (NI)(((*s0).data ? (*s0).data->Sup.len : 0) - (*s0).pos));
	{
		if (!(((NI) 0) < result0)) goto LA3;
		copymem_fPlwH3r9agN9aEHB6yCPMh0wsystem(buffer0, ((void*) ((&(*s0).data->data[(*s0).pos]))), ((NI) (result0)));
	}
	LA3: ;
	return result0;
}
예제 #4
0
N_NIMCALL(NI, ssreaddata_7P4Enb2Vt3iOCL5K9cnGqYw_3)(Streamobj_RShkcoDOPnoCVhtpN1hDPQ* s_y2kqirqL6p0kJkuwFdE8DQ, void* buffer0, NI buflen0) {
	NI result0;
	Stringstreamobj_lGsM0FdhfyxyplfYoMsgFQ* s0;
	result0 = (NI)0;
	s0 = ((Stringstreamobj_lGsM0FdhfyxyplfYoMsgFQ*) (s_y2kqirqL6p0kJkuwFdE8DQ));
	result0 = ((buflen0 <= (NI)(((*s0).data ? (*s0).data->Sup.len : 0) - (*s0).pos)) ? buflen0 : (NI)(((*s0).data ? (*s0).data->Sup.len : 0) - (*s0).pos));
	{
		if (!(((NI) 0) < result0)) goto LA3;
		copymem_fPlwH3r9agN9aEHB6yCPMh0wsystem(buffer0, ((void*) ((&(*s0).data->data[(*s0).pos]))), ((NI) (result0)));
		(*s0).pos += result0;
	}
	LA3: ;
	return result0;
}
예제 #5
0
N_NIMCALL(void, sswritedata_mrtMhMXvYVpi5Svw9bWueBw_2)(Streamobj_RShkcoDOPnoCVhtpN1hDPQ* s_TBWsPQ4EX2P6UUIoXpDeGQ, void* buffer0, NI buflen0) {
	Stringstreamobj_lGsM0FdhfyxyplfYoMsgFQ* s0;
{	s0 = ((Stringstreamobj_lGsM0FdhfyxyplfYoMsgFQ*) (s_TBWsPQ4EX2P6UUIoXpDeGQ));
	{
		if (!(buflen0 <= ((NI) 0))) goto LA3;
		goto BeforeRet;
	}
	LA3: ;
	{
		if (!(((*s0).data ? (*s0).data->Sup.len : 0) < (NI)((*s0).pos + buflen0))) goto LA7;
		(*s0).data = setLengthStr((*s0).data, ((NI) ((NI)((*s0).pos + buflen0))));
	}
	LA7: ;
	copymem_fPlwH3r9agN9aEHB6yCPMh0wsystem(((void*) ((&(*s0).data->data[(*s0).pos]))), buffer0, ((NI) (buflen0)));
	(*s0).pos += buflen0;
	}BeforeRet: ;
}
예제 #6
0
static N_INLINE(void, appendString)(NimStringDesc* dest0, NimStringDesc* src0) {
	copymem_fPlwH3r9agN9aEHB6yCPMh0wsystem(((void*) ((&(*dest0).data[((*dest0).Sup.len)- 0]))), ((void*) ((*src0).data)), ((NI) ((NI)((*src0).Sup.len + ((NI) 1)))));
	(*dest0).Sup.len += (*src0).Sup.len;
}