annotate src/luan/modules/Luan.luan @ 1260:4b5b84853f6f

replace Table.as_table with Luan.to_table
author Franklin Schmidt <fschmidt@gmail.com>
date Sun, 23 Sep 2018 22:32:34 -0600
parents e8020216dee7
children 198d6af7330a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
321
7f7708e8fdd4 remove import statement
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 320
diff changeset
1 java()
7f7708e8fdd4 remove import statement
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 320
diff changeset
2 local BasicLuan = require "java:luan.modules.BasicLuan"
1259
e8020216dee7 add Luan.to_luan and fix multipart/form-data
Franklin Schmidt <fschmidt@gmail.com>
parents: 1189
diff changeset
3 local LuanJava = require "java:luan.Luan"
297
899253043270 remove PackageLuan.load_lib()
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
4
1088
bae2d0c2576c change module naming convention
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
5 local Luan = {}
298
2ce23c7e2342 remove init.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 297
diff changeset
6
1088
bae2d0c2576c change module naming convention
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
7 Luan.get_metatable = BasicLuan.get_metatable
1095
2443152dc2f1 add Luan.hash_code() and Table.hash_value()
Franklin Schmidt <fschmidt@gmail.com>
parents: 1088
diff changeset
8 Luan.hash_code = BasicLuan.hash_code
1088
bae2d0c2576c change module naming convention
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
9 Luan.ipairs = BasicLuan.ipairs
bae2d0c2576c change module naming convention
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
10 Luan.load = BasicLuan.load
bae2d0c2576c change module naming convention
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
11 Luan.load_file = BasicLuan.load_file
bae2d0c2576c change module naming convention
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
12 Luan.new_error = BasicLuan.new_error
bae2d0c2576c change module naming convention
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
13 Luan.pairs = BasicLuan.pairs
bae2d0c2576c change module naming convention
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
14 Luan.pcall = BasicLuan.pcall
bae2d0c2576c change module naming convention
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
15 Luan.range = BasicLuan.range
bae2d0c2576c change module naming convention
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
16 Luan.raw_equal = BasicLuan.raw_equal
bae2d0c2576c change module naming convention
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
17 Luan.raw_get = BasicLuan.raw_get
bae2d0c2576c change module naming convention
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
18 Luan.raw_len = BasicLuan.raw_len
bae2d0c2576c change module naming convention
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
19 Luan.raw_set = BasicLuan.raw_set
bae2d0c2576c change module naming convention
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
20 Luan.set_metatable = BasicLuan.set_metatable
1189
73d754b1889f add stringify
Franklin Schmidt <fschmidt@gmail.com>
parents: 1164
diff changeset
21 Luan.stringify = BasicLuan.stringify
1088
bae2d0c2576c change module naming convention
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
22 Luan.to_string = BasicLuan.to_string
bae2d0c2576c change module naming convention
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
23 Luan.try = BasicLuan.try_
bae2d0c2576c change module naming convention
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
24 Luan.type = BasicLuan.type
bae2d0c2576c change module naming convention
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
25 Luan.values = BasicLuan.values
503
92c3d22745b8 make _ENV optional
Franklin Schmidt <fschmidt@gmail.com>
parents: 482
diff changeset
26
1088
bae2d0c2576c change module naming convention
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
27 function Luan.do_file(uri)
bae2d0c2576c change module naming convention
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
28 return Luan.load_file(uri)()
473
bab5607a0eed move do_file implementation to luan
Franklin Schmidt <fschmidt@gmail.com>
parents: 448
diff changeset
29 end
bab5607a0eed move do_file implementation to luan
Franklin Schmidt <fschmidt@gmail.com>
parents: 448
diff changeset
30
1088
bae2d0c2576c change module naming convention
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
31 Luan.VERSION = Luan.do_file "classpath:luan/version.luan"
442
75ccb4da803f move assert() implementation to luan
Franklin Schmidt <fschmidt@gmail.com>
parents: 441
diff changeset
32
1088
bae2d0c2576c change module naming convention
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
33 function Luan.error(message)
bae2d0c2576c change module naming convention
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
34 Luan.new_error(message).throw()
481
5d4a78c93383 luan errors are now tables
Franklin Schmidt <fschmidt@gmail.com>
parents: 473
diff changeset
35 end
5d4a78c93383 luan errors are now tables
Franklin Schmidt <fschmidt@gmail.com>
parents: 473
diff changeset
36
1088
bae2d0c2576c change module naming convention
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
37 function Luan.eval(s,source_name)
bae2d0c2576c change module naming convention
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
38 return Luan.load( "return "..s, source_name or "eval" )()
694
b620b8e1010f remove Luan.load() allow_expression param and add Luan.eval()
Franklin Schmidt <fschmidt@gmail.com>
parents: 693
diff changeset
39 end
b620b8e1010f remove Luan.load() allow_expression param and add Luan.eval()
Franklin Schmidt <fschmidt@gmail.com>
parents: 693
diff changeset
40
1259
e8020216dee7 add Luan.to_luan and fix multipart/form-data
Franklin Schmidt <fschmidt@gmail.com>
parents: 1189
diff changeset
41
e8020216dee7 add Luan.to_luan and fix multipart/form-data
Franklin Schmidt <fschmidt@gmail.com>
parents: 1189
diff changeset
42 local error = Luan.error
e8020216dee7 add Luan.to_luan and fix multipart/form-data
Franklin Schmidt <fschmidt@gmail.com>
parents: 1189
diff changeset
43 local type = Luan.type or error()
e8020216dee7 add Luan.to_luan and fix multipart/form-data
Franklin Schmidt <fschmidt@gmail.com>
parents: 1189
diff changeset
44 local pairs = Luan.pairs or error()
e8020216dee7 add Luan.to_luan and fix multipart/form-data
Franklin Schmidt <fschmidt@gmail.com>
parents: 1189
diff changeset
45
1260
4b5b84853f6f replace Table.as_table with Luan.to_table
Franklin Schmidt <fschmidt@gmail.com>
parents: 1259
diff changeset
46 Luan.to_table = LuanJava.toTable
1259
e8020216dee7 add Luan.to_luan and fix multipart/form-data
Franklin Schmidt <fschmidt@gmail.com>
parents: 1189
diff changeset
47
1260
4b5b84853f6f replace Table.as_table with Luan.to_table
Franklin Schmidt <fschmidt@gmail.com>
parents: 1259
diff changeset
48 local function to_luan(obj,to_table)
1259
e8020216dee7 add Luan.to_luan and fix multipart/form-data
Franklin Schmidt <fschmidt@gmail.com>
parents: 1189
diff changeset
49 if type(obj) ~= "java" then
e8020216dee7 add Luan.to_luan and fix multipart/form-data
Franklin Schmidt <fschmidt@gmail.com>
parents: 1189
diff changeset
50 return obj
e8020216dee7 add Luan.to_luan and fix multipart/form-data
Franklin Schmidt <fschmidt@gmail.com>
parents: 1189
diff changeset
51 end
1260
4b5b84853f6f replace Table.as_table with Luan.to_table
Franklin Schmidt <fschmidt@gmail.com>
parents: 1259
diff changeset
52 obj = to_table(obj) or error("can't convert type "..obj.getClass().getName().." to luan")
1259
e8020216dee7 add Luan.to_luan and fix multipart/form-data
Franklin Schmidt <fschmidt@gmail.com>
parents: 1189
diff changeset
53 local tbl = {}
e8020216dee7 add Luan.to_luan and fix multipart/form-data
Franklin Schmidt <fschmidt@gmail.com>
parents: 1189
diff changeset
54 for key, value in pairs(obj) do
1260
4b5b84853f6f replace Table.as_table with Luan.to_table
Franklin Schmidt <fschmidt@gmail.com>
parents: 1259
diff changeset
55 key = to_luan(key,to_table)
4b5b84853f6f replace Table.as_table with Luan.to_table
Franklin Schmidt <fschmidt@gmail.com>
parents: 1259
diff changeset
56 value = to_luan(value,to_table)
1259
e8020216dee7 add Luan.to_luan and fix multipart/form-data
Franklin Schmidt <fschmidt@gmail.com>
parents: 1189
diff changeset
57 tbl[key] = value
e8020216dee7 add Luan.to_luan and fix multipart/form-data
Franklin Schmidt <fschmidt@gmail.com>
parents: 1189
diff changeset
58 end
e8020216dee7 add Luan.to_luan and fix multipart/form-data
Franklin Schmidt <fschmidt@gmail.com>
parents: 1189
diff changeset
59 return tbl
e8020216dee7 add Luan.to_luan and fix multipart/form-data
Franklin Schmidt <fschmidt@gmail.com>
parents: 1189
diff changeset
60 end
e8020216dee7 add Luan.to_luan and fix multipart/form-data
Franklin Schmidt <fschmidt@gmail.com>
parents: 1189
diff changeset
61
1260
4b5b84853f6f replace Table.as_table with Luan.to_table
Franklin Schmidt <fschmidt@gmail.com>
parents: 1259
diff changeset
62 function Luan.to_luan(obj,to_table)
4b5b84853f6f replace Table.as_table with Luan.to_table
Franklin Schmidt <fschmidt@gmail.com>
parents: 1259
diff changeset
63 to_table = to_table or Luan.to_table
4b5b84853f6f replace Table.as_table with Luan.to_table
Franklin Schmidt <fschmidt@gmail.com>
parents: 1259
diff changeset
64 return to_luan(obj,to_table)
4b5b84853f6f replace Table.as_table with Luan.to_table
Franklin Schmidt <fschmidt@gmail.com>
parents: 1259
diff changeset
65 end
4b5b84853f6f replace Table.as_table with Luan.to_table
Franklin Schmidt <fschmidt@gmail.com>
parents: 1259
diff changeset
66
1088
bae2d0c2576c change module naming convention
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
67 return Luan