curry.toolchain.flat2icurry.flatcurry module
The FlatCurry data types, a reader for .fcy and .fint files, and a writer.
The types follow FlatCurry.Types of the Curry package flatcurry. A
qualified name is a pair (module, name). Lists stay Python lists. The
reader decodes the output of curry.utility.readcurry.parse(). The
writer prints a program as the Curry front end does (terms.showhaskell()),
so a program read from a file of the front end and written again gives the
same bytes.
- class curry.toolchain.flat2icurry.flatcurry.Branch(*args)
Bases:
BranchExpr- property body
- property pattern
- class curry.toolchain.flat2icurry.flatcurry.Case(*args)
Bases:
Expr- property branches
- property casetype
- property scrutinee
- class curry.toolchain.flat2icurry.flatcurry.Comb(*args)
Bases:
Expr- property args
- property combtype
- property name
- class curry.toolchain.flat2icurry.flatcurry.Cons(*args)
Bases:
ConsDecl- property argtypes
- property arity
- property name
- property visibility
- class curry.toolchain.flat2icurry.flatcurry.ForallType(*args)
Bases:
TypeExpr- property typeexpr
- property typevars
- class curry.toolchain.flat2icurry.flatcurry.Func(*args)
Bases:
FuncDecl- property arity
- property name
- property rule
- property typeexpr
- property visibility
- class curry.toolchain.flat2icurry.flatcurry.FuncType(*args)
Bases:
TypeExpr- property domain
- property range
- class curry.toolchain.flat2icurry.flatcurry.KArrow(*args)
Bases:
Kind- property domain
- property range
- class curry.toolchain.flat2icurry.flatcurry.LPattern(*args)
Bases:
PatternDecl- property literal
- class curry.toolchain.flat2icurry.flatcurry.Let(*args)
Bases:
Expr- property bindings
- property body
- class curry.toolchain.flat2icurry.flatcurry.NewCons(*args)
Bases:
ConsDecl- property name
- property typeexpr
- property visibility
- class curry.toolchain.flat2icurry.flatcurry.Op(*args)
Bases:
OpDecl- property fixity
- property name
- property precedence
- class curry.toolchain.flat2icurry.flatcurry.Pattern(*args)
Bases:
PatternDecl- property name
- property vars
- class curry.toolchain.flat2icurry.flatcurry.Prog(*args)
Bases:
Term- property functions
- property imports
- property name
- property operators
- property types
- class curry.toolchain.flat2icurry.flatcurry.Rule(*args)
Bases:
RuleDecl- property args
- property body
- class curry.toolchain.flat2icurry.flatcurry.TCons(*args)
Bases:
TypeExpr- property args
- property name
- class curry.toolchain.flat2icurry.flatcurry.Type(*args)
Bases:
TypeDecl- property constructors
- property name
- property typevars
- property visibility
- class curry.toolchain.flat2icurry.flatcurry.TypeNew(*args)
Bases:
TypeDecl- property constructor
- property name
- property typevars
- property visibility
- class curry.toolchain.flat2icurry.flatcurry.TypeSyn(*args)
Bases:
TypeDecl- property name
- property typeexpr
- property typevars
- property visibility
- class curry.toolchain.flat2icurry.flatcurry.Typed(*args)
Bases:
Expr- property expr
- property typeexpr
- curry.toolchain.flat2icurry.flatcurry.all_vars(expr)[source]
All variables of an expression, pattern variables included, in the order of
FlatCurry.Goodies.allVars. The list may repeat a variable. The walk keeps its own stack, so a nested application of any depth needs no recursion: an item of the stack is an expression to visit, or a list of variables to record as they are.
- curry.toolchain.flat2icurry.flatcurry.data_decls_of(prog)[source]
The data declarations of a program: a list of pairs of a type name and the constructor names with their arities. A type synonym contributes nothing. A newtype contributes its one unary constructor.
- curry.toolchain.flat2icurry.flatcurry.decode(rcdata)[source]
Converts the
readcurryrepresentation into FlatCurry terms. The walk runs on a stack of its own (utility.trampoline.trampoline()), so a term of any depth needs no recursion (issue #125).
- curry.toolchain.flat2icurry.flatcurry.load(filename)[source]
Reads a FlatCurry program (or interface) from a file.
- curry.toolchain.flat2icurry.flatcurry.prelude(name)[source]
The qualified name of a Prelude symbol.
- curry.toolchain.flat2icurry.flatcurry.read(text)[source]
Reads a FlatCurry program (or interface) from .fcy text.