aboutsummaryrefslogtreecommitdiffhomepage
path: root/resources/slides_utils.lua
diff options
context:
space:
mode:
authorGravatar reed <reed@chromium.org>2014-10-25 20:44:40 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2014-10-25 20:44:40 -0700
commit86217d831d70949f9dde6a60f821d3f357558bdf (patch)
tree33e28ac94a92ded22ea5c58d3dab1419127d3ba5 /resources/slides_utils.lua
parent59b3815eaa76ee7116f9f07b4ef6c924eb10cadb (diff)
add saveLayer to lua
BUG=skia: TBR= Review URL: https://codereview.chromium.org/679903002
Diffstat (limited to 'resources/slides_utils.lua')
-rw-r--r--resources/slides_utils.lua75
1 files changed, 75 insertions, 0 deletions
diff --git a/resources/slides_utils.lua b/resources/slides_utils.lua
new file mode 100644
index 0000000000..29c0c7176c
--- /dev/null
+++ b/resources/slides_utils.lua
@@ -0,0 +1,75 @@
+function tostr(t)
+ local str = ""
+ for k, v in next, t do
+ if #str > 0 then
+ str = str .. ", "
+ end
+ if type(k) == "number" then
+ str = str .. "[" .. k .. "] = "
+ else
+ str = str .. tostring(k) .. " = "
+ end
+ if type(v) == "table" then
+ str = str .. "{ " .. tostr(v) .. " }"
+ elseif type(v) == "string" then
+ str = str .. '"' .. v .. '"'
+ else
+ str = str .. tostring(v)
+ end
+ end
+ return str
+end
+
+function trim_ws(s)
+ return s:match("^%s*(.*)")
+end
+
+function count_hypens(s)
+ local leftover = s:match("^-*(.*)")
+ return string.len(s) - string.len(leftover)
+end
+
+function parse_file(file)
+ local slides = {}
+ local block = {}
+
+ for line in file:lines() do
+ local s = trim_ws(line)
+ if #s == 0 then -- done with a block
+ if #block > 0 then
+ slides[#slides + 1] = block
+ block = {}
+ end
+ else
+ local n = count_hypens(s)
+ block[#block + 1] = {
+ indent = n,
+ text = trim_ws(s:sub(n + 1, -1))
+ }
+ end
+ end
+ return slides
+end
+
+function pretty_print_slide(slide)
+ io.write("{\n")
+ for i = 1, #slide do
+ local node = slide[i]
+ for j = 0, node.indent do
+ io.write(" ")
+ end
+ io.write("{ ")
+ io.write(tostr(node))
+ io.write(" },\n")
+ end
+ io.write("},\n")
+end
+
+function pretty_print_slides(slides)
+ io.write("gSlides = {\n")
+ for i = 1, #slides do
+ pretty_print_slide(slides[i])
+ end
+ io.write("}\n")
+end
+