示例#1
0
SvvInternalAction(SvvInternalStringMapIterator, GetNext, void)
{
	while(1)
	{
		if(!IS_NOTHING(Receiver->element))
		{
			SvvInternalStringMapIteratorElement_Destroy(Receiver->element);
		};
		
		if(SvvInternalStack_IsEmpty(Receiver->path))
		{
			Receiver->element = OBJECT_AS_LINK(SvvInternalNothing);
			break;
		} else {
			Receiver->element = OBJECT_AS_LINK(SvvInternalStack_Pop(Receiver->path));
			SvvInternalInjectionIterator iterator = SvvInternalInjection_GetIterator(Receiver->element->node->next_char);
			while(!SvvInternalInjectionIterator_EndReached(iterator))
			{
				SvvInternalStringMapIteratorElement element = SvvInternalStringMapIteratorElement_Create();
				element->node = OBJECT_AS_LINK(SvvInternalInjectionIterator_GetValue(iterator));
				element->string = SvvInternalString_Clone(Receiver->element->string);
				SvvInternalString_CharAppend(element->string, OBJECT_AS_CHAR(SvvInternalInjectionIterator_GetKey(iterator)));
				SvvInternalStack_Push(Receiver->path, LINK_AS_OBJECT(element));
				SvvInternalInjectionIterator_GetNext(iterator);
			};
			SvvInternalInjectionIterator_Destroy(iterator);
			if(SvvInternalStringMapNode_IsMapped(Receiver->element->node))
			{
				break;
			};
		};
	};
};
示例#2
0
void test_unsigned(void)
{
	long long int a_ = JUST(10U);
	long long int b_ = JUST(0U);
	long long int c_ = JUST((unsigned int)-1);
	long long int d_ = NOTHING;

	long long int f_ = JUST(0ULL);
	long long int g_ = JUST(1ULL);
	long long int h_ = JUST(-1ULL);
	long long int i_ = NOTHING;

	assert(IS_JUST(a_));
	assert(IS_JUST(b_));
	assert(IS_JUST(c_));
	assert(IS_NOTHING(d_));
	assert(IS_JUST(f_));
	assert(IS_JUST(g_));
	assert(IS_JUST(h_));
	assert(IS_NOTHING(i_));
}
示例#3
0
SvvInternalAction(SvvInternalStringSetNode, UnSet, void)
{
    Receiver->flags &= ~SET_FLAG;
    while((!SvvInternalStringSetNode_IsSet(Receiver)) && (SvvInternalInjection_GetCapacity(Receiver->next_char) == 0))
    {
        SvvInternalStringSetNode node = Receiver->parent;
        if(!IS_NOTHING(node))
        {
            SvvInternalStringSetNode_Destroy(Receiver);
            SvvInternalInjection_RemoveValue(node->next_char, LINK_AS_OBJECT(Receiver));
        };
        Receiver = node;
    };
};
示例#4
0
SvvInternalAction(SvvInternalStringSetIterator, EndReached, int)
{
	return IS_NOTHING(Receiver->element);
};
示例#5
0
SvvInternalAction(SvvInternalInjectionIterator, EndReached, int)
{
	return IS_NOTHING(Receiver->node);
};