Ejemplo n.º 1
0
/*	Ownership of return value is
	transferred to calling function.
*/
char *remaining_text (TokenizerPtr tok)
{
	char *ret;
	char *ptroffset = (tok->text)+tok->offset;
	size_t len = strlen (ptroffset)+1;
#ifdef HDEBUG
	ret = h_alloc (len, "ret", "remaining_text", 101);
#else
	ret = g_malloc (len);
#endif
	memcpy (ret, ptroffset, len);
	/*printf ("remaining_text returning: \"%s\"\n", ret);*/
	return ret;
}
Ejemplo n.º 2
0
TokenizerPtr new_tokenizer (char* text, char* delim)
{
	TokenizerPtr tok;

#ifdef HDEBUG
	tok = h_alloc (sizeof (Tokenizer), "tok", "new_tokenizer", 9);
#else
	tok = g_malloc (sizeof (Tokenizer));
#endif

	/*printf ("new_tokenizer: \"%s\", \"%s\"\n", text, delim);*/
	tok->text = text;
	tok->delim = delim;
	tok->delim_len = strlen (delim);
	tok->offset = 0;
	return tok;
}
Ejemplo n.º 3
0
/*	Ownership of return value is
	transferred to calling function.
*/
char *next_token (TokenizerPtr tok)
{
	char *ret;
	char *ptroffset = (tok->text)+tok->offset;
	size_t len = strcspn (ptroffset, tok->delim);

#ifdef HDEBUG
	ret = h_alloc (len+1, "ret", "next_token", 83);
#else
	ret = g_malloc (len+1);
#endif
	memcpy (ret, ptroffset, len);
	ret[len] = 0;
	tok->offset += len;
	remove_leading_delimiters(tok);
	/*printf ("next_token returning: \"%s\"\n", ret);*/
	return ret;
}
Ejemplo n.º 4
0
static struct h * _pe_comb_new_hist (struct event *e)
{
	struct h *h;
	struct ec *r;
	int i;

	h = h_alloc (e);
	if(!h)return h;//ALESSANDRO

	for (r = pe.comb.r; r->h == 0; r = r->r2) {
		ASSERT (r->r1);
		ASSERT (EC_ISREAD (r->r1));
		ASSERT (r->r1->h);
		h_add (h, r->r1->h);
	}
	h_add (h, r->h);
	al_add (&h->ecl, pe.comb.r);
	for (i = 0; i < pe.comb.size; i++) {
		ASSERT (pe.comb.tab[i].ispre ||
				EC_ISGEN (pe.comb.tab[i].tab[pe.comb.tab[i].i]));
		for (r = pe.comb.tab[i].tab[pe.comb.tab[i].i]; r->h == 0;
				r = r->r2) {
			ASSERT (r->r1);
			ASSERT (EC_ISREAD (r->r1));
			ASSERT (r->r1->h);
			h_add (h, r->r1->h);
		}
		h_add (h, r->h);
		al_add (&h->ecl, pe.comb.tab[i].tab[pe.comb.tab[i].i]);
	}

	/* compute the marking associated to that history, the marking hash,
	 * lists r(h), s(h), the size of the history and return */
	h_marking (h);

	return h;
}