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" );