Skip to content

Instantly share code, notes, and snippets.

@CoderPuppy
Created January 6, 2014 16:37
Show Gist options
  • Save CoderPuppy/8285499 to your computer and use it in GitHub Desktop.
Save CoderPuppy/8285499 to your computer and use it in GitHub Desktop.
/* 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);
}
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