Annotate

buildscripts/squish @ 498:50d0bd035bb7

util.sasl.oauthbearer: Don't send authzid It's not needed and not recommended in XMPP unless we want to act as someone other than who we authenticate as. We find out the JID during resource binding.
author Kim Alvefur <zash@zash.se>
date Fri, 23 Jun 2023 12:09:49 +0200
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