The Dragon and Kangaroo Parser Framework Library

Links

Contact

If you wish to contact me about the D&K Parser Framework Library, or about this site, you can contact me as sgbest@users.sourceforge.net.

Credits

This site is hosted by:

SourceForge.net Logo

Hello!

Welcome to the website for the Dragon and Kangaroo Parser Framework Library (D&K PFL). As the D&K PFL project continues, more information will be published here.

What is the D&K PFL?

The Dragon and Kangaroo Parser Framework Library (D&K PFL) is to be a C++ framework for generating efficient parsers at compile-time. It will provide a collection of classes and templates with which to derive and define grammars, and have corresponding parsers automatically spring from parser templates.

In other words, you define your grammar in C++, and the corresponding parser is already there for you, without you having to write any parser code yourself!

But there's more to the D&K PFL than just writing grammars and generating parsers. It's a whole framework for parser development, which is designed to integrate nicely in C++ and with the C++ standard library. New kinds of grammatical constructs can be added with corresponding parser specialisations, and new kinds of grammars can be defined, built on top of the grammar bases already present. New kinds of parsers can be written, too!

The D&K PFL is designed to be generic, versatile and extensible, open-plan yet clear. It is hoped that it will also be relatively easy to use, and while this is important, it is not as important here as genericity and extensibility. It is, first and foremost, intended to be a framework for parser development, rather than just a parser generator.

The kind of thing for which this framework is primarily intended is the development of parser libraries. It is hoped that it will be useful for the development of more specific parser libraries, such as XML libraries, and for the developers of parser generators and other such text processing tools.

This is still a new project, though, and is still in the very early stages of development. The design is still undergoing significant, fundamental changes. However, progress is currently rapid, and it is hoped that some usable, though limited, versions will be available in the next few weeks.