/
CVS/
boards/CVS/
clans/
gmc/CVS/
help/CVS/
include/CVS/
players/
progs/CVS/
races/CVS/
system/CVS/
text/
text/CVS/
todo/
todo/CVS/
units/CVS/
uses gvm, Classes, TypInfo;

{$M+}
type GMath = class
     published
			 function cos(x : single) : single; stdcall;
     end;
{$M-}

function GMath.cos(x : single) : single; stdcall;
begin
  Result := System.Cos(x);
end;

var
	gm : GMath;
  sig : GSignature;
  c : GContext;
  cb : GCodeBlock;

begin
  sig.resultType := varSingle;
  setLength(sig.paramTypes, 1);
  sig.paramTypes[1] := varSingle;

  gm := GMath.Create;
  registerExternalMethod('cos', gm, gm.MethodAddress('cos'), sig);

  c := GContext.Create;

  cb := loadCode('test.cod');

  c.Load(cb);

  c.setEntryPoint('main');
  c.Execute;
end.