当前位置: 首页 > news >正文

免费的行情网站ifind是百度做网站推广的费用

免费的行情网站ifind是,百度做网站推广的费用,手机网站建设的第一个问题,网站推广的10种方法前言 本篇在讲什么 Lua的词法分析 本篇需要什么 对Lua语法有简单认知 对C语法有简单认知 依赖Visual Studio工具 本篇的特色 具有全流程的图文教学 重实践,轻理论,快速上手 提供全流程的源码内容 ★提高阅读体验★ 👉 ♠ 一级标题…
前言
本篇在讲什么

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

Lua语法有简单认知
C++语法有简单认知
依赖Visual Studio工具

本篇的特色

具有全流程的图文教学
重实践,轻理论,快速上手
提供全流程的源码内容


★提高阅读体验★

👉 ♠ 一级标题 👈

👉 ♥ 二级标题 👈

👉 ♣ 三级标题 👈

👉 ♦ 四级标题 👈

目录

  • ♠ 前言
  • ♠ luaL_dofile
  • ♠ 保留字
  • ♠ token
  • ♠ 关键函数
  • ♠ 实例详解
  • ♠ 推送
  • ♠ 结语


♠ 前言


♠ 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);
}

其实际上执行了两个函数,分别是luaL_loadfilelua_pcall,二者包括宏均定义在lauxlib.h脚本内

在这里插入图片描述

本篇重点去认识和了解luaL_loadfile函数,在该函数内去对一个Lua文件进行词法分析


♠ 保留字

我们先了解一下Lua的一些保留字,其定义在llex.h脚本当中,每一个保留字都对应了Lua中某个关键字或类型,比如TK_AND代指的就是and关键字

在这里插入图片描述

保留字定义为int类型,从257开始,以此递增,原因是Lua识别字符的时候通过Ascii码来标记,防止二者有冲突

在这里插入图片描述


♠ token

我们先了解一下什么是token,其代指的保留字相关的枚举类型,每一个都是一个token类型

Lua在做词法分析的时候会根据不同的token类型去执行不同的方法,词法分析的过程可以理解成对每一个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(数字1,ascill码61)

在这里插入图片描述


♠ 关键函数

我们了解一下个词法分析相关的重要函数和作用

  • luaL_loadfile

解析Lua脚本,获取脚本内的二进制或字节流

  • luaY_parser

词法分析的核心函数

  • luaX_next

解析字节流中的下一个token块

  • chunk

解析token的函数

简单的概括下对一段Lua代码进行词法分析都经历了哪些步骤

在这里插入图片描述


♠ 实例详解

我们直接通过断点调试和堆栈信息查看,来看看解析一段Lua代码的过程,这里直接从luaY_parser函数开始,Lua代码如下所示

local num = 1

1、运行代码后第一个断点卡在了chunk函数,我们可以通过堆栈信息看到&lexstate中获取的第一个token是268,对应的正是Lua中的local

在这里插入图片描述
在这里插入图片描述

2、第二个断点我们打在了statement函数里,可以看到因为获取的token是TK_LOCAL所以执行到了对应的case里面

在这里插入图片描述

3、第三个断点我们打在了luaX_next函数里,从堆栈中看到新获取的token是285,对应的是TK_NAME,因为lua中的num是我们自定义的变量

在这里插入图片描述
在这里插入图片描述

4、放开断点继续执行,依然卡到了luaX_next里面,这里可一看获取到的token是61,对应的就是=的ascii码

在这里插入图片描述

5、放开断点继续执行,依然卡到了luaX_next里面,这里可一看获取到的token是284,对应的类型是TK_NUMBER,因为我们在Lua中给变量num赋值是数字1,

在这里插入图片描述

6、继续执行,获取的最后一个token是287,对应的类型是TK_EOS,该token类型代表着解析结束

在这里插入图片描述

至此,我们对该Lua代码的词法解析就全部结束了


♠ 推送

  • Github
https://github.com/KingSun5

♠ 结语

若是觉得博主的文章写的不错,不妨关注一下博主,点赞一下博文,另博主能力有限,若文中有出现什么错误的地方,欢迎各位评论指摘。

👉 本文属于原创文章,转载请评论留言,并在转载文章头部著名作者出处👈
http://www.yidumall.com/news/35121.html

相关文章:

  • 福田做棋牌网站建设找哪家效益快nba哈登最新消息
  • 免费的韩国网站服务器营销网址
  • 无忧建站seo网站培训班
  • 东莞网站制作建设收费中国职业技能培训中心官网
  • 化工网站模板公司网站设计哪家好
  • 长沙网络建设的网站网络营销策划的方法
  • 成都网站建设科技公司四川seo整站优化费用
  • 吴中快速建设网站价格谷歌seo搜索引擎
  • 日本晚上免费正能量长沙seo步骤
  • 做视频up主视频网站自媒体运营主要做什么
  • 做网站最专业的公司百度热搜榜第一
  • 网络软文推广网站网站域名查询ip地址
  • 衢州网站建设怎么样石家庄抖音seo
  • 做php网站教程视频百度关键词seo
  • 西安网站建设q.479185700強网络推广协议合同范本
  • 做网站时连服务器上的数据库百度收录提交网址
  • 哪个网站可以做笔译兼职客源引流推广
  • 网页设计教程大全搜索引擎优化技术
  • 门户网站建设请示报告网站友情链接怎么弄
  • 吴桥网站建设百度推广客服投诉电话
  • 济南网站建设工作室互联网平台推广是什么意思
  • 宝鸡网站优化哪家好可以发布推广引流的悬赏平台
  • 苏州网站制作目前较好的crm系统
  • 设计网站排名百度上广告怎么搞上去的
  • 做网站的多少钱2020年度关键词有哪些
  • 商业品牌网上海百度提升优化
  • iis装网站郑州seo排名优化公司
  • 高校门户网站开发seo变现培训
  • 无极领域0基础12天精通网站建设网络营销岗位技能
  • 网络营销广告案例深圳网站搜索优化