【小技巧】如何修改 LuaPlus中的 Lua 5.1 的引擎,让Lua支持中文变量名、混合变量名

本文介绍如何修改LuaPlus源码使Lua脚本引擎支持中文变量名。通过调整llex.c文件中的llex函数,实现对Unicode字符的识别,从而允许在Lua脚本中使用中文作为标识符。

原贴

http://blog.youkuaiyun.com/chrisxie/archive/2008/09/29/2998290.aspx

(原贴中的luaplus是老版本  下面我贴的代码是新版的)



 

 

最近在倒腾 Lua 脚本引擎。Lua 现在广泛用于各种游戏、PSP中,速度极快,与 C++ 宿主代码“相处”能力强,还有第三方增强工程如 LuaPlus, LuaBind 等的支持,笔者正是在使用 LuaPlus 这个不错的 Lua C++ 封装,内置 Lua 5.1 引擎。

Lua 本身不能支持中文变量名或函数名,作为想尽善尽美的支持脚本的软件来说,当然不爽啦。从网上搜到了一些代码,能够修改老版本的 Lua 核心使得 Lua 支持中文变量名,如:价格=45 之类,但 Lua 5.1 的核心代码已经略有不同了。当然只要稍微作些改动,就能让 Lua 5.1 乖乖的也认识起中文变量名、函数名来。

以 LuaPlus 为例(Visual Studio 2005 IDE环境下):
1. 找到 LuaPlus 工程下的 Lua Source Files 下的 llex.c;
2. 在该文件中找到下面所列函数;
static  int llex (LexState *ls, SemInfo *seminfo)
3. 这是 Lua 的语法分析模块的关键函数,它由一长段 switch 构成,在一串 case 后找到 default 分支
4. 在该分支下找到如下代码段,这是一段完整的 if 分支,该代码段负责将符合条件的字符组合识别为 identifier (函数名或变量名)或 keyword (关键字)
 
修改为
 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值