@@ -18,33 +18,49 @@ DHParser is open source software under the [MIT License](https://opensource.org/
Purpose
-------
Domain specific languages are widespread in computer sciences, but seem to be underused in the
Digital Humanities. While DSLs are often introduced to Digital-Humanities-projects as
[practical adhoc-solution][Müller_2016], these solutions are often somewhat "quick and dirty". In other words they are
more of a hack than a technology. The purpose of DHParsers is to introduce
[DSLs as a technology][Arnold_2016] to the Digital Humanities. It is based on the well known technology of
[EBNF][ISO_IEC_14977]-based parser generators, but employs the more modern form called "[parsing expression grammar][Ford_2004]"
and [parser combinators][Ford_20XX] as a variant of the classical recursive descent parser.
Why another parser generator? There are plenty of good parser generators out there, e.g. [Añez's grako parser generator][Añez_2017]. However, DHParser is
intended as a tool that is specifically geared towards digital humanities applications, while most existing parser
generators come from compiler construction toolkits for programming languages. Also, DHParser shall (in the future)
serve as a teching tool, which influences some of its design decisions such as, for example, clearly separating
the parsing, syntax-tree-transformation and compilation stages. Also, DHParser is intended as a tool to experiment with.
One possible research area is, how non [context-free grammars](https://en.wikipedia.org/wiki/Context-free_grammar)
such as the grammars of [TeX][tex_stackexchange_no_bnf] or [CommonMark][MacFarlane_et_al_2017] can be described with
declarative langauges in the spirit of but beyond EBNF, and what extensions of the parsing technology are necessary to
capture such languages.
Primary use case at the Bavarian Academy of Sciences and Humanities (for the time being):
A DSL for the "[Mittellateinische Wörterbuch](http://www.mlw.badw.de/)"!
Domain specific languages are widespread in computer sciences, but
seem to be underused in the Digital Humanities. While DSLs are
sometimes introduced to Digital-Humanities-projects as
[practical adhoc-solution][Müller_2016], these solutions are often
somewhat "quick and dirty". In other words they are more of a hack
than a technology. The purpose of DHParser is to introduce
[DSLs as a technology][Arnold_2016] to the Digital Humanities. It is
based on the well known technology of [EBNF][ISO_IEC_14977]-based
parser generators, but employs the more modern form called
"[parsing expression grammar][Ford_2004]" and
[parser combinators][Ford_20XX] as a variant of the classical
recursive descent parser.
Why another parser generator? There are plenty of good parser
generators out there,
e.g. [Añez's grako parser generator][Añez_2017]. However, DHParser is
intended as a tool that is specifically geared towards digital
humanities applications, while most existing parser generators come
from compiler construction toolkits for programming languages. Also,
DHParser shall (in the future) serve as a teching tool, which
influences some of its design decisions such as, for example, clearly
separating the parsing, syntax-tree-transformation and compilation
stages. Also, DHParser is intended as a tool to experiment with. One