中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

做論壇網(wǎng)站時應(yīng)該注意什么印度疫情最新消息

做論壇網(wǎng)站時應(yīng)該注意什么,印度疫情最新消息,58同城怎么做網(wǎng)站,wordpress數(shù)據(jù)庫主機前言 本篇在講什么 Lua的詞法分析 本篇需要什么 對Lua語法有簡單認知 對C語法有簡單認知 依賴Visual Studio工具 本篇的特色 具有全流程的圖文教學(xué) 重實踐,輕理論,快速上手 提供全流程的源碼內(nèi)容 ★提高閱讀體驗★ 👉 ? 一級標(biāo)題…
前言
本篇在講什么

Lua的詞法分析
本篇需要什么

Lua語法有簡單認知
C++語法有簡單認知
依賴Visual Studio工具

本篇的特色

具有全流程的圖文教學(xué)
重實踐,輕理論,快速上手
提供全流程的源碼內(nèi)容


★提高閱讀體驗★

👉 ? 一級標(biāo)題 👈

👉 ? 二級標(biāo)題 👈

👉 ? 三級標(biāo)題 👈

👉 ? 四級標(biāo)題 👈

目錄

  • ? 前言
  • ? luaL_dofile
  • ? 保留字
  • ? token
  • ? 關(guān)鍵函數(shù)
  • ? 實例詳解
  • ? 推送
  • ? 結(jié)語


? 前言


? luaL_dofile

在C++中我們通過luaL_dofile宏來加載一個lua文件,如下述代碼所示

int main()
{lua_State* L = luaL_newstate();luaL_openlibs(L);luaL_dofile(L, "lua_src/test.lua");lua_close(L);
}

其實際上執(zhí)行了兩個函數(shù),分別是luaL_loadfilelua_pcall,二者包括宏均定義在lauxlib.h腳本內(nèi)

在這里插入圖片描述

本篇重點去認識和了解luaL_loadfile函數(shù),在該函數(shù)內(nèi)去對一個Lua文件進行詞法分析


? 保留字

我們先了解一下Lua的一些保留字,其定義在llex.h腳本當(dāng)中,每一個保留字都對應(yīng)了Lua中某個關(guān)鍵字或類型,比如TK_AND代指的就是and關(guān)鍵字

在這里插入圖片描述

保留字定義為int類型,從257開始,以此遞增,原因是Lua識別字符的時候通過Ascii碼來標(biāo)記,防止二者有沖突

在這里插入圖片描述


? token

我們先了解一下什么是token,其代指的保留字相關(guān)的枚舉類型,每一個都是一個token類型

Lua在做詞法分析的時候會根據(jù)不同的token類型去執(zhí)行不同的方法,詞法分析的過程可以理解成對每一個token分析的過程

在這里插入圖片描述

舉個例子,我們在腳本test.lua中定義了一句Lua代碼,如下圖所示,其解析過程如下:

1、local ——> TK_LOCAL(268)
2、空格 ——> 32(空格ascii碼)
3、num ——> TK_NAME(285)(自定義變量)
4、空格 ——> 32(空格ascii碼)
5、等號 ——> 61(=的ascii碼)
6、空格 ——> 32(空格ascii碼)
7、1 ——> TK_NUMBER(數(shù)字1,ascill碼61)

在這里插入圖片描述


? 關(guān)鍵函數(shù)

我們了解一下個詞法分析相關(guān)的重要函數(shù)和作用

  • luaL_loadfile

解析Lua腳本,獲取腳本內(nèi)的二進制或字節(jié)流

  • luaY_parser

詞法分析的核心函數(shù)

  • luaX_next

解析字節(jié)流中的下一個token塊

  • chunk

解析token的函數(shù)

簡單的概括下對一段Lua代碼進行詞法分析都經(jīng)歷了哪些步驟

在這里插入圖片描述


? 實例詳解

我們直接通過斷點調(diào)試和堆棧信息查看,來看看解析一段Lua代碼的過程,這里直接從luaY_parser函數(shù)開始,Lua代碼如下所示

local num = 1

1、運行代碼后第一個斷點卡在了chunk函數(shù),我們可以通過堆棧信息看到&lexstate中獲取的第一個token是268,對應(yīng)的正是Lua中的local

在這里插入圖片描述
在這里插入圖片描述

2、第二個斷點我們打在了statement函數(shù)里,可以看到因為獲取的token是TK_LOCAL所以執(zhí)行到了對應(yīng)的case里面

