All Projects → maelswarm → Nymph

maelswarm / Nymph

Licence: mit
🧚 A slightly different version of C.

Programming Languages

c
50402 projects - #5 most used programming language
language
365 projects

Projects that are alternatives of or similar to Nymph

Solpp
A solidity preprocessor and flattener CLI and library
Stars: ✭ 44 (-73.81%)
Mutual labels:  preprocessor
Pypreprocessor
A c-style macro preprocessor written in Python
Stars: ✭ 98 (-41.67%)
Mutual labels:  preprocessor
Stylus
Expressive, robust, feature-rich CSS language built for nodejs
Stars: ✭ 10,817 (+6338.69%)
Mutual labels:  preprocessor
Cxxctp
DEPRECATED. USE INSTEAD github.com/blockspacer/flextool
Stars: ✭ 58 (-65.48%)
Mutual labels:  preprocessor
Cessie
Transpile your CSS bundle to support CSS variables, calc, and future CSS for legacy browsers.
Stars: ✭ 81 (-51.79%)
Mutual labels:  preprocessor
Java Comment Preprocessor
The Most Powerful Multi-Pass Java Preprocessor
Stars: ✭ 111 (-33.93%)
Mutual labels:  preprocessor
Pre Short Closures
Stars: ✭ 36 (-78.57%)
Mutual labels:  preprocessor
Stylecow
Modern CSS to all browsers
Stars: ✭ 147 (-12.5%)
Mutual labels:  preprocessor
Fypp
Python powered Fortran preprocessor
Stars: ✭ 95 (-43.45%)
Mutual labels:  preprocessor
Jest Vue Preprocessor
Preprocessor that allows importing of .vue files in jest tests
Stars: ✭ 133 (-20.83%)
Mutual labels:  preprocessor
Stylable
Stylable - CSS for components
Stars: ✭ 1,109 (+560.12%)
Mutual labels:  preprocessor
Stylis.js
light – weight css preprocessor
Stars: ✭ 1,185 (+605.36%)
Mutual labels:  preprocessor
Surelog
SystemVerilog 2017 Pre-processor, Parser, Elaborator, UHDM Compiler. Provides IEEE Design/TB C/C++ VPI and Python AST API.
Stars: ✭ 116 (-30.95%)
Mutual labels:  preprocessor
I8086.js
16bit Intel 8086 / 80186 + X87 emulator written in TypeScript with REPL assembly compiler and tiny C compiler
Stars: ✭ 54 (-67.86%)
Mutual labels:  preprocessor
Video2tfrecord
Easily convert RGB video data (e.g. .avi) to the TensorFlow tfrecords file format for training e.g. a NN in TensorFlow. This implementation allows to limit the number of frames per video to be stored in the tfrecords.
Stars: ✭ 137 (-18.45%)
Mutual labels:  preprocessor
Manifold
Manifold plugs into Java to supplement it with powerful features, from Type-safe Metaprogramming (direct access to GraphQL, JSON, XML, etc.), Extension Methods, Operator Overloading, and Unit Expressions to an integrated Template Engine and a Preprocessor. All fully supported in IntelliJ IDEA and Android Studio. Simply add Manifold to your project and begin taking advantage of it.
Stars: ✭ 993 (+491.07%)
Mutual labels:  preprocessor
Jus
🍉 An opinionated tool for making static websites with browserify
Stars: ✭ 107 (-36.31%)
Mutual labels:  preprocessor
Kirby Webpack
💪 A Kirby CMS starter-kit with modern frontend tools
Stars: ✭ 150 (-10.71%)
Mutual labels:  preprocessor
Ecsharp
Home of LoycCore, the LES language of Loyc trees, the Enhanced C# parser, the LeMP macro preprocessor, and the LLLPG parser generator.
Stars: ✭ 141 (-16.07%)
Mutual labels:  preprocessor
Preprocessor
A future-facing CSS preprocessor (used by SUIT CSS)
Stars: ✭ 132 (-21.43%)
Mutual labels:  preprocessor

Nymph

Let's see what we can achieve by reworking C syntax.

Overview

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.

What's New

This project just recieved a complete overhaul.

Goals

Completed

  • Class-Based OOP

  • Subtyping

In Progress

  • TBD

Pending

  • Destructors?

  • Type Inference?

  • Reflection?

  • Default function arguments?

  • Lambdas?

Example

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
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].