Created
January 6, 2014 16:37
-
-
Save CoderPuppy/8285499 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* poland/runtime/Call source file, generated with rock, the ooc compiler written in ooc */ | |
#include <ooc/poland/poland/runtime/Call.h> | |
#include <ooc/sdk/lang/Abstractions.h> | |
#include <ooc/sdk/lang/Buffer.h> | |
#include <ooc/sdk/lang/BufferIterator.h> | |
#include <ooc/sdk/lang/Character.h> | |
#include <ooc/sdk/lang/Exception.h> | |
#include <ooc/sdk/lang/Format.h> | |
#include <ooc/sdk/lang/IO.h> | |
#include <ooc/sdk/lang/Iterators.h> | |
#include <ooc/sdk/lang/Memory.h> | |
#include <ooc/sdk/lang/Numbers.h> | |
#include <ooc/sdk/lang/String.h> | |
#include <ooc/sdk/lang/stdlib.h> | |
#include <ooc/sdk/lang/VarArgs.h> | |
#include <ooc/poland/poland/runtime/Object.h> | |
#include <ooc/poland/poland/runtime/Runtime.h> | |
#include <ooc/poland/poland/userdata/Msg.h> | |
#include <ooc/poland/poland/userdata/MsgSeq.h> | |
#include <ooc/poland/poland/userdata/Symbol.h> | |
#include <ooc/poland/poland/userdata/String.h> | |
static lang_String__String* __strLit533; | |
static lang_String__String* __strLit532; | |
static lang_String__String* __strLit258; | |
void poland_runtime_Call__PCall_init(poland_runtime_Call__PCall* this, poland_runtime_Runtime__PRuntime* runtime, poland_runtime_Object__PObject* ground, poland_userdata_MsgSeq__PMsgSeq* seq, poland_runtime_Object__PObject* receiver, poland_userdata_Msg__PMsg* msg) { | |
#line 11 "/home/cpup/code/poland-ooc/src/poland/runtime/Call.ooc" | |
this->msg = msg; | |
#line 11 "/home/cpup/code/poland-ooc/src/poland/runtime/Call.ooc" | |
this->receiver = receiver; | |
#line 11 "/home/cpup/code/poland-ooc/src/poland/runtime/Call.ooc" | |
this->seq = seq; | |
#line 11 "/home/cpup/code/poland-ooc/src/poland/runtime/Call.ooc" | |
this->ground = ground; | |
#line 11 "/home/cpup/code/poland-ooc/src/poland/runtime/Call.ooc" | |
this->runtime = runtime; | |
} | |
lang_String__String* poland_runtime_Call__PCall_id_impl(poland_runtime_Call__PCall* this) { | |
#line 13 "/home/cpup/code/poland-ooc/src/poland/runtime/Call.ooc" | |
struct { | |
lang_types__Pointer __f1; | |
lang_String__String* __f2; | |
lang_types__Pointer __f3; | |
lang_String__String* __f4; | |
lang_types__Pointer __f5; | |
lang_String__String* __f6; | |
lang_types__Pointer __f7; | |
lang_String__String* __f8; | |
} ____va_args639; | |
#line 13 "/home/cpup/code/poland-ooc/src/poland/runtime/Call.ooc" | |
lang_VarArgs__VarArgs ____va640 = (lang_VarArgs__VarArgs) { | |
(void*) &(____va_args639), | |
NULL, | |
4 | |
}; | |
#line 13 "/home/cpup/code/poland-ooc/src/poland/runtime/Call.ooc" | |
return lang_String__String_format((lang_String__String*) __strLit532, (____va_args639.__f1 = lang_String__String_class(), ____va_args639.__f2 = poland_runtime_Object__PObject_id(this->ground), ____va_args639.__f3 = lang_String__String_class(), ____va_args639.__f4 = poland_userdata_MsgSeq__PMsgSeq_id(this->seq), ____va_args639.__f5 = lang_String__String_class(), ____va_args639.__f6 = poland_runtime_Object__PObject_id(this->receiver), ____va_args639.__f7 = lang_String__String_class(), ____va_args639.__f8 = poland_userdata_Msg__PMsg_id(this->msg), ____va640)); | |
} | |
lang_String__String* poland_runtime_Call__PCall_type_impl(poland_runtime_Call__PCall* this) { | |
#line 14 "/home/cpup/code/poland-ooc/src/poland/runtime/Call.ooc" | |
return __strLit258; | |
} | |
lang_String__String* poland_runtime_Call__PCall_toString_impl(poland_runtime_Call__PCall* this) { | |
#line 16 "/home/cpup/code/poland-ooc/src/poland/runtime/Call.ooc" | |
struct { | |
lang_types__Pointer __f1; | |
lang_String__String* __f2; | |
lang_types__Pointer __f3; | |
lang_String__String* __f4; | |
} ____va_args641; | |
#line 16 "/home/cpup/code/poland-ooc/src/poland/runtime/Call.ooc" | |
lang_VarArgs__VarArgs ____va642 = (lang_VarArgs__VarArgs) { | |
(void*) &(____va_args641), | |
NULL, | |
2 | |
}; | |
#line 16 "/home/cpup/code/poland-ooc/src/poland/runtime/Call.ooc" | |
return lang_String__String_format((lang_String__String*) __strLit533, (____va_args641.__f1 = lang_String__String_class(), ____va_args641.__f2 = poland_userdata_Msg__PMsg_toString(this->msg), ____va_args641.__f3 = lang_String__String_class(), ____va_args641.__f4 = poland_userdata_UserData__PUserData_toString((poland_userdata_UserData__PUserData*) this->receiver), ____va642)); | |
} | |
poland_runtime_Object__PObject* poland_runtime_Call__PCall_send_impl(poland_runtime_Call__PCall* this) { | |
#line 42 "/home/cpup/code/poland-ooc/src/poland/runtime/Call.ooc" | |
return poland_runtime_Object__PObject_receive(this->receiver, this); | |
} | |
poland_runtime_Call__PCall* poland_runtime_Call__PCall_dup_impl(poland_runtime_Call__PCall* this) { | |
#line 46 "/home/cpup/code/poland-ooc/src/poland/runtime/Call.ooc" | |
poland_userdata_Msg__PMsg* nmsg = poland_userdata_Msg__PMsg_dup(this->msg); | |
#line 48 "/home/cpup/code/poland-ooc/src/poland/runtime/Call.ooc" | |
struct { | |
lang_types__Pointer __f1; | |
poland_userdata_Msg__PMsg* __f2; | |
} ____va_args529; | |
#line 48 "/home/cpup/code/poland-ooc/src/poland/runtime/Call.ooc" | |
lang_VarArgs__VarArgs ____va530 = (lang_VarArgs__VarArgs) { | |
(void*) &(____va_args529), | |
NULL, | |
1 | |
}; | |
#line 48 "/home/cpup/code/poland-ooc/src/poland/runtime/Call.ooc" | |
return poland_runtime_Call__PCall_new(this->runtime, this->ground, poland_userdata_MsgSeq__PMsgSeq_new((____va_args529.__f1 = poland_userdata_Msg__PMsg_class(), ____va_args529.__f2 = nmsg, ____va530)), this->receiver, nmsg); | |
} | |
poland_runtime_Object__PObject* poland_runtime_Call__PCall_evalArg_impl(poland_runtime_Call__PCall* this, lang_Numbers__Int i) { | |
#line 52 "/home/cpup/code/poland-ooc/src/poland/runtime/Call.ooc" | |
poland_userdata_MsgSeq__PMsgSeq* __genCall531 = NULL; | |
#line 52 "/home/cpup/code/poland-ooc/src/poland/runtime/Call.ooc" | |
return poland_userdata_MsgSeq__PMsgSeq_run_g((structs_ArrayList__ArrayList_get(this->msg->args, (uint8_t*) &(__genCall531), i), __genCall531), this->runtime, this->ground); | |
} | |
void poland_runtime_Call__PCall___defaults___impl(poland_runtime_Call__PCall* this) { | |
poland_userdata_UserData__PUserData___defaults___impl((poland_userdata_UserData__PUserData*) this); | |
} | |
lang_String__String* poland_runtime_Call__PCall_id(poland_runtime_Call__PCall* this) { | |
return (lang_String__String*) ((poland_userdata_UserData__PUserDataClass *)((lang_types__Object *)this)->class)->id((poland_userdata_UserData__PUserData*)this); | |
} | |
lang_String__String* poland_runtime_Call__PCall_type(poland_runtime_Call__PCall* this) { | |
return (lang_String__String*) ((poland_userdata_UserData__PUserDataClass *)((lang_types__Object *)this)->class)->type((poland_userdata_UserData__PUserData*)this); | |
} | |
lang_String__String* poland_runtime_Call__PCall_toString(poland_runtime_Call__PCall* this) { | |
return (lang_String__String*) ((poland_userdata_UserData__PUserDataClass *)((lang_types__Object *)this)->class)->toString((poland_userdata_UserData__PUserData*)this); | |
} | |
poland_runtime_Object__PObject* poland_runtime_Call__PCall_send(poland_runtime_Call__PCall* this) { | |
return (poland_runtime_Object__PObject*) ((poland_runtime_Call__PCallClass *)((lang_types__Object *)this)->class)->send((poland_runtime_Call__PCall*)this); | |
} | |
poland_runtime_Call__PCall* poland_runtime_Call__PCall_dup(poland_runtime_Call__PCall* this) { | |
return (poland_runtime_Call__PCall*) ((poland_userdata_UserData__PUserDataClass *)((lang_types__Object *)this)->class)->dup((poland_userdata_UserData__PUserData*)this); | |
} | |
poland_runtime_Object__PObject* poland_runtime_Call__PCall_evalArg(poland_runtime_Call__PCall* this, lang_Numbers__Int i) { | |
return (poland_runtime_Object__PObject*) ((poland_runtime_Call__PCallClass *)((lang_types__Object *)this)->class)->evalArg((poland_runtime_Call__PCall*)this, i); | |
} | |
void poland_runtime_Call__PCall___defaults__(poland_runtime_Call__PCall* this) { | |
((lang_types__ObjectClass *)((lang_types__Object *)this)->class)->__defaults__((lang_types__Object*)this); | |
} | |
poland_runtime_Call__PCall* poland_runtime_Call__PCall_new(poland_runtime_Runtime__PRuntime* runtime, poland_runtime_Object__PObject* ground, poland_userdata_MsgSeq__PMsgSeq* seq, poland_runtime_Object__PObject* receiver, poland_userdata_Msg__PMsg* msg) { | |
#line 11 "/home/cpup/code/poland-ooc/src/poland/runtime/Call.ooc" | |
poland_runtime_Call__PCall* this = ((poland_runtime_Call__PCall*) (lang_types__Class_alloc__class((lang_types__Class*) poland_runtime_Call__PCall_class()))); | |
#line 11 "/home/cpup/code/poland-ooc/src/poland/runtime/Call.ooc" | |
poland_runtime_Call__PCall___defaults__(this); | |
#line 11 "/home/cpup/code/poland-ooc/src/poland/runtime/Call.ooc" | |
poland_runtime_Call__PCall_init((poland_runtime_Call__PCall*) this, runtime, ground, seq, receiver, msg); | |
#line 11 "/home/cpup/code/poland-ooc/src/poland/runtime/Call.ooc" | |
return this; | |
} | |
poland_runtime_Call__PCall* poland_runtime_Call__PCall_fromObjects_sym(poland_runtime_Runtime__PRuntime* runtime, poland_runtime_Object__PObject* receiver, lang_String__String* id, lang_VarArgs__VarArgs args) { | |
#line 18 "/home/cpup/code/poland-ooc/src/poland/runtime/Call.ooc" | |
return poland_runtime_Call__PCall_fromObjects(runtime, receiver, (poland_userdata_UserData__PUserData*) (poland_userdata_Symbol__PSymbol_new(id)), args); | |
} | |
poland_runtime_Call__PCall* poland_runtime_Call__PCall_fromObjects(poland_runtime_Runtime__PRuntime* runtime, poland_runtime_Object__PObject* receiver, poland_userdata_UserData__PUserData* id, lang_VarArgs__VarArgs args) { | |
#line 22 "/home/cpup/code/poland-ooc/src/poland/runtime/Call.ooc" | |
poland_runtime_Object__PObject* ground = poland_runtime_Object__PObject_new(runtime); | |
#line 23 "/home/cpup/code/poland-ooc/src/poland/runtime/Call.ooc" | |
poland_userdata_Msg__PMsg* msg = poland_userdata_Msg__PMsg_new(id); | |
#line 24 "/home/cpup/code/poland-ooc/src/poland/runtime/Call.ooc" | |
struct { | |
lang_types__Pointer __f1; | |
poland_userdata_Msg__PMsg* __f2; | |
} ____va_args524; | |
#line 24 "/home/cpup/code/poland-ooc/src/poland/runtime/Call.ooc" | |
lang_VarArgs__VarArgs ____va525 = (lang_VarArgs__VarArgs) { | |
(void*) &(____va_args524), | |
NULL, | |
1 | |
}; | |
#line 24 "/home/cpup/code/poland-ooc/src/poland/runtime/Call.ooc" | |
poland_userdata_MsgSeq__PMsgSeq* seq = poland_userdata_MsgSeq__PMsgSeq_new((____va_args524.__f1 = poland_userdata_Msg__PMsg_class(), ____va_args524.__f2 = msg, ____va525)); | |
#line 26 "/home/cpup/code/poland-ooc/src/poland/runtime/Call.ooc" | |
lang_Numbers__Int i = 1; | |
#line 27 "/home/cpup/code/poland-ooc/src/poland/runtime/Call.ooc" | |
__poland_runtime_Call_closure714_ctx* __ctx715 = lang_Memory__gc_malloc(((lang_types__Class*)__poland_runtime_Call_closure714_ctx_class())->size); | |
#line 27 "/home/cpup/code/poland-ooc/src/poland/runtime/Call.ooc" | |
(*(__ctx715)) = (__poland_runtime_Call_closure714_ctx) { | |
msg, | |
ground, | |
&(i) | |
}; | |
#line 27 "/home/cpup/code/poland-ooc/src/poland/runtime/Call.ooc" | |
lang_types__Closure __closure716 = (lang_types__Closure) { | |
poland_runtime_Call____poland_runtime_Call_closure714_thunk, | |
__ctx715 | |
}; | |
#line 27 "/home/cpup/code/poland-ooc/src/poland/runtime/Call.ooc" | |
lang_VarArgs__VarArgs_each(args, __closure716); | |
#line 38 "/home/cpup/code/poland-ooc/src/poland/runtime/Call.ooc" | |
return poland_runtime_Call__PCall_new(runtime, ground, seq, receiver, msg); | |
} | |
void poland_runtime_Call__PCall___load__() { | |
poland_userdata_UserData__PUserData___load__(); | |
} | |
poland_runtime_Call__PCallClass *poland_runtime_Call__PCall_class(){ | |
static _Bool __done__ = false; | |
static poland_runtime_Call__PCallClass class = | |
{ | |
{ | |
{ | |
{ | |
{ | |
.instanceSize = sizeof(poland_runtime_Call__PCall), | |
.size = sizeof(void*) | |
}, | |
.__defaults__ = (void*) poland_runtime_Call__PCall___defaults___impl, | |
.__destroy__ = (void*) lang_types__Object___destroy___impl, | |
}, | |
}, | |
.id = (void*) poland_runtime_Call__PCall_id_impl, | |
.type = (void*) poland_runtime_Call__PCall_type_impl, | |
.qid = (void*) poland_userdata_UserData__PUserData_qid_impl, | |
.toString = (void*) poland_runtime_Call__PCall_toString_impl, | |
.dup = (void*) poland_runtime_Call__PCall_dup_impl, | |
}, | |
.send = (void*) poland_runtime_Call__PCall_send_impl, | |
.evalArg = (void*) poland_runtime_Call__PCall_evalArg_impl, | |
}; | |
lang_types__Class *classPtr = (lang_types__Class *) &class; | |
if(!__done__){ | |
classPtr->super = (lang_types__Class*) poland_userdata_UserData__PUserData_class(); | |
__done__ = true; | |
classPtr->name = (void*) lang_String__makeStringLiteral("PCall", 5); | |
} | |
return &class; | |
} | |
void __poland_runtime_Call_closure714_ctx___cover_defaults__(__poland_runtime_Call_closure714_ctx* this) { | |
} | |
void __poland_runtime_Call_closure714_ctx___load__() { | |
lang_types__Class___load__(); | |
} | |
__poland_runtime_Call_closure714_ctxClass *__poland_runtime_Call_closure714_ctx_class(){ | |
static _Bool __done__ = false; | |
static __poland_runtime_Call_closure714_ctxClass class = | |
{ | |
{ | |
{ | |
{ | |
.instanceSize = sizeof(__poland_runtime_Call_closure714_ctx), | |
.size = sizeof(__poland_runtime_Call_closure714_ctx) | |
}, | |
.__defaults__ = (void*) lang_types__Class___defaults___impl, | |
.__destroy__ = (void*) lang_types__Object___destroy___impl, | |
}, | |
}, | |
}; | |
lang_types__Class *classPtr = (lang_types__Class *) &class; | |
if(!__done__){ | |
classPtr->super = (lang_types__Class*) lang_types__Object_class(); | |
__done__ = true; | |
classPtr->name = (void*) lang_String__makeStringLiteral("__poland_runtime_Call_closure714_ctx", 36); | |
} | |
return &class; | |
} | |
void poland_runtime_Call_load() { | |
static bool __done__ = false; | |
if (!__done__){ | |
__done__ = true; | |
lang_Abstractions_load(); | |
lang_Buffer_load(); | |
lang_BufferIterator_load(); | |
lang_Character_load(); | |
lang_Exception_load(); | |
lang_Format_load(); | |
lang_IO_load(); | |
lang_Iterators_load(); | |
lang_Memory_load(); | |
lang_Numbers_load(); | |
lang_String_load(); | |
lang_stdlib_load(); | |
lang_types_load(); | |
lang_VarArgs_load(); | |
poland_runtime_Object_load(); | |
poland_runtime_Runtime_load(); | |
poland_userdata_Msg_load(); | |
poland_userdata_MsgSeq_load(); | |
poland_userdata_UserData_load(); | |
poland_userdata_Symbol_load(); | |
poland_userdata_String_load(); | |
poland_runtime_Call__PCall___load__(); | |
__poland_runtime_Call_closure714_ctx___load__(); | |
__strLit533 = (void*) lang_String__makeStringLiteral("%s -> %s", 8); | |
__strLit532 = (void*) lang_String__makeStringLiteral("%s-%s-%s-%s", 11); | |
__strLit258 = (void*) lang_String__makeStringLiteral("poland:call", 11); | |
} | |
} | |
void poland_runtime_Call____poland_runtime_Call_closure714(lang_types__Class* T, lang_types__Class* T, poland_userdata_Msg__PMsg* msg, poland_runtime_Object__PObject* ground, lang_Numbers__Int* i, uint8_t* arg) { | |
#line 28 "/home/cpup/code/poland-ooc/src/poland/runtime/Call.ooc" | |
if (lang_types__Class_inheritsFrom__quest__class((lang_types__Class*) T, (lang_types__Class*) (poland_runtime_Object__PObject_class()))){ | |
#line 29 "/home/cpup/code/poland-ooc/src/poland/runtime/Call.ooc" | |
poland_runtime_Object__PObject* obj = NULL; | |
#line 29 "/home/cpup/code/poland-ooc/src/poland/runtime/Call.ooc" | |
obj = (* (poland_runtime_Object__PObject**)arg); | |
#line 29 "/home/cpup/code/poland-ooc/src/poland/runtime/Call.ooc" | |
{ | |
#line 30 "/home/cpup/code/poland-ooc/src/poland/runtime/Call.ooc" | |
poland_userdata_Symbol__PSymbol* sym = poland_userdata_Symbol__PSymbol_new(lang_Numbers__Int_toString((lang_Numbers__Int) (*i))); | |
#line 31 "/home/cpup/code/poland-ooc/src/poland/runtime/Call.ooc" | |
struct { | |
lang_types__Pointer __f1; | |
poland_userdata_Msg__PMsg* __f2; | |
} ____va_args526; | |
#line 31 "/home/cpup/code/poland-ooc/src/poland/runtime/Call.ooc" | |
lang_VarArgs__VarArgs ____va527 = (lang_VarArgs__VarArgs) { | |
(void*) &(____va_args526), | |
NULL, | |
1 | |
}; | |
#line 1 "/home/cpup/code/poland-ooc/src/poland/runtime/Call.ooc" | |
poland_userdata_MsgSeq__PMsgSeq* __genArg528 = poland_userdata_MsgSeq__PMsgSeq_new((____va_args526.__f1 = poland_userdata_Msg__PMsg_class(), ____va_args526.__f2 = poland_userdata_Msg__PMsg_new((poland_userdata_UserData__PUserData*) (sym)), ____va527)); | |
#line 31 "/home/cpup/code/poland-ooc/src/poland/runtime/Call.ooc" | |
structs_ArrayList__ArrayList_add(msg->args, (uint8_t*) &(__genArg528)); | |
#line 32 "/home/cpup/code/poland-ooc/src/poland/runtime/Call.ooc" | |
poland_runtime_Object__PObject___OP_IDX_ASS_PUserData_PObject__PObject(ground, (poland_userdata_UserData__PUserData*) (sym), obj); | |
#line 33 "/home/cpup/code/poland-ooc/src/poland/runtime/Call.ooc" | |
(*i) += 1; | |
} | |
}; | |
} | |
void poland_runtime_Call____poland_runtime_Call_closure714_thunk(lang_types__Class* T, lang_types__Class* T, uint8_t* arg, __poland_runtime_Call_closure714_ctx* __context__) { | |
#line 27 "/home/cpup/code/poland-ooc/src/poland/runtime/Call.ooc" | |
poland_runtime_Call____poland_runtime_Call_closure714((lang_types__Class*)T, (lang_types__Class*)T, (*__context__).msg, (*__context__).ground, (*__context__).i, (uint8_t*) arg); | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import Object, Runtime | |
import poland/userdata/[Msg, MsgSeq, UserData, Symbol, String] | |
PCall: class extends PUserData { | |
runtime: PRuntime | |
seq: PMsgSeq | |
msg: PMsg | |
ground: PObject | |
receiver: PObject | |
init: func(=runtime, =ground, =seq, =receiver, =msg) | |
id: func -> String { "#{ground id()}-#{seq id()}-#{receiver id()}-#{msg id()}" } | |
type: func -> String { "poland:call" } | |
toString: func -> String { "#{msg} -> #{receiver}" } | |
fromObjects: static func~sym(runtime: PRuntime, receiver: PObject, id: String, args: ...) -> This { fromObjects(runtime, receiver, PSymbol new(id), args) } | |
//fromObjects: static func~str(runtime: PRuntime, receiver: PObject, id: String, args: ...) -> This { fromObjects(runtime, receiver, PString new(id), args) } | |
fromObjects: static func(runtime: PRuntime, receiver: PObject, id: PUserData, args: ...) -> This { | |
ground := PObject new(runtime) | |
msg := PMsg new(id) | |
seq := PMsgSeq new(msg) | |
i := 1 | |
args each(|arg| | |
match arg { | |
case obj: PObject => { | |
sym := PSymbol new(i toString()) | |
msg args add(PMsgSeq new(PMsg new(sym))) | |
ground[sym] = obj | |
i += 1 | |
} | |
} | |
) | |
return This new(runtime, ground, seq, receiver, msg) | |
} | |
send: func -> PObject { | |
receiver receive(this) | |
} | |
dup: func -> This { | |
nmsg := msg dup() | |
This new(runtime, ground, PMsgSeq new(nmsg), receiver, nmsg) | |
} | |
evalArg: func(i: Int) -> PObject { | |
return msg args get(i) run(runtime, ground) | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment