Created
July 16, 2023 23:35
-
-
Save Frityet/d7571b8237073320ab39fdeacc456250 to your computer and use it in GitHub Desktop.
Pointer.h
This file contains 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
#include "ObjFW.h" | |
#define class @interface | |
#define extends : | |
#define end @end | |
#define public @public | |
#define private @private | |
#define declare | |
#define method - | |
#define procedure + | |
#define which | |
#define returns ( | |
#define named ) | |
#define with : | |
#define parametres ( | |
#define parametre | |
#define and | |
#define of | |
#define type : ( | |
#define implementation @implementation | |
#define define | |
#define set | |
#define equal = | |
#define to | |
#define if if ( | |
#define then ) | |
#define is == | |
#define not ! | |
#define has == | |
#define no ! | |
#define value 1 | |
#define comprises | |
#define these | |
#define fields { | |
#define and | |
#define methods } | |
#define also | |
#define finally | |
//set field(data) in(self) to | |
//should become | |
//self->data | |
#define FIELD_ACCESOR(field, obj) (obj)->field | |
#define field(...) FIELD_ACCESOR(__VA_ARGS__) | |
#define in , | |
class Pointer extends OFObject and comprises of these fields | |
public void *data; | |
public size_t size; | |
and these methods | |
declare procedure which returns instancetype named pointerFromData with parametres void * named data and parametre size of type size_t named size; | |
declare method which returns instancetype named initWithData with parametres void * named data and parametre size of type size_t named size; | |
end | |
implementation of Pointer | |
define procedure which returns instancetype named pointerFromData with parametres void * named dat and parametre size of type size_t named siz | |
{ return [[self alloc] initWithData: dat size: siz]; } | |
define method which returns instancetype named initWithData with parametres void * named dat and parametre size of type size_t named siz | |
{ | |
set self equal to [super init]; | |
if self has no value then also return no value; | |
else { | |
set field(data in self) equal to dat; | |
set field(size in self) equal to siz; | |
} | |
finally return self; | |
} | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment