官网下载lua源码地址
历史版本下载 地址
lua5.1.4修改前
else if (isalpha(ls->current) || ls->current == '_') {
/* identifier or reserved word */
TString *ts;
do {
save_and_next(ls);
} while (isalnum(ls->current) || ls->current == '_');
ts = luaX_newstring(ls, luaZ_buffer(ls->buff),
luaZ_bufflen(ls->buff));
if (ts->tsv.reserved > 0) /* reserved word? */
return ts->tsv.reserved - 1 + FIRST_RESERVED;
else {
seminfo->ts = ts;
return TK_NAME;
}
}
lua5.1.4修改后
else if (isalpha(ls->current) || ls->current == '_' || ls->current > 0x80) {
/* identifier or reserved word */
TString* ts;
do {
if (ls->current > 0x80)
{
save_and_next(ls);
save_and_next(ls);
}
else
save_and_next(ls);
} while (isalnum(ls->current) || ls->current == '_' || ls->current > 0x80);
ts = luaX_newstring(ls, luaZ_buffer(ls->buff),
luaZ_bufflen(ls->buff));
if (ts->tsv.reserved > 0) /* reserved word? */
return ts->tsv.reserved - 1 + FIRST_RESERVED;
else {
seminfo->ts = ts;
return TK_NAME;
}
}
lua5.4.6修改前
default: {
if (lislalpha(ls->current)) { /* identifier or reserved word? */
TString *ts;
do {
save_and_next(ls);
} while (lislalnum(ls->current));
ts = luaX_newstring(ls, luaZ_buffer(ls->buff),
luaZ_bufflen(ls->buff));
seminfo->ts = ts;
if (isreserved(ts)) /* reserved word? */
return ts->extra - 1 + FIRST_RESERVED;
else {
return TK_NAME;
}
}
lua5.4.6修改后
default: {
if (lislalpha(ls->current) || ls->current >= 0x80) { /* identifier or reserved word? *///修改
TString* ts;
do {
if (ls->current >= 0x80) { //修改
save_and_next(ls); //修改
if (ls->current != '(' && ls->current >= 0x80)//修改
save_and_next(ls); //修改
}
else if (ls->current != '(') { //修改
save_and_next(ls); //修改
}
} while (lislalnum(ls->current) || ls->current >= 0x80);//修改
ts = luaX_newstring(ls, luaZ_buffer(ls->buff),
luaZ_bufflen(ls->buff));
seminfo->ts = ts;
if (isreserved(ts)) /* reserved word? */
return ts->extra - 1 + FIRST_RESERVED;
else {
return TK_NAME;
}
}
重新编译即可用中文了
Enjoy!!!