mirror of
https://github.com/emptyynes/LIVM.git
synced 2025-10-28 21:28:55 +03:00
Add files via upload
This commit is contained in:
parent
615cc26672
commit
b43d52bf2f
11 changed files with 100 additions and 11 deletions
5
fraxinizator/fraCinize.lua
Normal file
5
fraxinizator/fraCinize.lua
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
return {
|
||||
source = function(source)
|
||||
return source
|
||||
end
|
||||
}
|
||||
14
fraxinizator/fraxevice.lua
Normal file
14
fraxinizator/fraxevice.lua
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
return {
|
||||
source = function(source)
|
||||
source = source:gsub("(%s*)console%.print%s+(%S+%s+%S+);", "%1console.write %2;%1console.out;")
|
||||
source = source:gsub("(%a+)%.write", "write ____%1")
|
||||
source = source:gsub("(%a+)%.out", "out ____%1")
|
||||
source = source:gsub("(%a+)%.wait", "wait ____%1")
|
||||
source = source:gsub("(%a+)%.read", "read ____%1")
|
||||
source = source:gsub("____clock", "|0")
|
||||
source = source:gsub("____timer", "|0")
|
||||
source = source:gsub("____console", "|1")
|
||||
source = source:gsub("____rom", "|2")
|
||||
return source
|
||||
end
|
||||
}
|
||||
11
fraxinizator/freeform.lua
Normal file
11
fraxinizator/freeform.lua
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
return {
|
||||
source = function(source)
|
||||
return source:gsub("\n", "")
|
||||
end,
|
||||
any_line = function(line)
|
||||
return line:trim():gsub("%s+", " "):gsub("%s+=%s+", "=")
|
||||
end,
|
||||
line = function(line)
|
||||
return line:gsub(",", " "):gsub("%s+", " "):split" "
|
||||
end
|
||||
}
|
||||
36
fraxinizator/string.lua
Normal file
36
fraxinizator/string.lua
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
return {
|
||||
source = function(source)
|
||||
local tl = {}
|
||||
while source:match[[|"[^"]+"]] do
|
||||
local s = source:match[[|"[^"]+"]]
|
||||
local ss = s
|
||||
s = s:sub(3, #s - 1)
|
||||
local r = {}
|
||||
for i = 0, math.floor(#s / 8) do
|
||||
local t = s:sub(i * 8 + 1, (i + 1) * 8)
|
||||
while #t < 8 do t = t .. "\0" end
|
||||
t = {string.byte(t, 1, -1)}
|
||||
local rt = {}
|
||||
for i = 1, 8 do rt[9 - i] = t[i] end
|
||||
for i = 1, 8 do rt[i] = string.format("%02x", rt[i]) end
|
||||
if table.concat(rt, "") ~= "0000000000000000" then
|
||||
r[#r + 1] = "|x" .. table.concat(rt, "")
|
||||
end
|
||||
end
|
||||
if #(r[#r]:gsub("000", "")) == #(r[#r]) then
|
||||
r[#r + 1] = "|x0000000000000000"
|
||||
end
|
||||
local function regexEscape(str)
|
||||
return str:gsub("[%(%)%.%%%+%-%*%?%[%^%$%]]", "%%%1")
|
||||
end
|
||||
local tt = table.concat(r, ", ")
|
||||
tl[tt] = #r
|
||||
source = source:gsub(regexEscape(ss), tt)
|
||||
end
|
||||
source = source:gsub("(string%s+(%w+)%s?:(%s+)([|xa-f0-9, ]+)[^;])", function(found)
|
||||
found = "object" .. found:sub(7)
|
||||
return found .. " ? length=|" .. tostring(tl[found:gsub("object%s+%w+%s?:(%s+)", "")] * 8)
|
||||
end)
|
||||
return source
|
||||
end
|
||||
}
|
||||
9
fraxinizator/ximplifier.lua
Normal file
9
fraxinizator/ximplifier.lua
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
return {
|
||||
source = function(source)
|
||||
source = source:gsub("%(([^)]+)%)", " %1")
|
||||
source = source:gsub("([|%^#][%w.]+%s+)([a-z]+)", "%1;%2"):gsub(":", ":;")
|
||||
source = source:gsub("object", ";object"):gsub("section", ";section"):gsub("%[", ";["):gsub("%]", "];")
|
||||
source = source:gsub("(\n%s+);", ";%1"):gsub(";(%s+);", ";%1"):gsub("^;", "")
|
||||
return source .. ";"
|
||||
end
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue