All pastes #2079131 Raw Edit

Stuff

public text v1 · immutable
#2079131 ·published 2011-08-30 17:25 UTC
rendered paste body
implement T;

include "sys.m";
include "draw.m";
include "sort.m";
include "sh.m";
include "lists.m";

T: module
{
	init: fn(nil: ref Draw->Context, argv: list of string);
};

Data: adt{
	i: int;
};

SortData: adt{
        gt: fn(this: self ref SortData, a, b: ref Data): int;
};

SortData.gt(nil: self ref SortData, a, b: ref Data): int
{
	return a.i > b.i;
}

init(nil: ref Draw->Context, nil: list of string)
{
	sys	:= load Sys Sys->PATH;
	sort	:= load Sort Sort->PATH;
        cmd	:= load Command "/dis/ls.dis";
	noncmd	:= load Lists Lists->PATH;
	if(sort == nil)
		sys->print("load sort: %r\n");
	if(cmd == nil)
		sys->print("load cmd: %r\n");
	if(noncmd == nil)
		sys->print("load noncmd: %r\n");

	a := array[] of {ref Data(30), ref Data(10), ref Data(20)};
	sort->sort(ref SortData(), a);

	sys->print("a=(%d, %d, %d)\n", a[0].i, a[1].i, a[2].i);
}