Annotate

buildscripts/squish @ 485:c9a144591649

component: Avoid adding to the global stream metatable This allows component and client connections to be made side-by-side. Previous to this change, loading this connection module would break the ability to make client connections, due to overriding stream methods such as :reopen() and :reset(). A next step would be to share the methods that the two connection modules have in common.
author Matthew Wild <mwild1@gmail.com>
date Thu, 23 Mar 2023 18:56:32 +0000
parent 472:864c9dc27c60
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1 #!/usr/bin/lua5.2
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2 package.preload['optlex']=(function(...)
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3 local _ENV=_ENV;
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
4 local function e(t,...)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
5 local e=package.loaded[t]or _ENV[t]or{_NAME=t};
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
6 package.loaded[t]=e;
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
7 for t=1,select("#",...)do
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
8 (select(t,...))(e);
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
9 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
10 _ENV=e;
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
11 _M=e;
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
12 return e;
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
13 end
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
14 local s=_G
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
15 local u=require"string"
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
16 local i=u.match
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
17 local e=u.sub
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
18 local r=u.find
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
19 local l=u.rep
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
20 local c
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
21 error=s.error
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
22 warn={}
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
23 local n,o,d
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
24 local q={
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
25 TK_KEYWORD=true,
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
26 TK_NAME=true,
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
27 TK_NUMBER=true,
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
28 TK_STRING=true,
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
29 TK_LSTRING=true,
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
30 TK_OP=true,
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
31 TK_EOS=true,
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
32 }
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
33 local b={
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
34 TK_COMMENT=true,
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
35 TK_LCOMMENT=true,
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
36 TK_EOL=true,
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
37 TK_SPACE=true,
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
38 }
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
39 local h
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
40 local function k(e)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
41 local t=n[e-1]
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
42 if e<=1 or t=="TK_EOL"then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
43 return true
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
44 elseif t==""then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
45 return k(e-1)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
46 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
47 return false
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
48 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
49 local function g(e)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
50 local t=n[e+1]
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
51 if e>=#n or t=="TK_EOL"or t=="TK_EOS"then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
52 return true
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
53 elseif t==""then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
54 return g(e+1)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
55 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
56 return false
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
57 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
58 local function E(a)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
59 local t=#i(a,"^%-%-%[=*%[")
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
60 local a=e(a,t+1,-(t-1))
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
61 local e,t=1,0
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
62 while true do
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
63 local a,n,i,o=r(a,"([\r\n])([\r\n]?)",e)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
64 if not a then break end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
65 e=a+1
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
66 t=t+1
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
67 if#o>0 and i~=o then
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
68 e=e+1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
69 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
70 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
71 return t
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
72 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
73 local function v(s,h)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
74 local a=i
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
75 local t,e=n[s],n[h]
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
76 if t=="TK_STRING"or t=="TK_LSTRING"or
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
77 e=="TK_STRING"or e=="TK_LSTRING"then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
78 return""
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
79 elseif t=="TK_OP"or e=="TK_OP"then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
80 if(t=="TK_OP"and(e=="TK_KEYWORD"or e=="TK_NAME"))or
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
81 (e=="TK_OP"and(t=="TK_KEYWORD"or t=="TK_NAME"))then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
82 return""
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
83 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
84 if t=="TK_OP"and e=="TK_OP"then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
85 local t,e=o[s],o[h]
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
86 if(a(t,"^%.%.?$")and a(e,"^%."))or
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
87 (a(t,"^[~=<>]$")and e=="=")or
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
88 (t=="["and(e=="["or e=="="))then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
89 return" "
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
90 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
91 return""
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
92 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
93 local t=o[s]
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
94 if e=="TK_OP"then t=o[h]end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
95 if a(t,"^%.%.?%.?$")then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
96 return" "
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
97 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
98 return""
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
99 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
100 return" "
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
101 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
102 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
103 local function j()
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
104 local a,s,i={},{},{}
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
105 local e=1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
106 for t=1,#n do
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
107 local n=n[t]
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
108 if n~=""then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
109 a[e],s[e],i[e]=n,o[t],d[t]
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
110 e=e+1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
111 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
112 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
113 n,o,d=a,s,i
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
114 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
115 local function x(r)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
116 local t=o[r]
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
117 local t=t
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
118 local n
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
119 if i(t,"^0[xX]")then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
120 local e=s.tostring(s.tonumber(t))
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
121 if#e<=#t then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
122 t=e
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
123 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
124 return
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
125 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
126 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
127 if i(t,"^%d+%.?0*$")then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
128 t=i(t,"^(%d+)%.?0*$")
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
129 if t+0>0 then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
130 t=i(t,"^0*([1-9]%d*)$")
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
131 local a=#i(t,"0*$")
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
132 local o=s.tostring(a)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
133 if a>#o+1 then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
134 t=e(t,1,#t-a).."e"..o
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
135 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
136 n=t
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
137 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
138 n="0"
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
139 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
140 elseif not i(t,"[eE]")then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
141 local a,t=i(t,"^(%d*)%.(%d+)$")
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
142 if a==""then a=0 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
143 if t+0==0 and a==0 then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
144 n="0"
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
145 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
146 local o=#i(t,"0*$")
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
147 if o>0 then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
148 t=e(t,1,#t-o)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
149 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
150 if a+0>0 then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
151 n=a.."."..t
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
152 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
153 n="."..t
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
154 local a=#i(t,"^0*")
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
155 local o=#t-a
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
156 local a=s.tostring(#t)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
157 if o+2+#a<1+#t then
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
158 n=e(t,-o).."e-"..a
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
159 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
160 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
161 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
162 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
163 local t,a=i(t,"^([^eE]+)[eE]([%+%-]?%d+)$")
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
164 a=s.tonumber(a)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
165 local h,o=i(t,"^(%d*)%.(%d*)$")
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
166 if h then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
167 a=a-#o
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
168 t=h..o
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
169 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
170 if t+0==0 then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
171 n="0"
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
172 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
173 local o=#i(t,"^0*")
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
174 t=e(t,o+1)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
175 o=#i(t,"0*$")
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
176 if o>0 then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
177 t=e(t,1,#t-o)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
178 a=a+o
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
179 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
180 local i=s.tostring(a)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
181 if a==0 then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
182 n=t
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
183 elseif a>0 and(a<=1+#i)then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
184 n=t..l("0",a)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
185 elseif a<0 and(a>=-#t)then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
186 o=#t+a
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
187 n=e(t,1,o).."."..e(t,o+1)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
188 elseif a<0 and(#i>=-a-#t)then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
189 o=-a-#t
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
190 n="."..l("0",o)..t
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
191 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
192 n=t.."e"..a
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
193 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
194 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
195 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
196 if n and n~=o[r]then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
197 if h then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
198 c("<number> (line "..d[r]..") "..o[r].." -> "..n)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
199 h=h+1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
200 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
201 o[r]=n
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
202 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
203 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
204 local function z(m)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
205 local t=o[m]
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
206 local n=e(t,1,1)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
207 local f=(n=="'")and'"'or"'"
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
208 local t=e(t,2,-2)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
209 local a=1
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
210 local l,s=0,0
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
211 while a<=#t do
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
212 local c=e(t,a,a)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
213 if c=="\\"then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
214 local o=a+1
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
215 local d=e(t,o,o)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
216 local h=r("abfnrtv\\\n\r\"\'0123456789",d,1,true)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
217 if not h then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
218 t=e(t,1,a-1)..e(t,o)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
219 a=a+1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
220 elseif h<=8 then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
221 a=a+2
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
222 elseif h<=10 then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
223 local i=e(t,o,o+1)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
224 if i=="\r\n"or i=="\n\r"then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
225 t=e(t,1,a).."\n"..e(t,o+2)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
226 elseif h==10 then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
227 t=e(t,1,a).."\n"..e(t,o+1)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
228 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
229 a=a+2
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
230 elseif h<=12 then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
231 if d==n then
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
232 l=l+1
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
233 a=a+2
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
234 else
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
235 s=s+1
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
236 t=e(t,1,a-1)..e(t,o)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
237 a=a+1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
238 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
239 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
240 local i=i(t,"^(%d%d?%d?)",o)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
241 o=a+1+#i
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
242 local d=i+0
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
243 local h=u.char(d)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
244 local r=r("\a\b\f\n\r\t\v",h,1,true)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
245 if r then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
246 i="\\"..e("abfnrtv",r,r)
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
247 elseif d<32 then
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
248 i="\\"..d
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
249 elseif h==n then
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
250 i="\\"..h
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
251 l=l+1
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
252 elseif h=="\\"then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
253 i="\\\\"
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
254 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
255 i=h
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
256 if h==f then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
257 s=s+1
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
258 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
259 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
260 t=e(t,1,a-1)..i..e(t,o)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
261 a=a+#i
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
262 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
263 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
264 a=a+1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
265 if c==f then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
266 s=s+1
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
267 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
268 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
269 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
270 if l>s then
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
271 a=1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
272 while a<=#t do
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
273 local o,s,i=r(t,"([\'\"])",a)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
274 if not o then break end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
275 if i==n then
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
276 t=e(t,1,o-2)..e(t,o)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
277 a=o
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
278 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
279 t=e(t,1,o-1).."\\"..e(t,o)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
280 a=o+2
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
281 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
282 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
283 n=f
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
284 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
285 t=n..t..n
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
286 if t~=o[m]then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
287 if h then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
288 c("<string> (line "..d[m]..") "..o[m].." -> "..t)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
289 h=h+1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
290 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
291 o[m]=t
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
292 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
293 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
294 local function _(u)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
295 local t=o[u]
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
296 local h=i(t,"^%[=*%[")
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
297 local a=#h
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
298 local c=e(t,-a,-1)
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
299 local s=e(t,a+1,-(a+1))
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
300 local n=""
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
301 local t=1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
302 while true do
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
303 local a,o,r,h=r(s,"([\r\n])([\r\n]?)",t)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
304 local o
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
305 if not a then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
306 o=e(s,t)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
307 elseif a>=t then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
308 o=e(s,t,a-1)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
309 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
310 if o~=""then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
311 if i(o,"%s+$")then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
312 warn.lstring="trailing whitespace in long string near line "..d[u]
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
313 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
314 n=n..o
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
315 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
316 if not a then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
317 break
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
318 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
319 t=a+1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
320 if a then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
321 if#h>0 and r~=h then
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
322 t=t+1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
323 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
324 if not(t==1 and t==a)then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
325 n=n.."\n"
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
326 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
327 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
328 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
329 if a>=3 then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
330 local e,t=a-1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
331 while e>=2 do
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
332 local a="%]"..l("=",e-2).."%]"
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
333 if not i(n,a)then t=e end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
334 e=e-1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
335 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
336 if t then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
337 a=l("=",t-2)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
338 h,c="["..a.."[","]"..a.."]"
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
339 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
340 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
341 o[u]=h..n..c
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
342 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
343 local function w(u)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
344 local a=o[u]
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
345 local h=i(a,"^%-%-%[=*%[")
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
346 local t=#h
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
347 local d=e(a,-t,-1)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
348 local s=e(a,t+1,-(t-1))
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
349 local n=""
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
350 local a=1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
351 while true do
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
352 local o,t,r,h=r(s,"([\r\n])([\r\n]?)",a)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
353 local t
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
354 if not o then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
355 t=e(s,a)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
356 elseif o>=a then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
357 t=e(s,a,o-1)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
358 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
359 if t~=""then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
360 local a=i(t,"%s*$")
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
361 if#a>0 then t=e(t,1,-(a+1))end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
362 n=n..t
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
363 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
364 if not o then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
365 break
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
366 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
367 a=o+1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
368 if o then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
369 if#h>0 and r~=h then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
370 a=a+1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
371 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
372 n=n.."\n"
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
373 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
374 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
375 t=t-2
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
376 if t>=3 then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
377 local e,a=t-1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
378 while e>=2 do
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
379 local t="%]"..l("=",e-2).."%]"
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
380 if not i(n,t)then a=e end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
381 e=e-1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
382 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
383 if a then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
384 t=l("=",a-2)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
385 h,d="--["..t.."[","]"..t.."]"
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
386 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
387 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
388 o[u]=h..n..d
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
389 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
390 local function p(a)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
391 local t=o[a]
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
392 local i=i(t,"%s*$")
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
393 if#i>0 then
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
394 t=e(t,1,-(i+1))
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
395 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
396 o[a]=t
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
397 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
398 local function A(o,a)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
399 if not o then return false end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
400 local t=i(a,"^%-%-%[=*%[")
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
401 local t=#t
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
402 local i=e(a,-t,-1)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
403 local e=e(a,t+1,-(t-1))
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
404 if r(e,o,1,true)then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
405 return true
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
406 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
407 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
408 function optimize(t,i,r,a)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
409 local m=t["opt-comments"]
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
410 local u=t["opt-whitespace"]
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
411 local f=t["opt-emptylines"]
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
412 local y=t["opt-eols"]
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
413 local I=t["opt-strings"]
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
414 local T=t["opt-numbers"]
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
415 local O=t.KEEP
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
416 h=t.DETAILS and 0
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
417 c=c or s.print
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
418 if y then
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
419 m=true
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
420 u=true
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
421 f=true
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
422 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
423 n,o,d
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
424 =i,r,a
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
425 local t=1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
426 local a,r
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
427 local s
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
428 local function i(i,a,e)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
429 e=e or t
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
430 n[e]=i or""
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
431 o[e]=a or""
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
432 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
433 while true do
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
434 a,r=n[t],o[t]
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
435 local h=k(t)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
436 if h then s=nil end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
437 if a=="TK_EOS"then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
438 break
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
439 elseif a=="TK_KEYWORD"or
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
440 a=="TK_NAME"or
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
441 a=="TK_OP"then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
442 s=t
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
443 elseif a=="TK_NUMBER"then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
444 if T then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
445 x(t)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
446 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
447 s=t
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
448 elseif a=="TK_STRING"or
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
449 a=="TK_LSTRING"then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
450 if I then
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
451 if a=="TK_STRING"then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
452 z(t)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
453 else
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
454 _(t)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
455 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
456 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
457 s=t
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
458 elseif a=="TK_COMMENT"then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
459 if m then
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
460 if t==1 and e(r,1,1)=="#"then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
461 p(t)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
462 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
463 i()
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
464 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
465 elseif u then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
466 p(t)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
467 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
468 elseif a=="TK_LCOMMENT"then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
469 if A(O,r)then
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
470 if u then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
471 w(t)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
472 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
473 s=t
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
474 elseif m then
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
475 local e=E(r)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
476 if b[n[t+1]]then
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
477 i()
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
478 a=""
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
479 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
480 i("TK_SPACE"," ")
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
481 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
482 if not f and e>0 then
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
483 i("TK_EOL",l("\n",e))
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
484 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
485 if u and a~=""then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
486 t=t-1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
487 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
488 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
489 if u then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
490 w(t)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
491 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
492 s=t
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
493 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
494 elseif a=="TK_EOL"then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
495 if h and f then
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
496 i()
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
497 elseif r=="\r\n"or r=="\n\r"then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
498 i("TK_EOL","\n")
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
499 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
500 elseif a=="TK_SPACE"then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
501 if u then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
502 if h or g(t)then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
503 i()
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
504 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
505 local a=n[s]
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
506 if a=="TK_LCOMMENT"then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
507 i()
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
508 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
509 local e=n[t+1]
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
510 if b[e]then
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
511 if(e=="TK_COMMENT"or e=="TK_LCOMMENT")and
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
512 a=="TK_OP"and o[s]=="-"then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
513 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
514 i()
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
515 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
516 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
517 local e=v(s,t+1)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
518 if e==""then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
519 i()
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
520 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
521 i("TK_SPACE"," ")
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
522 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
523 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
524 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
525 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
526 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
527 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
528 error("unidentified token encountered")
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
529 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
530 t=t+1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
531 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
532 j()
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
533 if y then
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
534 t=1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
535 if n[1]=="TK_COMMENT"then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
536 t=3
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
537 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
538 while true do
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
539 a,r=n[t],o[t]
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
540 if a=="TK_EOS"then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
541 break
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
542 elseif a=="TK_EOL"then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
543 local e,a=n[t-1],n[t+1]
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
544 if q[e]and q[a]then
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
545 local e=v(t-1,t+1)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
546 if e==""then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
547 i()
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
548 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
549 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
550 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
551 t=t+1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
552 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
553 j()
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
554 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
555 if h and h>0 then c()end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
556 return n,o,d
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
557 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
558 return{optimize=optimize}
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
559 end)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
560 package.preload['optparser']=(function(...)
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
561 local _ENV=_ENV;
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
562 local function e(t,...)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
563 local e=package.loaded[t]or _ENV[t]or{_NAME=t};
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
564 package.loaded[t]=e;
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
565 for t=1,select("#",...)do
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
566 (select(t,...))(e);
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
567 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
568 _ENV=e;
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
569 _M=e;
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
570 return e;
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
571 end
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
572 local e=_G
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
573 local a=require"string"
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
574 local l=require"table"
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
575 local s="etaoinshrdlucmfwypvbgkqjxz_ETAOINSHRDLUCMFWYPVBGKQJXZ"
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
576 local d="etaoinshrdlucmfwypvbgkqjxz_0123456789ETAOINSHRDLUCMFWYPVBGKQJXZ"
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
577 local w={}
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
578 for e in a.gmatch([[
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
579 and break do else elseif end false for function if in
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
580 local nil not or repeat return then true until while
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
581 self _ENV]],"%S+")do
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
582 w[e]=true
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
583 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
584 local h,u,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
585 m,o,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
586 c,v,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
587 r,
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
588 n
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
589 local function f(e)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
590 local i={}
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
591 for n=1,#e do
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
592 local e=e[n]
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
593 local o=e.name
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
594 if not i[o]then
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
595 i[o]={
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
596 decl=0,token=0,size=0,
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
597 }
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
598 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
599 local t=i[o]
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
600 t.decl=t.decl+1
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
601 local i=e.xref
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
602 local a=#i
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
603 t.token=t.token+a
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
604 t.size=t.size+a*#o
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
605 if e.decl then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
606 e.id=n
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
607 e.xcount=a
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
608 if a>1 then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
609 e.first=i[2]
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
610 e.last=i[a]
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
611 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
612 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
613 t.id=n
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
614 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
615 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
616 return i
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
617 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
618 local function y(e)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
619 local i=a.byte
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
620 local n=a.char
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
621 local a={
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
622 TK_KEYWORD=true,TK_NAME=true,TK_NUMBER=true,
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
623 TK_STRING=true,TK_LSTRING=true,
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
624 }
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
625 if not e["opt-comments"]then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
626 a.TK_COMMENT=true
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
627 a.TK_LCOMMENT=true
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
628 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
629 local e={}
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
630 for t=1,#h do
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
631 e[t]=u[t]
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
632 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
633 for t=1,#o do
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
634 local t=o[t]
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
635 local a=t.xref
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
636 for t=1,t.xcount do
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
637 local t=a[t]
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
638 e[t]=""
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
639 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
640 end
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
641 local t={}
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
642 for e=0,255 do t[e]=0 end
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
643 for o=1,#h do
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
644 local o,e=h[o],e[o]
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
645 if a[o]then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
646 for a=1,#e do
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
647 local e=i(e,a)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
648 t[e]=t[e]+1
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
649 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
650 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
651 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
652 local function o(a)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
653 local e={}
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
654 for o=1,#a do
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
655 local a=i(a,o)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
656 e[o]={c=a,freq=t[a],}
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
657 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
658 l.sort(e,
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
659 function(t,e)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
660 return t.freq>e.freq
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
661 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
662 )
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
663 local t={}
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
664 for a=1,#e do
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
665 t[a]=n(e[a].c)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
666 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
667 return l.concat(t)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
668 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
669 s=o(s)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
670 d=o(d)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
671 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
672 local function p()
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
673 local t
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
674 local n,h=#s,#d
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
675 local e=r
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
676 if e<n then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
677 e=e+1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
678 t=a.sub(s,e,e)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
679 else
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
680 local i,o=n,1
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
681 repeat
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
682 e=e-i
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
683 i=i*h
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
684 o=o+1
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
685 until i>e
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
686 local i=e%n
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
687 e=(e-i)/n
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
688 i=i+1
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
689 t=a.sub(s,i,i)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
690 while o>1 do
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
691 local i=e%h
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
692 e=(e-i)/h
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
693 i=i+1
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
694 t=t..a.sub(d,i,i)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
695 o=o-1
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
696 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
697 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
698 r=r+1
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
699 return t,c[t]~=nil
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
700 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
701 function optimize(e,i,t,s,a)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
702 h,u,m,o
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
703 =i,t,s,a
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
704 r=0
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
705 n={}
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
706 c=f(m)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
707 v=f(o)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
708 if e["opt-entropy"]then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
709 y(e)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
710 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
711 local e={}
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
712 for t=1,#o do
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
713 e[t]=o[t]
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
714 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
715 l.sort(e,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
716 function(t,e)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
717 return t.xcount>e.xcount
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
718 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
719 )
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
720 local a,t,r={},1,false
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
721 for o=1,#e do
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
722 local e=e[o]
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
723 if not e.preserve then
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
724 a[t]=e
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
725 t=t+1
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
726 elseif e.name=="self"then
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
727 r=true
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
728 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
729 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
730 e=a
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
731 local s=#e
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
732 while s>0 do
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
733 local h,t
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
734 repeat
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
735 h,t=p()
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
736 until not w[h]
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
737 n[#n+1]=h
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
738 local a=s
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
739 if t then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
740 local i=m[c[h].id].xref
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
741 local n=#i
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
742 for t=1,s do
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
743 local t=e[t]
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
744 local s,e=t.act,t.rem
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
745 while e<0 do
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
746 e=o[-e].rem
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
747 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
748 local o
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
749 for t=1,n do
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
750 local t=i[t]
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
751 if t>=s and t<=e then o=true end
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
752 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
753 if o then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
754 t.skip=true
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
755 a=a-1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
756 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
757 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
758 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
759 while a>0 do
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
760 local t=1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
761 while e[t].skip do
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
762 t=t+1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
763 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
764 a=a-1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
765 local i=e[t]
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
766 t=t+1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
767 i.newname=h
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
768 i.skip=true
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
769 i.done=true
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
770 local s,h=i.first,i.last
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
771 local r=i.xref
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
772 if s and a>0 then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
773 local n=a
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
774 while n>0 do
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
775 while e[t].skip do
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
776 t=t+1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
777 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
778 n=n-1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
779 local e=e[t]
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
780 t=t+1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
781 local n,t=e.act,e.rem
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
782 while t<0 do
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
783 t=o[-t].rem
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
784 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
785 if not(h<n or s>t)then
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
786 if n>=i.act then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
787 for o=1,i.xcount do
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
788 local o=r[o]
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
789 if o>=n and o<=t then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
790 a=a-1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
791 e.skip=true
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
792 break
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
793 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
794 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
795 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
796 if e.last and e.last>=i.act then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
797 a=a-1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
798 e.skip=true
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
799 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
800 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
801 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
802 if a==0 then break end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
803 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
804 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
805 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
806 local a,t={},1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
807 for o=1,s do
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
808 local e=e[o]
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
809 if not e.done then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
810 e.skip=false
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
811 a[t]=e
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
812 t=t+1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
813 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
814 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
815 e=a
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
816 s=#e
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
817 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
818 for e=1,#o do
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
819 local e=o[e]
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
820 local t=e.xref
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
821 if e.newname then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
822 for a=1,e.xcount do
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
823 local t=t[a]
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
824 u[t]=e.newname
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
825 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
826 e.name,e.oldname
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
827 =e.newname,e.name
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
828 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
829 e.oldname=e.name
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
830 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
831 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
832 if r then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
833 n[#n+1]="self"
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
834 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
835 local e=f(o)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
836 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
837 return{optimize=optimize}
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
838 end)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
839 package.preload['llex']=(function(...)
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
840 local _ENV=_ENV;
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
841 local function e(t,...)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
842 local e=package.loaded[t]or _ENV[t]or{_NAME=t};
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
843 package.loaded[t]=e;
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
844 for t=1,select("#",...)do
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
845 (select(t,...))(e);
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
846 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
847 _ENV=e;
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
848 _M=e;
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
849 return e;
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
850 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
851 local y=_G
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
852 local s=require"string"
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
853 local l=s.find
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
854 local c=s.match
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
855 local n=s.sub
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
856 local e=''
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
857 local r=''
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
858 local a=1
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
859 local d=1
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
860 local m={}
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
861 local w={}
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
862 local p={}
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
863 local i=''
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
864 local v={}
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
865 for e in s.gmatch([[
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
866 and break do else elseif end false for function if in
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
867 local nil not or repeat return then true until while]],"%S+")do
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
868 v[e]=true
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
869 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
870 local function o(a,t)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
871 local e=#m+1
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
872 m[e]=a
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
873 w[e]=t
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
874 p[e]=d
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
875 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
876 local function h(t,s)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
877 local n=n
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
878 local i=n(e,t,t)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
879 t=t+1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
880 local e=n(e,t,t)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
881 if(e=="\n"or e=="\r")and(e~=i)then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
882 t=t+1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
883 i=i..e
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
884 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
885 if s then o("TK_EOL",i)end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
886 d=d+1
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
887 a=t
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
888 return t
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
889 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
890 function init(i,t)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
891 e=i
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
892 r=t
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
893 local t,n,e,i=l(e,"^(#[^\r\n]*)(\r?\n?)")
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
894 if t then
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
895 a=a+#e
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
896 o("TK_COMMENT",e)
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
897 if#i>0 then h(a,true)end
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
898 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
899 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
900 function chunkid()
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
901 if r and c(r,"^[=@]")then
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
902 return n(r,2)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
903 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
904 return"[string]"
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
905 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
906 function errorline(t,a)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
907 local e=error or y.error
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
908 e(s.format("%s:%d: %s",chunkid(),a or d,t))
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
909 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
910 local r=errorline
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
911 local function u(t)
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
912 local i=n
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
913 local n=i(e,t,t)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
914 t=t+1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
915 local o=#c(e,"=*",t)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
916 t=t+o
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
917 a=t
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
918 return(i(e,t,t)==n)and o or(-o)-1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
919 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
920 local function f(d,s)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
921 local t=a+1
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
922 local n=n
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
923 local o=n(e,t,t)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
924 if o=="\r"or o=="\n"then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
925 t=h(t)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
926 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
927 local o=t
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
928 while true do
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
929 local o,c,l=l(e,"([\r\n%]])",t)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
930 if not o then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
931 r(d and"unfinished long string"or
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
932 "unfinished long comment")
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
933 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
934 t=o
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
935 if l=="]"then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
936 if u(t)==s then
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
937 i=n(e,i,a)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
938 a=a+1
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
939 return i
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
940 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
941 t=a
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
942 else
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
943 i=i.."\n"
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
944 t=h(t)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
945 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
946 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
947 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
948 local function b(u)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
949 local t=a
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
950 local s=l
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
951 local d=n
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
952 while true do
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
953 local n,l,o=s(e,"([\n\r\\\"\'])",t)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
954 if n then
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
955 if o=="\n"or o=="\r"then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
956 r("unfinished string")
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
957 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
958 t=n
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
959 if o=="\\"then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
960 t=t+1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
961 o=d(e,t,t)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
962 if o==""then break end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
963 n=s("abfnrtv\n\r",o,1,true)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
964 if n then
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
965 if n>7 then
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
966 t=h(t)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
967 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
968 t=t+1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
969 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
970 elseif s(o,"%D")then
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
971 t=t+1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
972 else
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
973 local o,a,e=s(e,"^(%d%d?%d?)",t)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
974 t=a+1
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
975 if e+1>256 then
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
976 r("escape sequence too large")
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
977 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
978 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
979 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
980 t=t+1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
981 if o==u then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
982 a=t
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
983 return d(e,i,t-1)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
984 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
985 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
986 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
987 break
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
988 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
989 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
990 r("unfinished string")
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
991 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
992 function llex()
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
993 local s=l
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
994 local d=c
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
995 while true do
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
996 local t=a
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
997 while true do
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
998 local c,m,l=s(e,"^([_%a][_%w]*)",t)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
999 if c then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1000 a=t+#l
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1001 if v[l]then
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1002 o("TK_KEYWORD",l)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1003 else
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1004 o("TK_NAME",l)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1005 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1006 break
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1007 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1008 local l,m,c=s(e,"^(%.?)%d",t)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1009 if l then
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1010 if c=="."then t=t+1 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1011 local u,h,i=s(e,"^%d*[%.%d]*([eE]?)",t)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1012 t=h+1
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1013 if#i==1 then
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1014 if d(e,"^[%+%-]",t)then
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1015 t=t+1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1016 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1017 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1018 local i,t=s(e,"^[_%w]*",t)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1019 a=t+1
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1020 local e=n(e,l,t)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1021 if not y.tonumber(e)then
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1022 r("malformed number")
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1023 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1024 o("TK_NUMBER",e)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1025 break
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1026 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1027 local m,w,c,l=s(e,"^((%s)[ \t\v\f]*)",t)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1028 if m then
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1029 if l=="\n"or l=="\r"then
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1030 h(t,true)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1031 else
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1032 a=w+1
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1033 o("TK_SPACE",c)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1034 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1035 break
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1036 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1037 local h=d(e,"^%p",t)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1038 if h then
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1039 i=t
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1040 local l=s("-[\"\'.=<>~",h,1,true)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1041 if l then
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1042 if l<=2 then
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1043 if l==1 then
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1044 local r=d(e,"^%-%-(%[?)",t)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1045 if r then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1046 t=t+2
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1047 local h=-1
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1048 if r=="["then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1049 h=u(t)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1050 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1051 if h>=0 then
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1052 o("TK_LCOMMENT",f(false,h))
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1053 else
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1054 a=s(e,"[\n\r]",t)or(#e+1)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1055 o("TK_COMMENT",n(e,i,a-1))
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1056 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1057 break
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1058 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1059 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1060 local e=u(t)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1061 if e>=0 then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1062 o("TK_LSTRING",f(true,e))
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1063 elseif e==-1 then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1064 o("TK_OP","[")
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1065 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1066 r("invalid long string delimiter")
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1067 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1068 break
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1069 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1070 elseif l<=5 then
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1071 if l<5 then
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1072 a=t+1
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1073 o("TK_STRING",b(h))
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1074 break
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1075 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1076 h=d(e,"^%.%.?%.?",t)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1077 else
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1078 h=d(e,"^%p=?",t)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1079 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1080 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1081 a=t+#h
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1082 o("TK_OP",h)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1083 break
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1084 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1085 local e=n(e,t,t)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1086 if e~=""then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1087 a=t+1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1088 o("TK_OP",e)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1089 break
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1090 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1091 o("TK_EOS","")
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1092 return
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1093 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1094 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1095 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1096 return{
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1097 llex=llex,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1098 init=init,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1099 chunkid=chunkid,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1100 tok=m,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1101 tokln=p,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1102 seminfo=w
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1103 }
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1104 end)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1105 package.preload['lparser']=(function(...)
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1106 local _ENV=_ENV;
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1107 local function e(t,...)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1108 local e=package.loaded[t]or _ENV[t]or{_NAME=t};
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1109 package.loaded[t]=e;
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1110 for t=1,select("#",...)do
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1111 (select(t,...))(e);
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1112 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1113 _ENV=e;
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1114 _M=e;
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1115 return e;
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1116 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1117 local U=_G
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1118 local b=require"string"
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1119 local D={}
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1120 local T,
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1121 j,
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1122 A,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1123 C,
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1124 d,
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1125 r,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1126 P,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1127 t,k,l,y,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1128 p,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1129 a,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1130 W,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1131 q,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1132 N,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1133 u,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1134 g,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1135 E
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1136 local f,n,w,_,x,v
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1137 local e=b.gmatch
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1138 local H={}
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1139 for e in e("else elseif end until <eof>","%S+")do
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1140 H[e]=true
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1141 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1142 local Y={}
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1143 for e in e("if while do for repeat function local return break","%S+")do
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1144 Y[e]=e.."_stat"
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1145 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1146 local S={}
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1147 local V={}
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1148 for e,a,t in e([[
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1149 {+ 6 6}{- 6 6}{* 7 7}{/ 7 7}{% 7 7}
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1150 {^ 10 9}{.. 5 4}
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1151 {~= 3 3}{== 3 3}
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1152 {< 3 3}{<= 3 3}{> 3 3}{>= 3 3}
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1153 {and 2 2}{or 1 1}
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1154 ]],"{(%S+)%s(%d+)%s(%d+)}")do
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1155 S[e]=a+0
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1156 V[e]=t+0
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1157 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1158 local Z={["not"]=true,["-"]=true,
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1159 ["#"]=true,}
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1160 local ee=8
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1161 local function o(t,a)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1162 local e=error or U.error
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1163 e(b.format("(source):%d: %s",a or l,t))
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1164 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1165 local function e()
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1166 P=A[d]
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1167 t,k,l,y
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1168 =T[d],j[d],A[d],C[d]
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1169 d=d+1
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1170 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1171 local function X()
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1172 return T[d]
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1173 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1174 local function s(a)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1175 local e=t
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1176 if e~="<number>"and e~="<string>"then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1177 if e=="<name>"then e=k end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1178 e="'"..e.."'"
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1179 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1180 o(a.." near "..e)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1181 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1182 local function c(e)
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1183 s("'"..e.."' expected")
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1184 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1185 local function o(a)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1186 if t==a then e();return true end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1187 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1188 local function L(e)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1189 if t~=e then c(e)end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1190 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1191 local function i(t)
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1192 L(t);e()
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1193 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1194 local function F(e,t)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1195 if not e then s(t)end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1196 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1197 local function h(e,a,t)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1198 if not o(e)then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1199 if t==l then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1200 c(e)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1201 else
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1202 s("'"..e.."' expected (to close '"..a.."' at line "..t..")")
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1203 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1204 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1205 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1206 local function c()
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1207 L("<name>")
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1208 local t=k
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1209 p=y
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1210 e()
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1211 return t
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1212 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1213 local function I(e,t)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1214 e.k="VK"
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1215 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1216 local function R(e)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1217 I(e,c())
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1218 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1219 local function m(o,i)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1220 local e=a.bl
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1221 local t
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1222 if e then
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1223 t=e.locallist
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1224 else
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1225 t=a.locallist
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1226 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1227 local e=#u+1
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1228 u[e]={
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1229 name=o,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1230 xref={p},
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1231 decl=p,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1232 }
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1233 if i or o=="_ENV"then
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1234 u[e].preserve=true
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1235 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1236 local a=#g+1
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1237 g[a]=e
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1238 E[a]=t
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1239 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1240 local function z(e)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1241 local t=#g
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1242 while e>0 do
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1243 e=e-1
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1244 local t=t-e
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1245 local a=g[t]
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1246 local e=u[a]
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1247 local o=e.name
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1248 e.act=y
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1249 g[t]=nil
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1250 local i=E[t]
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1251 E[t]=nil
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1252 local t=i[o]
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1253 if t then
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1254 e=u[t]
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1255 e.rem=-a
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1256 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1257 i[o]=a
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1258 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1259 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1260 local function O()
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1261 local t=a.bl
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1262 local e
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1263 if t then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1264 e=t.locallist
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1265 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1266 e=a.locallist
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1267 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1268 for t,e in U.pairs(e)do
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1269 local e=u[e]
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1270 e.rem=y
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1271 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1272 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1273 local function y(e,t)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1274 if b.sub(e,1,1)=="("then
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1275 return
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1276 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1277 m(e,t)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1278 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1279 local function U(o,a)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1280 local t=o.bl
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1281 local e
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1282 if t then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1283 e=t.locallist
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1284 while e do
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1285 if e[a]then return e[a]end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1286 t=t.prev
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1287 e=t and t.locallist
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1288 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1289 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1290 e=o.locallist
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1291 return e[a]or-1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1292 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1293 local function b(t,o,e)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1294 if t==nil then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1295 e.k="VGLOBAL"
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1296 return"VGLOBAL"
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1297 else
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1298 local a=U(t,o)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1299 if a>=0 then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1300 e.k="VLOCAL"
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1301 e.id=a
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1302 return"VLOCAL"
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1303 else
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1304 if b(t.prev,o,e)=="VGLOBAL"then
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1305 return"VGLOBAL"
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1306 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1307 e.k="VUPVAL"
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1308 return"VUPVAL"
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1309 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1310 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1311 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1312 local function Q(o)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1313 local t=c()
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1314 b(a,t,o)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1315 if o.k=="VGLOBAL"then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1316 local e=N[t]
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1317 if not e then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1318 e=#q+1
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1319 q[e]={
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1320 name=t,
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1321 xref={p},
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1322 }
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1323 N[t]=e
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1324 else
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1325 local e=q[e].xref
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1326 e[#e+1]=p
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1327 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1328 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1329 local e=o.id
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1330 local e=u[e].xref
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1331 e[#e+1]=p
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1332 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1333 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1334 local function p(t)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1335 local e={}
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1336 e.isbreakable=t
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1337 e.prev=a.bl
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1338 e.locallist={}
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1339 a.bl=e
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1340 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1341 local function b()
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1342 local e=a.bl
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1343 O()
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1344 a.bl=e.prev
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1345 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1346 local function B()
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1347 local e
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1348 if not a then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1349 e=W
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1350 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1351 e={}
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1352 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1353 e.prev=a
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1354 e.bl=nil
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1355 e.locallist={}
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1356 a=e
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1357 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1358 local function G()
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1359 O()
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1360 a=a.prev
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1361 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1362 local function U(t)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1363 local a={}
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1364 e()
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1365 R(a)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1366 t.k="VINDEXED"
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1367 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1368 local function K(t)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1369 e()
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1370 n(t)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1371 i("]")
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1372 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1373 local function M(e)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1374 local e,a={},{}
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1375 if t=="<name>"then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1376 R(e)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1377 else
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1378 K(e)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1379 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1380 i("=")
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1381 n(a)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1382 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1383 local function O(e)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1384 if e.v.k=="VVOID"then return end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1385 e.v.k="VVOID"
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1386 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1387 local function O(e)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1388 n(e.v)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1389 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1390 local function J(a)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1391 local n=l
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1392 local e={}
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1393 e.v={}
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1394 e.t=a
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1395 a.k="VRELOCABLE"
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1396 e.v.k="VVOID"
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1397 i("{")
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1398 repeat
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1399 if t=="}"then break end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1400 local t=t
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1401 if t=="<name>"then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1402 if X()~="="then
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1403 O(e)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1404 else
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1405 M(e)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1406 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1407 elseif t=="["then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1408 M(e)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1409 else
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1410 O(e)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1411 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1412 until not o(",")and not o(";")
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1413 h("}","{",n)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1414 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1415 local function X()
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1416 local i=0
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1417 if t~=")"then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1418 repeat
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1419 local t=t
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1420 if t=="<name>"then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1421 m(c())
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1422 i=i+1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1423 elseif t=="..."then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1424 e()
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1425 a.is_vararg=true
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1426 else
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1427 s("<name> or '...' expected")
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1428 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1429 until a.is_vararg or not o(",")
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1430 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1431 z(i)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1432 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1433 local function M(n)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1434 local a={}
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1435 local i=l
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1436 local o=t
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1437 if o=="("then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1438 if i~=P then
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1439 s("ambiguous syntax (function call x new statement)")
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1440 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1441 e()
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1442 if t==")"then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1443 a.k="VVOID"
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1444 else
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1445 f(a)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1446 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1447 h(")","(",i)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1448 elseif o=="{"then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1449 J(a)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1450 elseif o=="<string>"then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1451 I(a,k)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1452 e()
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1453 else
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1454 s("function arguments expected")
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1455 return
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1456 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1457 n.k="VCALL"
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1458 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1459 local function P(a)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1460 local t=t
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1461 if t=="("then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1462 local t=l
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1463 e()
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1464 n(a)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1465 h(")","(",t)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1466 elseif t=="<name>"then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1467 Q(a)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1468 else
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1469 s("unexpected symbol")
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1470 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1471 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1472 local function O(a)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1473 P(a)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1474 while true do
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1475 local t=t
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1476 if t=="."then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1477 U(a)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1478 elseif t=="["then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1479 local e={}
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1480 K(e)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1481 elseif t==":"then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1482 local t={}
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1483 e()
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1484 R(t)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1485 M(a)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1486 elseif t=="("or t=="<string>"or t=="{"then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1487 M(a)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1488 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1489 return
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1490 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1491 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1492 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1493 local function R(o)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1494 local t=t
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1495 if t=="<number>"then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1496 o.k="VKNUM"
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1497 elseif t=="<string>"then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1498 I(o,k)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1499 elseif t=="nil"then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1500 o.k="VNIL"
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1501 elseif t=="true"then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1502 o.k="VTRUE"
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1503 elseif t=="false"then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1504 o.k="VFALSE"
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1505 elseif t=="..."then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1506 F(a.is_vararg==true,
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1507 "cannot use '...' outside a vararg function");
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1508 o.k="VVARARG"
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1509 elseif t=="{"then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1510 J(o)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1511 return
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1512 elseif t=="function"then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1513 e()
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1514 x(o,false,l)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1515 return
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1516 else
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1517 O(o)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1518 return
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1519 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1520 e()
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1521 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1522 local function k(o,n)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1523 local a=t
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1524 local i=Z[a]
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1525 if i then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1526 e()
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1527 k(o,ee)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1528 else
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1529 R(o)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1530 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1531 a=t
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1532 local t=S[a]
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1533 while t and t>n do
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1534 local o={}
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1535 e()
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1536 local e=k(o,V[a])
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1537 a=e
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1538 t=S[a]
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1539 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1540 return a
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1541 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1542 function n(e)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1543 k(e,0)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1544 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1545 local function I(e)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1546 local t={}
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1547 local e=e.v.k
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1548 F(e=="VLOCAL"or e=="VUPVAL"or e=="VGLOBAL"
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1549 or e=="VINDEXED","syntax error")
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1550 if o(",")then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1551 local e={}
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1552 e.v={}
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1553 O(e.v)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1554 I(e)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1555 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1556 i("=")
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1557 f(t)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1558 return
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1559 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1560 t.k="VNONRELOC"
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1561 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1562 local function k(e,t)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1563 i("do")
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1564 p(false)
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1565 z(e)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1566 w()
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1567 b()
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1568 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1569 local function R(e)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1570 local t=r
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1571 y("(for index)")
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1572 y("(for limit)")
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1573 y("(for step)")
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1574 m(e)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1575 i("=")
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1576 _()
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1577 i(",")
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1578 _()
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1579 if o(",")then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1580 _()
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1581 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1582 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1583 k(1,true)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1584 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1585 local function M(e)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1586 local t={}
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1587 y("(for generator)")
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1588 y("(for state)")
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1589 y("(for control)")
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1590 m(e)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1591 local e=1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1592 while o(",")do
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1593 m(c())
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1594 e=e+1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1595 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1596 i("in")
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1597 local a=r
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1598 f(t)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1599 k(e,false)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1600 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1601 local function F(e)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1602 local a=false
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1603 Q(e)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1604 while t=="."do
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1605 U(e)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1606 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1607 if t==":"then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1608 a=true
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1609 U(e)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1610 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1611 return a
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1612 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1613 function _()
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1614 local e={}
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1615 n(e)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1616 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1617 local function k()
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1618 local e={}
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1619 n(e)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1620 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1621 local function S()
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1622 e()
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1623 k()
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1624 i("then")
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1625 w()
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1626 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1627 local function P()
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1628 local t,e={}
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1629 m(c())
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1630 t.k="VLOCAL"
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1631 z(1)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1632 x(e,false,l)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1633 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1634 local function U()
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1635 local e=0
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1636 local t={}
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1637 repeat
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1638 m(c())
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1639 e=e+1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1640 until not o(",")
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1641 if o("=")then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1642 f(t)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1643 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1644 t.k="VVOID"
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1645 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1646 z(e)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1647 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1648 function f(e)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1649 n(e)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1650 while o(",")do
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1651 n(e)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1652 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1653 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1654 function x(a,t,e)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1655 B()
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1656 i("(")
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1657 if t then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1658 y("self",true)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1659 z(1)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1660 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1661 X()
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1662 i(")")
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1663 v()
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1664 h("end","function",e)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1665 G()
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1666 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1667 function w()
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1668 p(false)
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1669 v()
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1670 b()
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1671 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1672 function for_stat()
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1673 local o=r
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1674 p(true)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1675 e()
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1676 local a=c()
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1677 local e=t
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1678 if e=="="then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1679 R(a)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1680 elseif e==","or e=="in"then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1681 M(a)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1682 else
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1683 s("'=' or 'in' expected")
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1684 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1685 h("end","for",o)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1686 b()
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1687 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1688 function while_stat()
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1689 local t=r
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1690 e()
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1691 k()
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1692 p(true)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1693 i("do")
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1694 w()
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1695 h("end","while",t)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1696 b()
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1697 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1698 function repeat_stat()
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1699 local t=r
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1700 p(true)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1701 p(false)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1702 e()
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1703 v()
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1704 h("until","repeat",t)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1705 k()
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1706 b()
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1707 b()
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1708 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1709 function if_stat()
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1710 local a=r
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1711 local o={}
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1712 S()
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1713 while t=="elseif"do
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1714 S()
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1715 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1716 if t=="else"then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1717 e()
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1718 w()
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1719 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1720 h("end","if",a)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1721 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1722 function return_stat()
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1723 local a={}
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1724 e()
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1725 local e=t
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1726 if H[e]or e==";"then
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1727 else
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1728 f(a)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1729 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1730 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1731 function break_stat()
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1732 local t=a.bl
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1733 e()
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1734 while t and not t.isbreakable do
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1735 t=t.prev
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1736 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1737 if not t then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1738 s("no loop to break")
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1739 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1740 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1741 function expr_stat()
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1742 local e={}
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1743 e.v={}
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1744 O(e.v)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1745 if e.v.k=="VCALL"then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1746 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1747 e.prev=nil
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1748 I(e)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1749 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1750 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1751 function function_stat()
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1752 local a=r
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1753 local o,t={},{}
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1754 e()
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1755 local e=F(o)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1756 x(t,e,a)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1757 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1758 function do_stat()
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1759 local t=r
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1760 e()
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1761 w()
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1762 h("end","do",t)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1763 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1764 function local_stat()
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1765 e()
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1766 if o("function")then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1767 P()
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1768 else
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1769 U()
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1770 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1771 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1772 local function i()
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1773 r=l
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1774 local e=t
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1775 local t=Y[e]
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1776 if t then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1777 D[t]()
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1778 if e=="return"or e=="break"then return true end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1779 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1780 expr_stat()
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1781 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1782 return false
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1783 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1784 function v()
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1785 local e=false
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1786 while not e and not H[t]do
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1787 e=i()
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1788 o(";")
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1789 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1790 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1791 function parser()
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1792 B()
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1793 a.is_vararg=true
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1794 e()
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1795 v()
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1796 L("<eof>")
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1797 G()
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1798 return q,u
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1799 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1800 function init(e,o,n)
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1801 d=1
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1802 W={}
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1803 local t=1
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1804 T,j,A,C={},{},{},{}
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1805 for a=1,#e do
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1806 local e=e[a]
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1807 local i=true
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1808 if e=="TK_KEYWORD"or e=="TK_OP"then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1809 e=o[a]
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1810 elseif e=="TK_NAME"then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1811 e="<name>"
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1812 j[t]=o[a]
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1813 elseif e=="TK_NUMBER"then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1814 e="<number>"
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1815 j[t]=0
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1816 elseif e=="TK_STRING"or e=="TK_LSTRING"then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1817 e="<string>"
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1818 j[t]=""
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1819 elseif e=="TK_EOS"then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1820 e="<eof>"
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1821 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1822 i=false
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1823 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1824 if i then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1825 T[t]=e
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1826 A[t]=n[a]
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1827 C[t]=a
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1828 t=t+1
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1829 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1830 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1831 q,N,u={},{},{}
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1832 g,E={},{}
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1833 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1834 D={
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1835 expr=n,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1836 exp1=_,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1837 explist1=f,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1838 body=x,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1839 block=w,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1840 for_stat=for_stat,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1841 while_stat=while_stat,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1842 repeat_stat=repeat_stat,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1843 if_stat=if_stat,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1844 return_stat=return_stat,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1845 break_stat=break_stat,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1846 expr_stat=expr_stat,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1847 function_stat=function_stat,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1848 do_stat=do_stat,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1849 local_stat=local_stat,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1850 chunk=v,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1851 parser=parser,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1852 init=init
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1853 }
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1854 return D
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1855 end)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1856 package.preload['minichunkspy']=(function(...)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1857 local _ENV=_ENV;
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1858 local function e(t,...)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1859 local e=package.loaded[t]or _ENV[t]or{_NAME=t};
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1860 package.loaded[t]=e;
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1861 for t=1,select("#",...)do
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1862 (select(t,...))(e);
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1863 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1864 _ENV=e;
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1865 _M=e;
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1866 return e;
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1867 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1868 local m,t,u=string,table,math
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1869 local a,v,n,e=ipairs,setmetatable,type,assert
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1870 local a=__END_OF_GLOBALS__
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1871 local c,l,i=m.char,m.byte,m.sub
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1872 local w,d,g=u.frexp,u.ldexp,u.abs
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1873 local p=t.concat
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1874 local a=u.huge
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1875 local k=a-a
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1876 local o=false
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1877 local r=4
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1878 local s=4
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1879 local h=8
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1880 local t={}
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1881 local function y()
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1882 t[#t+1]
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1883 ={o,r,s,h}
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1884 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1885 local function b()
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1886 o,r,s,h
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1887 =unpack(t[#t])
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1888 t[#t]=nil
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1889 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1890 local function t(e,t)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1891 return e.new(e,t)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1892 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1893 local f={}
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1894 local t=t{
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1895 new=
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1896 function(e,a)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1897 local a=a or{}
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1898 local t=f[e]or{
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1899 __index=e,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1900 __call=t
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1901 }
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1902 f[e]=t
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1903 return v(a,t)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1904 end,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1905 }
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1906 local j=t{
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1907 unpack=function(t,t,e)return nil,e end,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1908 pack=function(e,e)return""end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1909 }
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1910 local f={}
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1911 local function v(e)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1912 local t=f[e]or t{
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1913 unpack=function(o,a,t)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1914 return i(a,t,t+e-1),t+e
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1915 end,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1916 pack=function(a,t)return i(t,1,e)end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1917 }
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1918 f[e]=t
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1919 return t
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1920 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1921 local q=t{
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1922 unpack=function(a,t,e)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1923 return l(t,e,e),e+1
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1924 end,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1925 pack=function(t,e)return c(e)end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1926 }
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1927 local i=t{
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1928 unpack=
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1929 function(t,e,n)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1930 local i,e,t,a=l(e,n,n+3)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1931 if o then i,e,t,a=a,t,e,i end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1932 return i+e*256+t*256^2+a*256^3,n+4
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1933 end,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1934 pack=
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1935 function(t,s)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1936 e(n(s)=="number",
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1937 "unexpected value type to pack as an uint32")
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1938 local i,a,t,e
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1939 e=s%2^32
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1940 i=e%256;e=(e-i)/256
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1941 a=e%256;e=(e-a)/256
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1942 t=e%256;e=(e-t)/256
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1943 if o then i,a,t,e=e,t,a,i end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1944 return c(i,a,t,e)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1945 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1946 }
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1947 local x=t{
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1948 unpack=
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1949 function(a,e,t)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1950 local a=i:unpack(e,t)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1951 local e=i:unpack(e,t+4)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1952 if o then a,e=e,a end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1953 return a+e*2^32,t+8
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1954 end,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1955 pack=
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1956 function(a,t)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1957 e(n(t)=="number",
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1958 "unexpected value type to pack as an uint64")
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1959 local e=t%2^32
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1960 local t=(t-e)/2^32
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1961 if o then e,t=t,e end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1962 return i:pack(e)..i:pack(t)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1963 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1964 }
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1965 local function E(e,a)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1966 local t=i:unpack(e,a)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1967 local e=i:unpack(e,a+4)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1968 if o then t,e=e,t end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1969 local a=e%2^20
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1970 local t=t
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1971 local o=t+a*2^32
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1972 e=(e-a)/2^20
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1973 local t=e%2^11
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1974 local e=e<=t and 1 or-1
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1975 return e,t,o
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1976 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1977 local function c(n,a,t)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1978 local e=t%2^32
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1979 local t=(t-e)/2^32
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1980 local e=e
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1981 local t=((n<0 and 2^11 or 0)+a)*2^20+t
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1982 if o then e,t=t,e end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1983 return i.pack(nil,e)..i.pack(nil,t)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1984 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1985 local function _(e)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1986 if e~=e then return e end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1987 if e==0 then e=1/e end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1988 return e>0 and 1 or-1
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1989 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1990 local l=d(1,-1022-52)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1991 local f=l*2^52
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1992 local z=d(2^52-1,-1022-52)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1993 local f=d(2^53-1,1023-52)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1994 e(l~=0 and l/2==0)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1995 e(f~=a)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1996 e(f*2==a)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1997 local d=t{
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1998 unpack=
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
1999 function(t,e,i)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2000 local n,o,t=E(e,i)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2001 local e
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2002 if o==0 then
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2003 e=d(t,-1022-52)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2004 elseif o==2047 then
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2005 e=t==0 and a or k
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2006 else
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2007 e=d(2^52+t,o-1023-52)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2008 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2009 e=n*e
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2010 return e,i+8
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2011 end,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2012 pack=
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2013 function(t,e)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2014 if e~=e then
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2015 return c(1,2047,2^52-1)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2016 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2017 local o=_(e)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2018 e=g(e)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2019 if e==a then return c(o,2047,0)end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2020 if e==0 then return c(o,0,0)end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2021 local t,a
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2022 if e<=z then
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2023 t=0
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2024 a=e/l
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2025 else
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2026 local o,e=w(e)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2027 a=(2*o-1)*2^52
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2028 t=e+1022
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2029 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2030 return c(o,t,a)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2031 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2032 }
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2033 local a=q
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2034 local l={
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2035 [4]=i,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2036 [8]=x
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2037 }
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2038 local w={
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2039 [4]=float,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2040 [8]=d
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2041 }
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2042 local c=t{
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2043 unpack=function(a,t,e)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2044 return l[r]:unpack(t,e)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2045 end,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2046 pack=function(t,e)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2047 return l[r]:pack(e)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2048 end,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2049 }
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2050 local i=t{
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2051 unpack=function(a,e,t)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2052 return l[s]:unpack(e,t)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2053 end,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2054 pack=function(t,e)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2055 return l[s]:pack(e)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2056 end,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2057 }
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2058 local g=t{
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2059 unpack=function(a,t,e)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2060 return w[h]:unpack(t,e)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2061 end,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2062 pack=function(t,e)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2063 return w[h]:pack(e)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2064 end,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2065 }
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2066 local k=v(4)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2067 local f=t{
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2068 unpack=
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2069 function(t,s,o)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2070 local i={}
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2071 local e,a=1,1
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2072 while t[e]do
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2073 local n=t[e]
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2074 local t=n.name
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2075 if not t then t,a=a,a+1 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2076 i[t],o=n:unpack(s,o)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2077 e=e+1
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2078 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2079 return i,o
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2080 end,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2081 pack=
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2082 function(a,n)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2083 local i={}
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2084 local e,t=1,1
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2085 while a[e]do
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2086 local o=a[e]
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2087 local a=o.name
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2088 if not a then a,t=t,t+1 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2089 i[e]=o:pack(n[a])
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2090 e=e+1
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2091 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2092 return p(i)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2093 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2094 }
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2095 local d=t{
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2096 unpack=
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2097 function(n,t,e)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2098 local o,e=i:unpack(t,e)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2099 local a={}
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2100 local i=n.type
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2101 for o=1,o do
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2102 a[o],e=i:unpack(t,e)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2103 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2104 return a,e
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2105 end,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2106 pack=
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2107 function(o,a)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2108 local t=#a
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2109 local e={i:pack(t)}
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2110 local o=o.type
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2111 for t=1,t do
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2112 e[#e+1]=o:pack(a[t])
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2113 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2114 return p(e)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2115 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2116 }
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2117 local q=t{
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2118 unpack=
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2119 function(o,a,t)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2120 local t,a=i:unpack(a,t)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2121 e(t==0 or t==1,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2122 "unpacked an unexpected value "..t.." for a Boolean")
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2123 return t==1,a
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2124 end,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2125 pack=
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2126 function(a,t)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2127 e(n(t)=="boolean",
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2128 "unexpected value type to pack as a Boolean")
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2129 return i:pack(t and 1 or 0)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2130 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2131 }
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2132 local c=t{
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2133 unpack=
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2134 function(t,a,e)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2135 local t,e=c:unpack(a,e)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2136 local o=nil
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2137 if t>0 then
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2138 local t=t-1
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2139 o=a:sub(e,e+t-1)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2140 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2141 return o,e+t
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2142 end,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2143 pack=
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2144 function(a,t)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2145 e(n(t)=="nil"or n(t)=="string",
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2146 "unexpected value type to pack as a String")
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2147 if t==nil then
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2148 return c:pack(0)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2149 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2150 return c:pack(#t+1)..t.."\000"
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2151 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2152 }
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2153 local p=f{
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2154 v(4){name="signature"},
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2155 a{name="version"},
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2156 a{name="format"},
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2157 a{name="endianness"},
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2158 a{name="sizeof_int"},
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2159 a{name="sizeof_size_t"},
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2160 a{name="sizeof_insn"},
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2161 a{name="sizeof_Number"},
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2162 a{name="integral_flag"},
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2163 }
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2164 local v={
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2165 [0]=j,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2166 [1]=q,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2167 [3]=g,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2168 [4]=c,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2169 }
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2170 local g=t{
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2171 unpack=
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2172 function(i,o,t)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2173 local t,i=a:unpack(o,t)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2174 local a=v[t]
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2175 e(a,"unknown constant type "..t.." to unpack")
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2176 local a,o=a:unpack(o,i)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2177 if t==3 then
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2178 e(n(a)=="number")
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2179 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2180 return{
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2181 type=t,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2182 value=a
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2183 },o
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2184 end,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2185 pack=
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2186 function(t,e)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2187 local e,t=e.type,e.value
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2188 return a:pack(e)..v[e]:pack(t)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2189 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2190 }
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2191 local v=f{
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2192 c{name="name"},
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2193 i{name="startpc"},
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2194 i{name="endpc"}
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2195 }
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2196 local a=f{
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2197 c{name="name"},
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2198 i{name="line"},
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2199 i{name="last_line"},
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2200 a{name="num_upvalues"},
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2201 a{name="num_parameters"},
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2202 a{name="is_vararg"},
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2203 a{name="max_stack_size"},
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2204 d{name="insns",type=k},
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2205 d{name="constants",type=g},
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2206 d{name="prototypes",type=nil},
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2207 d{name="source_lines",type=i},
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2208 d{name="locals",type=v},
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2209 d{name="upvalues",type=c},
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2210 }
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2211 e(a[10].name=="prototypes",
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2212 "missed the function prototype list")
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2213 a[10].type=a
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2214 local a=t{
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2215 unpack=
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2216 function(i,d,t)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2217 local n={}
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2218 local t,i=p:unpack(d,t)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2219 e(t.signature=="\027Lua","signature check failed")
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2220 e(t.version==81,"version mismatch")
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2221 e(t.format==0,"format mismatch")
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2222 e(t.endianness==0 or
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2223 t.endianness==1,"endianness mismatch")
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2224 e(l[t.sizeof_int],"int size unsupported")
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2225 e(l[t.sizeof_size_t],"size_t size unsupported")
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2226 e(t.sizeof_insn==4,"insn size unsupported")
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2227 e(w[t.sizeof_Number],"number size unsupported")
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2228 e(t.integral_flag==0,"integral flag mismatch; only floats supported")
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2229 y()
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2230 o=t.endianness==0
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2231 r=t.sizeof_size_t
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2232 s=t.sizeof_int
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2233 h=t.sizeof_Number
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2234 n.header=t
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2235 n.body,i=a:unpack(d,i)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2236 b()
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2237 return n,i
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2238 end,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2239 pack=
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2240 function(e,t)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2241 local i
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2242 y()
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2243 local e=t.header
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2244 o=e.endianness==0
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2245 r=e.sizeof_size_t
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2246 s=e.sizeof_int
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2247 h=e.sizeof_Number
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2248 i=p:pack(t.header)..a:pack(t.body)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2249 b()
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2250 return i
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2251 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2252 }
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2253 local function o(e)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2254 if n(e)=="function"then
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2255 return o(m.dump(e))
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2256 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2257 local t=a:unpack(e,1)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2258 local a=a:pack(t)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2259 if e==a then return true end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2260 local t
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2261 local t=u.min(#e,#a)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2262 for t=1,t do
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2263 local a=e:sub(t,t)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2264 local e=e:sub(t,t)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2265 if a~=e then
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2266 return false,("chunk roundtripping failed: "..
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2267 "first byte difference at index %d"):format(t)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2268 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2269 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2270 return false,("chunk round tripping failed: "..
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2271 "original length %d vs. %d"):format(#e,#a)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2272 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2273 return{
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2274 disassemble=function(e)return a:unpack(e,1)end,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2275 assemble=function(e)return a:pack(e)end,
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2276 validate=o
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2277 }
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2278 end)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2279 do local e={};
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2280 e["vio"]="local vio = {};\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2281 vio.__index = vio; \
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2282 \9\
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2283 function vio.open(string)\
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2284 \9return setmetatable({ pos = 1, data = string }, vio);\
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2285 end\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2286 \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2287 function vio:read(format, ...)\
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2288 \9if self.pos >= #self.data then return; end\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2289 \9if format == \"*a\" then\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2290 \9\9local oldpos = self.pos;\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2291 \9\9self.pos = #self.data;\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2292 \9\9return self.data:sub(oldpos, self.pos);\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2293 \9elseif format == \"*l\" then\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2294 \9\9local data;\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2295 \9\9data, self.pos = self.data:match(\"([^\\r\\n]*)\\r?\\n?()\", self.pos)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2296 \9\9return data;\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2297 \9elseif format == \"*n\" then\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2298 \9\9local data;\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2299 \9\9data, self.pos = self.data:match(\"(%d+)()\", self.pos)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2300 \9\9return tonumber(data);\9\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2301 \9elseif type(format) == \"number\" then\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2302 \9\9local oldpos = self.pos;\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2303 \9\9self.pos = self.pos + format;\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2304 \9\9return self.data:sub(oldpos, self.pos-1);\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2305 \9end\
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2306 end\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2307 \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2308 function vio:seek(whence, offset)\
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2309 \9if type(whence) == \"number\" then\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2310 \9\9whence, offset = \"cur\", whence;\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2311 \9end\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2312 \9offset = offset or 0;\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2313 \9\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2314 \9if whence == \"cur\" then\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2315 \9\9self.pos = self.pos + offset;\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2316 \9elseif whence == \"set\" then\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2317 \9\9self.pos = offset + 1;\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2318 \9elseif whence == \"end\" then\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2319 \9\9self.pos = #self.data - offset;\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2320 \9end\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2321 \9\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2322 \9return self.pos;\
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2323 end\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2324 \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2325 local function _readline(f) return f:read(\"*l\"); end\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2326 function vio:lines()\
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2327 \9return _readline, self;\
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2328 end\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2329 \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2330 function vio:write(...)\
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2331 \9for i=1,select('#', ...) do\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2332 \9\9local dat = tostring(select(i, ...));\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2333 \9\9self.data = self.data:sub(1, self.pos-1)..dat..self.data:sub(self.pos+#dat, -1);\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2334 \9end\
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2335 end\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2336 \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2337 function vio:close()\
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2338 \9self.pos, self.data = nil, nil;\
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2339 end\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2340 \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2341 "e["gunzip.lua"]="local base_char,keywords=128,{\"and\",\"break\",\"do\",\"else\",\"elseif\",\"end\",\"false\",\"for\",\"function\",\"if\",\"in\",\"local\",\"nil\",\"not\",\"or\",\"repeat\",\"return\",\"then\",\"true\",\"until\",\"while\",\"read\",\"nbits\",\"nbits_left_in_byte\",\"wnd_pos\",\"output\",\"val\",\"input\",}; function prettify(code) return code:gsub(\"[\"..string.char(base_char)..\"-\"..string.char(base_char+#keywords)..\"]\", \
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2342 \9function (c) return keywords[c:byte()-base_char]; end) end return setfenv(assert(loadstring(prettify[===[ i,h,b,m,l,d,e,y,r,w,\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2343 u,v,l,l=\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2344 assert,error,ipairs,pairs,tostring,type,setmetatable,io,math,table.sort,\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2345 math.max,string.char,io.open,_G;\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2346 p(n)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2347 l={};\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2348 e=e({},l)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2349 l:__index(l)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2350 n=n(l);e[l]=n\
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2351 n\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2352 \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2353 e\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2354 \
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2355 l(n,l)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2356 l=l 1\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2357 h({n},l+1)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2358 \
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2359 _(n)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2360 l={}\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2361 l.outbs=n\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2362 l.wnd={}\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2363 l.=1\
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2364 l\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2365 \
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2366 t(l,e)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2367 n=l.\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2368 l.outbs(e)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2369 l.wnd[n]=e\
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2370 l.=n%32768+1\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2371 \
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2372 n(l)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2373 i(l,'unexpected end of file')\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2374 \
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2375 o(n,l)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2376 n%(l+l)>=l\
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2377 \
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2378 a=p((l) 2^l )\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2379 c=e({},{__mode='k'})\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2380 g(o)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2381 l=1\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2382 e={}\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2383 e:()\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2384 n\
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2385 l<=#o \
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2386 n=o:byte(l)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2387 l=l+1\
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2388 \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2389 n\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2390 \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2391 e\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2392 \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2393 l\
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2394 s(d)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2395 n,l,o=0,0,{};\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2396 o:()\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2397 l\
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2398 \
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2399 o:(e)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2400 e=e 1\
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2401 l<e \
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2402 e=d:()\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2403 e \
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2404 n=n+a[l]*e\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2405 l=l+8\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2406 \
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2407 o=a[e]\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2408 a=n%o\
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2409 n=(n-a)/o\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2410 l=l-e\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2411 a\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2412 \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2413 c[o]=\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2414 o\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2415 \
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2416 f(l)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2417 c[l] l s(g(l))\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2418 \
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2419 s(l)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2420 n\
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2421 y.type(l)=='file'\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2422 n=(n)l:write(v(n))\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2423 d(l)=='function'\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2424 n=l\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2425 \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2426 n\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2427 \
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2428 d(e,o)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2429 l={}\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2430 o \
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2431 e,n m(e)\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2432 n~=0 \
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2433 l[#l+1]={=e,=n}\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2434 \
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2435 \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2436 \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2437 n=1,#e-2,2 \
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2438 o,n,e=e[n],e[n+1],e[n+2]\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2439 n~=0 \
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2440 e=o,e-1 \
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2441 l[#l+1]={=e,=n}\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2442 \
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2443 \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2444 \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2445 \
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2446 w(l,(n,l)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2447 n.==l. n.<l. n.<l.\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2448 )\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2449 e=1\
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2450 o=0\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2451 n,l b(l)\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2452 l.~=o \
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2453 e=e*a[l.-o]\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2454 o=l.\
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2455 \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2456 l.code=e\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2457 e=e+1\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2458 \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2459 e=r.huge\
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2460 c={}\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2461 n,l b(l)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2462 e=r.min(e,l.)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2463 c[l.code]=l.\
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2464 \
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2465 o(n,e)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2466 l=0\
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2467 e=1,e \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2468 e=n%2\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2469 n=(n-e)/2\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2470 l=l*2+e\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2471 \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2472 l\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2473 \
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2474 d=p(\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2475 (l) a[e]+o(l,e))\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2476 l:(a)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2477 o,l=1,0\
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2478 1 \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2479 l==0 \
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2480 o=d[n(a:(e))]\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2481 l=l+e\
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2482 \
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2483 n=n(a:())\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2484 l=l+1\
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2485 o=o*2+n\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2486 \
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2487 l=c[o]\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2488 l \
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2489 l\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2490 \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2491 \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2492 \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2493 l\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2494 \
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2495 b(l)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2496 a=2^1\
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2497 e=2^2\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2498 c=2^3\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2499 d=2^4\
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2500 n=l:(8)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2501 n=l:(8)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2502 n=l:(8)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2503 n=l:(8)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2504 t=l:(32)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2505 t=l:(8)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2506 t=l:(8)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2507 o(n,e)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2508 n=l:(16)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2509 e=0\
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2510 n=1,n \
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2511 e=l:(8)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2512 \
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2513 \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2514 o(n,c)\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2515 l:(8)~=0 \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2516 \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2517 o(n,d)\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2518 l:(8)~=0 \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2519 \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2520 o(n,a)\
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2521 l:(16)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2522 \
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2523 \
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2524 p(l)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2525 f=l:(5)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2526 i=l:(5)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2527 e=n(l:(4))\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2528 a=e+4\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2529 e={}\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2530 o={\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2531 16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15}\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2532 n=1,a \
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2533 l=l:(3)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2534 n=o[n]\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2535 e[n]=l\
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2536 \
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2537 e=d(e,)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2538 r(o)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2539 t={}\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2540 a\
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2541 c=0\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2542 c<o \
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2543 o=e:(l)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2544 e\
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2545 o<=15 \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2546 e=1\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2547 a=o\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2548 o==16 \
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2549 e=3+n(l:(2))\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2550 o==17 \
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2551 e=3+n(l:(3))\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2552 a=0\
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2553 o==18 \
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2554 e=11+n(l:(7))\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2555 a=0\
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2556 \
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2557 h'ASSERT'\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2558 \
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2559 l=1,e \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2560 t[c]=a\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2561 c=c+1\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2562 \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2563 \
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2564 l=d(t,)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2565 l\
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2566 \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2567 n=f+257\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2568 l=i+1\
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2569 n=r(n)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2570 l=r(l)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2571 n,l\
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2572 \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2573 a\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2574 o\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2575 c\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2576 r\
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2577 h(e,n,l,d)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2578 l=l:(e)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2579 l<256 \
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2580 t(n,l)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2581 l==256 \
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2582 \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2583 \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2584 a \
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2585 l={[257]=3}\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2586 e=1\
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2587 n=258,285,4 \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2588 n=n,n+3 l[n]=l[n-1]+e \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2589 n~=258 e=e*2 \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2590 \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2591 l[285]=258\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2592 a=l\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2593 \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2594 o \
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2595 l={}\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2596 e=257,285 \
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2597 n=u(e-261,0)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2598 l[e]=(n-(n%4))/4\
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2599 \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2600 l[285]=0\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2601 o=l\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2602 \
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2603 a=a[l]\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2604 l=o[l]\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2605 l=e:(l)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2606 o=a+l\
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2607 c \
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2608 e={[0]=1}\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2609 l=1\
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2610 n=1,29,2 \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2611 n=n,n+1 e[n]=e[n-1]+l \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2612 n~=1 l=l*2 \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2613 \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2614 c=e\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2615 \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2616 r \
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2617 n={}\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2618 e=0,29 \
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2619 l=u(e-2,0)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2620 n[e]=(l-(l%2))/2\
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2621 \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2622 r=n\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2623 \
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2624 l=d:(e)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2625 a=c[l]\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2626 l=r[l]\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2627 l=e:(l)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2628 l=a+l\
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2629 e=1,o \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2630 l=(n.-1-l)%32768+1\
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2631 t(n,i(n.wnd[l],'invalid distance'))\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2632 \
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2633 \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2634 \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2635 \
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2636 u(l,a)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2637 i=l:(1)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2638 e=l:(2)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2639 r=0\
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2640 o=1\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2641 c=2\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2642 f=3\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2643 e==r \
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2644 l:(l:())\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2645 e=l:(16)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2646 o=n(l:(16))\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2647 e=1,e \
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2648 l=n(l:(8))\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2649 t(a,l)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2650 \
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2651 e==o e==c \
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2652 n,o\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2653 e==c \
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2654 n,o=p(l)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2655 \
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2656 n=d{0,8,144,9,256,7,280,8,288,}\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2657 o=d{0,5,32,}\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2658 \
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2659 h(\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2660 l,a,n,o\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2661 );\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2662 \
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2663 i~=0\
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2664 \
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2665 e(l)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2666 n,l=f(l.)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2667 ,_(s(l.))\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2668 u(n,l)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2669 \
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2670 (n)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2671 l=f(n.)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2672 n=s(n.)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2673 b(l)\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2674 e{=l,=n}\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2675 l:(l:())\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2676 l:()\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2677 \
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2678 ]===], '@gunzip.lua')), getfenv())()"e["squish.debug"]="package.preload['minichunkspy']=(function(...)local _ENV=_ENV;local function module(name,...)local t=package.loaded[name]or _ENV[name]or{_NAME=name};package.loaded[name]=t;for i=1,select(\"#\",...)do(select(i,...))(t);end\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2679 _ENV=t;_M=t;return t;end\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2680 local string,table,math=string,table,math\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2681 local ipairs,setmetatable,type,assert=ipairs,setmetatable,type,assert\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2682 local _=__END_OF_GLOBALS__\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2683 local string_char,string_byte,string_sub=string.char,string.byte,string.sub\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2684 local table_concat=table.concat\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2685 local math_abs,math_ldexp,math_frexp=math.abs,math.ldexp,math.frexp\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2686 local Inf=math.huge\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2687 local Nan=Inf-Inf\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2688 local BIG_ENDIAN=false\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2689 local function construct(class,...)return class.new(class,...)end\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2690 local mt_memo={}local Field=construct{new=function(class,self)local self=self or{}local mt=mt_memo[class]or{__index=class,__call=construct}mt_memo[class]=mt\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2691 return setmetatable(self,mt)end,}local None=Field{unpack=function(self,bytes,ix)return nil,ix end,pack=function(self,val)return\"\"end}local char_memo={}local function char(n)local field=char_memo[n]or Field{unpack=function(self,bytes,ix)return string_sub(bytes,ix,ix+n-1),ix+n\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2692 end,pack=function(self,val)return string_sub(val,1,n)end}char_memo[n]=field\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2693 return field\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2694 end\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2695 local uint8=Field{unpack=function(self,bytes,ix)return string_byte(bytes,ix,ix),ix+1\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2696 end,pack=function(self,val)return string_char(val)end}local uint32=Field{unpack=function(self,bytes,ix)local a,b,c,d=string_byte(bytes,ix,ix+3)if BIG_ENDIAN then a,b,c,d=d,c,b,a end\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2697 return a+b*256+c*256^2+d*256^3,ix+4\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2698 end,pack=function(self,val)assert(type(val)==\"number\",\"unexpected value type to pack as an uint32\")local a,b,c,d\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2699 d=val%2^32\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2700 a=d%256;d=(d-a)/256\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2701 b=d%256;d=(d-b)/256\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2702 c=d%256;d=(d-c)/256\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2703 if BIG_ENDIAN then a,b,c,d=d,c,b,a end\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2704 return string_char(a,b,c,d)end}local int32=uint32{unpack=function(self,bytes,ix)local val,ix=uint32:unpack(bytes,ix)return val<2^32 and val or(val-2^31),ix\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2705 end}local Byte=uint8\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2706 local Size_t=uint32\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2707 local Integer=int32\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2708 local Number=char(8)local Insn=char(4)local Struct=Field{unpack=function(self,bytes,ix)local val={}local i,j=1,1\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2709 while self[i]do\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2710 local field=self[i]local key=field.name\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2711 if not key then key,j=j,j+1 end\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2712 val[key],ix=field:unpack(bytes,ix)i=i+1\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2713 end\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2714 return val,ix\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2715 end,pack=function(self,val)local data={}local i,j=1,1\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2716 while self[i]do\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2717 local field=self[i]local key=field.name\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2718 if not key then key,j=j,j+1 end\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2719 data[i]=field:pack(val[key])i=i+1\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2720 end\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2721 return table_concat(data)end}local List=Field{unpack=function(self,bytes,ix)local len,ix=Integer:unpack(bytes,ix)local vals={}local field=self.type\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2722 for i=1,len do\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2723 vals[i],ix=field:unpack(bytes,ix)end\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2724 return vals,ix\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2725 end,pack=function(self,vals)local len=#vals\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2726 local data={Integer:pack(len)}local field=self.type\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2727 for i=1,len do\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2728 data[#data+1]=field:pack(vals[i])end\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2729 return table_concat(data)end}local Boolean=Field{unpack=function(self,bytes,ix)local val,ix=Integer:unpack(bytes,ix)assert(val==0 or val==1,\"unpacked an unexpected value \"..val..\" for a Boolean\")return val==1,ix\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2730 end,pack=function(self,val)assert(type(val)==\"boolean\",\"unexpected value type to pack as a Boolean\")return Integer:pack(val and 1 or 0)end}local String=Field{unpack=function(self,bytes,ix)local len,ix=Integer:unpack(bytes,ix)local val=nil\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2731 if len>0 then\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2732 local string_len=len-1\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2733 val=bytes:sub(ix,ix+string_len-1)end\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2734 return val,ix+len\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2735 end,pack=function(self,val)assert(type(val)==\"nil\"or type(val)==\"string\",\"unexpected value type to pack as a String\")if val==nil then\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2736 return Integer:pack(0)end\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2737 return Integer:pack(#val+1)..val..\"\\0\"end}local ChunkHeader=Struct{char(4){name=\"signature\"},Byte{name=\"version\"},Byte{name=\"format\"},Byte{name=\"endianness\"},Byte{name=\"sizeof_int\"},Byte{name=\"sizeof_size_t\"},Byte{name=\"sizeof_insn\"},Byte{name=\"sizeof_Number\"},Byte{name=\"integral_flag\"},}local ConstantTypes={[0]=None,[1]=Boolean,[3]=Number,[4]=String,}local Constant=Field{unpack=function(self,bytes,ix)local t,ix=Byte:unpack(bytes,ix)local field=ConstantTypes[t]assert(field,\"unknown constant type \"..t..\" to unpack\")local v,ix=field:unpack(bytes,ix)return{type=t,value=v},ix\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2738 end,pack=function(self,val)local t,v=val.type,val.value\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2739 return Byte:pack(t)..ConstantTypes[t]:pack(v)end}local Local=Struct{String{name=\"name\"},Integer{name=\"startpc\"},Integer{name=\"endpc\"}}local Function=Struct{String{name=\"name\"},Integer{name=\"line\"},Integer{name=\"last_line\"},Byte{name=\"num_upvalues\"},Byte{name=\"num_parameters\"},Byte{name=\"is_vararg\"},Byte{name=\"max_stack_size\"},List{name=\"insns\",type=Insn},List{name=\"constants\",type=Constant},List{name=\"prototypes\",type=nil},List{name=\"source_lines\",type=Integer},List{name=\"locals\",type=Local},List{name=\"upvalues\",type=String},}assert(Function[10].name==\"prototypes\",\"missed the function prototype list\")Function[10].type=Function\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2740 local Chunk=Struct{ChunkHeader{name=\"header\"},Function{name=\"body\"}}local function validate(chunk)if type(chunk)==\"function\"then\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2741 return validate(string.dump(chunk))end\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2742 local f=Chunk:unpack(chunk,1)local chunk2=Chunk:pack(f)if chunk==chunk2 then return true end\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2743 local i\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2744 local len=math.min(#chunk,#chunk2)for i=1,len do\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2745 local a=chunk:sub(i,i)local b=chunk:sub(i,i)if a~=b then\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2746 return false,(\"chunk roundtripping failed: \"..\"first byte difference at index %d\"):format(i)end\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2747 end\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2748 return false,(\"chunk round tripping failed: \"..\"original length %d vs. %d\"):format(#chunk,#chunk2)end\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2749 return{disassemble=function(chunk)return Chunk:unpack(chunk,1)end,assemble=function(disassembled)return Chunk:pack(disassembled)end,validate=validate}end)local cs=require\"minichunkspy\"local function ___adjust_chunk(chunk,newname,lineshift)local c=cs.disassemble(string.dump(chunk));c.body.name=newname;lineshift=-c.body.line;local function shiftlines(c)c.line=c.line+lineshift;c.last_line=c.last_line+lineshift;for i,line in ipairs(c.source_lines)do\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2750 c.source_lines[i]=line+lineshift;end\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2751 for i,f in ipairs(c.prototypes)do\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2752 shiftlines(f);end\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2753 end\
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2754 shiftlines(c.body);return assert(loadstring(cs.assemble(c),newname))();end\
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2755 "function require_resource(t)return e[t]or error("resource '"..tostring(t).."' not found");end end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2756 pcall(require,"luarocks.require");
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2757 local o={v="verbose",vv="very_verbose",o="output",q="quiet",qq="very_quiet",g="debug"}
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2758 local e={use_http=false,module_compat=not not _ENV};
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2759 for t,a in ipairs(arg)do
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2760 if a:match("^%-")then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2761 local t=a:match("^%-%-?([^%s=]+)()")
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2762 t=(o[t]or t):gsub("%-+","_");
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2763 if t:match("^no_")then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2764 t=t:sub(4,-1);
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2765 e[t]=false;
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2766 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2767 e[t]=a:match("=(.*)$")or true;
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2768 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2769 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2770 base_path=a;
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2771 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2772 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2773 if e.very_verbose then e.verbose=true;end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2774 if e.very_quiet then e.quiet=true;end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2775 local t=function()end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2776 local t,o,s,h=t,t,t,t;
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2777 if not e.very_quiet then t=print;end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2778 if not e.quiet then o=print;end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2779 if e.verbose or e.very_verbose then s=print;end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2780 if e.very_verbose then h=print;end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2781 print=s;
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2782 local i,d,n={},{},{};
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2783 function Module(e)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2784 if i[e]then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2785 s("Ignoring duplicate module definition for "..e);
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2786 return function()end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2787 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2788 local t=#i+1;
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2789 i[t]={name=e,url=___fetch_url};
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2790 i[e]=i[t];
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2791 return function(e)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2792 i[t].path=e;
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2793 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2794 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2795 function Resource(t,a)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2796 local e=#n+1;
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2797 n[e]={name=t,path=a or t};
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2798 return function(t)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2799 n[e].path=t;
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2800 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2801 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2802 function AutoFetchURL(e)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2803 ___fetch_url=e;
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2804 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2805 function Main(e)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2806 table.insert(d,e);
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2807 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2808 function Output(t)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2809 if e.output==nil then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2810 out_fn=t;
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2811 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2812 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2813 function Option(t)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2814 t=t:gsub("%-","_");
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2815 if e[t]==nil then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2816 e[t]=true;
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2817 return function(a)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2818 e[t]=a;
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2819 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2820 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2821 return function()end;
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2822 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2823 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2824 function GetOption(t)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2825 return e[t:gsub('%-','_')];
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2826 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2827 function Message(t)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2828 if not e.quiet then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2829 o(t);
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2830 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2831 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2832 function Error(a)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2833 if not e.very_quiet then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2834 t(a);
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2835 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2836 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2837 function Exit()
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2838 os.exit(1);
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2839 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2840 base_path=(base_path or"."):gsub("/$","").."/"
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2841 squishy_file=base_path.."squishy";
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2842 out_fn=e.output;
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2843 local r,a=pcall(dofile,squishy_file);
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2844 if not r then
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2845 t("Couldn't read squishy file: "..a);
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2846 os.exit(1);
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2847 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2848 if not out_fn then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2849 t("No output file specified by user or squishy file");
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2850 os.exit(1);
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2851 elseif#d==0 and#i==0 and#n==0 then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2852 t("No files, modules or resources. Not going to generate an empty file.");
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2853 os.exit(1);
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2854 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2855 local r={};
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2856 function r.filesystem(e)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2857 local e,t=io.open(e);
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2858 if not e then return false,t;end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2859 local t=e:read("*a");
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2860 e:close();
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2861 return t;
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2862 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2863 if e.use_http then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2864 function r.http(t)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2865 local e=require"socket.http";
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2866 local t,e=e.request(t);
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2867 if e==200 then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2868 return t;
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2869 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2870 return false,"HTTP status code: "..tostring(e);
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2871 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2872 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2873 function r.http(e)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2874 return false,"Module not found. Re-squish with --use-http option to fetch it from "..e;
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2875 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2876 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2877 s("Resolving modules...");
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2878 do
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2879 local e=package.config:sub(1,1);
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2880 local n=package.config:sub(5,5);
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2881 local o=package.path:gsub("[^;]+",function(t)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2882 if not t:match("^%"..e)then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2883 return base_path..t;
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2884 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2885 end):gsub("/%./","/");
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2886 local a=package.cpath:gsub("[^;]+",function(t)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2887 if not t:match("^%"..e)then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2888 return base_path..t;
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2889 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2890 end):gsub("/%./","/");
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2891 function resolve_module(t,a)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2892 t=t:gsub("%.",e);
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2893 for e in a:gmatch("[^;]+")do
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2894 e=e:gsub("%"..n,t);
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2895 h("Looking for "..e)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2896 local t=io.open(e);
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2897 if t then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2898 h("Found!");
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2899 t:close();
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2900 return e;
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2901 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2902 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2903 return nil;
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2904 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2905 for a,e in ipairs(i)do
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2906 if not e.path then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2907 e.path=resolve_module(e.name,o);
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2908 if not e.path then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2909 t("Couldn't resolve module: "..e.name);
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2910 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2911 e.path=e.path:gsub("^"..base_path:gsub("%p","%%%1"),"");
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2912 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2913 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2914 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2915 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2916 for a,e in ipairs(i)do
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2917 if not e.path then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2918 t("Exiting due to missing modules without a path");
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2919 os.exit(1);
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2920 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2921 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2922 if e.list_files or e.list_missing_files then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2923 local function t(t)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2924 if e.list_missing_files then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2925 local e=io.open(t);
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2926 if e then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2927 e:close();
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2928 return;
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2929 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2930 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2931 io.write(t,"\n");
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2932 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2933 for a,e in pairs(d)do
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2934 t(e);
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2935 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2936 for a,e in ipairs(i)do
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2937 t(e.path);
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2938 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2939 for a,e in ipairs(n)do
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2940 t(e.path);
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2941 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2942 return;
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2943 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2944 o("Writing "..out_fn.."...");
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2945 local a,l=io.open(out_fn,"w+");
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2946 if not a then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2947 t("Couldn't open output file: "..tostring(l));
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2948 os.exit(1);
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2949 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2950 if e.executable then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2951 if e.executable==true then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2952 a:write("#!/usr/bin/env lua\n");
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2953 else
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2954 a:write("#!"..e.executable,"\n");
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2955 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2956 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2957 s("Packing modules...");
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2958 for o,i in ipairs(i)do
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2959 local d,s=i.name,i.path;
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2960 if i.path:sub(1,1)~="/"then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2961 s=base_path..i.path;
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2962 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2963 h("Packing "..d.." ("..s..")...");
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2964 local o,n=r.filesystem(s);
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2965 if(not o)and i.url then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2966 local e=i.url:gsub("%?",i.path);
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2967 h("Fetching: "..e)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2968 if e:match("^https?://")then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2969 o,n=r.http(e);
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2970 elseif e:match("^file://")or e:match("^[/%.]")then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2971 local e,t=io.open((e:gsub("^file://","")));
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2972 if e then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2973 o,n=e:read("*a");
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2974 e:close();
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2975 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2976 o,n=nil,t;
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2977 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2978 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2979 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2980 if o then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2981 o=o:gsub("^#[^\r\n]*\r?\n","");
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2982 if not e.debug then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2983 a:write("package.preload['",d,"'] = (function (...)\n");
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2984 if e.module_compat then
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2985 a:write[[
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2986 local _ENV = _ENV;
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2987 local function module(name, ...)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2988 local t = package.loaded[name] or _ENV[name] or { _NAME = name };
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2989 package.loaded[name] = t;
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2990 for i = 1, select("#", ...) do
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2991 (select(i, ...))(t);
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2992 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2993 _ENV = t;
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2994 _M = t;
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2995 return t;
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2996 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2997 ]];
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
2998 end
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2999 a:write(o);
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3000 a:write(" end)\n");
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3001 else
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3002 a:write("package.preload['",d,"'] = assert(loadstring(\n");
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3003 a:write(("%q\n"):format(o));
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3004 a:write(", ",("%q"):format("@"..s),"))\n");
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3005 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3006 else
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3007 t("Couldn't pack module '"..d.."': "..(n or"unknown error... path to module file correct?"));
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3008 os.exit(1);
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3009 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3010 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3011 if#n>0 then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3012 s("Packing resources...")
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3013 a:write("do local resources = {};\n");
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3014 for o,e in ipairs(n)do
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3015 local o,e=e.name,e.path;
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3016 local e,i=io.open(base_path..e,"rb");
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3017 if not e then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3018 t("Couldn't load resource: "..tostring(i));
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3019 os.exit(1);
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3020 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3021 local t=e:read("*a");
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3022 local e=0;
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3023 t:gsub("(=+)",function(t)e=math.max(e,#t);end);
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3024 a:write(("resources[%q] = %q"):format(o,t));
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3025 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3026 if e.virtual_io then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3027 local e=require_resource("vio");
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3028 if not e then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3029 t("Virtual IO requested but is not enabled in this build of squish");
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3030 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3031 a:write(e,"\n")
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3032 a:write[[local io_open, io_lines = io.open, io.lines; function io.open(fn, mode)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3033 if not resources[fn] then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3034 return io_open(fn, mode);
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3035 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3036 return vio.open(resources[fn]);
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3037 end end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3038 function io.lines(fn)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3039 if not resources[fn] then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3040 return io_lines(fn);
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3041 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3042 return vio.open(resources[fn]):lines()
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3043 end end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3044 local _dofile = dofile;
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3045 function dofile(fn)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3046 if not resources[fn] then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3047 return _dofile(fn);
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3048 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3049 return assert(loadstring(resources[fn]))();
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3050 end end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3051 local _loadfile = loadfile;
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3052 function loadfile(fn)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3053 if not resources[fn] then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3054 return _loadfile(fn);
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3055 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3056 return loadstring(resources[fn], "@"..fn);
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3057 end end ]]
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3058 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3059 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3060 a:write[[function require_resource(name) return resources[name] or error("resource '"..tostring(name).."' not found"); end end ]]
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3061 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3062 h("Finalising...")
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3063 for e,o in pairs(d)do
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3064 local e,i=io.open(base_path..o);
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3065 if not e then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3066 t("Failed to open "..o..": "..i);
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3067 os.exit(1);
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3068 else
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3069 a:write((e:read("*a"):gsub("^#.-\n","")));
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3070 e:close();
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3071 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3072 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3073 a:close();
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3074 o("OK!");
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3075 local h=require"optlex"
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3076 local r=require"optparser"
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3077 local a=require"llex"
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3078 local d=require"lparser"
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3079 local i={
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3080 none={};
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3081 debug={"whitespace","locals","entropy","comments","numbers"};
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3082 default={"comments","whitespace","emptylines","numbers","locals"};
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3083 basic={"comments","whitespace","emptylines"};
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3084 full={"comments","whitespace","emptylines","eols","strings","numbers","locals","entropy"};
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3085 }
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3086 if e.minify_level and not i[e.minify_level]then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3087 t("Unknown minify level: "..e.minify_level);
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3088 t("Available minify levels: none, basic, default, full, debug");
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3089 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3090 for a,t in ipairs(i[e.minify_level or"default"]or{})do
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3091 if e["minify_"..t]==nil then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3092 e["minify_"..t]=true;
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3093 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3094 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3095 local n={
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3096 ["opt-locals"]=e.minify_locals;
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3097 ["opt-comments"]=e.minify_comments;
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3098 ["opt-entropy"]=e.minify_entropy;
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3099 ["opt-whitespace"]=e.minify_whitespace;
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3100 ["opt-emptylines"]=e.minify_emptylines;
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3101 ["opt-eols"]=e.minify_eols;
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3102 ["opt-strings"]=e.minify_strings;
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3103 ["opt-numbers"]=e.minify_numbers;
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3104 }
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3105 local function i(e)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3106 t("minify: "..e);os.exit(1);
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3107 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3108 local function l(e)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3109 local t=io.open(e,"rb")
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3110 if not t then i("cannot open \""..e.."\" for reading")end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3111 local a=t:read("*a")
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3112 if not a then i("cannot read from \""..e.."\"")end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3113 t:close()
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3114 return a
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3115 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3116 local function u(e,a)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3117 local t=io.open(e,"wb")
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3118 if not t then i("cannot open \""..e.."\" for writing")end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3119 local a=t:write(a)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3120 if not a then i("cannot write to \""..e.."\"")end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3121 t:close()
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3122 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3123 function minify_string(e)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3124 a.init(e)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3125 a.llex()
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3126 local t,e,a
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3127 =a.tok,a.seminfo,a.tokln
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3128 if n["opt-locals"]then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3129 r.print=print
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3130 d.init(t,e,a)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3131 local o,a=d.parser()
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3132 r.optimize(n,t,e,o,a)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3133 end
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3134 h.print=print
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3135 t,e,a
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3136 =h.optimize(n,t,e,a)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3137 local e=table.concat(e)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3138 if string.find(e,"\r\n",1,1)or
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3139 string.find(e,"\n\r",1,1)then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3140 h.warn.mixedeol=true
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3141 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3142 return e;
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3143 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3144 function minify_file(e,t)
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3145 local e=l(e);
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3146 e=minify_string(e);
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3147 u(t,e);
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3148 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3149 if e.minify~=false then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3150 o("Minifying "..out_fn.."...");
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3151 minify_file(out_fn,out_fn);
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3152 o("OK!");
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3153 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3154 local h=require"llex"
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3155 local i=128;
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3156 local n={"and","break","do","else","elseif",
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3157 "end","false","for","function","if",
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3158 "in","local","nil","not","or","repeat",
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3159 "return","then","true","until","while"}
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3160 function uglify_file(l,o)
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3161 local r,a=io.open(l);
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3162 if not r then
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3163 t("Can't open input file for reading: "..tostring(a));
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3164 return;
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3165 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3166 local a,s=io.open(o..".uglified","w+b");
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3167 if not a then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3168 t("Can't open output file for writing: "..tostring(s));
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3169 return;
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3170 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3171 local s=r:read("*a");
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3172 r:close();
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3173 local r,t=s:match("^(#.-\n)(.+)$");
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3174 local t=t or s;
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3175 if r then
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3176 a:write(r)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3177 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3178 while i+#n<=255 and t:find("["..string.char(i).."-"..string.char(i+#n-1).."]")do
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3179 i=i+1;
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3180 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3181 if i+#n>255 then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3182 a:write(t);
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3183 a:close();
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3184 os.rename(o..".uglified",o);
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3185 return;
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3186 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3187 local d={}
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3188 for t,e in ipairs(n)do
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3189 d[e]=string.char(i+t);
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3190 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3191 local r=0;
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3192 s:gsub("(=+)",function(e)r=math.max(r,#e);end);
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3193 h.init(t,"@"..l);
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3194 h.llex()
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3195 local s=h.seminfo;
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3196 if e.uglify_level=="full"and i+#n<255 then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3197 local e={};
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3198 for o,a in ipairs(h.tok)do
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3199 if a=="TK_NAME"or a=="TK_STRING"then
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3200 local t=string.format("%q,%q",a,s[o]);
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3201 if not e[t]then
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3202 e[t]={type=a,value=s[o],count=0};
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3203 e[#e+1]=e[t];
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3204 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3205 e[t].count=e[t].count+1;
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3206 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3207 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3208 for t=1,#e do
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3209 local e=e[t];
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3210 e.score=(e.count)*(#e.value-1)-#string.format("%q",e.value)-1;
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3211 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3212 table.sort(e,function(e,t)return e.score>t.score;end);
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3213 local t=255-(i+#n);
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3214 for t=t+1,#e do
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3215 e[t]=nil;
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3216 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3217 local t=#n;
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3218 for a,e in ipairs(e)do
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3219 if e.score>0 then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3220 table.insert(n,e.value);
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3221 d[e.value]=string.char(i+t+a);
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3222 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3223 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3224 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3225 a:write("local base_char,keywords=",tostring(i),",{");
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3226 for t,e in ipairs(n)do
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3227 a:write(string.format("%q",e),',');
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3228 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3229 a:write[[}; function prettify(code) return code:gsub("["..string.char(base_char).."-"..string.char(base_char+#keywords).."]",
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3230 function (c) return keywords[c:byte()-base_char]; end) end ]]
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3231 a:write[[return setfenv(assert(loadstring(prettify]]
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3232 a:write("[",string.rep("=",r+1),"[");
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3233 for e,t in ipairs(h.tok)do
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3234 if t=="TK_KEYWORD"or t=="TK_NAME"or t=="TK_STRING"then
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3235 local t=d[s[e]];
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3236 if t then
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3237 a:write(t);
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3238 else
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3239 a:write(s[e]);
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3240 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3241 else
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3242 a:write(s[e]);
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3243 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3244 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3245 a:write("]",string.rep("=",r+1),"]");
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3246 a:write(", '@",o,"')), getfenv())()");
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3247 a:close();
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3248 os.rename(o..".uglified",o);
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3249 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3250 if e.uglify then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3251 o("Uglifying "..out_fn.."...");
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3252 uglify_file(out_fn,out_fn);
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3253 o("OK!");
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3254 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3255 local i=require"minichunkspy"
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3256 function compile_string(t,a)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3257 local o=string.dump(loadstring(t,a));
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3258 if((not e.debug)or e.compile_strip)and e.compile_strip~=false then
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3259 local t=i.disassemble(o);
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3260 local function a(e)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3261 e.source_lines,e.locals,e.upvalues={},{},{};
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3262 for t,e in ipairs(e.prototypes)do
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3263 a(e);
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3264 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3265 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3266 s("Stripping debug info...");
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3267 a(t.body);
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3268 return i.assemble(t);
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3269 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3270 return o;
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3271 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3272 function compile_file(a,e)
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3273 local o,a=io.open(a);
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3274 if not o then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3275 t("Can't open input file for reading: "..tostring(a));
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3276 return;
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3277 end
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3278 local a,i=io.open(e..".compiled","w+");
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3279 if not a then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3280 t("Can't open output file for writing: "..tostring(i));
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3281 return;
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3282 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3283 local i=o:read("*a");
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3284 o:close();
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3285 local t,o=i:match("^(#.-\n)(.+)$");
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3286 local o=o or i;
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3287 if t then
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3288 a:write(t)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3289 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3290 a:write(compile_string(o,e));
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3291 os.rename(e..".compiled",e);
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3292 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3293 if e.compile then
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3294 o("Compiling "..out_fn.."...");
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3295 compile_file(out_fn,out_fn);
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3296 o("OK!");
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3297 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3298 function gzip_file(e,a)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3299 local o,e=io.open(e);
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3300 if not o then
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3301 t("Can't open input file for reading: "..tostring(e));
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3302 return;
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3303 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3304 local e,i=io.open(a..".gzipped","wb+");
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3305 if not e then
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3306 t("Can't open output file for writing: "..tostring(i));
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3307 return;
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3308 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3309 local i=o:read("*a");
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3310 o:close();
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3311 local n,o=i:match("^(#.-\n)(.+)$");
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3312 local o=o or i;
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3313 if n then
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3314 e:write(n)
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3315 end
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3316 local i,n=io.open(a..".pregzip","wb+");
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3317 if not i then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3318 t("Can't open temp file for writing: "..tostring(n));
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3319 return;
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3320 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3321 i:write(o);
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3322 i:close();
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3323 local t=io.popen("gzip -c '"..a..".pregzip'");
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3324 o=t:read("*a");
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3325 t:close();
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3326 os.remove(a..".pregzip");
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3327 local t=0;
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3328 o:gsub("(=+)",function(e)t=math.max(t,#e);end);
472
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3329 e:write("local ungz = (function ()",require_resource"gunzip.lua"," end)()\n");
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3330 e:write[[return assert(loadstring((function (i)local o={} ungz{input=i,output=function(b)table.insert(o,string.char(b))end}return table.concat(o)end) ]];
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3331 e:write((string.format("%q",o):gsub("\026","\\026")));
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3332 e:write(", '@",a,"'))()");
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3333 e:close();
864c9dc27c60 buildscripts: Update included squish (now supports Lua 5.2)
Matthew Wild <mwild1@gmail.com>
parents: 428
diff changeset
3334 os.rename(a..".gzipped",a);
370
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3335 end
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3336 if e.gzip then
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3337 o("Gzipping "..out_fn.."...");
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3338 gzip_file(out_fn,out_fn);
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3339 o("OK!");
75e7917761c0 Makefile, buildscripts/squish: Add Makefile and squish to the repo
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3340 end