Mercurial Hosting > luan
annotate src/luan/modules/BasicLuan.java @ 1130:bfbd5401353a
add Number.float()
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Mon, 11 Dec 2017 23:36:52 -0700 |
parents | 22652f4020fb |
children | 1f9d34a6f308 |
rev | line source |
---|---|
167
4c0131c2b650
merge luan/lib into modules
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
166
diff
changeset
|
1 package luan.modules; |
2
4da26b11d12a
start interp
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
2 |
36
2a35154aec14
implement more basic lib functions
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
35
diff
changeset
|
3 import java.io.InputStreamReader; |
12
9cea1aea5eef
CmdLine can run files
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
10
diff
changeset
|
4 import java.io.IOException; |
19
a7c13c6017f7
add GenericForStmt
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
14
diff
changeset
|
5 import java.lang.reflect.Method; |
a7c13c6017f7
add GenericForStmt
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
14
diff
changeset
|
6 import java.util.Iterator; |
a7c13c6017f7
add GenericForStmt
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
14
diff
changeset
|
7 import java.util.Map; |
115
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
112
diff
changeset
|
8 import java.util.List; |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
112
diff
changeset
|
9 import java.util.ArrayList; |
48
64ecb7a3aad7
rename Lua to Luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
46
diff
changeset
|
10 import luan.Luan; |
64ecb7a3aad7
rename Lua to Luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
46
diff
changeset
|
11 import luan.LuanState; |
64ecb7a3aad7
rename Lua to Luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
46
diff
changeset
|
12 import luan.LuanTable; |
64ecb7a3aad7
rename Lua to Luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
46
diff
changeset
|
13 import luan.LuanFunction; |
64ecb7a3aad7
rename Lua to Luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
46
diff
changeset
|
14 import luan.LuanException; |
326
db37d6aee4db
remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
299
diff
changeset
|
15 import luan.LuanMethod; |
2
4da26b11d12a
start interp
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
16 |
4da26b11d12a
start interp
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
17 |
168
ebe9db183eb7
rename *Lib.java to *Luan.java
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
167
diff
changeset
|
18 public final class BasicLuan { |
2
4da26b11d12a
start interp
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
19 |
4
24fd6381caca
add to interp
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
3
diff
changeset
|
20 public static String type(Object obj) { |
48
64ecb7a3aad7
rename Lua to Luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
46
diff
changeset
|
21 return Luan.type(obj); |
4
24fd6381caca
add to interp
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
3
diff
changeset
|
22 } |
24fd6381caca
add to interp
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
3
diff
changeset
|
23 |
694
b620b8e1010f
remove Luan.load() allow_expression param and add Luan.eval()
Franklin Schmidt <fschmidt@gmail.com>
parents:
693
diff
changeset
|
24 public static LuanFunction load(String text,String sourceName,LuanTable env) |
128
f0a4abe58593
minor
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
125
diff
changeset
|
25 throws LuanException |
f0a4abe58593
minor
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
125
diff
changeset
|
26 { |
694
b620b8e1010f
remove Luan.load() allow_expression param and add Luan.eval()
Franklin Schmidt <fschmidt@gmail.com>
parents:
693
diff
changeset
|
27 Utils.checkNotNull(text); |
b620b8e1010f
remove Luan.load() allow_expression param and add Luan.eval()
Franklin Schmidt <fschmidt@gmail.com>
parents:
693
diff
changeset
|
28 Utils.checkNotNull(sourceName,1); |
b620b8e1010f
remove Luan.load() allow_expression param and add Luan.eval()
Franklin Schmidt <fschmidt@gmail.com>
parents:
693
diff
changeset
|
29 return Luan.load(text,sourceName,env); |
12
9cea1aea5eef
CmdLine can run files
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
10
diff
changeset
|
30 } |
9cea1aea5eef
CmdLine can run files
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
10
diff
changeset
|
31 |
693
ca169567ce07
module URIs must now include ".luan"
Franklin Schmidt <fschmidt@gmail.com>
parents:
687
diff
changeset
|
32 public static LuanFunction load_file(LuanState luan,String fileName) throws LuanException { |
ca169567ce07
module URIs must now include ".luan"
Franklin Schmidt <fschmidt@gmail.com>
parents:
687
diff
changeset
|
33 if( fileName == null ) { |
265
454a486d9c19
allow IO on files that don't exist
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
264
diff
changeset
|
34 fileName = "stdin:"; |
693
ca169567ce07
module URIs must now include ".luan"
Franklin Schmidt <fschmidt@gmail.com>
parents:
687
diff
changeset
|
35 } else if( fileName.indexOf(':') == -1 ) { |
ca169567ce07
module URIs must now include ".luan"
Franklin Schmidt <fschmidt@gmail.com>
parents:
687
diff
changeset
|
36 fileName = "file:" + fileName; |
ca169567ce07
module URIs must now include ".luan"
Franklin Schmidt <fschmidt@gmail.com>
parents:
687
diff
changeset
|
37 } |
ca169567ce07
module URIs must now include ".luan"
Franklin Schmidt <fschmidt@gmail.com>
parents:
687
diff
changeset
|
38 String src = PackageLuan.read(luan,fileName); |
299
a74559240b4f
simplify PackageLuan and remove IO loading param
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
297
diff
changeset
|
39 if( src == null ) |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
645
diff
changeset
|
40 throw new LuanException("file '"+fileName+"' not found" ); |
694
b620b8e1010f
remove Luan.load() allow_expression param and add Luan.eval()
Franklin Schmidt <fschmidt@gmail.com>
parents:
693
diff
changeset
|
41 return load(src,fileName,null); |
36
2a35154aec14
implement more basic lib functions
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
35
diff
changeset
|
42 } |
2a35154aec14
implement more basic lib functions
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
35
diff
changeset
|
43 |
432
d9df6d6cb927
finish fixing LuanTable to use metatables
Franklin Schmidt <fschmidt@gmail.com>
parents:
427
diff
changeset
|
44 public static LuanFunction pairs(final LuanState luan,final LuanTable t) throws LuanException { |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
645
diff
changeset
|
45 Utils.checkNotNull(t); |
575
7c3ad6db8ac3
make LuanState.JAVA private
Franklin Schmidt <fschmidt@gmail.com>
parents:
574
diff
changeset
|
46 return t.pairs(luan); |
37
8a57ebfdfd78
add JavaLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
36
diff
changeset
|
47 } |
8a57ebfdfd78
add JavaLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
36
diff
changeset
|
48 |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
645
diff
changeset
|
49 public static LuanFunction ipairs(final LuanTable t) throws LuanException { |
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
645
diff
changeset
|
50 Utils.checkNotNull(t); |
221
ec016471c6eb
make LuanTable an interface
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
202
diff
changeset
|
51 return new LuanFunction() { |
ec016471c6eb
make LuanTable an interface
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
202
diff
changeset
|
52 List<Object> list = t.asList(); |
ec016471c6eb
make LuanTable an interface
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
202
diff
changeset
|
53 int i = 0; |
ec016471c6eb
make LuanTable an interface
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
202
diff
changeset
|
54 final int size = list.size(); |
44
57054fa43189
implement table lib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
43
diff
changeset
|
55 |
221
ec016471c6eb
make LuanTable an interface
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
202
diff
changeset
|
56 @Override public Object[] call(LuanState luan,Object[] args) { |
ec016471c6eb
make LuanTable an interface
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
202
diff
changeset
|
57 if( i >= size ) |
ec016471c6eb
make LuanTable an interface
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
202
diff
changeset
|
58 return LuanFunction.NOTHING; |
ec016471c6eb
make LuanTable an interface
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
202
diff
changeset
|
59 Object val = list.get(i++); |
ec016471c6eb
make LuanTable an interface
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
202
diff
changeset
|
60 return new Object[]{i,val}; |
ec016471c6eb
make LuanTable an interface
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
202
diff
changeset
|
61 } |
ec016471c6eb
make LuanTable an interface
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
202
diff
changeset
|
62 }; |
37
8a57ebfdfd78
add JavaLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
36
diff
changeset
|
63 } |
8a57ebfdfd78
add JavaLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
36
diff
changeset
|
64 |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
645
diff
changeset
|
65 public static Object get_metatable(LuanTable table) throws LuanException { |
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
645
diff
changeset
|
66 Utils.checkNotNull(table); |
471
f3a24435d04d
add support for __metatable
Franklin Schmidt <fschmidt@gmail.com>
parents:
462
diff
changeset
|
67 LuanTable metatable = table.getMetatable(); |
f3a24435d04d
add support for __metatable
Franklin Schmidt <fschmidt@gmail.com>
parents:
462
diff
changeset
|
68 if( metatable == null ) |
f3a24435d04d
add support for __metatable
Franklin Schmidt <fschmidt@gmail.com>
parents:
462
diff
changeset
|
69 return null; |
f3a24435d04d
add support for __metatable
Franklin Schmidt <fschmidt@gmail.com>
parents:
462
diff
changeset
|
70 Object obj = metatable.rawGet("__metatable"); |
f3a24435d04d
add support for __metatable
Franklin Schmidt <fschmidt@gmail.com>
parents:
462
diff
changeset
|
71 return obj!=null ? obj : metatable; |
35
e51906de0f11
implement metatables
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
34
diff
changeset
|
72 } |
e51906de0f11
implement metatables
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
34
diff
changeset
|
73 |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
645
diff
changeset
|
74 public static void set_metatable(LuanTable table,LuanTable metatable) throws LuanException { |
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
645
diff
changeset
|
75 Utils.checkNotNull(table); |
471
f3a24435d04d
add support for __metatable
Franklin Schmidt <fschmidt@gmail.com>
parents:
462
diff
changeset
|
76 if( table.getHandler("__metatable") != null ) |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
645
diff
changeset
|
77 throw new LuanException("cannot change a protected metatable"); |
35
e51906de0f11
implement metatables
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
34
diff
changeset
|
78 table.setMetatable(metatable); |
e51906de0f11
implement metatables
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
34
diff
changeset
|
79 } |
36
2a35154aec14
implement more basic lib functions
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
35
diff
changeset
|
80 |
39
e5bcb1eeafc1
change naming convention
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
37
diff
changeset
|
81 public static boolean raw_equal(Object v1,Object v2) { |
36
2a35154aec14
implement more basic lib functions
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
35
diff
changeset
|
82 return v1 == v2 || v1 != null && v1.equals(v2); |
2a35154aec14
implement more basic lib functions
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
35
diff
changeset
|
83 } |
2a35154aec14
implement more basic lib functions
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
35
diff
changeset
|
84 |
48
64ecb7a3aad7
rename Lua to Luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
46
diff
changeset
|
85 public static Object raw_get(LuanTable table,Object index) { |
426
23a93c118042
fix LuanTable.get() to use metatables
Franklin Schmidt <fschmidt@gmail.com>
parents:
423
diff
changeset
|
86 return table.rawGet(index); |
36
2a35154aec14
implement more basic lib functions
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
35
diff
changeset
|
87 } |
2a35154aec14
implement more basic lib functions
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
35
diff
changeset
|
88 |
491
4dc9cb26a3a8
raw_set and set_metatable now return void instead of LuanTable
Franklin Schmidt <fschmidt@gmail.com>
parents:
481
diff
changeset
|
89 public static void raw_set(LuanTable table,Object index,Object value) { |
427
dae264ad6a7b
fix LuanTable.put() to use metatables
Franklin Schmidt <fschmidt@gmail.com>
parents:
426
diff
changeset
|
90 table.rawPut(index,value); |
36
2a35154aec14
implement more basic lib functions
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
35
diff
changeset
|
91 } |
2a35154aec14
implement more basic lib functions
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
35
diff
changeset
|
92 |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
645
diff
changeset
|
93 public static int raw_len(Object v) throws LuanException { |
36
2a35154aec14
implement more basic lib functions
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
35
diff
changeset
|
94 if( v instanceof String ) { |
2a35154aec14
implement more basic lib functions
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
35
diff
changeset
|
95 String s = (String)v; |
2a35154aec14
implement more basic lib functions
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
35
diff
changeset
|
96 return s.length(); |
2a35154aec14
implement more basic lib functions
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
35
diff
changeset
|
97 } |
48
64ecb7a3aad7
rename Lua to Luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
46
diff
changeset
|
98 if( v instanceof LuanTable ) { |
64ecb7a3aad7
rename Lua to Luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
46
diff
changeset
|
99 LuanTable t = (LuanTable)v; |
432
d9df6d6cb927
finish fixing LuanTable to use metatables
Franklin Schmidt <fschmidt@gmail.com>
parents:
427
diff
changeset
|
100 return t.rawLength(); |
36
2a35154aec14
implement more basic lib functions
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
35
diff
changeset
|
101 } |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
645
diff
changeset
|
102 throw new LuanException( "bad argument #1 to 'raw_len' (table or string expected)" ); |
36
2a35154aec14
implement more basic lib functions
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
35
diff
changeset
|
103 } |
2a35154aec14
implement more basic lib functions
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
35
diff
changeset
|
104 |
49
8ede219cd111
add WebShell
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
48
diff
changeset
|
105 public static String to_string(LuanState luan,Object v) throws LuanException { |
575
7c3ad6db8ac3
make LuanState.JAVA private
Franklin Schmidt <fschmidt@gmail.com>
parents:
574
diff
changeset
|
106 return luan.toString(v); |
36
2a35154aec14
implement more basic lib functions
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
35
diff
changeset
|
107 } |
41
c53dc854e6cc
minor
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
40
diff
changeset
|
108 |
481
5d4a78c93383
luan errors are now tables
Franklin Schmidt <fschmidt@gmail.com>
parents:
473
diff
changeset
|
109 public static LuanTable new_error(LuanState luan,Object msg) throws LuanException { |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
645
diff
changeset
|
110 String s = luan.toString(msg); |
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
645
diff
changeset
|
111 LuanTable tbl = new LuanException(s).table(); |
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
645
diff
changeset
|
112 tbl.rawPut( "message", msg ); |
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
645
diff
changeset
|
113 return tbl; |
41
c53dc854e6cc
minor
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
40
diff
changeset
|
114 } |
c53dc854e6cc
minor
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
40
diff
changeset
|
115 |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
645
diff
changeset
|
116 public static String assert_string(String v) throws LuanException { |
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
645
diff
changeset
|
117 Utils.checkNotNull(v); |
64
177cfdc2bdb3
add type assertions
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
49
diff
changeset
|
118 return v; |
177cfdc2bdb3
add type assertions
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
49
diff
changeset
|
119 } |
177cfdc2bdb3
add type assertions
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
49
diff
changeset
|
120 |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
645
diff
changeset
|
121 public static Number assert_number(Number v) throws LuanException { |
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
645
diff
changeset
|
122 Utils.checkNotNull(v); |
64
177cfdc2bdb3
add type assertions
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
49
diff
changeset
|
123 return v; |
177cfdc2bdb3
add type assertions
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
49
diff
changeset
|
124 } |
177cfdc2bdb3
add type assertions
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
49
diff
changeset
|
125 |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
645
diff
changeset
|
126 public static LuanTable assert_table(LuanTable v) throws LuanException { |
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
645
diff
changeset
|
127 Utils.checkNotNull(v); |
64
177cfdc2bdb3
add type assertions
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
49
diff
changeset
|
128 return v; |
177cfdc2bdb3
add type assertions
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
49
diff
changeset
|
129 } |
177cfdc2bdb3
add type assertions
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
49
diff
changeset
|
130 |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
645
diff
changeset
|
131 public static boolean assert_boolean(boolean v) throws LuanException { |
64
177cfdc2bdb3
add type assertions
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
49
diff
changeset
|
132 return v; |
177cfdc2bdb3
add type assertions
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
49
diff
changeset
|
133 } |
177cfdc2bdb3
add type assertions
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
49
diff
changeset
|
134 |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
645
diff
changeset
|
135 public static int assert_integer(int v) throws LuanException { |
233
ef39bc4d3f70
basic lucene works
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
221
diff
changeset
|
136 return v; |
ef39bc4d3f70
basic lucene works
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
221
diff
changeset
|
137 } |
ef39bc4d3f70
basic lucene works
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
221
diff
changeset
|
138 |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
645
diff
changeset
|
139 public static long assert_long(long v) throws LuanException { |
290
9a0cc6d9b27b
add Time.period();
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
265
diff
changeset
|
140 return v; |
9a0cc6d9b27b
add Time.period();
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
265
diff
changeset
|
141 } |
9a0cc6d9b27b
add Time.period();
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
265
diff
changeset
|
142 |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
645
diff
changeset
|
143 public static double assert_double(double v) throws LuanException { |
537
5fed3de0aac7
add Luan.assert_double and add assert_* to Web_search query env
Franklin Schmidt <fschmidt@gmail.com>
parents:
536
diff
changeset
|
144 return v; |
5fed3de0aac7
add Luan.assert_double and add assert_* to Web_search query env
Franklin Schmidt <fschmidt@gmail.com>
parents:
536
diff
changeset
|
145 } |
5fed3de0aac7
add Luan.assert_double and add assert_* to Web_search query env
Franklin Schmidt <fschmidt@gmail.com>
parents:
536
diff
changeset
|
146 |
1130 | 147 public static float assert_float(float v) throws LuanException { |
148 return v; | |
149 } | |
150 | |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
645
diff
changeset
|
151 @LuanMethod public static byte[] assert_binary(byte[] v) throws LuanException { |
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
645
diff
changeset
|
152 Utils.checkNotNull(v); |
447 | 153 return v; |
154 } | |
155 | |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
645
diff
changeset
|
156 public static LuanFunction assert_function(LuanFunction v) throws LuanException { |
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
645
diff
changeset
|
157 Utils.checkNotNull(v); |
626
53a50c70c5e2
add Luan.assert_function() and Http.run_later()
Franklin Schmidt <fschmidt@gmail.com>
parents:
589
diff
changeset
|
158 return v; |
53a50c70c5e2
add Luan.assert_function() and Http.run_later()
Franklin Schmidt <fschmidt@gmail.com>
parents:
589
diff
changeset
|
159 } |
53a50c70c5e2
add Luan.assert_function() and Http.run_later()
Franklin Schmidt <fschmidt@gmail.com>
parents:
589
diff
changeset
|
160 |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
645
diff
changeset
|
161 public static LuanFunction range(final double from,final double to,Double stepV) throws LuanException { |
109
219e05867366
remove NumericForStmt;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
108
diff
changeset
|
162 final double step = stepV==null ? 1.0 : stepV; |
219e05867366
remove NumericForStmt;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
108
diff
changeset
|
163 if( step == 0.0 ) |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
645
diff
changeset
|
164 throw new LuanException("bad argument #3 (step may not be zero)"); |
109
219e05867366
remove NumericForStmt;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
108
diff
changeset
|
165 return new LuanFunction() { |
219e05867366
remove NumericForStmt;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
108
diff
changeset
|
166 double v = from; |
219e05867366
remove NumericForStmt;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
108
diff
changeset
|
167 |
112
f5af13062b10
fix previous rev
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
111
diff
changeset
|
168 @Override public Object call(LuanState luan,Object[] args) { |
109
219e05867366
remove NumericForStmt;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
108
diff
changeset
|
169 if( step > 0.0 && v > to || step < 0.0 && v < to ) |
123
d7be9b3abf1a
minor - rename LuanFunction.EMPTY to NOTHING
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
118
diff
changeset
|
170 return LuanFunction.NOTHING; |
109
219e05867366
remove NumericForStmt;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
108
diff
changeset
|
171 double rtn = v; |
219e05867366
remove NumericForStmt;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
108
diff
changeset
|
172 v += step; |
112
f5af13062b10
fix previous rev
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
111
diff
changeset
|
173 return rtn; |
109
219e05867366
remove NumericForStmt;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
108
diff
changeset
|
174 } |
219e05867366
remove NumericForStmt;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
108
diff
changeset
|
175 }; |
219e05867366
remove NumericForStmt;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
108
diff
changeset
|
176 } |
219e05867366
remove NumericForStmt;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
108
diff
changeset
|
177 |
116
1ff1c32417eb
more IoLib work and added init.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
115
diff
changeset
|
178 public static LuanFunction values(final Object... args) throws LuanException { |
1ff1c32417eb
more IoLib work and added init.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
115
diff
changeset
|
179 return new LuanFunction() { |
1ff1c32417eb
more IoLib work and added init.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
115
diff
changeset
|
180 int i = 0; |
1ff1c32417eb
more IoLib work and added init.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
115
diff
changeset
|
181 |
1ff1c32417eb
more IoLib work and added init.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
115
diff
changeset
|
182 @Override public Object call(LuanState luan,Object[] unused) { |
402 | 183 if( i >= args.length ) |
128
f0a4abe58593
minor
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
125
diff
changeset
|
184 return LuanFunction.NOTHING; |
402 | 185 return args[i++]; |
116
1ff1c32417eb
more IoLib work and added init.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
115
diff
changeset
|
186 } |
1ff1c32417eb
more IoLib work and added init.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
115
diff
changeset
|
187 }; |
1ff1c32417eb
more IoLib work and added init.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
115
diff
changeset
|
188 } |
143
fcb81fa2df0d
handle urls and java resources as files
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
142
diff
changeset
|
189 |
326
db37d6aee4db
remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
299
diff
changeset
|
190 private LuanFunction fn(Object obj) { |
db37d6aee4db
remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
299
diff
changeset
|
191 return obj instanceof LuanFunction ? (LuanFunction)obj : null; |
db37d6aee4db
remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
299
diff
changeset
|
192 } |
db37d6aee4db
remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
299
diff
changeset
|
193 |
589
97c8ae330efe
add varargs to Luan.try;
Franklin Schmidt <fschmidt@gmail.com>
parents:
584
diff
changeset
|
194 public static Object try_(LuanState luan,LuanTable blocks,Object... args) throws LuanException { |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
645
diff
changeset
|
195 Utils.checkNotNull(blocks); |
575
7c3ad6db8ac3
make LuanState.JAVA private
Franklin Schmidt <fschmidt@gmail.com>
parents:
574
diff
changeset
|
196 Object obj = blocks.get(luan,1); |
326
db37d6aee4db
remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
299
diff
changeset
|
197 if( obj == null ) |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
645
diff
changeset
|
198 throw new LuanException("missing 'try' value"); |
326
db37d6aee4db
remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
299
diff
changeset
|
199 if( !(obj instanceof LuanFunction) ) |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
645
diff
changeset
|
200 throw new LuanException("bad 'try' value (function expected, got "+Luan.type(obj)+")"); |
326
db37d6aee4db
remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
299
diff
changeset
|
201 LuanFunction tryFn = (LuanFunction)obj; |
db37d6aee4db
remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
299
diff
changeset
|
202 LuanFunction catchFn = null; |
575
7c3ad6db8ac3
make LuanState.JAVA private
Franklin Schmidt <fschmidt@gmail.com>
parents:
574
diff
changeset
|
203 obj = blocks.get(luan,"catch"); |
326
db37d6aee4db
remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
299
diff
changeset
|
204 if( obj != null ) { |
db37d6aee4db
remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
299
diff
changeset
|
205 if( !(obj instanceof LuanFunction) ) |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
645
diff
changeset
|
206 throw new LuanException("bad 'catch' value (function expected, got "+Luan.type(obj)+")"); |
326
db37d6aee4db
remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
299
diff
changeset
|
207 catchFn = (LuanFunction)obj; |
db37d6aee4db
remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
299
diff
changeset
|
208 } |
db37d6aee4db
remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
299
diff
changeset
|
209 LuanFunction finallyFn = null; |
575
7c3ad6db8ac3
make LuanState.JAVA private
Franklin Schmidt <fschmidt@gmail.com>
parents:
574
diff
changeset
|
210 obj = blocks.get(luan,"finally"); |
326
db37d6aee4db
remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
299
diff
changeset
|
211 if( obj != null ) { |
db37d6aee4db
remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
299
diff
changeset
|
212 if( !(obj instanceof LuanFunction) ) |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
645
diff
changeset
|
213 throw new LuanException("bad 'finally' value (function expected, got "+Luan.type(obj)+")"); |
326
db37d6aee4db
remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
299
diff
changeset
|
214 finallyFn = (LuanFunction)obj; |
db37d6aee4db
remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
299
diff
changeset
|
215 } |
db37d6aee4db
remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
299
diff
changeset
|
216 try { |
589
97c8ae330efe
add varargs to Luan.try;
Franklin Schmidt <fschmidt@gmail.com>
parents:
584
diff
changeset
|
217 return tryFn.call(luan,args); |
326
db37d6aee4db
remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
299
diff
changeset
|
218 } catch(LuanException e) { |
db37d6aee4db
remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
299
diff
changeset
|
219 if( catchFn == null ) |
db37d6aee4db
remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
299
diff
changeset
|
220 throw e; |
574
6cc2f047019b
remove LuanState.call()
Franklin Schmidt <fschmidt@gmail.com>
parents:
572
diff
changeset
|
221 return catchFn.call(luan,new Object[]{e.table()}); |
326
db37d6aee4db
remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
299
diff
changeset
|
222 } finally { |
db37d6aee4db
remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
299
diff
changeset
|
223 if( finallyFn != null ) |
574
6cc2f047019b
remove LuanState.call()
Franklin Schmidt <fschmidt@gmail.com>
parents:
572
diff
changeset
|
224 finallyFn.call(luan); |
326
db37d6aee4db
remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
299
diff
changeset
|
225 } |
db37d6aee4db
remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
299
diff
changeset
|
226 } |
db37d6aee4db
remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
299
diff
changeset
|
227 |
db37d6aee4db
remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
299
diff
changeset
|
228 @LuanMethod public static Object[] pcall(LuanState luan,LuanFunction f,Object... args) { |
db37d6aee4db
remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
299
diff
changeset
|
229 try { |
574
6cc2f047019b
remove LuanState.call()
Franklin Schmidt <fschmidt@gmail.com>
parents:
572
diff
changeset
|
230 Object[] r = Luan.array(f.call(luan,args)); |
326
db37d6aee4db
remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
299
diff
changeset
|
231 Object[] rtn = new Object[r.length+1]; |
db37d6aee4db
remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
299
diff
changeset
|
232 rtn[0] = true; |
db37d6aee4db
remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
299
diff
changeset
|
233 for( int i=0; i<r.length; i++ ) { |
db37d6aee4db
remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
299
diff
changeset
|
234 rtn[i+1] = r[i]; |
db37d6aee4db
remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
299
diff
changeset
|
235 } |
db37d6aee4db
remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
299
diff
changeset
|
236 return rtn; |
db37d6aee4db
remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
299
diff
changeset
|
237 } catch(LuanException e) { |
481
5d4a78c93383
luan errors are now tables
Franklin Schmidt <fschmidt@gmail.com>
parents:
473
diff
changeset
|
238 return new Object[]{false,e.table()}; |
326
db37d6aee4db
remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
299
diff
changeset
|
239 } |
db37d6aee4db
remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
299
diff
changeset
|
240 } |
db37d6aee4db
remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
299
diff
changeset
|
241 |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
645
diff
changeset
|
242 public static String number_type(Number v) throws LuanException { |
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
645
diff
changeset
|
243 Utils.checkNotNull(v); |
536
3058870cbe83
add Luan.number_type and Lucene.query.range
Franklin Schmidt <fschmidt@gmail.com>
parents:
521
diff
changeset
|
244 return v.getClass().getSimpleName().toLowerCase(); |
3058870cbe83
add Luan.number_type and Lucene.query.range
Franklin Schmidt <fschmidt@gmail.com>
parents:
521
diff
changeset
|
245 } |
3058870cbe83
add Luan.number_type and Lucene.query.range
Franklin Schmidt <fschmidt@gmail.com>
parents:
521
diff
changeset
|
246 |
1095
2443152dc2f1
add Luan.hash_code() and Table.hash_value()
Franklin Schmidt <fschmidt@gmail.com>
parents:
793
diff
changeset
|
247 public static int hash_code(Object obj) throws LuanException { |
2443152dc2f1
add Luan.hash_code() and Table.hash_value()
Franklin Schmidt <fschmidt@gmail.com>
parents:
793
diff
changeset
|
248 if( obj == null ) { |
2443152dc2f1
add Luan.hash_code() and Table.hash_value()
Franklin Schmidt <fschmidt@gmail.com>
parents:
793
diff
changeset
|
249 return 0; |
2443152dc2f1
add Luan.hash_code() and Table.hash_value()
Franklin Schmidt <fschmidt@gmail.com>
parents:
793
diff
changeset
|
250 } else { |
2443152dc2f1
add Luan.hash_code() and Table.hash_value()
Franklin Schmidt <fschmidt@gmail.com>
parents:
793
diff
changeset
|
251 return obj.hashCode(); |
2443152dc2f1
add Luan.hash_code() and Table.hash_value()
Franklin Schmidt <fschmidt@gmail.com>
parents:
793
diff
changeset
|
252 } |
2443152dc2f1
add Luan.hash_code() and Table.hash_value()
Franklin Schmidt <fschmidt@gmail.com>
parents:
793
diff
changeset
|
253 } |
2443152dc2f1
add Luan.hash_code() and Table.hash_value()
Franklin Schmidt <fschmidt@gmail.com>
parents:
793
diff
changeset
|
254 |
2
4da26b11d12a
start interp
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
255 } |