aboutsummaryrefslogtreecommitdiff
path: root/lptree.c
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2023-04-27 11:03:30 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2023-04-27 11:03:30 -0300
commit97a4ca3b4078f581cdc8cebc4fa4cf39d5ff8125 (patch)
tree3ec0442b2f1ce9f3a081da5cf14f281b2d2811d5 /lptree.c
parent012cf9c86cf91cb8354e229bde335592d41b84b2 (diff)
downloadlpeg-97a4ca3b4078f581cdc8cebc4fa4cf39d5ff8125.tar.gz
lpeg-97a4ca3b4078f581cdc8cebc4fa4cf39d5ff8125.tar.bz2
lpeg-97a4ca3b4078f581cdc8cebc4fa4cf39d5ff8125.zip
New macros 'fillset' and 'clearset'
Diffstat (limited to 'lptree.c')
-rw-r--r--lptree.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/lptree.c b/lptree.c
index f9e170b..c61a5db 100644
--- a/lptree.c
+++ b/lptree.c
@@ -670,7 +670,7 @@ static int lp_set (lua_State *L) {
670 size_t l; 670 size_t l;
671 const char *s = luaL_checklstring(L, 1, &l); 671 const char *s = luaL_checklstring(L, 1, &l);
672 byte buff[CHARSETSIZE]; 672 byte buff[CHARSETSIZE];
673 loopset(i, buff[i] = 0); 673 clearset(buff);
674 while (l--) { 674 while (l--) {
675 setchar(buff, (byte)(*s)); 675 setchar(buff, (byte)(*s));
676 s++; 676 s++;
@@ -684,7 +684,7 @@ static int lp_range (lua_State *L) {
684 int arg; 684 int arg;
685 int top = lua_gettop(L); 685 int top = lua_gettop(L);
686 byte buff[CHARSETSIZE]; 686 byte buff[CHARSETSIZE];
687 loopset(i, buff[i] = 0); 687 clearset(buff);
688 for (arg = 1; arg <= top; arg++) { 688 for (arg = 1; arg <= top; arg++) {
689 int c; 689 int c;
690 size_t l; 690 size_t l;
@@ -734,7 +734,7 @@ static int lp_utfr (lua_State *L) {
734 if (to <= 0x7f) { /* ascii range? */ 734 if (to <= 0x7f) { /* ascii range? */
735 unsigned int f; 735 unsigned int f;
736 byte buff[CHARSETSIZE]; /* code it as a regular charset */ 736 byte buff[CHARSETSIZE]; /* code it as a regular charset */
737 loopset(i, buff[i] = 0); 737 clearset(buff);
738 for (f = (int)from; f <= to; f++) 738 for (f = (int)from; f <= to; f++)
739 setchar(buff, f); 739 setchar(buff, f);
740 newcharset(L, buff); 740 newcharset(L, buff);
@@ -1298,7 +1298,7 @@ int lp_gc (lua_State *L) {
1298static void createcat (lua_State *L, const char *catname, int (catf) (int)) { 1298static void createcat (lua_State *L, const char *catname, int (catf) (int)) {
1299 int c; 1299 int c;
1300 byte buff[CHARSETSIZE]; 1300 byte buff[CHARSETSIZE];
1301 loopset(i, buff[i] = 0); 1301 clearset(buff);
1302 for (c = 0; c <= UCHAR_MAX; c++) 1302 for (c = 0; c <= UCHAR_MAX; c++)
1303 if (catf(c)) setchar(buff, c); 1303 if (catf(c)) setchar(buff, c);
1304 newcharset(L, buff); 1304 newcharset(L, buff);
@@ -1373,6 +1373,7 @@ static struct luaL_Reg metareg[] = {
1373 1373
1374int luaopen_lpeg (lua_State *L); 1374int luaopen_lpeg (lua_State *L);
1375int luaopen_lpeg (lua_State *L) { 1375int luaopen_lpeg (lua_State *L) {
1376printf("%ld\n", sizeof(TTree));
1376 luaL_newmetatable(L, PATTERN_T); 1377 luaL_newmetatable(L, PATTERN_T);
1377 lua_pushnumber(L, MAXBACK); /* initialize maximum backtracking */ 1378 lua_pushnumber(L, MAXBACK); /* initialize maximum backtracking */
1378 lua_setfield(L, LUA_REGISTRYINDEX, MAXSTACKIDX); 1379 lua_setfield(L, LUA_REGISTRYINDEX, MAXSTACKIDX);