jsonnet-0.3.1.1: Jsonnet implementaton in pure Haskell
Copyright(c) 2020-2021 Alexandre Moreno
LicenseBSD-3-Clause OR Apache-2.0
MaintainerAlexandre Moreno <alexmorenocano@gmail.com>
Stabilityexperimental
Portabilitynon-portable
Safe HaskellNone
LanguageHaskell2010

Language.Jsonnet.Syntax

Description

 

Documentation

type Param a = (Ident, Maybe a) Source #

data EField a Source #

Constructors

EField 

Fields

Instances

Instances details
Functor EField Source # 
Instance details

Defined in Language.Jsonnet.Syntax

Methods

fmap :: (a -> b) -> EField a -> EField b #

(<$) :: a -> EField b -> EField a #

Foldable EField Source # 
Instance details

Defined in Language.Jsonnet.Syntax

Methods

fold :: Monoid m => EField m -> m #

foldMap :: Monoid m => (a -> m) -> EField a -> m #

foldMap' :: Monoid m => (a -> m) -> EField a -> m #

foldr :: (a -> b -> b) -> b -> EField a -> b #

foldr' :: (a -> b -> b) -> b -> EField a -> b #

foldl :: (b -> a -> b) -> b -> EField a -> b #

foldl' :: (b -> a -> b) -> b -> EField a -> b #

foldr1 :: (a -> a -> a) -> EField a -> a #

foldl1 :: (a -> a -> a) -> EField a -> a #

toList :: EField a -> [a] #

null :: EField a -> Bool #

length :: EField a -> Int #

elem :: Eq a => a -> EField a -> Bool #

maximum :: Ord a => EField a -> a #

minimum :: Ord a => EField a -> a #

sum :: Num a => EField a -> a #

product :: Num a => EField a -> a #

Traversable EField Source # 
Instance details

Defined in Language.Jsonnet.Syntax

Methods

traverse :: Applicative f => (a -> f b) -> EField a -> f (EField b) #

sequenceA :: Applicative f => EField (f a) -> f (EField a) #

mapM :: Monad m => (a -> m b) -> EField a -> m (EField b) #

sequence :: Monad m => EField (m a) -> m (EField a) #

Show1 EField Source # 
Instance details

Defined in Language.Jsonnet.Syntax

Methods

liftShowsPrec :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> EField a -> ShowS #

liftShowList :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> [EField a] -> ShowS #

Data a => Lift (EField a :: Type) Source # 
Instance details

Defined in Language.Jsonnet.TH

Methods

lift :: EField a -> Q Exp #

liftTyped :: EField a -> Q (TExp (EField a)) #

Eq a => Eq (EField a) Source # 
Instance details

Defined in Language.Jsonnet.Syntax

Methods

(==) :: EField a -> EField a -> Bool #

(/=) :: EField a -> EField a -> Bool #

Data a => Data (EField a) Source # 
Instance details

Defined in Language.Jsonnet.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> EField a -> c (EField a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (EField a) #

toConstr :: EField a -> Constr #

dataTypeOf :: EField a -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (EField a)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (EField a)) #

gmapT :: (forall b. Data b => b -> b) -> EField a -> EField a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> EField a -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> EField a -> r #

