EEL - The Extensible Embeddable Language

Navigation

Home
Get EEL!
Documentation
Licensing
Site best viewed with any reasonably standards compliant browser.

Documentation

(These files are incomplete and outdated, but may provide some hints for now.)

eel-presentation.txt

eel-language.txt

eel-grammar.txt

eel-io.txt

eel-dsp.txt

eelbox.txt

Examples

/////////////////////////////////////////////
// Based on the Lua "Ackermann's Function"
// test code by Doug Bagley, for
// The Great Computer Language Shootout.
//
// EEL version by David Olofson, 2004, 2005
/////////////////////////////////////////////

function Ack(M, N)
{
	if not M
		return N + 1;
	else if not N
		return Ack(M - 1, 1);
	else
		return Ack(M - 1, Ack(M, N - 1));
}

export procedure test[n]
{
	if specified n
		local N = n;
	else
		N = 1;
	local t = getms();
	print("  Trying ", N, "...\n");
	print("    Ack(3,", N, "): ", Ack(3, N), "\n");
	print("      Time: ", getms() - t, " ms\n");
}

export function main
{
	if specified args[1]
		test((integer)(args[1]));
	else
	{
		print("Ackermann test:\n");
		test();
		test(2);
		test(3);
		if Ack(3, 1) != 13
			throw "Ack(3, 1) should return 13!";
		if Ack(3, 2) != 29
			throw "Ack(3, 2) should return 29!";
		if Ack(3, 3) != 61
			throw "Ack(3, 3) should return 61!";
		print("Ackermann test done.\n");
	}
	return 0;
}
		

Download

Requirements

EEL should be reasonably easy to build on any platform with a C compiler. To do interesting stuff, SDL 1.2 with SDL_image and SDL_net, and Audiality 2 are nice to have too.

Links