curry-frontend-2.0.0: Compile the functional logic language Curry to several intermediate formats
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 (http://danae.uni-muenster.de/curry/) which has been extended to produce different intermediate representations. For further information, please check http://curry-language.org
Signatures
Modules
- Base
- Base.AnnotExpr Extraction of free qualified annotated variables
- Base.CurryKinds Conversion of kind representation
- Base.CurryTypes Conversion of type representation
- Base.Expr Extraction of free and bound variables
- Base.KindSubst Kind substitution
- Base.Kinds Internal representation of kinds
- Base.Messages Construction and output of compiler messages
- Base.NestEnv Nested Environments
- Base.PrettyKinds TODO
- Base.PrettyTypes TODO
- Base.SCC Computation of strongly connected components
- Base.Subst General substitution implementation
- Base.TopEnv Top-Level Environments
- Base.TypeExpansion Type expansion
- Base.TypeSubst Type substitution
- Base.Types Internal representation of types
- Base.Typing Type computation of Curry expressions
- Base.Utils Auxiliary functions
- Checks Different checks on a Curry module
- Checks.DeriveCheck Checks deriving clauses
- Checks.ExportCheck Check the export specification of a module
- Checks.ExtensionCheck Checks extensions
- Checks.ImportSyntaxCheck Checking import specifications
- Checks.InstanceCheck Checks instances
- Checks.InterfaceCheck Checks consistency of interface files
- Checks.InterfaceSyntaxCheck Checks interface declarations
- Checks.KindCheck Checks type kinds
- Checks.PrecCheck Checks precedences of infix operators
- Checks.SyntaxCheck Syntax checks
- Checks.TypeCheck Type checking Curry programs
- Checks.TypeSyntaxCheck Checks type syntax
- Checks.WarnCheck Checks for irregular code
- CompilerEnv Environment containing the module's information
- CompilerOpts Compiler options
- CondCompile Conditional compilation
- Curry
- Curry.AbstractCurry Library to support meta-programming in Curry
- Curry.AbstractCurry.Files Library to support meta-programming in Curry
- Curry.AbstractCurry.Type Library to support meta-programming in Curry
- Base
- Curry.Base.Ident Identifiers
- Curry.Base.LLParseComb Parser combinators
- Curry.Base.LexComb Lexer combinators
- Curry.Base.Message Monads for message handling
- Curry.Base.Monad Monads for message handling
- Curry.Base.Position Positions in a source file
- Curry.Base.Pretty Pretty printing
- Curry.Base.Span Spans in a source file
- Curry.Base.SpanInfo SpansInfo for entities
- CondCompile
- Curry.CondCompile.Parser Parser for conditional compiling
- Curry.CondCompile.Transform Conditional compiling transformation
- Curry.CondCompile.Type Abstract syntax for conditional compiling
- Files
- Curry.Files.Filenames File names for several intermediate file formats.
- Curry.Files.PathUtils Utility functions for reading and writing files
- Curry.Files.Unlit Handling of literate Curry files
- Curry.FlatCurry Interface for reading and manipulating FlatCurry source code
- Annotated
- Curry.FlatCurry.Annotated.Goodies Utility functions for working with annotated FlatCurry.
- Curry.FlatCurry.Annotated.Type Representation of annotated FlatCurry.
- Curry.FlatCurry.Files Functions for reading and writing FlatCurry files
- Curry.FlatCurry.Goodies Utility functions for working with FlatCurry.
- Curry.FlatCurry.InterfaceEquivalence Check the equality of two FlatCurry interfaces
- Curry.FlatCurry.Pretty A pretty printer for FlatCurry
- Curry.FlatCurry.Type Representation of FlatCurry.
- Curry.FlatCurry.Typeable Typeclass of Typeable entities
- Typed
- Curry.FlatCurry.Typed.Goodies Utility functions for working with TypedFlatCurry.
- Curry.FlatCurry.Typed.Type Representation of annotated FlatCurry.
- Annotated
- Curry.Syntax Interface for reading and manipulating Curry source code
- Curry.Syntax.Extension Curry language extensions
- Curry.Syntax.InterfaceEquivalence Comparison of Curry Interfaces
- Curry.Syntax.Lexer A lexer for Curry
- Curry.Syntax.Parser A Parser for Curry
- Curry.Syntax.Pretty A pretty printer for Curry
- Curry.Syntax.ShowModule
- Curry.Syntax.Type Abstract syntax for Curry
- Curry.Syntax.Utils Utility functions for Curry's abstract syntax
- Curry.AbstractCurry Library to support meta-programming in Curry
- CurryBuilder Build tool for compiling multiple Curry modules
- CurryDeps Computation of module dependencies
- Env
- Env.Class Environment of classes
- Env.Instance Environment of instances
- Env.Interface Environment of imported interfaces
- Env.ModuleAlias Environment of module aliases
- Env.OpPrec Environment of operator precedences
- Env.Type Environment of type identifiers
- Env.TypeConstructor Environment of type constructors
- Env.Value Environment for functions, constructors and labels
- Exports Computation of export interface
- Files
- Files.CymakePath File pathes
- Generators Code generators
- Generators.GenAbstractCurry Generation of AbstractCurry program terms
- Generators.GenAnnotatedFlatCurry Generation of typed FlatCurry program terms
- Generators.GenFlatCurry Generation of FlatCurry program and interface terms
- Generators.GenTypedFlatCurry Generation of typed FlatCurry program terms
- Html
- Html.CurryHtml Generating HTML documentation
- Html.SyntaxColoring Split module into code fragments
- IL Intermediate language
- IL.Pretty Pretty printer for IL
- IL.ShowModule Custom Show implementation for IL
- IL.Type Definition of the intermediate language (IL)
- IL.Typing TODO
- Imports Importing interface declarations
- Interfaces Loading interfaces
- Modules Compilation of a single module
- Paths_curry_frontend
- TokenStream Generating List of Tokens and Spans
- Transformations Code transformations
- Transformations.CaseCompletion CaseCompletion
- Transformations.CurryToIL Translation of Curry into IL
- Transformations.Derive Deriving instances
- Transformations.Desugar Desugaring Curry Expressions
- Transformations.Dictionary Dictionary insertion
- Transformations.Lift Lifting of lambda-expressions and local functions
- Transformations.Newtypes Removing newtype constructors
- Transformations.Qual Proper Qualification
- Transformations.Simplify Optimizing the Desugared Code