Skip to content

Commit 16c4aa4

Browse files
Provide REAME information for this library.
1 parent dc4a612 commit 16c4aa4

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

README

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
This library is intended to solve the problem of source tracking for
2+
Common Lisp code.
3+
4+
By "source tracking", we mean that code elements that have a known
5+
origin in the form of a position in a file or in an editor buffer are
6+
associated with some kind of information about this origin.
7+
8+
Since the exact nature of such origin information depends on the
9+
Common Lisp implementation and the purpose of wanting to track that
10+
origin, we do not impose a particular structure of this information.
11+
Instead, we provide utilities for manipulating source code in the form
12+
of what we call concrete syntax trees (CSTs for short) that preserve
13+
this information about the origin.
14+
15+
For example, we provide code utilities for canonicalizing
16+
declarations, parsing lambda lists, separating declarations and
17+
documentation strings and code bodies, checking whether a form is a
18+
proper list, etc. All these utilities manipulate the code in the form
19+
of a CST, and provide CSTs as a result of the manipulation that
20+
propagates the origin information as much as possible.
21+
22+
In particular, we provide an "intelligent macroexpander". This
23+
function takes an original CST and the result of macroexpanding the
24+
RAW code version of that CST, and returns a new CST representing the
25+
expanded code in such a way that as much as possible of the origin
26+
information is preserved.

0 commit comments

Comments
 (0)