本文的环境是建立在 Windows 环境下的 vs2017 中的,安装完成之后的 lua 是不支持中文变量,如果想修改成支持中文变量的,得修改源码。
修改之前的代码:
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->tsv.extra - 1 + FIRST_RESERVED;
else {
return TK_NAME;
}
}
5.2.4 的应该修改的源码在 llex.c 文件中第489行与第493行,修改之后的代码如下:
default: {
if (lislalpha(ls->current) || ls -> current > 0x80) { /* identifier or reserved word? *///支持中文
TString *ts;
do {
save_an