js2lua.lua

Fri, 15 Oct 2010 15:17:17 +0100

author
Matthew Wild <mwild1@gmail.com>
date
Fri, 15 Oct 2010 15:17:17 +0100
changeset 0
b2e55f320d48
permissions
-rw-r--r--

Initial commit

0
b2e55f320d48 Initial commit
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1 #!/usr/bin/env lua
b2e55f320d48 Initial commit
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2
b2e55f320d48 Initial commit
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3 local jslex = require "lib.jslex"
b2e55f320d48 Initial commit
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
4 local js2lua = require "lib.js2lua"
b2e55f320d48 Initial commit
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
5
b2e55f320d48 Initial commit
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
6 local stream = jslex.new_stream(io.open(arg[1]));
b2e55f320d48 Initial commit
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
7
b2e55f320d48 Initial commit
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
8 local list = {};
b2e55f320d48 Initial commit
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
9
b2e55f320d48 Initial commit
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
10 local i, token_type, token_value = 0, stream.get_token();
b2e55f320d48 Initial commit
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
11 while token_type do
b2e55f320d48 Initial commit
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
12 i = i + 1;
b2e55f320d48 Initial commit
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
13 list[i] = { type = token_type, value = token_value };
b2e55f320d48 Initial commit
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
14
b2e55f320d48 Initial commit
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
15 -- print("Line "..(stream.line or 1)..":", token_type, token_value);
b2e55f320d48 Initial commit
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
16 token_type, token_value = stream.get_token();
b2e55f320d48 Initial commit
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
17 end
b2e55f320d48 Initial commit
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
18
b2e55f320d48 Initial commit
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
19 io.stderr:write("js2lua: Translating...\n");
b2e55f320d48 Initial commit
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
20 local d = {};
b2e55f320d48 Initial commit
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
21 local function w(t) table.insert(d, t); end
b2e55f320d48 Initial commit
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
22 js2lua(list, w);
b2e55f320d48 Initial commit
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
23 io.stderr:write("===== Result ======\n", table.concat(d), "\n===== ====== =====\n");
b2e55f320d48 Initial commit
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
24 io.stderr:write("js2lua: Running...\n");
b2e55f320d48 Initial commit
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
25 assert(loadstring(table.concat(d)))();

mercurial