[Next] [Up] [Previous]
Next: Constructing the quasi-prefix Up:
Constructing high-level representations
Previous: Constructing high-level representations
Lisp-CLOS was chosen to implement AsTeR because of its
powerful development environment and object-oriented features.
However, Lisp-CLOS lacks tools such as lexical
analyzers and parser generators, e.g., LEX
and YACC. As a convenient way of getting the best of
both worlds, we designed a lexical analyzer called
lispify in LEX that outputs the input La)TeX
source in a canonical list representation. This list is then
read in by a recursive descent parser written in Lisp.
The general form of this list is [tex2html_wrap5372], where
token identifies the type of content encapsulated by
the list and body represents the content. The
recognizer returns a document object that encapsulates
the document instance being recognized. For example, given the
La)TeX input
[LVerbatim556]
LISPIFY produces
[LVerbatim561]
LISPIFY handles all of La)TeX concrete syntax.
The recursive descent parser examines the token at
the front of the input list and calls a token-specific
processing function on the rest of the list. Thus, given the
input (token body), the recognizer
executes
[displaymath5370]
The technique described so far is sufficient for handling
sections, enumerated lists and other textual content.
TV Raman
Thu Mar 9 20:10:41 EST 1995