What is epil
============

You've probably seen the lndbase macro language already.
epil is the generic sublayer where the only effective operators are:
		"`", "'", "{", "}", ",", "\"
The rest of the control operators:
	"!", "@", "#", "$", "%", "^", "&", "*",
	"(", ")", "-", "=", "+", "[", "]", ":",
	";", """, "<", ">", ".", "/", "?", "~"
can be redefined.

epil is based on declaring coded/builtin macros from our program code
and expanding our macro library with the coded macros: \def, \undef
and the sequential argument notation.

By declaring coded macros and possibly redefining some control operators
we end up with a specific epil instance ready to act as a macro language
user interface to our library.

Some theory:
	Before the stage of user interface, a program should provide a well
	defined set of routines upon which the user interface will be
	constructed. Those routines are the entries to the pure code and
	should be abstracted from the input-output code.

	epil will export those entry points to the user as coded macros.
	epil will provide a dynamic user interface library based on the
	entry points of our code.

This is the basic concept of epil and this is how the first version was
written.

In the current implementation, epil is separated in two layers.
One which is just the parser and the argument stack with the operators:
	 "`", "'", "{", "}", ","
which however has no commands and does not execute anything.
The second layer defines the control operators:
	"\"	: for macros together with:
			 \def, \undef, \macrodef, \ifdef
	"$"	: for variables together with:
			\setvar, \ifvar
	"-"	: for variable destructor.
	"#"	: for internal program objects, like the C++ `this' member.
			\this

The control operators '$', '-', '#' are secondary though because they could
have been implemented with macros.

Send e-mail for questions.


Isn't `epil' a strange name ?

Well epil is a builtin/coded name and it does not have a definition. It does
not have any relation to coffee or vegetables but some say its related to
"pile". It contains the three universal constants e, pi and l and it sounds
like a programming language from the old days. What more can we ask for ?
