| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Agda.Syntax.Translation.ConcreteToAbstract
Description
Translation from Agda.Syntax.Concrete to Agda.Syntax.Abstract. Involves scope analysis, figuring out infix operator precedences and tidying up definitions.
Synopsis
- class ToAbstract concrete abstract | concrete -> abstract where
- localToAbstract :: ToAbstract c a => c -> (a -> ScopeM b) -> ScopeM b
- concreteToAbstract_ :: ToAbstract c a => c -> ScopeM a
- concreteToAbstract :: ToAbstract c a => ScopeInfo -> c -> ScopeM a
- newtype NewModuleQName = NewModuleQName QName
- newtype OldName a = OldName a
- data TopLevel a = TopLevel {}
- data TopLevelInfo = TopLevelInfo {}
- topLevelModuleName :: TopLevelInfo -> ModuleName
- data AbstractRHS
- data NewModuleName
- data OldModuleName
- data NewName a
- data OldQName
- data LeftHandSide
- data RightHandSide
- data PatName
- data APatName
- data LetDef
- data LetDefs
Documentation
class ToAbstract concrete abstract | concrete -> abstract where #
Things that can be translated to abstract syntax are instances of this class.
Minimal complete definition
Methods
toAbstract :: concrete -> ScopeM abstract #
Instances
localToAbstract :: ToAbstract c a => c -> (a -> ScopeM b) -> ScopeM b #
This operation does not affect the scope, i.e. the original scope is restored upon completion.
concreteToAbstract_ :: ToAbstract c a => c -> ScopeM a #
concreteToAbstract :: ToAbstract c a => ScopeInfo -> c -> ScopeM a #
newtype NewModuleQName #
Constructors
| NewModuleQName QName |
Instances
| ToAbstract NewModuleQName ModuleName # | |
Defined in Agda.Syntax.Translation.ConcreteToAbstract Methods | |
Constructors
| OldName a |
Instances
| (Show a, ToQName a) => ToAbstract (OldName a) QName # | |
Defined in Agda.Syntax.Translation.ConcreteToAbstract Methods toAbstract :: OldName a -> ScopeM QName # | |
Temporary data type to scope check a file.
Constructors
| TopLevel | |
Fields
| |
Instances
| ToAbstract (TopLevel [Declaration]) TopLevelInfo # | Top-level declarations are always
|
Defined in Agda.Syntax.Translation.ConcreteToAbstract Methods toAbstract :: TopLevel [Declaration] -> ScopeM TopLevelInfo # | |
data TopLevelInfo #
Constructors
| TopLevelInfo | |
Fields
| |
Instances
| ToAbstract (TopLevel [Declaration]) TopLevelInfo # | Top-level declarations are always
|
Defined in Agda.Syntax.Translation.ConcreteToAbstract Methods toAbstract :: TopLevel [Declaration] -> ScopeM TopLevelInfo # | |
topLevelModuleName :: TopLevelInfo -> ModuleName #
The top-level module name.
data AbstractRHS #
Instances
| ToAbstract RHS AbstractRHS # | |
Defined in Agda.Syntax.Translation.ConcreteToAbstract Methods toAbstract :: RHS -> ScopeM AbstractRHS # | |
| ToAbstract AbstractRHS RHS # | |
Defined in Agda.Syntax.Translation.ConcreteToAbstract Methods toAbstract :: AbstractRHS -> ScopeM RHS # | |
| ToAbstract RightHandSide AbstractRHS # | |
Defined in Agda.Syntax.Translation.ConcreteToAbstract Methods | |
data NewModuleName #
Instances
| ToAbstract NewModuleName ModuleName # | |
Defined in Agda.Syntax.Translation.ConcreteToAbstract Methods toAbstract :: NewModuleName -> ScopeM ModuleName # | |
data OldModuleName #
Instances
| ToAbstract OldModuleName ModuleName # | |
Defined in Agda.Syntax.Translation.ConcreteToAbstract Methods toAbstract :: OldModuleName -> ScopeM ModuleName # | |
Instances
| ToAbstract (NewName Name) Name # | |
Defined in Agda.Syntax.Translation.ConcreteToAbstract | |
| ToAbstract (NewName BoundName) Name # | |
Defined in Agda.Syntax.Translation.ConcreteToAbstract | |
Instances
| ToAbstract OldQName Expr # | |
Defined in Agda.Syntax.Translation.ConcreteToAbstract Methods toAbstract :: OldQName -> ScopeM Expr # | |
data LeftHandSide #
Instances
| ToAbstract LeftHandSide LHS # | |
Defined in Agda.Syntax.Translation.ConcreteToAbstract Methods toAbstract :: LeftHandSide -> ScopeM LHS # | |
data RightHandSide #
Instances
| ToAbstract RightHandSide AbstractRHS # | |
Defined in Agda.Syntax.Translation.ConcreteToAbstract Methods | |
Instances
| ToAbstract PatName APatName # | |
Defined in Agda.Syntax.Translation.ConcreteToAbstract Methods toAbstract :: PatName -> ScopeM APatName # | |
Instances
| ToAbstract PatName APatName # | |
Defined in Agda.Syntax.Translation.ConcreteToAbstract Methods toAbstract :: PatName -> ScopeM APatName # | |
Instances
| ToAbstract LetDef [LetBinding] # | |
Defined in Agda.Syntax.Translation.ConcreteToAbstract Methods toAbstract :: LetDef -> ScopeM [LetBinding] # | |
Instances
| ToAbstract LetDefs [LetBinding] # | |
Defined in Agda.Syntax.Translation.ConcreteToAbstract Methods toAbstract :: LetDefs -> ScopeM [LetBinding] # | |