Eric,
> Good idea David. I'd augment your diagram like this though:
Good point!
Are you thinking to Elisp, for which the parser is the built-in one
(`read')? If so I think it uses the parser framework too (parse-tree
management, hooks, partial re-parse, etc.). So I will change the
diagram like this:
+-----------------------------------------------------------+
| Languages/Grammars |
|=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=
=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=
=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8|
| C/C++, Java, Python, ELisp, Scheme, Texinfo, BNF, WY, ... |
+-----------------------------------------------------------+
| |
v |
+-------------------------+ |
| Common Grammar Spec. | |
+-------------------------+ |
| |
+----------------+----------------+ |
| | | |
v v v |
+--------------+ +--------------+ +--------------+ |
| LL Grammar | | LALR Grammar | | ... Grammar | |
| Framework | | Framework | | Framework | |
+--------------+ +--------------+ +--------------+ |
| | | |
v v v v
+--------------+ +--------------+ +--------------+ +-----------------+
| LL Parser | | LALR Parser | | ... Parser | | External Parser |
+--------------+ +--------------+ +--------------+ +-----------------+
| | | |
+----------------+----------------+ |
| |
v |
+-------------------------+ |
| Parser API | |
|=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=
=A8=A8=A8=A8=A8| |
| Common Parser Framework |<-------------------+
+-------------------------+
|
v
+-------------------------+
| Common Parse Tree Spec. |
|=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=
=A8=A8=A8=A8=A8|
| Parse Tree API |
+-------------------------+
|
v
+---------------------------------------------------+
| Applications |
|=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=
=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=A8=
=A8=A8|
| SemanticDB, Senator, Speedbar, Document, Analyse, |
| COGRE, ECB, JDEE, ... |
+---------------------------------------------------+
David
|