diff --git a/article/Languages.md b/article/Languages.md index 21565d8..e6628e3 100644 --- a/article/Languages.md +++ b/article/Languages.md @@ -3052,6 +3052,38 @@ * reference: true * license: Unknown License * host-language: [Python][] + +### Fountain + +* type: Meta-language +* inception-date: 2023 +* genre: Experimental language +* development-stage: unfinished +* paradigms: Metalanguage +* reference-distribution: [Fountain distribution](https://catseye.tc/distribution/Fountain_distribution) + +Sample program: + + Goal ::= + <. a = 0 .> { "a" <. a += 1 .> } <. a = n .> + <. b = 0 .> { "b" <. b += 1 .> } <. b = n .> + <. c = 0 .> { "c" <. c += 1 .> } <. c = n .> + ; + +Fountain is a grammar formalism capable of expressing context-sensitive languages (CSLs), +and supporting both efficient parsing *and* efficient generation of strings +in to those languages. + +The example grammar above both parses and generates strings of +the classic CSL `a`^_n_ `b`^_n_ `c`^_n_. In both directions it +operates deterministically, and thus efficiently, guided by the +interspersed semantic constraints. + +#### Reference Implementation: fountain + +* license: Unknown license +* host-language: [Haskell][] +* implementation-type: parser, generator - - - - diff --git a/distribution/distributions.json b/distribution/distributions.json index ca57a35..e2446b0 100644 --- a/distribution/distributions.json +++ b/distribution/distributions.json @@ -1565,6 +1565,11 @@ "revision": "0.0", "url": "https://catseye.tc/distfiles/fountain-0.1.zip", "version": "0.1" + }, + { + "revision": "0.0", + "url": "https://catseye.tc/distfiles/fountain-0.2.zip", + "version": "0.2" } ], "reponame": "Fountain",