minify/squish.minify.lua

changeset 27
0718b469099d
parent 7
0db12f8037f7
child 30
802e22257a9e
equal deleted inserted replaced
26:a22604b2f5f3 27:0718b469099d
46 if not status then die("cannot write to \""..fname.."\"") end 46 if not status then die("cannot write to \""..fname.."\"") end
47 OUTF:close() 47 OUTF:close()
48 end 48 end
49 49
50 50
51 function minify(srcfl, destfl) 51 function minify_string(dat)
52 local z = load_file(srcfl) 52 llex.init(dat)
53 llex.init(z) 53 llex.llex()
54 llex.llex() 54 local toklist, seminfolist, toklnlist
55 local toklist, seminfolist, toklnlist 55 = llex.tok, llex.seminfo, llex.tokln
56 = llex.tok, llex.seminfo, llex.tokln 56 if option["opt-locals"] then
57 if option["opt-locals"] then 57 optparser.print = print -- hack
58 optparser.print = print -- hack 58 lparser.init(toklist, seminfolist, toklnlist)
59 lparser.init(toklist, seminfolist, toklnlist) 59 local globalinfo, localinfo = lparser.parser()
60 local globalinfo, localinfo = lparser.parser() 60 optparser.optimize(option, toklist, seminfolist, globalinfo, localinfo)
61 optparser.optimize(option, toklist, seminfolist, globalinfo, localinfo) 61 end
62 end 62 optlex.print = print -- hack
63 optlex.print = print -- hack 63 toklist, seminfolist, toklnlist
64 toklist, seminfolist, toklnlist 64 = optlex.optimize(option, toklist, seminfolist, toklnlist)
65 = optlex.optimize(option, toklist, seminfolist, toklnlist) 65 local dat = table.concat(seminfolist)
66 local dat = table.concat(seminfolist) 66 -- depending on options selected, embedded EOLs in long strings and
67 -- depending on options selected, embedded EOLs in long strings and 67 -- long comments may not have been translated to \n, tack a warning
68 -- long comments may not have been translated to \n, tack a warning 68 if string.find(dat, "\r\n", 1, 1) or
69 if string.find(dat, "\r\n", 1, 1) or 69 string.find(dat, "\n\r", 1, 1) then
70 string.find(dat, "\n\r", 1, 1) then 70 optlex.warn.mixedeol = true
71 optlex.warn.mixedeol = true 71 end
72 end 72 return dat;
73 -- save optimized source stream to output file 73 end
74 save_file(destfl, dat) 74
75 function minify_file(srcfl, destfl)
76 local z = load_file(srcfl);
77 z = minify_string(z);
78 save_file(destfl, z);
75 end 79 end
76 80
77 if opts.minify ~= false then 81 if opts.minify ~= false then
78 print_info("Minifying "..out_fn.."..."); 82 print_info("Minifying "..out_fn.."...");
79 minify(out_fn, out_fn); 83 minify_file(out_fn, out_fn);
80 print_info("OK!"); 84 print_info("OK!");
81 end 85 end

mercurial