【小技巧】如何修改 Lua 5.1 的引擎,讓Lua支援中文變數名、混合變數名
- staticint llex (LexState *ls, SemInfo *seminfo)
4. 在該分支下找到如下程式碼段,這是一段完整的 if 分支,該程式碼段負責將符合條件的字元組合識別為 identifier (函式名或變數名)或 keyword (關鍵字)
- else
- /* identifier or reserved word */
- TString *ts;
- if (ls->current == 'L') {
- next(ls);
- if (ls->current == '"' || ls->current == '/'') {
- read_wstring(ls, ls->current, seminfo);
- return TK_WSTRING;
- }
- save(ls,
- }
- /* identifier or reserved word */
- 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)
- return ts->tsv.reserved - 1 + FIRST_RESERVED;
- else {
- seminfo->ts = ts;
- return TK_NAME;
- }
- }
5. 將該段替換為下面這一段即可,其作用在於加入了對中文ASCII字元的識別
- elseif (isalpha(ls->current) || ls->current == '_' || ls->current > 0x80) {
- /* identifier or reserved word */
- TString *ts;
- if (ls->current == 'L') {
- next(ls);
- if (ls->current == '"' || ls->current == '/'') {
- read_wstring(ls, ls->current, seminfo);
- return TK_WSTRING;
- }
- save(ls, 'L');
- }
- /* identifier or reserved word */
- 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;
- }
- }
相關推薦
【小技巧】如何修改 Lua 5.1 的引擎,讓Lua支援中文變數名、混合變數名
最近在倒騰 Lua 指令碼引擎。Lua 現在廣泛用於各種遊戲、PSP中,速度極快,與 C++ 宿主程式碼“相處”能力強,還有第三方增強工程如 LuaPlus, LuaBind 等的支援,筆者正是在使用 LuaPlus 這個不錯的 Lua C++ 封裝,內建 Lua 5.1 引
【小技巧】之 python批量修改指定檔案型別的檔名
在工作學習當中,常常遇到要批量修改我檔名情況,要是一個一個的去重新命名,不是程式猿所為,今天分享一個批量修改檔名的方法,供大家參考: 例如下圖,在我的某一個資料夾下,又n個亂七八糟的“.txt”檔案,將這些檔案批量修改名稱。 直接上程式碼: import os files = os
【小技巧】電腦開機自動關閉數字小鍵盤方法
開機自動關閉數字小鍵盤方法開機自動關閉數字小鍵盤方法:在〔開始〕點擊{運行〕輸入〔Regedit〕選擇{HKEY_USERS〕→選擇〔.Default〕 →選擇〔Control Panel〕→選擇〔Keyboard〕→將數值名稱〔InitialKeyboardIndicators〕資料值更改為〔0〕順道來腦補
【小技巧】Eclipse 中創建Maven項目後沒有WEB-INF文件夾以及web.xml文件
出現 可能 pan 3.0 開始 自動創建 TP 應該 xml文件 懶得截圖了,一張圖配下面步驟搞定。 1、右鍵項目,選擇propertities後選擇圖中①(被遮住了); 2、先不②勾選去掉,點擊Apply;然後在把②處勾選上。此時④位置會出現東東,點擊藍色超鏈接。填入
【小技巧】某個網頁打不開怎麼辦?
最近電腦也不知道是怎麼了,突然就開始“挑剔”起來,有的網頁能開啟,有的網頁死活打不開!不知道小夥伴們有沒有遇到這種情況啊?一開始還以為是網路有問題,要麼是網斷了,要麼是網速太慢,於是各種檢查自己的網路
【小技巧】限制windows server 2008的最大使用者登入數
把雲伺服器單純當作自己一個雲端主機的人大有人在。本人就是其中一位。 由於windows server 2008的會話保持機制,導致你關閉掉當前遠端桌面連線,並從另外一臺電腦上開啟遠端連線之後,另外一臺電腦預設並不會進入你之前的桌面,反而會重新再開一個賬戶 反正Windows server是多使用者作業系統
【小技巧】無法連線到安全檢查代理伺服器,套接字建立失敗
前幾天上網的時候,電腦出現了一些問題,連不上網,之前電腦還好好的,怎麼突然就上不去網了? 問題: 用的是學校的INODE客戶端,以為是配置出現了問題,進行了各種檢查
【小技巧】文字編輯器Notepad++(v6.9)中Tab設定成4個空格
Notepad++ 作為很順手的文字編輯器被程式猿廣泛運用。 養成良好的程式碼習慣,先從縮排標準4空格開始。 版本為6.9.2 流程: 設定—首選項—製表符
【小技巧】Win10主機和Ubuntu虛擬機器/伺服器的檔案傳輸
每次我們在伺服器或者虛擬機器編譯完程式碼,需要傳輸映象檔案回主機,最開始一直採用資料夾介面虛擬機器拖拽,或者FilZilla, 或者WinScap i 這些都只需要圖形化
【小技巧】當對服務器做大負荷操作,如何禁止普通用戶登錄
etc tro 我們 ron 希望 普通用戶 就是 png 看到了 日常運維中當我們在對服務器(root用戶)做大負荷操作時(占用系統資源較大),不希望普通用戶來登錄服務器進行其他操作,該怎麽做呢? 接下來就是見證奇跡的時刻(圖片中左側為root用戶,右側為普通用戶登錄測試
Day22 【小程序】Credit Card(ATM),購物程序調用信用卡程序接口支付
logger nts 實現 管理 加載 相關 actions bin 目錄 程序介紹: 實現信用卡(ATM)常用功能:(支持多賬戶登陸)1.取款;2.還款;3.轉賬;4.查詢余額;5.查詢賬單(流水,支持按年月日時分秒記錄); 程序結構:ATM/├── README├─
【重大更新】IntelliJ IDEA v2017.1釋出,功能大量更新,先睹為快!|附下載
IntelliJ IDEA v2017.1到來!功能大量更新!本次更新圖文較多,部分功能詳細內容請點選文章末尾連結詳細檢視! Java java9支援(檢視詳情)java8功能改進升級至JUnit 5檢查egexp語法高亮顯示 JVM偵錯程式 Async異常堆疊更新
【外貿技巧】玩轉LinkedIn領英,我的外貿開發客戶利器
作者:Aimm 職業:外貿SOHO(媽媽) 感言:十年外貿路,那些經歷,無論好的壞的,都是最美的風景 來源:米課(imiker) ** 我們要成長為一名自救型外貿人 ** 前幾天看到女神@紀三歲的一篇文章:《如何打造外貿業務的個人IP?》,讀完頗有感觸,雖
【程式17】 題目:輸入一行字元,分別統計出其中英文字母、空格、數字和其它字元的個數
注意 c >= 'a'&&c <= 'z' 與 'a' <= c <= 'z' 並不相同 運算子根據自左向右的結合行 先運算'a' <= c 值為1 or 0 然後再與‘z’比較 #define _CRT_SECURE_NO_WARNINGS
【程式7】 題目:輸入一行字元,分別統計出其中英文字母、空格、數字和其它字元的個數。
/* 2017年3月2日16:47:24 java基礎50道經典練習題 例7 Author:ZJY(&&) Purpose:對字串的資料的型別計數
【sql技巧】mysql修改時,動態指定要修改的字段 update `table` set (case when ....) = 1 where id = xx
幫助 ase stack pan 希望 需求 記錄 開始 lec 如果你點進了這篇帖子,那麽你一定遇到了跟我一樣的問題。別看題目的set case when...,我一開始也是第一反應是用case when但是發現並不好使。 問題呢,說得高大上一點:動態指定要修改的字段。
【】小技巧】CSS文字兩端對齊
兩個 isp images inline clas 我們 寬度 filter pre 需求如下,紅框所在的文字有四個字的、三個字的、兩個字的,如果不兩端對齊可以選擇居中對齊,或者右對齊。但是如果要像下面這樣兩端對齊呢? 我相信以前很多人都這麽幹過:兩個字中間使用 來隔開達
iOS 【UIKit-UIPageControl利用delegate定位圓點位置 之 四舍五入小技巧】
優化 距離 scroll current control 水平 技術 觸發 src 在UIScrollView中會加入UIPageControl作為頁碼標識,能夠讓用戶清楚的知道當前的頁數。我們須要優化的一點是讓pageControl
【生活小技巧】存放衣物防皺的小妙招
由於 有趣 body 產生 活動 下滑 最好的 AR target 生活中知道一些生活小技巧,不但可以節約時間,還可以更快的做好生活中的鎖事,讓生活效率大大提高,也讓生活更有情調,生活更有趣味,在這裏意空間主編把42個超實用的生活小技巧與妙招分享給大家。 1、毛巾發粘有怪
【純幹貨、小技巧】遺忘MySQL用戶密碼怎麽辦?
set change 情況 社會 驗證 停止 top skip 希望 遺忘MySQL用戶密碼怎麽辦? 在信息化社會,充分有效地管理和利用各類信息資源,是進行科學研究和決策管理的前提條件。數據庫技術是管理信息系統、辦公自動化系統、決策支持系統等各類信息系統的核心部分,是進行科