All pastes #2045715 Raw Edit

Unnamed

public text v1 · immutable
#2045715 ·published 2011-04-13 05:19 UTC
rendered paste body

/*
 * A representation of character sets.
 * The array set.partitions defines set as follows:
 * If a character's unicode representation is
 * greater than an odd number of partitions, it is
 * in the set. If it is greater than an even number
 * of partitions, it is not in the set.
 * The array partitions is always terminated by UINT32_MAX = 4,294,967,295.
 */
typedef struct character_set {
	uint32_t *parts;
} charset;

/*the union of a and b*/
charset csunion(charset a, charset b);

/*the intersection of a and b*/
charset csintersection(charset a, charset b);

/*the complement of a*/
charset cscompl(charset a);

/*1 if a contains c; 0 if a does not contain c*/
int contains(charset a, uint32_t c);