• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

lua支持中文变量名

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文章引用自 http://blog.csdn.net/chrisxie/archive/2008/09/29/2998290.aspx

但有所修正.

 

默认的LUA不支持中文变量名.

少量修改源代码即可

修改如下:

 

在lua\src\llex.c中 修改420行-432行内容

 

原内容

 

 

1 else if (isalpha(ls->current) || ls->current == '_') {
2 /* identifier or reserved word */
3 TString *ts;
4 do {
5 save_and_next(ls);
6 } while (isalnum(ls->current) || ls->current == '_');
7 ts = luaX_newstring(ls, luaZ_buffer(ls->buff),
8 luaZ_bufflen(ls->buff));
9 if (ts->tsv.reserved > 0) /* reserved word? */
10 return ts->tsv.reserved - 1 + FIRST_RESERVED;
11 else {
12 seminfo->ts = ts;
13 return TK_NAME;
14 }
15 }
16  

 

 

 

修改为:

 

 

1 else if (isalpha(ls->current) || ls->current == '_' || ls->current > 0x80) {
2 /* identifier or reserved word */
3 TString *ts;
4 do {
5 if(ls->current > 0x80)
6 {
7 save_and_next(ls);
8 save_and_next(ls);
9 }
10 else
11 save_and_next(ls);
12 } while (isalnum(ls->current) || ls->current == '_' || ls->current > 0x80);
13 ts = luaX_newstring(ls, luaZ_buffer(ls->buff),
14 luaZ_bufflen(ls->buff));
15 if (ts->tsv.reserved > 0) /* reserved word? */
16 return ts->tsv.reserved - 1 + FIRST_RESERVED;
17 else {
18 seminfo->ts = ts;
19 return TK_NAME;
20 }
21 }
22  

 

 

 

 

注意我已经打过PATCH2了,可能和实际情况不大一样..不过,代码逻辑很容易,看下,应该也能明白

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
mac下使用zerobrane调试cocos2dx的lua发布时间:2022-07-22
下一篇:
Lua5.4源码剖析:二.详解String数据结构及操作算法发布时间:2022-07-22
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap