1
0
forked from GitHub/gf-rgl

Move everything related to synopsis into subfolder

Clean up some unused and generated files
This commit is contained in:
John J. Camilleri
2018-11-12 10:05:42 +01:00
parent 3ac2bcc8af
commit 74384044c9
26 changed files with 94 additions and 4407 deletions

51
doc/synopsis/example.txt Normal file
View File

@@ -0,0 +1,51 @@
The standard way of building an application has the following modules.
An abstract syntax:
```
abstract Music = {
cat
Kind,
Property ;
fun
PropKind : Kind -> Property -> Kind ;
Song : Kind ;
American : Property ;
}
```
A domain lexicon interface:
```
interface LexMusic = open Cat in {
oper
song_N : N ;
american_A : A ;
}
```
A functor on ``Syntax`` and the domain lexicon interface:
```
incomplete concrete MusicI of Music = open Syntax, MusicLex in {
lincat
Kind = CN ;
Property = AP ;
lin
PropKind k p = mkCN p k ;
Song = mkCN song_N ;
American = mkAP american_A ;
}
```
For each language, an instance of the domain lexicon:
```
instance LexMusicGer of LexMusic = CatGer ** open ParadigmsGer in {
oper
song_N = mkN "Lied" "Lieder" neuter ;
american_A = mkA "amerikanisch" ;
}
```
For each language, an instantiation of the functor:
```
--# -path=.:present:prelude
concrete MusicGer of Music = MusicI with
(Syntax = SyntaxGer),
(LexMusic = LexMusicGer) ;
```