Parsely FAQ -- distributed with version 0.1.0.
Last updated 9 Apr 2000.
(c)2000 Nick Mathewson. I'll probably release this document under the
GNU Free Documentation License, as soon as I understand it. ;) For now,
treat is as being GPL.
Please contact nickm@mit.edu with any questions.
1. GENERAL INFORMATION
1.1. What is Parsely?
Parsely is a programming tool designed to make it easier to manipulate data
stored in arbitrary file formats. It should be particularly useful for
programmers who want to write configuration tools.
To write a program with Parsely, you first write a description of the file
format you need to parse. Parsely uses this description to read the file
into memory as a data structure, which you can manipulate in arbitrary ways,
and later save back to disk. When you save the file, Parsely will preserve
all comments and formatting.
Parsely is written in Python, but should support C by the end of May.
Please consult the documentation to see an example of Parsely in action.
1.2. What is Parsely _not_?
Parsely is not a new scanner or parser.
The authors of flex, pcre, bison, and SPARK have spent a lot of time
tuning and debugging their code. Rather than duplicating their effort,
Parsely wraps their tools under a uniform interface.
Parsely is not a replacement for Linuxconf.
A general-purpose configuration tool needs to provide a GUI, and present
information to the user on a semantic level. Parsely does neither of
these.
Parsely is not a good way to implement new configuration languages.
We have enough incompatible file formats as it is. If you're writing a
new tool that needs to store configuration information, please consider
using XML, shell variables, GConf, or some other general-purpose
solution.
Parsely is not finished.
Currently, Parsely is usable and fairly well tested. It is not, however,
as full-featured as I'd like. Most notable, I'd like it to have better
support for includes, and for it to support C-like languages.
1.3. What makes Parsely different from other tools?
* Parsely can handle arbitrary context-free grammars, not just line-based
file formats.
* Parsely is designed to be cross-language. Though the current
implementation is Python-only, I expect to be able to generate C-based
parsers by the end of May.
* Parsely preserves comments and whitespace.
2. USING PARSELY
[no entries yet]
3. DESIGN RATIONALE
[no entries yet]