aboutsummaryrefslogtreecommitdiff
path: root/lptypes.h
diff options
context:
space:
mode:
authorSergio Queiroz <sqmedeiros@gmail.com>2016-07-01 09:04:34 -0300
committerSergio Queiroz <sqmedeiros@gmail.com>2016-07-01 09:04:34 -0300
commit81f7263ac1274aa604c154a199c70a54909de6e0 (patch)
treeb9ceda6126bb8499f48df5717ddb5fbf48e04eee /lptypes.h
parentcd49543a32d6dc0834f5b9f8cb0be9668d9a2c60 (diff)
downloadlpeglabel-81f7263ac1274aa604c154a199c70a54909de6e0.tar.gz
lpeglabel-81f7263ac1274aa604c154a199c70a54909de6e0.tar.bz2
lpeglabel-81f7263ac1274aa604c154a199c70a54909de6e0.zip
Changing the LPegLabel to support up to 255 labels
Diffstat (limited to 'lptypes.h')
-rw-r--r--lptypes.h30
1 files changed, 18 insertions, 12 deletions
diff --git a/lptypes.h b/lptypes.h
index 560ddbb..f61c0ff 100644
--- a/lptypes.h
+++ b/lptypes.h
@@ -110,18 +110,6 @@ typedef struct Charset {
110#define setchar(cs,b) ((cs)[(b) >> 3] |= (1 << ((b) & 7))) 110#define setchar(cs,b) ((cs)[(b) >> 3] |= (1 << ((b) & 7)))
111 111
112 112
113/* labeled failure begin */
114typedef long long int Labelset;
115
116#define MAXLABELS (sizeof(long long int) * 8)
117
118#define LFAIL 1
119
120/* set bit 'b' in set 's' */
121#define setlabel(s, b) ((s) |= (1ULL << (b)))
122/* labeled failure end */
123
124
125/* 113/*
126** in capture instructions, 'kind' of capture and its offset are 114** in capture instructions, 'kind' of capture and its offset are
127** packed in field 'aux', 4 bits for each 115** packed in field 'aux', 4 bits for each
@@ -156,6 +144,24 @@ typedef long long int Labelset;
156 144
157#define testchar(st,c) (((int)(st)[((c) >> 3)] & (1 << ((c) & 7)))) 145#define testchar(st,c) (((int)(st)[((c) >> 3)] & (1 << ((c) & 7))))
158 146
147/* labeled failure begin */
148#define MAXLABELS (UCHAR_MAX + 1)
149
150#define LABELSETSIZE CHARSETSIZE
151
152typedef Charset Labelset;
153
154#define setlabel setchar
155
156#define testlabel testchar
157
158/* access to labelset */
159#define treelabelset(t) ((byte *)((t) + (t)->u.s.plab))
160
161#define IDXLFAIL 0
162
163#define testlabel testchar
164/* labeled failure end */
159 165
160#endif 166#endif
161 167