void isl_point_print(__isl_keep isl_point *pnt, FILE *out)
{
	int i;
	unsigned nparam;
	unsigned dim;

	if (!pnt)
		return;
	if (isl_point_is_void(pnt)) {
		fprintf(out, "void\n");
		return;
	}

	nparam = isl_dim_size(pnt->dim, isl_dim_param);
	dim = isl_dim_size(pnt->dim, isl_dim_set);
	if (nparam > 0) {
		fprintf(out, "[");
		for (i = 0; i < nparam; ++i) {
			const char *name;
			if (i)
				fprintf(out, ", ");
			name = isl_dim_get_name(pnt->dim, isl_dim_param, i);
			if (name)
				fprintf(out, "%s = ", name);
			isl_int_print(out, pnt->vec->el[1 + i], 0);
			if (!isl_int_is_one(pnt->vec->el[0])) {
				fprintf(out, "/");
				isl_int_print(out, pnt->vec->el[0], 0);
			}
		}
		fprintf(out, "] -> ");
	}
	fprintf(out, "[");
	for (i = 0; i < dim; ++i) {
		if (i)
			fprintf(out, ", ");
		isl_int_print(out, pnt->vec->el[1 + nparam + i], 0);
		if (!isl_int_is_one(pnt->vec->el[0])) {
			fprintf(out, "/");
			isl_int_print(out, pnt->vec->el[0], 0);
		}
	}
	fprintf(out, "]\n");
}
Exemple #2
0
void isl_stream_error(struct isl_stream *s, struct isl_token *tok, char *msg)
{
	int line = tok ? tok->line : s->line;
	int col = tok ? tok->col : s->col;
	fprintf(stderr, "syntax error (%d, %d): %s\n", line, col, msg);
	if (tok) {
		if (tok->type < 256)
			fprintf(stderr, "got '%c'\n", tok->type);
		else if (tok->type == ISL_TOKEN_IDENT)
			fprintf(stderr, "got ident '%s'\n", tok->u.s);
		else if (tok->is_keyword)
			fprintf(stderr, "got keyword '%s'\n", tok->u.s);
		else if (tok->type == ISL_TOKEN_VALUE) {
			fprintf(stderr, "got value '");
			isl_int_print(stderr, tok->u.v, 0);
			fprintf(stderr, "'\n");
		} else if (tok->type == ISL_TOKEN_MAP) {
			isl_printer *p;
			fprintf(stderr, "got map '");
			p = isl_printer_to_file(s->ctx, stderr);
			p = isl_printer_print_map(p, tok->u.map);
			isl_printer_free(p);
			fprintf(stderr, "'\n");
		} else if (tok->type == ISL_TOKEN_AFF) {
			isl_printer *p;
			fprintf(stderr, "got affine expression '");
			p = isl_printer_to_file(s->ctx, stderr);
			p = isl_printer_print_pw_aff(p, tok->u.pwaff);
			isl_printer_free(p);
			fprintf(stderr, "'\n");
		} else if (tok->u.s)
			fprintf(stderr, "got token '%s'\n", tok->u.s);
		else
			fprintf(stderr, "got token type %d\n", tok->type);
	}
}
Exemple #3
0
static __isl_give isl_printer *file_print_isl_int(__isl_take isl_printer *p, isl_int i)
{
	isl_int_print(p->file, i, p->width);
	return p;
}