Esempio n. 1
0
static void _store_definition
 (Token name, Token *dclstr, Token *argv, typeID *argt, NormPtr body,
  recID r, typeID rett, Token cname, bool b, int ff, bool poly, bool have_this,
  NormPtr alias)
{
	funcd *f = (funcd*) malloc (sizeof * f);
	f->is_destructor = b;
	f->name = name;
	f->cname = cname;
	f->dclstr = intdup (dclstr);
	f->argv = intdup (argv);
	f->argt = argtdup (argt);
	f->body = body;
	f->alias = alias;
	f->object = r;
	f->next = 0;
	f->ret_type = rett;
	f->polymorph = poly;
	f->have_this = have_this;
	f->in_abstract = bt_macro;
	f->virt = 0;
	f->done = 0;
	if (definition [ff].last) definition [ff].last->next = f;
	else definition [ff].first = f;
	definition [ff].last = f;
}
Esempio n. 2
0
int TestParse::parseCSVprofile(int units, std::string file)
{
	verbose = 1;
	char *params[55];
	int pnr = 0;

	// Numbers are column numbers
	params[pnr++] = strdup("numberField");
	params[pnr++] = intdup(0);
	params[pnr++] = strdup("dateField");
	params[pnr++] = intdup(1);
	params[pnr++] = strdup("starttimeField");
	params[pnr++] = intdup(2);
	params[pnr++] = strdup("timeField");
	params[pnr++] = intdup(3);
	params[pnr++] = strdup("depthField");
	params[pnr++] = intdup(4);
	params[pnr++] = strdup("tempField");
	params[pnr++] = intdup(5);
	params[pnr++] = strdup("pressureField");
	params[pnr++] = intdup(6);
	// Numbers are indexes of possible options
	params[pnr++] = strdup("datefmt");
	params[pnr++] = intdup(2);
	params[pnr++] = strdup("units");
	params[pnr++] = intdup(units);
	params[pnr++] = NULL;

	return parse_csv_file(file.c_str(), params, pnr - 1, "csv");
}
Esempio n. 3
0
int main(int argc, char *argv[])
{
	int *i;
	int j, val;
	int max = 0;
	int log_level = 0;
	cp_heap *heap;

	if (argc > 1) max = atoi(argv[1]);
	if (max == 0) max = 10;
	
	heap = cp_heap_create(cp_hash_compare_int);

	srand(time(NULL));

	for (j = 0; j < max; j++)
	{
		val = rand();
		cp_heap_push(heap, intdup(&val));
	}
		
	while ((i = cp_heap_pop(heap)))
	{
		printf("%d\n", *i);
		max--;
		if (max == 50) cp_heap_contract(heap);
		free(i);
	}

	cp_heap_contract(heap);

	cp_heap_destroy(heap);

	return 0;
}
Esempio n. 4
0
typeID typeof_designator (typeID t, Token d[])
{
	exprret E;
	Token x = internal_identifier1 ();
	Token expr [100];

	sintprintf (expr, x, ISTR (d), -1);
	expr [intlen (expr) - 1] = -1;
	open_local_scope ();
	enter_local_obj (x, t);
	parse_expression_string (intdup (expr), &E);
	close_local_scope ();

	if (!E.ok) return typeID_void;

	if (E.newExpr [0] == x)
		intcpy (d, E.newExpr + 1), intcatc (d, '=');
	free (E.newExpr);

	return E.type;
}
Esempio n. 5
0
File: 3.c Progetto: 2khc/UCL
int main(void)
{
    int *n = (int[11])
    {
        10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0
    };

    sort(n);
}

