add callmethod function
This commit is contained in:
parent
4cd3baeac2
commit
f5307d2b97
3 changed files with 29 additions and 0 deletions
|
@ -887,6 +887,15 @@ public class ISBPL {
|
||||||
addFunction(t, "=" + s, (stack1) -> t.varget(stack1.pop()).put(var, stack1.pop()));
|
addFunction(t, "=" + s, (stack1) -> t.varget(stack1.pop()).put(var, stack1.pop()));
|
||||||
};
|
};
|
||||||
break;
|
break;
|
||||||
|
case "callmethod":
|
||||||
|
func = (stack) -> {
|
||||||
|
ISBPLObject obj = stack.pop();
|
||||||
|
ISBPLObject str = stack.pop();
|
||||||
|
String s = toJavaString(str);
|
||||||
|
stack.push(obj);
|
||||||
|
obj.type.methods.get(s).call(stack);
|
||||||
|
};
|
||||||
|
break;
|
||||||
case "jio.class":
|
case "jio.class":
|
||||||
func = (stack) -> {
|
func = (stack) -> {
|
||||||
ISBPLObject str = stack.pop();
|
ISBPLObject str = stack.pop();
|
||||||
|
|
19
iota.isbpl
19
iota.isbpl
|
@ -2,3 +2,22 @@
|
||||||
def iota_storage 0 =iota_storage
|
def iota_storage 0 =iota_storage
|
||||||
func iota { iota_storage dup ++ =iota_storage }
|
func iota { iota_storage dup ++ =iota_storage }
|
||||||
func riota { 0 1 =iota_storage }
|
func riota { 0 1 =iota_storage }
|
||||||
|
|
||||||
|
def enum_storage 0 =enum_storage
|
||||||
|
def enum_type_storage 0 =enum_type_storage
|
||||||
|
def enum_holder_storage 0 =enum_holder_storage
|
||||||
|
|
||||||
|
func mkenum {
|
||||||
|
mktype =enum_type_storage
|
||||||
|
0 =enum_storage
|
||||||
|
-1 enum_type_storage settype dup =enum_holder_storage
|
||||||
|
}
|
||||||
|
|
||||||
|
func enum {
|
||||||
|
def name =name
|
||||||
|
def r enum_storage enum_type_storage settype =r
|
||||||
|
name enum_type_storage deffield
|
||||||
|
r "=" name strconcat enum_holder_storage callmethod
|
||||||
|
enum_storage inc
|
||||||
|
r
|
||||||
|
}
|
||||||
|
|
|
@ -67,6 +67,7 @@ native fcall
|
||||||
native deffunc
|
native deffunc
|
||||||
native defmethod
|
native defmethod
|
||||||
native deffield
|
native deffield
|
||||||
|
native callmethod
|
||||||
|
|
||||||
func ++ { 1 + }
|
func ++ { 1 + }
|
||||||
func -- { 1 - }
|
func -- { 1 - }
|
||||||
|
|
Loading…
Add table
Reference in a new issue