Skip to content

Urquelle/sss

Repository files navigation

sss



compiler für eine c-ähnliche sprache.

#lade "W:/sss/data/expr.sss";

Vec3 :: struktur {
    x, y, z : n32;
}

master :: proc() -> n32 {
    a : g32 = 5;
    b : n32;
    c : [3][3] n32;
    v : Vec3;

    wenn a < 10 {
        test(*v.y);
    } sonst {
        res 33;
    }

    b = index(1);
    c[index(2)][b] = 15;

    res c[2][b];
}

test :: proc(x : *n32) {
    @x = 25;
}

index :: proc(i : n32) -> n32 {
    wenn i == 1 {
        res 1;
    } sonst {
        res 2;
    }
}

aktueller stand

die gesamte ausführung geschieht aktuell auf basis des selbsterzeugten, x64-ähnlichen, bytecode und einer vm.

derzeit werden folgende konstrukte, anweisungen, direktiven und ausdrücke unsterstützt.

  • datenstrukturen (structs)
  • globale variablen
  • prozeduren
  • prozeduraufrufe
  • bedingte ausführungen
  • schleifen
  • mathematische ausdrücke

das beispiel1.sss wird zum bytecode transformiert und ausgeführt, das in beispiel1.asm

datentypen

natürliche zahlen

natürliche zahlen sind positive, ganze zahlen angefangen bei 0. diese menge wird durch die spracheigenen datentypen n8, n16, n32 und n64 repräsentiert.

ganze zahlen

ganze zahlen sind positive und negative ganze zahlen. diese menge wird durch die spracheigenen datentypen g8, g16, g32 und g64 repräsentiert.

rationale zahlen

rationale zahlen sind alle zahlen, die einen quotienten zweier ganzer zahlen abbilden. diese menge wird durch die spracheigenen datentypen r32 und r64 repräsentiert.

About

compiler

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •