修改 Lua支持中文变量名
2015-02-12 17:51
429 查看
1. 找到 LuaPlus 工程下的 Lua Source Files 下的 llex.c;
2. 在该文件中找到下面所列函数;
3. 这是 Lua 的语法分析模块的关键函数,它由一长段 switch 构成,在一串 case 后找到 default 分支
4. 在该分支下找到如下代码段,这是一段完整的 if 分支,该代码段负责将符合条件的字符组合识别为 identifier (函数名或变量名)或 keyword (关键字)
5. 将该段替换为下面这一段即可,其作用在于加入了对中文ASCII字符的识别
2. 在该文件中找到下面所列函数;
static int llex (LexState *ls, SemInfo *seminfo)
3. 这是 Lua 的语法分析模块的关键函数,它由一长段 switch 构成,在一串 case 后找到 default 分支
4. 在该分支下找到如下代码段,这是一段完整的 if 分支,该代码段负责将符合条件的字符组合识别为 identifier (函数名或变量名)或 keyword (关键字)
else if (isalpha(ls->current) || ls->current == '_') { 02. /* identifier or reserved word */ 03. TString *ts; 04. if (ls->current == 'L') { 05. next(ls); 06. if (ls->current == '"' || ls->current == '/'') { 07. read_wstring(ls, ls->current, seminfo); 08. return TK_WSTRING; 09. } 10. save(ls, 'L'); 11. } 12. /* identifier or reserved word */ 13. do { 14. save_and_next(ls); 15. } while (isalnum(ls->current) || ls->current == '_'); 16. ts = luaX_newstring(ls, luaZ_buffer(ls->buff), 17. luaZ_bufflen(ls->buff)); 18. if (ts->tsv.reserved > 0) /* reserved word? */ 19. return ts->tsv.reserved - 1 + FIRST_RESERVED; 20. else { 21. seminfo->ts = ts; 22. return TK_NAME; 23. } 24. }
5. 将该段替换为下面这一段即可,其作用在于加入了对中文ASCII字符的识别
else if (isalpha(ls->current) || ls->current == '_' || ls->current > 0x80) { 02. /* identifier or reserved word */ 03. TString *ts; 04. if (ls->current == 'L') { 05. next(ls); 06. if (ls->current == '"' || ls->current == '/'') { 07. read_wstring(ls, ls->current, seminfo); 08. return TK_WSTRING; 09. } 10. save(ls, 'L'); 11. } 12. /* identifier or reserved word */ 13. do { 14. if(ls->current > 0x80) 15. { 16. save_and_next(ls); 17. save_and_next(ls); 18. } 19. else 20. save_and_next(ls); 21. } while (isalnum(ls->current) || ls->current == '_' || ls->current > 0x80); 22. ts = luaX_newstring(ls, luaZ_buffer(ls->buff), 23. luaZ_bufflen(ls->buff)); 24. if (ts->tsv.reserved > 0) /* reserved word? */ 25. return ts->tsv.reserved - 1 + FIRST_RESERVED; 26. else { 27. seminfo->ts = ts; 28. return TK_NAME; 29. } 30. }
相关文章推荐
- 修改源代码,让Lua支持中文,中英混合变量名收藏
- 修改源代码,让Lua支持中文,中英混合变量名收藏
- 【小技巧】如何修改 LuaPlus中的 Lua 5.1 的引擎,让Lua支持中文变量名、混合变量名
- 修改源代码,让Lua支持中文,中英混合变量名
- 【小技巧】如何修改 Lua 5.1 的引擎,让Lua支持中文变量名、混合变量名
- lua支持中文变量名
- lua的中文支持,修改了其中的语法分析器
- Luaplus5.3.3中文支持修改
- 怎么让 Lua 5.3.4 支持中文变量名和中文函数名
- lua5.1.4版本的变量中文支持
- Mantis 1.1.2不需要任何修改就可以支持中文
- pligg9.7beta搭起后HTML编辑器插件的安装(fckeditor的配置与修改变相支持中文文件名)
- 修改了一个很不错的php验证码(支持中文)
- 修改代码令TMS组件库的THTMLLabel控件支持中文换行
- 修改Smarty的变量调节器truncate无乱码截取中文
- Lua For Windows 环境配置及使sciTE支持中文
- 修改jQuery.Autocomplete插件 支持中文输入法 避免TAB、ENTER键失效、导致表单提交
- 修改ReadMorePlugin.java,使其支持中文标题(roller webblog)
- pligg9.7beta搭起后HTML编辑器插件的安装(-fckeditor的配置与修改变相支持中文文件名:默认上传后不能正常调用-)就像csdn的这个编辑器