Sophie

Sophie

distrib > Mageia > 7 > armv7hl > media > core-updates > by-pkgid > 6caec9f6835c74234f9824813b9a55c9 > files > 98

djvulibre-3.5.27-5.3.mga7.armv7hl.rpm


MINIEXP/MINILISP
----------------

Files <miniexp.h> and <miniexp.cpp> in directory
<djvulibre-3.5/libdjvu/miniexp.h> implement the basic data
structure of a lisp interpreter: s-expressions.

S-expressions can be viewed as a simple and powerful
alternative to XML.  They are used in DjVu to handle
annotations.  Both the decoding api <ddjvuapi.h> and program
<djvused> use s-expressions to describe the hidden text
information and the navigation information (bookmarks.)

Comments in file <miniexp.h> describe which s-expressions
are supported, how they are represented in text files, and
which functions are available to handle them.


During the development of <miniexp.h> and <miniexp.cpp> it
appeared that the best way to test s-expressions was to make
the last step and program a complete lisp interpreter.  
This also makes a perfect example of using <miniexp.h>.

The core interpreter is in file <minilisp.cpp>.
Startup definitions are in file <minilisp.in>.
Just type <make> to compile it.

Exercise: speed up the interpreter by
accelerating the function lookup().

- Leon Bottou, 
  September 2005