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 |