模块:Gilatoft/Compiler:修订间差异
来自「荏苒之境」
创建页面,内容为“local tokenizer = require("Module:Gltd-Gilatoft/Compiler/Tokenizer.lua") local parser = require("Module:Gltd-Gilatoft/Compiler/Parser.lua") local assembler = require("Module:Gltd-Gilatoft/Compiler/Assembler.lua") local io_open = io.open local io_read = io.read local read = tokenizer.read local parse = parser.parse local build = assembler.build local compiler = { tokenizer = tokenizer, parser = parser, assembler = assembler } local function compi…” |
小 Sicusa移动页面模块:Gltd-Gilatoft/Compiler.lua至模块:Gilatoft/Compiler,不留重定向 |
(没有差异)
|
2025年8月7日 (四) 23:39的版本
此模块的文档可以在模块:Gilatoft/Compiler/doc创建
local tokenizer = require("Module:Gltd-Gilatoft/Compiler/Tokenizer.lua")
local parser = require("Module:Gltd-Gilatoft/Compiler/Parser.lua")
local assembler = require("Module:Gltd-Gilatoft/Compiler/Assembler.lua")
local io_open = io.open
local io_read = io.read
local read = tokenizer.read
local parse = parser.parse
local build = assembler.build
local compiler = {
tokenizer = tokenizer,
parser = parser,
assembler = assembler
}
local function compile(source, location)
local text = read(source, location)
local phrases = parse(text)
return build(phrases), phrases
end
compiler.compile = compile
compiler.compile_from = function(path)
local file = assert(io_open(path,'r'), "cannot open file")
local source = io_read("*a")
file:close()
return compile(source, path)
end
return compiler