Home

Lua文件加载

大纲 文件加载的接口 文件的使用 文件加载的接口 LuaState->setLoadFileDelegate(&LuaFileLoader); setLoadFileDelegate是slua提供的修改lua执行require加载时的接口,(这里要说明一下,只有require才有效果哦!) 一下是简单的loader实现 TArray<uint8> ULuaMgr::LuaFileLoader(const char* fn, FString& filepath) { IPlatformFile& PlatformFile = FPlatformFileManager::Get().GetPlatformFile(); ...

Read more

编译器的整体过程简述

分词--》 一句话代码 切分成 Tokens Token 词法单元 --》 <token-name, attribute-value> 算术器:1 + 1 - 2 + 4 = 4; (1 + 1) * 2 = 4; 1 *+ 1 = Error

Read more

词法分析器

分词--》 一句话代码 切分成 Tokens Token 词法单元 --》 <token-name, attribute-value> 算术器:1 + 1 - 2 + 4 = 4; (1 + 1) * 2 = 4; 1 *+ 1 = Error

Read more

编译器的整体过程简述

大纲 编译器是什么 编译器的处理过程 头文件展开 汇编文件 二进制文件 Linking 解释器是什么 编译器是什么 编译器就是一个软件,对开发者写好的文本文件进行一系列流程的处理,然后输出给机器执行的程序! 编译器的处理过程 这里说的是编译器将代码处理成执行文件的简要过程,并不是说编译器能做什么,毕竟编译器能做得事情还是有很多的;比如在编译之前dump一下类的memory layout之类的! 下文说的是以c++的编译过程做一个大致的说明! 头文件展开 汇编文件 二进制...

Read more

自建简单解释器

大纲 背景 详细 背景 自从计划想从新开始学习计算机后,就想从很根本的知识开始学习了;目前已经简单看完了计算机的硬件、系统之类的;所以就一直想看看编译器!于是就有了这份内容。 详细 编译器的整体过程简述 词法分析器 构建抽象语法树

Read more

unreal下的多module创建

在默认的情况下,unreal中创建的plugin还是项目中,基本都是只有一个module,但是有时候我们不可能吧什么都放在一个module中!所以就有了对多module的需求 在已有的plugin中, XXX.uplugin文件添加 "Modules": [ ... { "Name": "名称", "Type": "Editor", "LoadingPhase": "Default" } ] 如果是项目工程的话,就在XXXX.uproject中添加以上形式的代码。 创建build.cs 在plugin或者在项目工程的Source目录下,创建和module同名的目录(我这里使用的是MyEditorTools)! plugin类似!...

Read more

LuaState(slua-unreal)

大纲 简述LuaState LuaState的创建和使用 简述LuaState luastate是可见的lua vm实例,在luastate上还有一层globalstate的,luastate之间是存在环境隔离的,只有少部分是可以共享的;以下是luastate的结构 在上面的代码中,能看到一个比较重要的点: 共享的global_State 通常在lua的使用中,一般而言一个thread使用的是一个lua state,而lua state之间的数据共享,除非你有其他的思路,要不然基本都比较麻烦;目前知道的是skynet是改过后,才实现luastate间通信的! LuaState的创建和使用 这里只说slua-unreal中的luastate方面的!...

Read more