| ||Epsilon Extension Language Features|
Epsilon User's Manual and Reference >
Introduction to EEL >
Epsilon Extension Language Features
The Epsilon Extension Language (EEL) allows you to write
your own commands and greatly modify and customize the editor to suit
your style. EEL provides a great deal of power. We used
it to write all of Epsilon's commands.
You can use it to write new commands, or to modify
the ones that we provide.
We call EEL an extension language because you use it to extend
the editor. Some people call such things macro languages. We
use the term "macro" to refer to the keyboard macros you can create
in Epsilon, or to EEL's C-like textual macros, but not to the
commands or extensions you write in EEL.
EEL has quite a few features that most extension languages don't:
- Block structure, with a syntax resembling the C programming
- Full flow control: if, while, for, do, switch and
goto. Additionally, EEL has a non-local goto facility provided by
setjmp and longjmp.
- Complete set of data types, including integers, arrays,
structures, and pointers. In addition, you may define new
data types and allocate data objects dynamically.
- Subroutines with parameter passing. You may invoke subroutines
recursively, and can designate any subroutine a command.
- Rich set of arithmetic and logical operators. EEL has all
the operators of the C programming language.
- A powerful set of primitives. We wrote all of Epsilon's
commands in EEL.
- Global variables accessible everywhere, and local variables
accessible only in the current routine. EEL also has
buffer-specific variables that change from buffer to buffer, and
window-specific variables that have a different value in each
In addition, the runtime system provides a source level tracing
debugger, and an execution profiler.
Epsilon's source subdirectory contains the EEL source code to all
Epsilon's commands. You may find it helpful to look at this source
code when learning the extension language. Even after you've become
a proficient EEL programmer, you probably will find yourself
referring to the source code when writing your own extensions, to see
how a particular command accomplishes some task.
Copyright (C) 1984, 2020 by Lugaru Software Ltd. All rights reserved.