Build-System

So in etwa könnte ein Buildsystem agieren

script;

Compiler is Executable
          , string[] as Attributes
implements
{
    construct( exe is string ) :=
    {
        executable( exe ); // Alle Funktionen der Basisklasse jetzt rufbar
    }
}
concretes Executable
{
    run is code() :=
    {
        Executable.Run( Executable.Application + " " + Attributes$ );
    }
}

// Ein Trigger ist ein Objekt, welches abhängig von einer Bedingung
// entweder einen Boolischen Wert übergibt.

Target is Trigger
       is string as Result
       is string[] as Dependencies
contains
{
    TargetList is global Target[];
}
implements
{
    construct( Result, Dependencies ) :=
      TargetList +: this;

    construct( Result, pattern is string ) :=
        construct( Result, io.File.List( pattern ) );

    as bool :=
    {
        resultDate = io.File.LastActivity( Result );

        Dependencies do
            resultData < io.File.LastActivity( value )
            then return true;

        return false;
    }
}

Project contains...?

Target( "application", "application.g" );
Target( "library", "lib*.g" );