int* sort(int *n)
{
    int len;
    do
    {
        len++;
    }
    while (*n++);

   int *copy = intdup(n, len);

}
Esempio n. 6
0
void TestParse::testParseNewFormat()
{
	struct dive *dive;
	QDir dir;
	QStringList filter;
	QString firstLine;
	QStringList files;

	/*
	 * Set the directory location and file filter for H3 CSV files.
	 */

	dir = QString::fromLatin1(SUBSURFACE_SOURCE "/dives");
	filter << "TestDiveSeabearH3*.csv";
	filter << "TestDiveSeabearT1*.csv";
	files = dir.entryList(filter, QDir::Files);

	/*
	 * Parse all files found matching the filter.
	 */

	for (int i = 0; i < files.size(); ++i) {
		QString delta;
		QStringList currColumns;
		QStringList headers;
		QString file = QString::fromLatin1(SUBSURFACE_SOURCE "/dives/").append(files.at(i));
		QFile f(file);

		/*
		 * Parse the sample interval if available from CSV
		 * header.
		 */

		f.open(QFile::ReadOnly);
		while ((firstLine = f.readLine().trimmed()).length() > 0 && !f.atEnd()) {
			if (firstLine.contains("//Log interval: "))
				delta = firstLine.remove(QString::fromLatin1("//Log interval: ")).trimmed().remove(QString::fromLatin1(" s"));
		}
		firstLine = f.readLine().trimmed();

		/*
		 * Parse the field configuration from the CSV header.
		 */

		currColumns = firstLine.split(';');
		Q_FOREACH (QString columnText, currColumns) {
			if (columnText == "Time") {
				headers.append("Sample time");
			} else if (columnText == "Depth") {
				headers.append("Sample depth");
			} else if (columnText == "Temperature") {
				headers.append("Sample temperature");
			} else if (columnText == "NDT") {
				headers.append("Sample NDL");
			} else if (columnText == "TTS") {
				headers.append("Sample TTS");
			} else if (columnText == "pO2_1") {
				headers.append("Sample sensor1 pO₂");
			} else if (columnText == "pO2_2") {
				headers.append("Sample sensor2 pO₂");
			} else if (columnText == "pO2_3") {
				headers.append("Sample sensor3 pO₂");
			} else if (columnText == "Ceiling") {
				headers.append("Sample ceiling");
			} else if (columnText == "Tank pressure") {
				headers.append("Sample pressure");
			} else {
				// We do not know about this value
				qDebug() << "Seabear import found an un-handled field: " << columnText;
				headers.append("");
			}
			f.close();
		}

		/*
		 * Validate the parsing routine returns success.
		 */

		char *params[40];
		int pnr = 0;

		params[pnr++] = strdup("timeField");
		params[pnr++] = intdup(headers.indexOf(tr("Sample time")));
		params[pnr++] = strdup("depthField");
		params[pnr++] = intdup(headers.indexOf(tr("Sample depth")));
		params[pnr++] = strdup("tempField");
		params[pnr++] = intdup(headers.indexOf(tr("Sample temperature")));
		params[pnr++] = strdup("po2Field");
		params[pnr++] = intdup(headers.indexOf(tr("Sample pO₂")));
		params[pnr++] = strdup("o2sensor1Field");
		params[pnr++] = intdup(headers.indexOf(tr("Sample sensor1 pO₂")));
		params[pnr++] = strdup("o2sensor2Field");
		params[pnr++] = intdup(headers.indexOf(tr("Sample sensor2 pO₂")));
		params[pnr++] = strdup("o2sensor3Field");
		params[pnr++] = intdup(headers.indexOf(tr("Sample sensor3 pO₂")));
		params[pnr++] = strdup("cnsField");
		params[pnr++] = intdup(headers.indexOf(tr("Sample CNS")));
		params[pnr++] = strdup("ndlField");
		params[pnr++] = intdup(headers.indexOf(tr("Sample NDL")));
		params[pnr++] = strdup("ttsField");
		params[pnr++] = intdup(headers.indexOf(tr("Sample TTS")));
		params[pnr++] = strdup("stopdepthField");
		params[pnr++] = intdup(headers.indexOf(tr("Sample stopdepth")));
		params[pnr++] = strdup("pressureField");
		params[pnr++] = intdup(headers.indexOf(tr("Sample pressure")));
		params[pnr++] = strdup("setpointFiend");
		params[pnr++] = intdup(-1);
		params[pnr++] = strdup("separatorIndex");
		params[pnr++] = intdup(2);
		params[pnr++] = strdup("units");
		params[pnr++] = intdup(0);
		params[pnr++] = strdup("delta");
		params[pnr++] = strdup(delta.toUtf8().data());
		params[pnr++] = NULL;

		QCOMPARE(parse_seabear_csv_file(file.toUtf8().data(),
					params, pnr - 1, "csv"), 0);

		/*
		 * Set artificial but static dive times so the result
		 * can be compared to saved one.
		 */

		dive = dive_table.dives[dive_table.nr - 1];
		dive->when = 1255152761 + 7200 * i;
		dive->dc.when = 1255152761 + 7200 * i;
	}

	fprintf(stderr, "number of dives %d \n", dive_table.nr);
}
Esempio n. 7
0
void TestParse::testParseCSV()
{
	// some basic file parsing tests
	//
	// CSV import should work
	verbose = 1;
	char *params[55];
	int pnr = 0;

	params[pnr++] = strdup(strdup("numberField"));
	params[pnr++] = intdup(0);
	params[pnr++] = strdup("dateField");
	params[pnr++] = intdup(1);
	params[pnr++] = strdup("timeField");
	params[pnr++] = intdup(2);
	params[pnr++] = strdup("durationField");
	params[pnr++] = intdup(3);
	params[pnr++] = strdup("locationField");
	params[pnr++] = intdup(-1);
	params[pnr++] = strdup("gpsField");
	params[pnr++] = intdup(-1);
	params[pnr++] = strdup("maxDepthField");
	params[pnr++] = intdup(4);
	params[pnr++] = strdup("meanDepthField");
	params[pnr++] = intdup(5);
	params[pnr++] = strdup("divemasterField");
	params[pnr++] = intdup(-1);
	params[pnr++] = strdup("buddyField");
	params[pnr++] = intdup(6);
	params[pnr++] = strdup("suitField");
	params[pnr++] = intdup(7);
	params[pnr++] = strdup("notesField");
	params[pnr++] = intdup(-1);
	params[pnr++] = strdup("weightField");
	params[pnr++] = intdup(-1);
	params[pnr++] = strdup("tagsField");
	params[pnr++] = intdup(-1);
	params[pnr++] = strdup("separatorIndex");
	params[pnr++] = intdup(0);
	params[pnr++] = strdup("units");
	params[pnr++] = intdup(0);
	params[pnr++] = strdup("datefmt");
	params[pnr++] = intdup(1);
	params[pnr++] = strdup("durationfmt");
	params[pnr++] = intdup(2);
	params[pnr++] = strdup("cylindersizeField");
	params[pnr++] = intdup(-1);
	params[pnr++] = strdup("startpressureField");
	params[pnr++] = intdup(-1);
	params[pnr++] = strdup("endpressureField");
	params[pnr++] = intdup(-1);
	params[pnr++] = strdup("o2Field");
	params[pnr++] = intdup(-1);
	params[pnr++] = strdup("heField");
	params[pnr++] = intdup(-1);
	params[pnr++] = strdup("airtempField");
	params[pnr++] = intdup(-1);
	params[pnr++] = strdup("watertempField");
	params[pnr++] = intdup(-1);
	params[pnr++] = NULL;

	QCOMPARE(parse_manual_file(SUBSURFACE_SOURCE "/dives/test41.csv", params, pnr - 1), 0);
	fprintf(stderr, "number of dives %d \n", dive_table.nr);
}
Esempio n. 8
0
void TestParse::testParseHUDC()
{
	char *params[37];
	int pnr = 0;

	params[pnr++] = strdup("timeField");
	params[pnr++] = intdup(0);
	params[pnr++] = strdup("depthField");
	params[pnr++] = intdup(1);
	params[pnr++] = strdup("tempField");
	params[pnr++] = intdup(5);
	params[pnr++] = strdup("po2Field");
	params[pnr++] = intdup(-1);
	params[pnr++] = strdup("o2sensor1Field");
	params[pnr++] = intdup(-1);
	params[pnr++] = strdup("o2sensor2Field");
	params[pnr++] = intdup(-1);
	params[pnr++] = strdup("o2sensor3Field");
	params[pnr++] = intdup(-1);
	params[pnr++] = strdup("cnsField");
	params[pnr++] = intdup(-1);
	params[pnr++] = strdup("ndlField");
	params[pnr++] = intdup(2);
	params[pnr++] = strdup("ttsField");
	params[pnr++] = intdup(-1);
	params[pnr++] = strdup("stopdepthField");
	params[pnr++] = intdup(-1);
	params[pnr++] = strdup("pressureField");
	params[pnr++] = intdup(-1);
	params[pnr++] = strdup("setpointFiend");
	params[pnr++] = intdup(-1);
	params[pnr++] = strdup("separatorIndex");
	params[pnr++] = intdup(2);
	params[pnr++] = strdup("units");
	params[pnr++] = intdup(0);
	params[pnr++] = strdup("hw");
	params[pnr++] = strdup("\"DC text\"");
	params[pnr++] = NULL;

	QCOMPARE(parse_csv_file(SUBSURFACE_SOURCE "/dives/TestDiveSeabearHUDC.csv",
				params, pnr - 1, "csv"), 0);

	/*
	 * CSV import uses time and date stamps relative to current
	 * time, thus we need to use a static (random) timestamp
	 */

	struct dive *dive = dive_table.dives[dive_table.nr - 1];
	dive->when = 1255152761;
	dive->dc.when = 1255152761;
}
Esempio n. 9
0
int TestParse::parseCSV(int units, std::string file)
{
	// some basic file parsing tests
	//
	// CSV import should work
	verbose = 1;
	char *params[55];
	int pnr = 0;

	params[pnr++] = strdup("numberField");
	params[pnr++] = intdup(0);
	params[pnr++] = strdup("dateField");
	params[pnr++] = intdup(1);
	params[pnr++] = strdup("timeField");
	params[pnr++] = intdup(2);
	params[pnr++] = strdup("durationField");
	params[pnr++] = intdup(3);
	params[pnr++] = strdup("locationField");
	params[pnr++] = intdup(-1);
	params[pnr++] = strdup("gpsField");
	params[pnr++] = intdup(-1);
	params[pnr++] = strdup("maxDepthField");
	params[pnr++] = intdup(4);
	params[pnr++] = strdup("meanDepthField");
	params[pnr++] = intdup(5);
	params[pnr++] = strdup("divemasterField");
	params[pnr++] = intdup(-1);
	params[pnr++] = strdup("buddyField");
	params[pnr++] = intdup(6);
	params[pnr++] = strdup("suitField");
	params[pnr++] = intdup(7);
	params[pnr++] = strdup("notesField");
	params[pnr++] = intdup(-1);
	params[pnr++] = strdup("weightField");
	params[pnr++] = intdup(-1);
	params[pnr++] = strdup("tagsField");
	params[pnr++] = intdup(-1);
	params[pnr++] = strdup("separatorIndex");
	params[pnr++] = intdup(0);
	params[pnr++] = strdup("units");
	params[pnr++] = intdup(units);
	params[pnr++] = strdup("datefmt");
	params[pnr++] = intdup(1);
	params[pnr++] = strdup("durationfmt");
	params[pnr++] = intdup(2);
	params[pnr++] = strdup("cylindersizeField");
	params[pnr++] = intdup(-1);
	params[pnr++] = strdup("startpressureField");
	params[pnr++] = intdup(-1);
	params[pnr++] = strdup("endpressureField");
	params[pnr++] = intdup(-1);
	params[pnr++] = strdup("o2Field");
	params[pnr++] = intdup(-1);
	params[pnr++] = strdup("heField");
	params[pnr++] = intdup(-1);
	params[pnr++] = strdup("airtempField");
	params[pnr++] = intdup(-1);
	params[pnr++] = strdup("watertempField");
	params[pnr++] = intdup(-1);
	params[pnr++] = NULL;

	return parse_manual_file(file.c_str(), params, pnr - 1);
}
Esempio n. 10
0
void TestParse::parseDL7()
{
	char *params[51];
	int pnr = 0;

	params[pnr++] = strdup("dateField");
	params[pnr++] = intdup(-1);
	params[pnr++] = strdup("datefmt");
	params[pnr++] = intdup(0);
	params[pnr++] = strdup("starttimeField");
	params[pnr++] = intdup(-1);
	params[pnr++] = strdup("numberField");
	params[pnr++] = intdup(-1);
	params[pnr++] = strdup("timeField");
	params[pnr++] = intdup(1);
	params[pnr++] = strdup("depthField");
	params[pnr++] = intdup(2);
	params[pnr++] = strdup("tempField");
	params[pnr++] = intdup(-1);
	params[pnr++] = strdup("po2Field");
	params[pnr++] = intdup(-1);
	params[pnr++] = strdup("o2sensor1Field");
	params[pnr++] = intdup(-1);
	params[pnr++] = strdup("o2sensor2Field");
	params[pnr++] = intdup(-1);
	params[pnr++] = strdup("o2sensor3Field");
	params[pnr++] = intdup(-1);
	params[pnr++] = strdup("cnsField");
	params[pnr++] = intdup(-1);
	params[pnr++] = strdup("ndlField");
	params[pnr++] = intdup(-1);
	params[pnr++] = strdup("ttsField");
	params[pnr++] = intdup(-1);
	params[pnr++] = strdup("stopdepthField");
	params[pnr++] = intdup(-1);
	params[pnr++] = strdup("pressureField");
	params[pnr++] = intdup(-1);
	params[pnr++] = strdup("setpointField");
	params[pnr++] = intdup(-1);
	params[pnr++] = strdup("separatorIndex");
	params[pnr++] = intdup(3);
	params[pnr++] = strdup("units");
	params[pnr++] = intdup(0);
	params[pnr++] = strdup("hw");
	params[pnr++] = strdup("DL7");
	params[pnr++] = 0;

	clear_dive_file_data();
	QCOMPARE(parse_csv_file(SUBSURFACE_TEST_DATA "/dives/DL7.zxu",
				params, pnr - 1, "DL7"),
		 0);
	QCOMPARE(dive_table.nr, 3);

	QCOMPARE(save_dives("./testdl7out.ssrf"), 0);
	FILE_COMPARE("./testdl7out.ssrf",
		     SUBSURFACE_TEST_DATA "/dives/DL7.xml");
	clear_dive_file_data();
}
Esempio n. 11
0
int TestParse::parseCSVmanual(int units, std::string file)
{
	verbose = 1;
	char *params[55];
	int pnr = 0;

	// Numbers are column numbers
	params[pnr++] = strdup("numberField");
	params[pnr++] = intdup(0);
	params[pnr++] = strdup("dateField");
	params[pnr++] = intdup(1);
	params[pnr++] = strdup("timeField");
	params[pnr++] = intdup(2);
	params[pnr++] = strdup("durationField");
	params[pnr++] = intdup(3);
	params[pnr++] = strdup("maxDepthField");
	params[pnr++] = intdup(4);
	params[pnr++] = strdup("meanDepthField");
	params[pnr++] = intdup(5);
	params[pnr++] = strdup("airtempField");
	params[pnr++] = intdup(6);
	params[pnr++] = strdup("watertempField");
	params[pnr++] = intdup(7);
	params[pnr++] = strdup("cylindersizeField");
	params[pnr++] = intdup(8);
	params[pnr++] = strdup("startpressureField");
	params[pnr++] = intdup(9);
	params[pnr++] = strdup("endpressureField");
	params[pnr++] = intdup(10);
	params[pnr++] = strdup("o2Field");
	params[pnr++] = intdup(11);
	params[pnr++] = strdup("heField");
	params[pnr++] = intdup(12);
	params[pnr++] = strdup("locationField");
	params[pnr++] = intdup(13);
	params[pnr++] = strdup("gpsField");
	params[pnr++] = intdup(14);
	params[pnr++] = strdup("divemasterField");
	params[pnr++] = intdup(15);
	params[pnr++] = strdup("buddyField");
	params[pnr++] = intdup(16);
	params[pnr++] = strdup("suitField");
	params[pnr++] = intdup(17);
	params[pnr++] = strdup("notesField");
	params[pnr++] = intdup(20);
	params[pnr++] = strdup("weightField");
	params[pnr++] = intdup(21);
	params[pnr++] = strdup("tagsField");
	params[pnr++] = intdup(22);
	// Numbers are indexes of possible options
	params[pnr++] = strdup("separatorIndex");
	params[pnr++] = intdup(0);
	params[pnr++] = strdup("datefmt");
	params[pnr++] = intdup(2);
	params[pnr++] = strdup("durationfmt");
	params[pnr++] = intdup(2);
	params[pnr++] = strdup("units");
	params[pnr++] = intdup(units);
	params[pnr++] = NULL;

	return parse_manual_file(file.c_str(), params, pnr - 1);
}