Exemplo n.º 1
0
/*
 * Adds a new offset list entry with the unique id and offset to an offsetList
 */
struct symbol_list_t *add_to_symbol_list(struct symbol_list_t **offsetList, const char *id, int offset) {

	// List was empty so initialize
	if(*offsetList == NULL) {
		*offsetList = new_symbol_list();
		(*offsetList)->id = new_identifier(id);
		(*offsetList)->offset = offset;

		return *offsetList;
	} else {
		struct symbol_list_t *end = *offsetList;
		
		// Ensures only unique ids are added
		while(end->next != NULL) {
			if(strcmp(end->id, id) == 0)
				return end;
			end = end->next;
		}
		
		end->next = new_symbol_list();
		end->next->id = new_identifier(id);
		end->next->offset = offset;

		return end->next;
	}

}
Exemplo n.º 2
0
/* Given the number of variables 'n', return variable_list with 'n' variables. */
static variable_list build_dimacs_variable_list(unsigned int n)
{
    unsigned int i;
    variable_list res = setroom_variable_list(new_variable_list(), n);
    for (i = 0; i < n; i++) {
        char name[20];
        bool_variable v;

        sprintf(name,"%u", (i + 1));
        v = new_bool_variable(new_identifier(add_lydia_symbol(name),
                                             int_listNIL,
                                             qualifier_listNIL),
                              variable_attribute_listNIL,
                              0);
        res = append_variable_list(res, to_variable(v));
    }
    return res;
}
void NewGeneVariableSummaryScrollArea::WidgetDataRefreshReceive(WidgetDataItem_VARIABLE_GROUPS_SUMMARY_SCROLL_AREA widget_data)
{

	Empty();

	std::for_each(widget_data.identifiers.cbegin(), widget_data.identifiers.cend(), [&](WidgetInstanceIdentifier const & identifier)
	{
		if (identifier.uuid && identifier.code && identifier.longhand)
		{
			WidgetInstanceIdentifier new_identifier(identifier);
			NewGeneVariableSummaryGroup * tmpGrp = new NewGeneVariableSummaryGroup(this, new_identifier, outp);
			tmpGrp->setTitle(identifier.longhand->c_str());
			layout()->addWidget(tmpGrp);

			if (new_identifier.IsEqual(WidgetInstanceIdentifier::EQUALITY_CHECK_TYPE__UUID_PLUS_STRING_CODE, cached_active_vg))
			{
				DoTabChange(new_identifier); // pick up any metadata changes?
			}
		}
	});

}