| 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
- toAbstract :: concrete -> ScopeM abstract
 
 - 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 PatName
 - data APatName
 
Documentation
class ToAbstract concrete abstract | concrete -> abstract where Source #
Things that can be translated to abstract syntax are instances of this class.
Methods
toAbstract :: concrete -> ScopeM abstract Source #
Instances
localToAbstract :: ToAbstract c a => c -> (a -> ScopeM b) -> ScopeM b Source #
This operation does not affect the scope, i.e. the original scope is restored upon completion.
concreteToAbstract_ :: ToAbstract c a => c -> ScopeM a Source #
concreteToAbstract :: ToAbstract c a => ScopeInfo -> c -> ScopeM a Source #
newtype NewModuleQName Source #
Constructors
| NewModuleQName QName | 
Instances
| ToAbstract NewModuleQName ModuleName Source # | |
Defined in Agda.Syntax.Translation.ConcreteToAbstract Methods  | |
Constructors
| OldName a | 
Instances
| (Show a, ToQName a) => ToAbstract (OldName a) QName Source # | |
Defined in Agda.Syntax.Translation.ConcreteToAbstract  | |
Temporary data type to scope check a file.
Constructors
| TopLevel | |
Fields 
  | |
Instances
| ToAbstract (TopLevel [Declaration]) TopLevelInfo Source # | Top-level declarations are always
     | 
Defined in Agda.Syntax.Translation.ConcreteToAbstract Methods toAbstract :: TopLevel [Declaration] -> ScopeM TopLevelInfo Source #  | |
data TopLevelInfo Source #
Constructors
| TopLevelInfo | |
Fields 
  | |
Instances
| ToAbstract (TopLevel [Declaration]) TopLevelInfo Source # | Top-level declarations are always
     | 
Defined in Agda.Syntax.Translation.ConcreteToAbstract Methods toAbstract :: TopLevel [Declaration] -> ScopeM TopLevelInfo Source #  | |
topLevelModuleName :: TopLevelInfo -> ModuleName Source #
The top-level module name.
data AbstractRHS Source #
Instances
| ToAbstract RHS AbstractRHS Source # | |
Defined in Agda.Syntax.Translation.ConcreteToAbstract Methods toAbstract :: RHS -> ScopeM AbstractRHS Source #  | |
| ToAbstract AbstractRHS RHS Source # | |
Defined in Agda.Syntax.Translation.ConcreteToAbstract Methods toAbstract :: AbstractRHS -> ScopeM RHS Source #  | |
data NewModuleName Source #
Instances
| ToAbstract NewModuleName ModuleName Source # | |
Defined in Agda.Syntax.Translation.ConcreteToAbstract Methods  | |
data OldModuleName Source #
Instances
| ToAbstract OldModuleName ModuleName Source # | |
Defined in Agda.Syntax.Translation.ConcreteToAbstract Methods  | |
Instances
Instances
| ToAbstract OldQName Expr Source # | |
Defined in Agda.Syntax.Translation.ConcreteToAbstract  | |
Instances
| ToAbstract PatName APatName Source # | |
Defined in Agda.Syntax.Translation.ConcreteToAbstract  | |
Instances
| ToAbstract PatName APatName Source # | |
Defined in Agda.Syntax.Translation.ConcreteToAbstract  | |