在這里插入圖片描述

3、第三個斷點我們打在了luaX_next函數(shù)里,從堆棧中看到新獲取的token是285,對應(yīng)的是TK_NAME,因為lua中的num是我們自定義的變量

在這里插入圖片描述
在這里插入圖片描述

4、放開斷點繼續(xù)執(zhí)行,依然卡到了luaX_next里面,這里可一看獲取到的token是61,對應(yīng)的就是=的ascii碼

在這里插入圖片描述

5、放開斷點繼續(xù)執(zhí)行,依然卡到了luaX_next里面,這里可一看獲取到的token是284,對應(yīng)的類型是TK_NUMBER,因為我們在Lua中給變量num賦值是數(shù)字1,

在這里插入圖片描述

6、繼續(xù)執(zhí)行,獲取的最后一個token是287,對應(yīng)的類型是TK_EOS,該token類型代表著解析結(jié)束

在這里插入圖片描述

至此,我們對該Lua代碼的詞法解析就全部結(jié)束了


? 推送

  • Github
https://github.com/KingSun5

? 結(jié)語

若是覺得博主的文章寫的不錯,不妨關(guān)注一下博主,點贊一下博文,另博主能力有限,若文中有出現(xiàn)什么錯誤的地方,歡迎各位評論指摘。

👉 本文屬于原創(chuàng)文章,轉(zhuǎn)載請評論留言,并在轉(zhuǎn)載文章頭部著名作者出處👈
http://www.risenshineclean.com/news/7796.html

相關(guān)文章:

  • 為什么要用國外服務(wù)器做網(wǎng)站搜索引擎優(yōu)化英文簡稱為
  • 做網(wǎng)站找哪個軟件網(wǎng)店運營具體做什么
  • 海珠區(qū)疫情嚴重嗎鄭州seo代理外包
  • 優(yōu)秀的網(wǎng)站首頁布局360競價推廣
  • 案例建網(wǎng)站網(wǎng)址域名ip查詢
  • 17做網(wǎng)店網(wǎng)站池尾東莞網(wǎng)站設(shè)計公司排名
  • 渭南公司做網(wǎng)站百度競價是什么意思
  • 澳門網(wǎng)站后綴開發(fā)外包網(wǎng)站
  • 重慶網(wǎng)站seo服務(wù)線上平臺推廣方案
  • 泰州高端網(wǎng)站建設(shè)如何收費搜索引擎優(yōu)化的簡稱
  • seo做的最好的網(wǎng)站排行青島優(yōu)化網(wǎng)站關(guān)鍵詞
  • wordpress打開文章響應(yīng)慢天津谷歌優(yōu)化
  • 網(wǎng)站建設(shè)編寫代碼出錯東莞seo優(yōu)化推廣
  • 南寧做網(wǎng)站開發(fā)的公司有哪些怎么寫網(wǎng)站
  • 韓國設(shè)計欣賞網(wǎng)站個人推廣網(wǎng)站
  • 棗莊專業(yè)做網(wǎng)站企業(yè)網(wǎng)站建設(shè)的目的
  • 網(wǎng)站內(nèi)容圖片怎么做windows7優(yōu)化大師
  • 南京做微網(wǎng)站蘇州seo關(guān)鍵詞優(yōu)化報價
  • 深圳b2b網(wǎng)站建設(shè)排名南寧seo優(yōu)勢
  • 做個門戶網(wǎng)站多少錢汕頭最好的seo外包
  • 網(wǎng)站建設(shè)用什么軟件鄭州官網(wǎng)網(wǎng)站推廣優(yōu)化公司
  • 網(wǎng)站門戶建設(shè)流程武漢最新疫情
  • 網(wǎng)站的產(chǎn)品中心怎么做國際新聞快報
  • 三明網(wǎng)站建設(shè)虛擬主機搭建網(wǎng)站
  • 做外貿(mào)生意最好的網(wǎng)站國外搜索引擎網(wǎng)站
  • 青島城鄉(xiāng)建設(shè)委員會網(wǎng)站西安網(wǎng)站seo廠家
  • 河間網(wǎng)站建設(shè)公司創(chuàng)建網(wǎng)站需要多少資金
  • 如何做網(wǎng)站的源碼23歲老牌網(wǎng)站
  • wordpress 留言板 插件seo排名查詢
  • 攝影網(wǎng)站 蜂鳥seo網(wǎng)址