pax_global_header00006660000000000000000000000064134551047710014521gustar00rootroot0000000000000052 comment=a15821f2be9fb212e7ba1c47e704df3adfd96a87 curry-frontend-v1.0.4/000077500000000000000000000000001345510477100146725ustar00rootroot00000000000000curry-frontend-v1.0.4/.gitignore000066400000000000000000000000761345510477100166650ustar00rootroot00000000000000cabal-dev/ dist/ .curry/ .cabal-sandbox/ cabal.sandbox.config curry-frontend-v1.0.4/CHANGELOG.md000066400000000000000000000246731345510477100165170ustar00rootroot00000000000000Change log for curry-frontend ============================= Version 1.0.4 ============= * Fixed bug in type checking of instances * Fixed bugs in deriving of `Bounded` instances. Version 1.0.3 ============= * Fixed bug in type checking of typeclasses Version 1.0.2 ============= * Added 'short-ast' and 'ast' as new compilation targets * Fixed bug with wrong type of free variables in the intermediate language. * Fixed bug with generated default implementations of nullary class methods. * Fixed bug in desugaring of record patterns. * Fixed bug that external data declarations weren't considered when AbstractCurry was generated Version 1.0.1 ============= * Fixed bug with wrong order of super classes in selector functions generated by the dictionary transformation. * Changed desugaring of numeric literals. It now generates calls to the functions `Prelude.fromInt` and `Prelude.fromFloat`. * Fixed bug with wrong original names of imported record labels * Fixed bug when compiling type constructor classes with super classes * Adjusted warning message for potentially unreachable pattern matches Version 1.0.0 ============= * Added support for typeclasses as known from Haskell Version 0.4.2 ============= * Improved readability of environment information in dumps (option dump-simple) * Added option to dump all bindings instead of just local ones (dump-all-bindings) * Introduced annotated FlatCurry as a new output format (annotated-flat) Version 0.4.1 ============= * Added a simple cabal test suite * Split import of interfaces/modules and expansion and checking of import specifications into two modules. * Improved error messages generated by export check (fixes #1253) * Split checking and expansion of export specification into two subsequent steps (by Yannik Potdevin, fixes #1335) * Consider parenthesized type expressions in the Curry AST (by Katharina Rahf) * Added syntax extension `ExistentialQuantification` that allows the use of existentially quantified types in data and newtype constructors * Fixed bug that type declarations weren't syntax checked Version 0.4.0 ============= * Refactored AbstractCurry generation * Complete refactoring of FlatCurry generation * Removed support for Curry's record syntax and introduced Haskell's record syntax instead * During desugaring record updates are translated to fcase-expressions instead of introducing explicit update functions * HTML generation now places HTML files for hierarchical modules into files named `_curry.html`, i.e., no sub-folders reflecting the the module name hierarchy are generated. In addition, if the option `--html-dir` is not given, the current directory is used as the output directory. * Removed record type extensions * Enabled declaration of (mutually) recursive record types * Removed expansion of record types in type error messages * Replaced `MessageM` monad with `CYT` monads and moved `CYT` monads to package `curry-base` * Implemented warnings for overlapping module aliases - fixes #14 * The check for overlapping rules has been completely refactored and improved to now also handle rigid case expressions. * The check for missing pattern matching alternatives now correctly handles String literals - fixes #1048. * Added warnings for top-level functions without type signatures - fixes #769 * Moved pretty-printing of types from Checks.TypeCheck to Base.CurryTypes * Type synonyms in typed expressions are now desugared - fixes #921 * Declaration of operator precedence is now optional in infix operator declarations * Moved module `InterfaceEquivalence` to curry-base (`Curry.Syntax.InterfaceEquivalence`) * Converted literate Haskell files into simple Haskell files * Removed support for FlatCurry XML files. * Added syntax extension `NegativeLiterals` to translate negated literals into negative literals instead of a call to `Prelude.negate` and `Prelude.negateFloat`, respectively. * The frontend now considers options pragmas of the following form: ~~~ {.curry} {-# OPTIONS_CYMAKE opt1 ... optn #-} ~~~ The string following `OPTIONS_CYMAKE` will be split at white spaces and treated like an ordinary command line argument string. If one wishes to provide options containing spaces, e.g., directory paths or alike, this can be achieved by quoting the respective argument using either `'single quotes'` or `'double quotes'` (may bot be mixed). Note that *following options are excluded*: * A change of the current mode (e.g., change from compilation to HTML generation) * A change of the import paths * A change of the library paths * A change of the compilation targets (e.g., change from FlatCurry to AbstractCurry) These options can only be set via the command line. * Refactored the source code HTML generation. The generation now supports full Curry with all supported extensions, i.e., it supports pragmas, record types and functional patterns. Furthermore, the created HTML has been simplified, and updated towards HTML 5. * The HTML generation now accepts an option `--htmldir=dir` to specify the output directory of the generated HTML files. Version 0.3.10 ============== * Various improvements of the internal structure. * Improved status messages. The compilation status message are now of the form [m of n] Compiling/Skipping (, ) * Implemented support for custom preprocessors. It is now possible to run a custom preprocessor command via the following options: * `-F` enables support for a preprocessor * `-pgmF ` set the preprocessor command to `` * `-optF ` adds an additional argument to the preprocessor command (can be repeated to add multiple arguments) The preprocessor is applied to all source files which are (re)compiled after unliterating *and after determining the import list*. Consequently, adding modules via the preprocessor will results in compilation errors due to missing imports. On the other hand, the frontend will automatically determine changed files which are then handed to the preprocessor. The command is called with at least three arguments: #. The (normalised) file name of the source file currently processed. **This name is intended only for reference.** #. The name of the file containing the (potentially unliterated) contents of the original file. **This is the file the preprocessor should read from.** #. The name of the file where the preprocessed source code should go to. **This is the file the preprocessor should write to.** #. Optionally, any additional arguments specified using `-optF`. Version 0.3.9 ============= * Simplified verbosity options by merging options "-v1" and "-v2". Now only "-v0" and "-v1" are supported. * Fixed bug in non-exhaustive pattern matching check which occured when retrieving the siblings of a constructor imported using an alias. * Fixed bug when using functional patterns in `case`-expressions. Functional patterns are only allowed in the patterns of a function definition and forbidden elsewhere, i.e., in `case`-expressions, `do`-sequences, list comprehensions or lambda expressions. * Implementation of module pragmas added. Module pragmas of the following types are now parsed and represented in the abstract syntax tree: ~~~ {.curry} {-# LANGUAGE LANG_EXT+ #-} {-# OPTIONS "string" #-} {-# OPTIONS_TOOL "string" #-} module Main where ~~~ where - `LANGEXT+` is a non-empty, comma-separated list of the following language extensions: `AnonFreeVars`, `FunctionalPatterns`, `NoImplicitPrelude`, `Records` - `TOOL` is either `KICS2`, `PAKCS`, or some other tool, represented as `Unknown String`. While the distinct language pragmas enable the respective language extensions, the OPTIONS pragma is ignored. All other texts given in the pragma braces is ignored and treated as a nested comment. * Error message for different arities of function equations now also report the corresponding source code positions. Version 0.3.8 ============= * Implemented warnings for non-exhaustive pattern matchings both in function declarations and `case`-expressions - fixes #349. * Extended options to enable/disable certain types of warnings. * Fixed problem when defining an operator directly after an import statement without import restrictions - fixes #494. * Fixed bug w.r.t. polymorphically typed local variables - fixes #480. * Fixed missing polymorphism in record labels - fixes #445. * Dumping of intermediate structures improved. * Fixed bug in type checking w.r.t. recursive type synonyms - fixes 489. * Reactivation of Curry interface files. During adaption of the MCC frontend to FlatCurry the Curry interface files have been deactivated and replaced by FlatCurry's interface files. To allow the later addition of type classes to Curry, they have now been reactivated. * Implemented missing semantics of functional patterns in combination with non-linear left-hand-sides and as-patterns. * Various improvements. Version 0.3.7 ============= * Support for typed FlatCurry expressions added. Now additional type information given by the programmer as in ~~~ {.curry} null (unknown :: [()]) ~~~ is represented in FlatCurry and cann therefore be processed by other programs like PAKCS or KICS2. Version 0.3.6 ============= * Error messages are now sorted according to their source code position. Version 0.3.5 ============= * Improved reporting of mutiple type signatures. Version 0.3.4 ============= * Bug in renaming phase fixed. Version 0.3.3 ============= * Corrected translation of `fcase`-expressions. Version 0.3.2 ============= * Non-linear left-hand-sides now work with guarded expressions - fixes #328. * Implemented precedence check - fixes #327. * Case completion refactored and corrected - fixes #323. * Various improvements and refactorings. Version 0.3.1 ============= * Corrected renaming of anonymous free variables - fixes #288. Version 0.3.0 ============= * Massive refactoring of the previous version. * All compiler warnings removed. * Fixed various implementation bugs (#9, #16, #19, #29, #289). curry-frontend-v1.0.4/LICENSE000066400000000000000000000027461345510477100157100ustar00rootroot00000000000000Copyright (c) 1998-2004, Wolfgang Lux Copyright (c) 2005-2016, Michael Hanus All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. None of the names of the copyright holders and contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. curry-frontend-v1.0.4/LIESMICH000066400000000000000000000125661345510477100160240ustar00rootroot00000000000000=============================================================================== == == Münster-Curry-Compiler == Distribution zur Anwendung als Frontend in PAKCS == == Letztes Update: 27.10.05 Diese Distribution enthält die modifizierte Version des Münster-Curry-Compilers (MCC) für die Verwendung als Frontend in PAKCS. Dieses System ist u.a. in der Lage aus Curry-Programmen (entwickelt nach PAKCS-Standard) Flat-Darstellungen (FlatCurry ".fcy", FlatInterface ".fint" und FlatXML "_flat.xml"), sowie Abstract-Darstellungen (AbstractCurry ".acy" und untyped AbstractCurry ".uacy") zu generieren. 1. Installation --------------- 1.1 Installation der Binary-Distribution Die Binary-Distribution befindet sich in einem tar-Archiv und wird durch folgendes Kommando entpackt: tar zxvf .tar.gz Danach steht der Compiler im Verzeichnis 'mcc' zur Verfügung. 1.2 Installation der Source-Distribution Nach dem Entpacken des tar-Archivs mittels tar zxvf .tar.gz 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. Nach erfolgreicher Installation befindet sich in beiden Fällen im Verzeichnis 'mcc/bin/' folgende ausführbare Datei: cymake - der Curry-Programm-Builder Dieses Tool übersetzt Curry-Programme unter Berücksichtigung der Import- abhängigkeiten. 2. Kommandoübersicht -------------------- In der folgenden Tabelle sind die Optionen zur Generierung der jeweiligen Darstellungen für das Kommando 'cymake' aufgelistet: --flat : Erzeugt FlatCurry- und FlatInterface-Datei --xml : Erzeugt FlatXML-Datei --acy : Erzeugt (typinferierte) AbstractCurry-Datei --uacy : Erzeugt ungetypte AbstractCurry-Datei 3. Erzeugung von FlatCurry- und FlatXML-Programmen -------------------------------------------------- Die Übersetzung eines Curry-Programms 'file.curry', sowie sämtlicher importierter Module nach FlatCurry bzw. FlatInterface, bewirkt folgendes Kommando: cymake --flat Hierdurch werden die Dateien mit den entsprechenden Endungen ".fcy" und ".fint" generiert. Der Dateiname kann hierbei mit oder ohne Endung ".curry" bzw. ".lcurry" angegeben werden. Die analogen Übersetzungen in die FlatXML-Darstellung bewirkt folgendes Kommando: cymake --xml Die hierdurch generierte Flat-XML-Datei hat die Endung '_flat.xml'. 4. Erzeugung von AbstractCurry-Programmen ----------------------------------------- Die Übersetzung eines Curry-Programms 'file.curry' nach (typgeprüftem) AbstractCurry bewirkt folgendes Kommando: cymake --acy Hierdurch wird die entsprechende Datei (mit der Endung ".acy") generiert. Der Dateiname kann hierbei mit oder ohne Endung ".curry" bzw. ".lcurry" angegeben werden. Ungetypte, bzw. typsignierte AbstractCurry-Programme werden mit folgendem Kommando generiert: cymake --uacy Die hierdurch generierte Datei besitzt die Endung ".uacy". Die Generierung des ungetypten AbstractCurry-Programms findet ohne Typüberprüfung statt (d.h. auch Programme mit Typfehlern werden übersetzt). Alle Funktionen besitzen entweder die im Quellprogramm angegebenen Typsignatur, oder, sofern diese nicht vorhanden ist, den Dummy-Typ "prelude.untyped". In beiden Fällen werden für die Übersetzung FlatCurry-Dateien für alle importierten Module erzeugt. Dies ist notwendig, da die entsprechenden Interfaces für die Typinferenz (nur im Fall der getypten AbstractCurry-Generierung) und die statisch-semantische Analyse benötigt werden. 5. Anmerkungen -------------- - Um die PAKCS-Bibliotheken (insbesondere die Prelude) für Übersetzungen nutzen zu können muß die Umgebungsvariable 'PAKCS_LIB' auf die entsprechenden Pfade verweisen, z.B. mittels export PAKCS_LIB=/pacs/lib:/pacs/lib/meta:... wobei das Verzeichnis ist, das die PAKCS-Distribution enthält. - Im Gegensatz zu PAKCS erlaubt das Frontend die Verwendung anonymer Variablen (dargestellt durch dem Unterstrich '_') in Typdeklarationen, z.B. data T _ = C Bekannte Probleme ------------------ - Lambda-, do-, if-, case-, oder let-Ausdrücke, die in Argumenten von Funktionsaufrufen verwendet werden, müssen immer geklammert werden. - 'let'-Anweisungen dürfen nicht folgendes Layout besitzen: let x = in ... - Die Regeln einer Funktionsdeklaration müssen immer zusammenstehen, d.h. nicht durch andere Deklarationen unterbrochen werden. - Es ist bislang nicht möglich, den Konstruktor für leere Listen [], sowie den Unit-Konstruktor () zu qualifizieren (z.B. führt 'prelude.[]' zu einem Fehler). Der Listenkonstruktor (:), sowie Tupel-Konstruktoren dagegen sind qualifizierbar. - FlatXML-Übersetzungen können derzeit mittels der Funktionen aus dem PAKCS-Modul "FlatXML" noch nicht eingelesen werden, da es Unstimmigkeiten zwischen dem generierten und den erforderlichen Formaten gibt. - Bei der Erzeugung von typgeprüftem AbstractCurry können die im Quelltext verwendeten Bezeichner für Typvariablen nicht ins AbstractCurry-Programm übernommen werden. Stattdessen generiert der Übersetzer neue Bezeichner. - Bei der Erzeugung von ungetyptem AbstractCurry werden Typsynonyme in Typsignaturen von Funktionen nicht dereferenziert. - Das Frontend gibt derzeit noch keinerlei Warnungen aus. curry-frontend-v1.0.4/Setup.hs000066400000000000000000000000561345510477100163270ustar00rootroot00000000000000import Distribution.Simple main = defaultMain curry-frontend-v1.0.4/curry-frontend.cabal000066400000000000000000000101721345510477100206400ustar00rootroot00000000000000Name: curry-frontend Version: 1.0.4 Cabal-Version: >= 1.10 Synopsis: Compile the functional logic language Curry to several intermediate formats Description: The Curry front end consists of the executable program "curry-frontend". It is used by various backends to compile Curry programs to an intermediate representation. The code is a stripped-down version of an early version of the Muenster Curry Compiler () which has been extended to produce different intermediate representations. For further information, please check Category: Language License: BSD3 License-File: LICENSE Author: Wolfgang Lux, Martin Engelke, Bernd Brassel, Holger Siegel, Bjoern Peemoeller, Finn Teegen Maintainer: fte@informatik.uni-kiel.de Homepage: http://curry-language.org Build-Type: Simple Stability: experimental Extra-Source-Files: LIESMICH CHANGELOG.md Data-Dir: data Data-Files: currysource.css source-repository head type: git location: https://git.ps.informatik.uni-kiel.de/curry/curry-frontend.git Flag network-uri description: Get Network.URI from the network-uri package default: True Library hs-source-dirs: src default-language: Haskell2010 Build-Depends: base == 4.* , containers , curry-base == 1.1.0 , directory , extra >= 1.4.6 , filepath , mtl , pretty , process , set-extra , transformers if flag(network-uri) build-depends: network-uri >= 2.6 else build-depends: network < 2.6 Exposed-Modules: Base.AnnotExpr , Base.CurryKinds , Base.CurryTypes , Base.Expr , Base.KindSubst , Base.Kinds , Base.Messages , Base.NestEnv , Base.PrettyKinds , Base.PrettyTypes , Base.SCC , Base.Subst , Base.TopEnv , Base.TypeExpansion , Base.TypeSubst , Base.Types , Base.Typing , Base.Utils , Checks , Checks.DeriveCheck , Checks.ExportCheck , Checks.ExtensionCheck , Checks.ImportSyntaxCheck , Checks.InstanceCheck , Checks.InterfaceCheck , Checks.InterfaceSyntaxCheck , Checks.KindCheck , Checks.PrecCheck , Checks.SyntaxCheck , Checks.TypeCheck , Checks.TypeSyntaxCheck , Checks.WarnCheck , CompilerEnv , CompilerOpts , CondCompile , CurryBuilder , CurryDeps , Env.Class , Env.Instance , Env.Interface , Env.ModuleAlias , Env.OpPrec , Env.Type , Env.TypeConstructor , Env.Value , Exports , Files.CymakePath , Generators , Generators.GenAbstractCurry , Generators.GenFlatCurry , Generators.GenTypedFlatCurry , Generators.GenTypeAnnotatedFlatCurry , Html.CurryHtml , Html.SyntaxColoring , IL , IL.Pretty , IL.ShowModule , IL.Type , IL.Typing , Imports , Interfaces , Modules , TokenStream , Transformations , Transformations.CaseCompletion , Transformations.CurryToIL , Transformations.Derive , Transformations.Desugar , Transformations.Dictionary , Transformations.Lift , Transformations.Newtypes , Transformations.Qual , Transformations.Simplify Other-Modules: Paths_curry_frontend ghc-options: -Wall -fno-warn-orphans Executable curry-frontend hs-source-dirs: src Main-is: cymake.hs default-language: Haskell2010 Build-Depends: base == 4.* , containers , curry-base == 1.1.0 , curry-frontend , directory , extra >= 1.4.6 , filepath , mtl , pretty , process , set-extra , transformers if flag(network-uri) build-depends: network-uri >= 2.6 else build-depends: network < 2.6 ghc-options: -Wall -fno-warn-orphans Test-Suite test-frontend type: detailed-0.9 hs-source-dirs: test default-language: Haskell2010 test-module: TestFrontend build-depends: base == 4.*, Cabal >= 1.20, curry-base == 1.1.0 , curry-frontend, filepath curry-frontend-v1.0.4/data/000077500000000000000000000000001345510477100156035ustar00rootroot00000000000000curry-frontend-v1.0.4/data/currysource.css000066400000000000000000000016271345510477100207100ustar00rootroot00000000000000/* Use always white background */ body { background : white; color : black; font-family: monospace; } /* Show hyperlinks without text decoration, but in light yellow */ a:visited, a:link, a:active { text-decoration: none; background : lightyellow; } /* Line numbers */ .linenumbers { width : 40px; text-align : right; color : grey; padding-right: 10px; border-right : 1px solid grey; } /* Source code */ .sourcecode { padding-left: 10px; } /* Code highlighting */ .pragma { color : green } .comment { color : green } .keyword { color : blue } .symbol { color : red } .type { color : orange } .cons { color : magenta } .label { color : darkgreen } .func { color : purple } .ident { color : black } .module { color : brown } .number { color : teal } .string { color : maroon } .char { color : maroon } curry-frontend-v1.0.4/debian/000077500000000000000000000000001345510477100161145ustar00rootroot00000000000000curry-frontend-v1.0.4/debian/changelog000066400000000000000000000003661345510477100177730ustar00rootroot00000000000000curry-frontend (2:1.0.3-0) unstable; urgency=medium * Upstream-provided Debian package for curry-frontend. See upstream CHANGELOG.md for recent changes. -- Mike Gabriel Thu, 31 Jan 2019 13:05:14 +0100 curry-frontend-v1.0.4/debian/compat000066400000000000000000000000031345510477100173130ustar00rootroot0000000000000010 curry-frontend-v1.0.4/debian/control000066400000000000000000000062031345510477100175200ustar00rootroot00000000000000Source: curry-frontend Maintainer: Debian Curry Maintainers Uploaders: Mike Gabriel , Michael Hanus , Priority: optional Section: haskell Build-Depends: debhelper (>= 10), haskell-devscripts (>= 0.8), cdbs, devscripts (>= 1.16.1.1~), ghc, ghc-prof, libghc-containers-dev, libghc-containers-prof, libghc-curry-base-dev (>= 2:1.1.0~), libghc-curry-base-dev (<< 2:1.1.1), libghc-curry-base-prof (>= 2:1.1.0~), libghc-curry-base-prof (<< 2:1.1.1), libghc-directory-dev, libghc-directory-prof, libghc-filepath-dev, libghc-filepath-prof, libghc-mtl-dev, libghc-mtl-prof, libghc-network-uri-dev (>= 2.6), libghc-network-uri-prof (>= 2.6), libghc-process-dev, libghc-process-prof, libghc-set-extra-dev, libghc-set-extra-prof, libghc-syb-dev, libghc-syb-prof, libghc-transformers-dev, libghc-transformers-prof, Build-Depends-Indep: ghc-doc, libghc-base-doc, libghc-containers-doc, libghc-curry-base-doc (>= 2:1.1.0~), libghc-curry-base-doc (<< 2:1.1.1), libghc-directory-doc, libghc-filepath-doc, libghc-mtl-doc, libghc-network-uri-doc, libghc-process-doc, libghc-set-extra-doc, libghc-syb-doc, libghc-transformers-doc, Standards-Version: 4.3.0 Homepage: http://curry-language.org Vcs-Browser: https://git.ps.informatik.uni-kiel.de/curry/curry-frontend Vcs-Git: https://git.ps.informatik.uni-kiel.de/curry/curry-frontend.git X-Description: Lexer, parser, type checker, etc. for Curry The Curry Frontend consists of the executable program "curry-frontend". It is used by various backends to compile programs written in the functional logic language Curry to various intermediate representations. . For further information, please check http://curry-language.org Package: libghc-curry-frontend-dev Architecture: any Depends: ${haskell:Depends}, ${misc:Depends}, ${shlibs:Depends}, Recommends: ${haskell:Recommends}, Suggests: ${haskell:Suggests}, Conflicts: ${haskell:Conflicts}, Provides: ${haskell:Provides}, Description: ${haskell:ShortDescription}${haskell:ShortBlurb} ${haskell:LongDescription} . ${haskell:Blurb} Package: libghc-curry-frontend-prof Architecture: any Depends: ${haskell:Depends}, ${misc:Depends}, Recommends: ${haskell:Recommends}, Suggests: ${haskell:Suggests}, Conflicts: ${haskell:Conflicts}, Provides: ${haskell:Provides}, Description: ${haskell:ShortDescription}${haskell:ShortBlurb} ${haskell:LongDescription} . ${haskell:Blurb} Package: libghc-curry-frontend-doc Architecture: all Section: doc Depends: ${haskell:Depends}, ${misc:Depends}, Recommends: ${haskell:Recommends}, Suggests: ${haskell:Suggests}, Conflicts: ${haskell:Conflicts}, Description: ${haskell:ShortDescription}${haskell:ShortBlurb} ${haskell:LongDescription} . ${haskell:Blurb} Package: curry-frontend Architecture: any Section: misc Depends: ${haskell:Depends}, ${shlibs:Depends}, ${misc:Depends}, Recommends: ${haskell:Recommends}, Suggests: ${haskell:Suggests}, Conflicts: ${haskell:Conflicts}, Provides: ${haskell:Provides}, Description: ${haskell:ShortDescription}${haskell:ShortBlurb}; executable ${haskell:LongDescription} . ${haskell:Blurb} curry-frontend-v1.0.4/debian/copyright000066400000000000000000000314461345510477100200570ustar00rootroot00000000000000Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: curry-frontend Upstream-Contact: Michael Hanus Source: https://git.ps.informatik.uni-kiel.de/curry/curry-frontend Files: src/Base/CurryTypes.hs Copyright: Wolfgang Lux 2011 - 2012, Björn Peemöller 2015, Jan Tikovsky 2016, Finn Teegen License: BSD-3-clause Files: src/Base/Expr.hs Copyright: Wolfgang Lux 2011 - 2015, Björn Peemöller 2015, Jan Tikovsky 2016, Finn Teegen License: BSD-3-clause Files: src/Base/Messages.hs Copyright: 2011 - 2016, Björn Peemöller License: BSD-3-clause Files: src/Base/NestEnv.hs Copyright: 1999 - 2003, Wolfgang Lux 2011 - 2015, Björn Peemöller License: BSD-3-clause Files: src/Base/SCC.hs Copyright: 2000, 2002 - 2003, Wolfgang Lux License: BSD-3-clause Files: src/Base/Subst.hs Copyright: 2002, Wolfgang Lux License: BSD-3-clause Files: src/Base/TopEnv.hs Copyright: 1999 - 2003, Wolfgang Lux 2005, Martin Engelke 2011 - 2012, Björn Peemöller 2016, Finn Teegen License: BSD-3-clause Files: src/Base/TypeSubst.hs Copyright: 2003, Wolfgang Lux 2016, Finn Teegen License: BSD-3-clause Files: src/Base/Types.hs Copyright: 2002 - 2004, Wolfgang Lux Martin Engelke 2015, Jan Tikovsky 2016, Finn Teegen License: BSD-3-clause Files: src/Base/Typing.hs Copyright: 2003 - 2006, Wolfgang Lux 2014 - 2015, Jan Tikovsky 2016, Finn Teegen License: BSD-3-clause Files: src/Base/Utils.hs Copyright: 2001 - 2003, Wolfgang Lux 2011 - 2015, Björn Peemöler 2016, Finn Teegen License: BSD-3-clause Files: src/Checks.hs Copyright: 2011 - 2013, Björn Peemöller 2016 - 2017, Finn Teegen License: BSD-3-clause Files: src/Checks/ExportCheck.hs Copyright: 1999 - 2004, Wolfgang Lux 2011 - 2016, Björn Peemöller 2015 - 2016, Yannik Potdevin 2016, Finn Teegen License: BSD-3-clause Files: src/Checks/ImportSyntaxCheck.hs Copyright: 2016, Jan Tikovsky 2016, Finn Teegen License: BSD-3-clause Files: src/Checks/InterfaceCheck.hs Copyright: 2000 - 2007, Wolfgang Lux 2015, Jan Tikovsky 2016, Finn Teegen License: BSD-3-clause Files: src/Checks/InterfaceSyntaxCheck.hs Copyright: 2000 - 2007, Wolfgang Lux 2011 - 2015, Björn Peemöller 2015, Jan Tikovsky 2016, Finn Teegen License: BSD-3-clause Files: src/Checks/KindCheck.hs Copyright: 2016 - 2017, Finn Teegen License: BSD-3-clause Files: src/Checks/PrecCheck.hs Copyright: 2001 - 2004, Wolfgang Lux Martin Engelke Björn Peemöller 2015, Jan Tikovsky License: BSD-3-clause Files: src/Checks/SyntaxCheck.hs Copyright: 1999 - 2004, Wolfgang Lux Martin Engelke Björn Peemöller 2015, Jan Tikovsky License: BSD-3-clause Files: src/Checks/TypeCheck.hs Copyright: 1999 - 2004, Wolfgang Lux Martin Engelke 2011 - 2015, Björn Peemöller 2014 - 2015, Jan Tikovsky License: BSD-3-clause Files: src/Checks/WarnCheck.hs Copyright: 2006, Martin Engelke 2011 - 2014, Björn Peemöller 2014 - 2015, Jan Tikovsky 2016 - 2017, Finn Teegen License: BSD-3-clause Files: src/CompilerEnv.hs Copyright: 2011 - 2015, Björn Peemöller License: BSD-3-clause Files: src/CompilerOpts.hs Copyright: 2005, Martin Engelke 2007, Sebastian Fischer 2011 - 2016, Björn Peemöller 2016 - 2017, Finn Teegen License: BSD-3-clause Files: src/CurryBuilder.hs Copyright: 2005, Martin Engelke 2007, Sebastian Fischer 2011 - 2015, Björn Peemöller 2018, Kai-Oliver Prott License: BSD-3-clause Files: src/CurryDeps.hs Copyright: 2002 - 2004, Wolfgang Lux 2005, Martin Engelke 2007, Sebastian Fischer 2011 - 2013, Björn Peemöller License: BSD-3-clause Files: src/Env/Interface.hs Copyright: 2002 - 2004, Wolfgang Lux 2011 - 20113, Björn Peemöller License: BSD-3-clause Files: src/Env/ModuleAlias.hs Copyright: 2002 - 2004, Wolfgang Lux 2011 - 2013, Björn Peemöller License: BSD-3-clause Files: src/Env/OpPrec.hs Copyright: 2002 - 2004, Wolfgang Lux 2011 - 2013, Björn Peemöller License: BSD-3-clause Files: src/Env/TypeConstructor.hs Copyright: 2002 - 2004, Wolfgang Lux 2011, Björn Peemöller 2016, Finn Teegen License: BSD-3-clause Files: src/Env/Value.hs Copyright: 2001 - 2004, Wolfgang Lux 2011, Björn Peemöller 2015, Jan Tikovsky 2016, Finn Teegen License: BSD-3-clause Files: src/Exports.hs Copyright: 2000 - 2004, Wolfgang Lux 2005, Martin Engelke 2011 - 2016, Björn Peemöller 2015, Jan Tikovsky 2016, Finn Teegen License: BSD-3-clause Files: src/Files/CymakePath.hs Copyright: 2011, Björn Peemöller (bjp@informatik.uni-kiel.de) License: BSD-3-clause Files: src/Generators.hs Copyright: 2011, Björn Peemöller (bjp@informatik.uni-kiel.de) 2017, Finn Teegen License: BSD-3-clause Files: src/Generators/GenAbstractCurry.hs Copyright: 2005, Martin Engelke 2011 - 2015, Björn Peemöller 2015, Jan Tikovsky 2016, Finn Teegen License: BSD-3-clause Files: src/Generators/GenFlatCurry.hs Copyright: 2005, Martin Engelke 2011 - 2016, Björn Peemöller 2017, Finn Teegen License: BSD-3-clause Files: src/Html/CurryHtml.hs Copyright: 2011 - 2016, Björn Peemöller 2016, Jan Tikovsky License: BSD-3-clause Files: src/Html/SyntaxColoring.hs Copyright: 2014 - 2016, Björn Peemöller 2016, Jan Tikovsky 2016 - 2017, Finn Teegen License: BSD-3-clause Files: src/IL.hs Copyright: 2014, Björn Peemöller License: BSD-3-clause Files: src/IL/Pretty.hs Copyright: 1999 - 2003, Wolfgang Lux Martin Engelke 2011 - 2015, Björn Peemöller 2017, Finn Teegen License: BSD-3-clause Files: src/IL/ShowModule.hs Copyright: 2015, Björn Peemöller 2016 - 2017, Finn Teegen License: BSD-3-clause Files: src/IL/Type.hs Copyright: 1999 - 2003, Wolfgang Lux Martin Engelke 2016 - 2017, Finn Teegen License: BSD-3-clause Files: src/Imports.hs Copyright: 2000 - 2003, Wolfgang Lux 2011, Björn Peemöller 2016, Jan Tikovsky 2016, Finn Teegen License: BSD-3-clause Files: src/Interfaces.hs Copyright: 2000 - 2004, Wolfgang Lux 2011 - 2013, Björn Peemöller License: BSD-3-clause Files: src/Modules.hs Copyright: 1999 - 2004, Wolfgang Lux 2005, Martin Engelke 2007, Sebastian Fischer 2011 - 2015, Björn Peemöller 2016, Jan Tikovsky 2016-2017, Finn Teegen 2018, Kai-Oliver Prott License: BSD-3-clause Files: src/TokenStream.hs Copyright: 2015 - 2016, Katharina Rahf 2015 - 2016, Björn Peemöller 2015 - 2016, Jan Tikovsky License: BSD-3-clause Files: src/Transformations.hs Copyright: 2011, Björn Peemöller (bjp@informatik.uni-kiel.de) License: BSD-3-clause Files: src/Transformations/CaseCompletion.hs Copyright: 2005, Martin Engelke 2011 - 2015, Björn Peemöller 2016, Jan Tikovsky 2016 - 2017, Finn Teegen License: BSD-3-clause Files: src/Transformations/CurryToIL.hs Copyright: 1999 - 2003, Wolfgang Lux Martin Engelke 2011 - 2015, Björn Peemöller 2015, Jan Tikovsky License: BSD-3-clause Files: src/Transformations/Desugar.hs Copyright: 2001 - 2004, Wolfgang Lux Martin Engelke 2011 - 2015, Björn Peemöller 2015, Jan Tikovsky License: BSD-3-clause Files: src/Transformations/Lift.hs Copyright: 2001 - 2003, Wolfgang Lux 2011 - 2015, Björn Peemöller 2016 - 2017, Finn Teegen License: BSD-3-clause Files: src/Transformations/Qual.hs Copyright: 2001 - 2004, Wolfgang Lux 2005, Martin Engelke 2011 - 2015, Björn Peemöller 2016 - 2017, Finn Teegen License: BSD-3-clause Files: src/Transformations/Simplify.hs Copyright: 2003, Wolfgang Lux Martin Engelke 2011 - 2015, Björn Peemöller 2016, Finn Teegen License: BSD-3-clause Files: src/Generators/GenTypeAnnotatedFlatCurry.hs Copyright: 2017, Finn Teegen 2018, Kai-Oliver Prott License: BSD-3-clause Files: src/cymake.hs Copyright: 2005, Martin Engelke 2011 - 2016, Björn Peemöller License: BSD-3-clause Files: src/Base/AnnotExpr.hs src/Base/CurryKinds.hs src/Base/KindSubst.hs src/Base/Kinds.hs src/Base/PrettyKinds.hs src/Base/PrettyTypes.hs src/Base/TypeExpansion.hs src/Checks/DeriveCheck.hs src/Checks/ExtensionCheck.hs src/Checks/TypeSyntaxCheck.hs src/CondCompile.hs src/Env/Class.hs src/Env/Instance.hs src/Env/Type.hs src/Generators/GenTypedFlatCurry.hs src/IL/Typing.hs src/Transformations/Derive.hs src/Transformations/Dictionary.hs src/Transformations/Newtypes.hs Copyright: 2017, Finn Teegen 2016 - 2017, Finn Teegen 2016, Finn Teegen License: BSD-3-clause Files: src/Checks/InstanceCheck.hs Copyright: 2000-2007, Wolfgang Lux 2011-2015, Björn Peemöller 2015, Jan Tikovsky 2016, Finn Teegen License: BSD-3-clause Files: data/currysource.css test/TestFrontend.hs test/fail/Bool.curry test/fail/ErrorMultipleSignature.curry test/fail/ExportCheck/AmbiguousName.curry test/fail/ExportCheck/AmbiguousType.curry test/fail/ExportCheck/ModuleNotImported.curry test/fail/ExportCheck/MultipleName.curry test/fail/ExportCheck/MultipleType.curry test/fail/ExportCheck/NoDataType.curry test/fail/ExportCheck/OutsideTypeConstructor.curry test/fail/ExportCheck/OutsideTypeLabel.curry test/fail/ExportCheck/UndefinedElement.curry test/fail/ExportCheck/UndefinedName.curry test/fail/ExportCheck/UndefinedType.curry test/fail/FP_Cyclic.curry test/fail/FP_NonGlobal.curry test/fail/FP_Restrictions.curry test/fail/ImportError.curry test/fail/KindCheck.curry test/fail/MultipleArities.curry test/fail/MultipleDefinitions.curry test/fail/MultiplePrecedence.curry test/fail/PatternRestrictions.curry test/fail/PragmaError.curry test/fail/PrecedenceRange.curry test/fail/Prelude.curry test/fail/RecordLabelIDs.curry test/fail/RecursiveTypeSyn.curry test/fail/SyntaxError.curry test/fail/TypeError1.curry test/fail/TypeError2.curry test/fail/TypedFreeVariables.curry test/pass/ACVisibility.curry test/pass/AbstractCurryBug.curry test/pass/AnonymVar.curry test/pass/B/C.curry test/pass/CaseComplete.curry test/pass/DefaultPrecedence.curry test/pass/Dequeue.curry test/pass/ExplicitLayout.curry test/pass/FCase.curry test/pass/FP_Lifting.curry test/pass/FP_NonCyclic.curry test/pass/FP_NonLinearity.curry test/pass/FunctionalPatterns.curry test/pass/HaskellRecords.curry test/pass/Hierarchical.curry test/pass/Infix.curry test/pass/Inline.curry test/pass/Lambda.curry test/pass/List.curry test/pass/Maybe.curry test/pass/NegLit.curry test/pass/Newtype1.curry test/pass/Newtype2.curry test/pass/NonLinearLHS.curry test/pass/OperatorDefinition.curry test/pass/PatDecl.curry test/pass/Prelude.curry test/pass/Pretty.curry test/pass/RecordTest1.curry test/pass/RecordTest2.curry test/pass/RecordTest3.curry test/pass/RecordsPolymorphism.curry test/pass/ReexportTest.curry test/pass/SelfExport.curry test/pass/Set.curry test/pass/SpaceLeak.curry test/pass/StringGap.curry test/pass/TyConsTest.curry test/pass/TypedExpr.curry test/pass/UntypedAcy.curry test/pass/Unzip.curry test/warning/AliasClash.curry test/warning/Case1.curry test/warning/Case2.curry test/warning/CaseModeH.curry test/warning/CaseModeP.curry test/warning/CheckSignature.curry test/warning/List.curry test/warning/Maybe.curry test/warning/NonExhaustivePattern.curry test/warning/OverlappingPatterns.curry test/warning/Prelude.curry test/warning/ShadowingSymbols.curry test/warning/TabCharacter.curry test/warning/UnexportedFunction.curry .gitignore CHANGELOG.md LIESMICH Setup.hs curry-frontend.cabal overview.md Copyright: 1998-2004, Wolfgang Lux 2005-2016, Michael Hanus License: BSD-3-clause Comment: Assuming license and copyright holders as found in LICENSE file. Files: debian/* Copyright: 2016, Mike Gabriel License: BSD-3-clause License: BSD-3-clause Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: . - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. . - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. . - None of the names of the copyright holders and contributors may be used to endorse or promote products derived from this software without specific prior written permission. . THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. curry-frontend-v1.0.4/debian/curry-frontend.install000066400000000000000000000001451345510477100224650ustar00rootroot00000000000000data/currysource.css usr/share/curry-frontend/ dist-ghc/build/curry-frontend/curry-frontend usr/bin/ curry-frontend-v1.0.4/debian/curry-frontend.manpages000066400000000000000000000000331345510477100226060ustar00rootroot00000000000000debian/man/curry-frontend.1curry-frontend-v1.0.4/debian/docs000066400000000000000000000000131345510477100167610ustar00rootroot00000000000000overview.mdcurry-frontend-v1.0.4/debian/man/000077500000000000000000000000001345510477100166675ustar00rootroot00000000000000curry-frontend-v1.0.4/debian/man/curry-frontend.1000066400000000000000000000117431345510477100217400ustar00rootroot00000000000000.TH CURRY-FRONTEND "1" "December 2016" "0.4.2" "User Commands" .SH NAME curry\-frontend \- Lexer, parser, type checker, etc. for the Curry programming language .SH SYNOPSIS curry\-frontend [OPTIONS] ... MODULES ... .SH DESCRIPTION The Curry Frontend consists of the executable program "curry\-frontend". It is used by various backends to compile programs written in the functional logic language Curry to various intermediate representations. .PP For further information, please check http://currry-language.org .SH OPTIONS .TP \fB\-h\fR, \-?, \fB\-\-help\fR display this help and exit .TP \fB\-V\fR, \fB\-\-version\fR show the version number and exit .TP \fB\-\-numeric\-version\fR show the numeric version number and exit .TP \fB\-v\fR \fI\fR, \fB\-\-verbosity\fR=\fI\,\/\fR set verbosity level \fI\fR, where \fI\fR is one of 0: quiet 1: status .TP \fB\-q\fR, \fB\-\-no\-verb\fR set verbosity level to quiet .TP \fB\-f\fR, \fB\-\-force\fR force compilation of target file .TP \fB\-P\fR dir[:dir], \fB\-\-lib\-dir\fR=\fI\,[\/:]\fR search for libraries in \fI[:]\fR .TP \fB\-i\fR dir[:dir], \fB\-\-import\-dir\fR=\fI\,[\/:]\fR search for imports in \fI[:]\fR .TP \fB\-\-htmldir\fR=\fI\,\/\fR write HTML documentation into directory \fI\fR .TP \fB\-\-no\-subdir\fR disable writing to `.curry' subdirectory .TP \fB\-\-no\-intf\fR do not create an interface file .TP \fB\-\-no\-warn\fR do not print warnings .TP \fB\-\-no\-overlap\-warn\fR do not print warnings for overlapping rules .TP \fB\-\-tokens\fR generate token stream .TP \fB\-\-parse\-only\fR generate source representation .TP \fB\-\-flat\fR generate FlatCurry code .TP \fB\-\-extended\-flat\fR generate FlatCurry code with source references .TP \fB\-\-acy\fR generate typed AbstractCurry .TP \fB\-\-uacy\fR generate untyped AbstractCurry .TP \fB\-\-html\fR generate html documentation .TP \fB\-F\fR use custom preprocessor .TP \fB\-\-pgmF\fR=\fI\,\/\fR execute preprocessor command .TP \fB\-\-optF\fR=\fI\,