| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Language.Dickinson
Description
This module contains some bits and pieces to work with Dickinson code.
Synopsis
- parse :: ByteString -> Either (ParseError AlexPosn) (Dickinson AlexPosn)
- data ParseError a
- = Unexpected (Token a)
- | LexErr String
- lexDickinson :: ByteString -> Either String [Token AlexPosn]
- data AlexPosn
- data Token a
- data Dickinson a
- data Declaration a
- data Expression a
- = Literal { }
- | StrChunk { }
- | Choice {
- exprAnn :: a
- choices :: NonEmpty (Double, Expression a)
- | Let {
- exprAnn :: a
- letBinds :: NonEmpty (Name a, Expression a)
- letExpr :: Expression a
- | Var { }
- | Interp {
- exprAnn :: a
- exprInterp :: [Expression a]
- | MultiInterp {
- exprAnn :: a
- exprMultiInterp :: [Expression a]
- | Lambda {
- exprAnn :: a
- lambdaVar :: Name a
- lambdaTy :: DickinsonTy a
- lambdaExpr :: Expression a
- | Apply {
- exprAnn :: a
- exprFun :: Expression a
- exprArg :: Expression a
- | Concat {
- exprAnn :: a
- exprConcats :: [Expression a]
- | Tuple {
- exprAnn :: a
- exprTup :: NonEmpty (Expression a)
- | Match {
- exprAnn :: a
- exprMatch :: Expression a
- exprPat :: Pattern a
- exprIn :: Expression a
- | Flatten {
- exprAnn :: a
- exprFlat :: Expression a
- | Annot {
- exprAnn :: a
- expr :: Expression a
- exprTy :: DickinsonTy a
- | Constructor {
- exprAnn :: a
- constructorName :: TyName a
- data Pattern a
- = PatternVar a (Name a)
- | PatternTuple a (NonEmpty (Pattern a))
- | PatternCons a (TyName a)
- | Wildcard a
- data DickinsonTy a
- = TyText a
- | TyFun a (DickinsonTy a) (DickinsonTy a)
- | TyTuple a (NonEmpty (DickinsonTy a))
- | TyNamed a (Name a)
- data Name a
- type TyName a = Name a
- class HasRenames a where
- rename :: Lens' a Renames
- renameExpressionM :: (MonadState s m, HasRenames s) => Expression a -> m (Expression a)
- resolveImport :: MonadIO m => [FilePath] -> Name a -> m (Maybe FilePath)
- dickinsonVersion :: Version
- dickinsonVersionString :: String
Parser
parse :: ByteString -> Either (ParseError AlexPosn) (Dickinson AlexPosn) #
data ParseError a #
Constructors
| Unexpected (Token a) | |
| LexErr String |
Instances
Lexer
lexDickinson :: ByteString -> Either String [Token AlexPosn] #
Instances
| Eq AlexPosn | |
| Data AlexPosn | |
Defined in Language.Dickinson.Lexer Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> AlexPosn -> c AlexPosn # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c AlexPosn # toConstr :: AlexPosn -> Constr # dataTypeOf :: AlexPosn -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c AlexPosn) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c AlexPosn) # gmapT :: (forall b. Data b => b -> b) -> AlexPosn -> AlexPosn # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> AlexPosn -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> AlexPosn -> r # gmapQ :: (forall d. Data d => d -> u) -> AlexPosn -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> AlexPosn -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> AlexPosn -> m AlexPosn # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> AlexPosn -> m AlexPosn # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> AlexPosn -> m AlexPosn # | |
| Show AlexPosn | |
| Generic AlexPosn | |
| Binary AlexPosn | |
| NFData AlexPosn | |
Defined in Language.Dickinson.Lexer | |
| Pretty AlexPosn | |
Defined in Language.Dickinson.Lexer | |
| type Rep AlexPosn | |
Defined in Language.Dickinson.Lexer type Rep AlexPosn = D1 ('MetaData "AlexPosn" "Language.Dickinson.Lexer" "language-dickinson-0.1.2.0-inplace-dickinson" 'False) (C1 ('MetaCons "AlexPn" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Int) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Int) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Int)))) | |
Constructors
| EOF | |
Fields
| |
| TokIdent | |
| TokTyCons | |
| TokDouble | |
| TokStrChunk | |
| TokString | |
| TokKeyword | |
| TokSym | |
Instances
AST
Instances
| Functor Dickinson | |
| Show a => Show (Dickinson a) | |
| Generic (Dickinson a) | |
| Binary a => Binary (Dickinson a) | |
| NFData a => NFData (Dickinson a) | |
Defined in Language.Dickinson.Type | |
| Pretty (Dickinson a) | |
Defined in Language.Dickinson.Type | |
| type Rep (Dickinson a) | |
Defined in Language.Dickinson.Type type Rep (Dickinson a) = D1 ('MetaData "Dickinson" "Language.Dickinson.Type" "language-dickinson-0.1.2.0-inplace-dickinson" 'False) (C1 ('MetaCons "Dickinson" 'PrefixI 'True) (S1 ('MetaSel ('Just "modImports") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Import a]) :*: S1 ('MetaSel ('Just "modDefs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Declaration a]))) | |
data Declaration a #
Instances
data Expression a #
Constructors
| Literal | |
| StrChunk | |
| Choice | |
Fields
| |
| Let | |
Fields
| |
| Var | |
| Interp | |
Fields
| |
| MultiInterp | |
Fields
| |
| Lambda | |
Fields
| |
| Apply | |
Fields
| |
| Concat | |
Fields
| |
| Tuple | |
Fields
| |
| Match | |
Fields
| |
| Flatten | |
Fields
| |
| Annot | |
Fields
| |
| Constructor | |
Fields
| |
Instances
Constructors
| PatternVar a (Name a) | |
| PatternTuple a (NonEmpty (Pattern a)) | |
| PatternCons a (TyName a) | |
| Wildcard a |
Instances
data DickinsonTy a #
Constructors
| TyText a | |
| TyFun a (DickinsonTy a) (DickinsonTy a) | |
| TyTuple a (NonEmpty (DickinsonTy a)) | |
| TyNamed a (Name a) |
Instances
Instances
| Functor Name | |
| Eq (Name a) | |
| Data a => Data (Name a) | |
Defined in Language.Dickinson.Name Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Name a -> c (Name a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Name a) # toConstr :: Name a -> Constr # dataTypeOf :: Name a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Name a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Name a)) # gmapT :: (forall b. Data b => b -> b) -> Name a -> Name a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Name a -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Name a -> r # gmapQ :: (forall d. Data d => d -> u) -> Name a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Name a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Name a -> m (Name a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Name a -> m (Name a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Name a -> m (Name a) # | |
| Ord (Name a) | |
| Show a => Show (Name a) | |
| Generic (Name a) | |
| Binary a => Binary (Name a) | |
| NFData a => NFData (Name a) | |
Defined in Language.Dickinson.Name | |
| Pretty (Name a) | |
Defined in Language.Dickinson.Name | |
| type Rep (Name a) | |
Defined in Language.Dickinson.Name type Rep (Name a) = D1 ('MetaData "Name" "Language.Dickinson.Name" "language-dickinson-0.1.2.0-inplace-dickinson" 'False) (C1 ('MetaCons "Name" 'PrefixI 'True) (S1 ('MetaSel ('Just "name") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NonEmpty Text)) :*: (S1 ('MetaSel ('Just "unique") 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Unique) :*: S1 ('MetaSel ('Just "loc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))) | |
Renamer
class HasRenames a where #
Instances
| HasRenames Renames | |
Defined in Language.Dickinson.Rename | |
| HasRenames AmalgamateSt | |
Defined in Language.Dickinson.File | |
| HasRenames (EvalSt a) | |
Defined in Language.Dickinson.Eval | |
renameExpressionM :: (MonadState s m, HasRenames s) => Expression a -> m (Expression a) #