apparently these random changes managed to bring tokenizing an 11mb file's time down by 10 seconds on my PC
This commit is contained in:
parent
5a199ae8f6
commit
0c758e3f63
2
Makefile
2
Makefile
|
@ -5,7 +5,7 @@ PLFLAGS=
|
||||||
LIBNAME=
|
LIBNAME=
|
||||||
OUTDIR=bin
|
OUTDIR=bin
|
||||||
LFLAGS=-shared -g -ggdb
|
LFLAGS=-shared -g -ggdb
|
||||||
CFLAGS=--std=c99 -g -ggdb -Wall
|
CFLAGS=--std=c99 -g -ggdb -O2 -Wall
|
||||||
|
|
||||||
ifeq ($(OS),Windows_NT)
|
ifeq ($(OS),Windows_NT)
|
||||||
CC+=mingw32-gcc
|
CC+=mingw32-gcc
|
||||||
|
|
63
src/lt.c
63
src/lt.c
|
@ -688,35 +688,42 @@ LT_Token LT_GetToken()
|
||||||
return tk;
|
return tk;
|
||||||
}
|
}
|
||||||
|
|
||||||
for(size_t i = 0; i < 6;)
|
|
||||||
|
if(stringChars[0] != '\0')
|
||||||
{
|
{
|
||||||
char cc = stringChars[i++];
|
for(size_t i = 0; i < 6;)
|
||||||
|
|
||||||
if(cc == '\0')
|
|
||||||
{
|
{
|
||||||
break;
|
char cc = stringChars[i++];
|
||||||
}
|
|
||||||
else if(c == cc)
|
if(cc == '\0')
|
||||||
{
|
{
|
||||||
tk.string = LT_ReadString(c);
|
break;
|
||||||
tk.token = LT_TkNames[TOK_String];
|
}
|
||||||
return tk;
|
else if(c == cc)
|
||||||
|
{
|
||||||
|
tk.token = LT_TkNames[TOK_String];
|
||||||
|
tk.string = LT_ReadString(c);
|
||||||
|
return tk;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for(size_t i = 0; i < 6;)
|
if(charChars[0] != '\0')
|
||||||
{
|
{
|
||||||
char cc = charChars[i++];
|
for(size_t i = 0; i < 6;)
|
||||||
|
|
||||||
if(cc == '\0')
|
|
||||||
{
|
{
|
||||||
break;
|
char cc = charChars[i++];
|
||||||
}
|
|
||||||
else if(c == cc)
|
if(cc == '\0')
|
||||||
{
|
{
|
||||||
tk.string = LT_ReadString(c);
|
break;
|
||||||
tk.token = LT_TkNames[TOK_Charac];
|
}
|
||||||
return tk;
|
else if(c == cc)
|
||||||
|
{
|
||||||
|
tk.token = LT_TkNames[TOK_Charac];
|
||||||
|
tk.string = LT_ReadString(c);
|
||||||
|
return tk;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -724,8 +731,8 @@ LT_Token LT_GetToken()
|
||||||
{
|
{
|
||||||
ungetc(c, parseFile);
|
ungetc(c, parseFile);
|
||||||
|
|
||||||
tk.string = LT_ReadNumber();
|
|
||||||
tk.token = LT_TkNames[TOK_Number];
|
tk.token = LT_TkNames[TOK_Number];
|
||||||
|
tk.string = LT_ReadNumber();
|
||||||
return tk;
|
return tk;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -743,11 +750,6 @@ LT_Token LT_GetToken()
|
||||||
|
|
||||||
str[i++] = c;
|
str[i++] = c;
|
||||||
|
|
||||||
if(info.stripInvalid)
|
|
||||||
{
|
|
||||||
str[i++] = (isspace(c) || isprint(c)) ? c : ' ';
|
|
||||||
}
|
|
||||||
|
|
||||||
c = fgetc(parseFile);
|
c = fgetc(parseFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -760,19 +762,18 @@ LT_Token LT_GetToken()
|
||||||
|
|
||||||
ungetc(c, parseFile);
|
ungetc(c, parseFile);
|
||||||
|
|
||||||
tk.string = LT_SetGarbage(LT_ReAlloc(str, i));
|
|
||||||
tk.token = LT_TkNames[TOK_Identi];
|
tk.token = LT_TkNames[TOK_Identi];
|
||||||
|
tk.string = LT_SetGarbage(LT_ReAlloc(str, i));
|
||||||
return tk;
|
return tk;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tk.token = LT_TkNames[TOK_ChrSeq];
|
||||||
tk.string = LT_Alloc(2);
|
tk.string = LT_Alloc(2);
|
||||||
tk.string[0] = c;
|
tk.string[0] = c;
|
||||||
tk.string[1] = '\0';
|
tk.string[1] = '\0';
|
||||||
|
|
||||||
LT_SetGarbage(tk.string);
|
LT_SetGarbage(tk.string);
|
||||||
|
|
||||||
tk.token = LT_TkNames[TOK_ChrSeq];
|
|
||||||
|
|
||||||
return tk;
|
return tk;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Reference in New Issue
Block a user