Skip to content

Instantly share code, notes, and snippets.

@Frityet
Created July 16, 2023 23:35
Show Gist options
  • Save Frityet/d7571b8237073320ab39fdeacc456250 to your computer and use it in GitHub Desktop.
Save Frityet/d7571b8237073320ab39fdeacc456250 to your computer and use it in GitHub Desktop.
Pointer.h
#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