gmapQ :: (forall d. Data d => d -> u) -> EField a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> EField a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> EField a -> m (EField a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> EField a -> m (EField a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> EField a -> m (EField a) #

Read a => Read (EField a) Source # 
Instance details

Defined in Language.Jsonnet.Syntax

Show a => Show (EField a) Source # 
Instance details

Defined in Language.Jsonnet.Syntax

Methods

showsPrec :: Int -> EField a -> ShowS #

show :: EField a -> String #

showList :: [EField a] -> ShowS #

Generic (EField a) Source # 
Instance details

Defined in Language.Jsonnet.Syntax

Associated Types

type Rep (EField a) :: Type -> Type #

Methods

from :: EField a -> Rep (EField a) x #

to :: Rep (EField a) x -> EField a #

Alpha a => Alpha (EField a) Source # 
Instance details

Defined in Language.Jsonnet.Syntax

type Rep (EField a) Source # 
Instance details

Defined in Language.Jsonnet.Syntax

type Rep (EField a) = D1 ('MetaData "EField" "Language.Jsonnet.Syntax" "jsonnet-0.3.1.1-HRvoiMrrp7QzMlnzingfy" 'False) (C1 ('MetaCons "EField" 'PrefixI 'True) ((S1 ('MetaSel ('Just "key") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "value") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :*: (S1 ('MetaSel ('Just "visibility") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Visibility) :*: S1 ('MetaSel ('Just "override") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool))))

data ExprF a Source #

Constructors

ELit Literal 
EIdent Ident 
EFun [Param a] a 
EApply a (Args a) 
ELocal 

Fields

EObj 

Fields

EArr [a] 
EErr a 
ELookup a a 
EIndex a a 
EAssert (Assert a) 
EIf a a 
EIfElse a a a 
ESlice 

Fields

EBinOp BinOp a a 
EUnyOp UnyOp a 
EArrComp 

Fields

EObjComp 

Fields

Instances

Instances details
Functor ExprF Source # 
Instance details

Defined in Language.Jsonnet.Syntax

Methods

fmap :: (a -> b) -> ExprF a -> ExprF b #

(<$) :: a -> ExprF b -> ExprF a #

Foldable ExprF Source # 
Instance details

Defined in Language.Jsonnet.Syntax

Methods

fold :: Monoid m => ExprF m -> m #

foldMap :: Monoid m => (a -> m) -> ExprF a -> m #

foldMap' :: Monoid m => (a -> m) -> ExprF a -> m #

foldr :: (a -> b -> b) -> b -> ExprF a -> b #

foldr' :: (a -> b -> b) -> b -> ExprF a -> b #

foldl :: (b -> a -> b) -> b -> ExprF a -> b #

foldl' :: (b -> a -> b) -> b -> ExprF a -> b #

foldr1 :: (a -> a -> a) -> ExprF a -> a #

foldl1 :: (a -> a -> a) -> ExprF a -> a #

toList :: ExprF a -> [a] #

null :: ExprF a -> Bool #

length :: ExprF a -> Int #

elem :: Eq a => a -> ExprF a -> Bool #

maximum :: Ord a => ExprF a -> a #

minimum :: Ord a => ExprF a -> a #

sum :: Num a => ExprF a -> a #

product :: Num a => ExprF a -> a #

Traversable ExprF Source # 
Instance details

Defined in Language.Jsonnet.Syntax

Methods

traverse :: Applicative f => (a -> f b) -> ExprF a -> f (ExprF b) #

sequenceA :: Applicative f => ExprF (f a) -> f (ExprF a) #

mapM :: Monad m => (a -> m b) -> ExprF a -> m (ExprF b) #

sequence :: Monad m => ExprF (m a) -> m (ExprF a) #

Show1 ExprF Source # 
Instance details

Defined in Language.Jsonnet.Syntax

Methods

liftShowsPrec :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> ExprF a -> ShowS #

liftShowList :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> [ExprF a] -> ShowS #

Lift Expr Source # 
Instance details

Defined in Language.Jsonnet.TH

Methods

lift :: Expr -> Q Exp #

liftTyped :: Expr -> Q (TExp Expr) #

Data a => Lift (ExprF a :: Type) Source # 
Instance details

Defined in Language.Jsonnet.TH

Methods

lift :: ExprF a -> Q Exp #

liftTyped :: ExprF a -> Q (TExp (ExprF a)) #

Data a => Data (ExprF a) Source # 
Instance details

Defined in Language.Jsonnet.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ExprF a -> c (ExprF a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (ExprF a) #

toConstr :: ExprF a -> Constr #

dataTypeOf :: ExprF a -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (ExprF a)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (ExprF a)) #

gmapT :: (forall b. Data b => b -> b) -> ExprF a -> ExprF a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ExprF a -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ExprF a -> r #

gmapQ :: (forall d. Data d => d -> u) -> ExprF a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> ExprF a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> ExprF a -> m (ExprF a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ExprF a -> m (ExprF a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ExprF a -> m (ExprF a) #

Show a => Show (ExprF a) Source # 
Instance details

Defined in Language.Jsonnet.Syntax

Methods

showsPrec :: Int -> ExprF a -> ShowS #

show :: ExprF a -> String #

showList :: [ExprF a] -> ShowS #

Generic (ExprF a) Source # 
Instance details

Defined in Language.Jsonnet.Syntax

Associated Types

type Rep (ExprF a) :: Type -> Type #

Methods

from :: ExprF a -> Rep (ExprF a) x #

to :: Rep (ExprF a) x -> ExprF a #

type Rep (ExprF a) Source # 
Instance details

Defined in Language.Jsonnet.Syntax

type Rep (ExprF a) = D1 ('MetaData "ExprF" "Language.Jsonnet.Syntax" "jsonnet-0.3.1.1-HRvoiMrrp7QzMlnzingfy" 'False) ((((C1 ('MetaCons "ELit" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Literal)) :+: C1 ('MetaCons "EIdent" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Ident))) :+: (C1 ('MetaCons "EFun" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Param a]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons "EApply" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Args a))))) :+: ((C1 ('MetaCons "ELocal" 'PrefixI 'True) (S1 ('MetaSel ('Just "bnds") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NonEmpty (Ident, a))) :*: S1 ('MetaSel ('Just "expr") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons "EObj" 'PrefixI 'True) (S1 ('MetaSel ('Just "locals") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(Ident, a)]) :*: S1 ('MetaSel ('Just "fields") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [EField a]))) :+: (C1 ('MetaCons "EArr" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [a])) :+: (C1 ('MetaCons "EErr" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons "ELookup" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))))) :+: (((C1 ('MetaCons "EIndex" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons "EAssert" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Assert a)))) :+: (C1 ('MetaCons "EIf" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons "EIfElse" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))))) :+: ((C1 ('MetaCons "ESlice" 'PrefixI 'True) ((S1 ('MetaSel ('Just "expr") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "start") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe a))) :*: (S1 ('MetaSel ('Just "end") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe a)) :*: S1 ('MetaSel ('Just "step") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe a)))) :+: C1 ('MetaCons "EBinOp" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 BinOp) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))) :+: (C1 ('MetaCons "EUnyOp" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 UnyOp) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: (C1 ('MetaCons "EArrComp" 'PrefixI 'True) (S1 ('MetaSel ('Just "expr") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "comp") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NonEmpty (CompSpec a)))) :+: C1 ('MetaCons "EObjComp" 'PrefixI 'True) (S1 ('MetaSel ('Just "field") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (EField a)) :*: (S1 ('MetaSel ('Just "locals") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(Ident, a)]) :*: S1 ('MetaSel ('Just "comp") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NonEmpty (CompSpec a))))))))))

newtype Import Source #

Constructors

Import FilePath 

Instances

Instances details
Eq Import Source # 
Instance details

Defined in Language.Jsonnet.Syntax

Methods

(==) :: Import -> Import -> Bool #

(/=) :: Import -> Import -> Bool #

Show Import Source # 
Instance details

Defined in Language.Jsonnet.Syntax

mkIntF :: Integral b => b -> ExprF' a Source #

mkFunF :: [Param a] -> a -> ExprF' a Source #

mkApplyF :: a -> Args a -> ExprF' a Source #

mkIfF :: a -> a -> ExprF' a Source #

mkIfElseF :: a -> a -> a -> ExprF' a Source #

mkLocalF :: NonEmpty (Ident, a) -> a -> ExprF' a Source #

mkLookupF :: a -> a -> ExprF' a Source #

mkIndexF :: a -> a -> ExprF' a Source #

mkSliceF Source #

Arguments

:: a 
-> Maybe a 
-> Maybe a 
-> Maybe a 
-> ExprF' a 

mkObjectF Source #

Arguments

:: [EField a] 
-> [(Ident, a)] 
-> ExprF' a 

mkArrayF :: [a] -> ExprF' a Source #

mkAssertF :: a -> Maybe a -> a -> ExprF' a Source #

mkObjCompF Source #

Arguments

:: EField a 
-> [(Ident, a)] 
-> NonEmpty (CompSpec a) 
-> ExprF' a