Let's see what we can achieve by reworking C syntax.
Nymph is a simple C like programming language.
Nymph acts as a preprocessor, converting Nymph files (extension *.n) into C files.
This project is very much in development... It is not production ready.
Nothing right now
-
Class-Based OOP
-
Subtyping
- TBD
-
Destructors?
-
Type Inference?
-
Reflection?
-
Default function arguments?
-
Lambdas?
mammal.n
#include <stdio.h>
#include <stdlib.h>
class Mammal {
+ int population = 0; // Class Variable (+)
- int height = 0, weight = 100; // Object Variable (-)
+ Mammal *init(int height, int weight) { // Class Method (+) Constructor
this->height = height;
this->weight = weight;
Mammal->population++;
return this;
}
- void print() { // Object Method (-)
printf("print instance properties...\n");
}
}
human.n
#include "mammal.n"
#include <stdio.h>
#include <stdlib.h>
class Human : Mammal {
- char *name = NULL; // Object Variable (-)
+ Human *init(char *name, int height, int weight) { // Class Method (+) Constructor
this = super->init(height, weight);
this->name = name;
return this;
}
- void died() { // Object Method (-) Constructor
free(this->name);
free(this);
Mammal->population--;
}
}
int main(void) {
char *name = malloc(5);
memset(name, 0, sizeof(name));
strcpy(name, "Fred");
Human *person1 = Human->init(name, 76, 146); // Class Method Constructor Call
person1->print(); // Object Method Call
person1->died(); // Object Method Call
return 0;
}
nymph -r human.n