Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
curry
curry-frontend
Commits
33613b6a
Commit
33613b6a
authored
Apr 06, 2020
by
Fredrik Wieczerkowski
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update build instructions
parent
6d0080c2
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
26 additions
and
30 deletions
+26
-30
README.md
README.md
+26
-30
No files found.
README.md
View file @
33613b6a
# Curry Frontend
The Curry frontend parses source files (
`.curry`
), emits errors and
warnings, performs various checks and transformations and
generates FlatCurry (
`.fcy`
,
`.fint`
) or AbstractCurry (
`.acy`
,
`.uacy`
).
generates FlatCurry (
`.fcy`
,
`.fint`
) or AbstractCurry (
`.acy`
,
`.uacy`
)
amonst other formats
.
The project originated from a modified version of the
Münster-Curry-Compiler (MCC) for use as a frontend in PAKCS.
## 1 Installation
### 1.1 Installation der Binary-Distribution
## Requirements
Die Binary-Distribution befindet sich in einem tar-Archiv und wird
durch folgendes Kommando entpackt:
*
`cabal-install`
*
A recent version of the
`curry-base`
package, installed locally
tar zxvf <Distribution>.tar.gz
## Building
Danach steht der Compiler im Verzeichnis 'mcc' zur Verfügung.
To build the project, run
### 1.2 Installation der Source-Distribution
> cabal v1-build
Nach dem Entpacken des tar-Archivs mittels
## Running
tar zxvf <Distribution>.tar.gz
To run the project, you can use
kann der Compiler durch Aufruf von 'make' im Verzeichnis 'mcc' installiert
werden. Bei Recompilierung (z.B. nach Änderungen in der Quelldateien)
wird empfohlen vor einer erneuten Installation 'make clean' auszuführen.
> cabal v1-run
Nach erfolgreicher Installation befindet sich in beiden Fällen im Verzeichnis
'mcc/bin/' folgende ausführbare Datei:
Alternatively, you can launch the built executable manually from
`dist/build/curry-frontend`
.
cymake - der Curry-Programm-Builder
## Usage
Dieses Tool übersetzt Curry-Programme unter Berücksichtigung der Import-
abhängigkeiten.
For a detailed overview of the available options, you can use:
## 2 Kommandoübersicht
> curry-frontend --help
In der folgenden Tabelle sind die Optionen zur Generierung der jeweiligen
Darstellungen für das Kommando 'cymake' aufgelistet:
### Available Formats
--flat : Erzeugt FlatCurry- und FlatInterface-Datei
--xml : Erzeugt FlatXML-Datei
--acy : Erzeugt (typinferierte) AbstractCurry-Datei
--uacy : Erzeugt ungetypte AbstractCurry-Datei
```
--flat : Generate a FlatCurry and FlatInterface file
--xml : Generate a FlatXML file
--acy : Generate a (type-inferred) AbstractCurry file
--uacy : Generate an untyped AbstractCurry file
```
##
3 Erzeugung von
FlatCurry
- u
nd FlatXML
-Programmen
##
##
Generation of
FlatCurry
a
nd FlatXML
files
Die Übersetzung eines Curry-Programms 'file.curry', sowie sämtlicher
importierter Module nach FlatCurry bzw. FlatInterface, bewirkt folgendes
...
...
@@ -64,7 +60,7 @@ Kommando:
Die hierdurch generierte Flat-XML-Datei hat die Endung '_flat.xml'.
##
4 Erzeugung von
AbstractCurry
-Programmen
##
##
Generation of
AbstractCurry
files
Die Übersetzung eines Curry-Programms 'file.curry' nach (typgeprüftem)
AbstractCurry bewirkt folgendes Kommando:
...
...
@@ -93,7 +89,7 @@ entsprechenden Interfaces für die Typinferenz (nur im Fall der getypten
AbstractCurry-Generierung) und die statisch-semantische Analyse benötigt
werden.
##
5 Anmerkungen
##
Remarks
-
Um die PAKCS-Bibliotheken (insbesondere die Prelude) für Übersetzungen
nutzen zu können muß die Umgebungsvariable 'PAKCS_LIB' auf die
...
...
@@ -110,7 +106,7 @@ werden.
data T _ = C
##
Bekannte Probleme
##
Known Issues
-
Lambda-, do-, if-, case-, oder let-Ausdrücke, die in Argumenten von
Funktionsaufrufen verwendet werden, müssen immer geklammert werden.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment