Lugaru's Epsilon
Programmer's
Editor

Context:
Epsilon User's Manual and Reference
   . . .
   Changing Epsilon
   Introduction to EEL
      Epsilon Extension Language Features
      EEL Tutorial
   Epsilon Extension Language
      EEL Command Line Flags
      The EEL Preprocessor
      Lexical Rules
      . . .
      Syntax Summary
   . . .

Previous   Up    Next
Introduction to EEL  Introduction to EEL   EEL Tutorial


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 language.

  • 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 window.

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.



Previous   Up    Next
Introduction to EEL  Introduction to EEL   EEL Tutorial


Lugaru Copyright (C) 1984, 2012 Lugaru Software Ltd. All Rights Reserved.