Skip to content

CharlesAverill/Purple

Repository files navigation

Purple Language Documentation

The standard language specification and compiler for Purple, a general-purpose, C-like language intended to introduce higher-level functionality and lower-level memory access.

Original Implementation

Installation

View the source here.

Dependencies

  • clang-{10+}
  • libclang-{10+}-dev

Purple may be built with cmake:

cmake -B build
cmake --build build

bin/purple example_file.prp

Grammar

BNF-formatted grammar for Purple can be found here: Purple Grammar Documentation

Examples

Purple uses C-style syntax, although this may change as the compiler is built

void main(void) {
    int bob;
    int alice;

    bob = 5;
    alice = 10;

    print bob + alice; // 15
    print bob > alice; // 0

    int bob_alice;
    bob_alice = 10 + 10 + bob + alice; // 35
    if(bob_alice > 30){
        print bob_alice;
    }

    int i;
    i = 0;
    while (i < 20) {
        print i;
        i = i + 1;
    } else {
        print i == 0 or true; // true
    }
}

More examples can be viewed here.