Warning: Attempt to read property "date" on null in /usr/local/www/websvn.planix.org/blame.php on line 247

Warning: Attempt to read property "msg" on null in /usr/local/www/websvn.planix.org/blame.php on line 247
WebSVN – planix.SVN – Blame – /os/branches/feature_tlsv12/sys/src/ape/lib/regexp/regcomp.h – Rev 2

Subversion Repositories planix.SVN

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
/*
2
 *  substitution list
3
 */
4
typedef struct Resublist	Resublist;
5
struct	Resublist
6
{
7
	Resub	m[32];
8
};
9
 
10
/* max subexpressions per program */
11
Resublist ReSuBlIsT;
12
#define NSUBEXP (sizeof(ReSuBlIsT.m)/sizeof(Resub))
13
 
14
/* max character classes per program */
15
Reprog	RePrOg;
16
#define	NCLASS	(sizeof(RePrOg.class)/sizeof(Reclass))
17
 
18
/* max rune ranges per character class */
19
#define NCCRUNE	(sizeof(Reclass)/sizeof(wchar_t))
20
 
21
/*
22
 * Actions and Tokens (Reinst types)
23
 *
24
 *	02xx are operators, value == precedence
25
 *	03xx are tokens, i.e. operands for operators
26
 */
27
#define RUNE		0177
28
#define	OPERATOR	0200	/* Bitmask of all operators */
29
#define	START		0200	/* Start, used for marker on stack */
30
#define	RBRA		0201	/* Right bracket, ) */
31
#define	LBRA		0202	/* Left bracket, ( */
32
#define	OR		0203	/* Alternation, | */
33
#define	CAT		0204	/* Concatentation, implicit operator */
34
#define	STAR		0205	/* Closure, * */
35
#define	PLUS		0206	/* a+ == aa* */
36
#define	QUEST		0207	/* a? == a|nothing, i.e. 0 or 1 a's */
37
#define	ANY		0300	/* Any character except newline, . */
38
#define	ANYNL		0301	/* Any character including newline, . */
39
#define	NOP		0302	/* No operation, internal use only */
40
#define	BOL		0303	/* Beginning of line, ^ */
41
#define	EOL		0304	/* End of line, $ */
42
#define	CCLASS		0305	/* Character class, [] */
43
#define	NCCLASS		0306	/* Negated character class, [] */
44
#define	END		0377	/* Terminate: match found */
45
 
46
/*
47
 *  regexec execution lists
48
 */
49
#define LISTINCREMENT 8
50
typedef struct Relist	Relist;
51
struct Relist
52
{
53
	Reinst		*inst;		/* Reinstruction of the thread */
54
	Resublist	se;		/* matched subexpressions in this thread */
55
};
56
extern Relist*	_relist[2];
57
extern Relist*	_reliste[2];
58
extern int	_relistsize;
59
 
60
extern Relist*	_renewthread(Relist*, Reinst*, Resublist*);
61
extern void	_renewmatch(Resub*, int, Resublist*);