Last active
October 12, 2015 23:38
-
-
Save htor/4105033 to your computer and use it in GitHub Desktop.
makaroni-suppe
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
#include <stdio.h> | |
#include <stdlib.h> | |
#include <string.h> | |
/* function aliases */ | |
#define talk printf | |
#define die talk | |
#define space calloc | |
/* keywords */ | |
#define give return | |
#define when while( | |
#define dowhen for( | |
#define perhaps if( | |
#define weight sizeof | |
#define neverchanging const | |
#define maketype typedef | |
#define empty NULL | |
/* types */ | |
#define nothing void | |
#define integer int | |
#define byte char | |
#define sink float | |
#define quadruple double | |
#define blob struct | |
#define arrow * | |
#define lettersequence char * | |
/* start statements */ | |
#define about ( | |
#define uses ( | |
#define has ( | |
#define with ( | |
#define of ( | |
#define and_a , | |
#define and_with , | |
#define plus , | |
#define gets = | |
#define using { | |
/* end statements */ | |
#define slightly ; | |
#define back ; | |
#define set ; | |
#define now ); | |
#define done ) | |
#define in ) { | |
#define finish } | |
#define called ) | |
#define then ) { | |
#define relax } | |
/* operators */ | |
#define neg - | |
#define add + | |
#define divide / | |
#define multiply * | |
#define lesser < | |
#define bigger > | |
#define alike == | |
#define unlike != | |
#define shrink -- | |
#define grow ++ | |
#define and && | |
#define or || | |
#define not ! | |
#define array [] | |
#define home & | |
#define member -> | |
#define inside * | |
integer ONE gets 1 set | |
integer ZERO gets 0 set | |
maketype blob using | |
integer header set | |
byte data[1024] set | |
finish pkg set | |
nothing dostuff has neverchanging lettersequence str and_a integer num in | |
perhaps strlen with str called alike 0 or str alike NULL in | |
die with "zero length string or NULL arrow!" now | |
give back | |
finish | |
when num bigger 0 then | |
talk with str now | |
shrink num slightly | |
relax | |
finish | |
pkg arrow pkg_new uses byte arrow d in | |
perhaps d alike empty then | |
give empty back | |
finish | |
pkg arrow p gets calloc with weight of pkg done plus 0 now | |
p member header gets weight of pkg now | |
strcpy with p member data plus d now | |
give p back | |
finish | |
integer main uses integer argc plus neverchanging lettersequence argv array in | |
integer i gets 0 set | |
when inside (grow argv) unlike empty then | |
talk about "argv: %s\n" plus inside argv now | |
grow i slightly | |
relax | |
talk about "you provided %d arguments\n" plus i now | |
pkg arrow myblob gets pkg_new of "a new package" now | |
talk about "myblob's data: %s\n" plus myblob member data now | |
finish |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment