hnix-0.17.0: Haskell implementation of the Nix language
Safe HaskellSafe-Inferred
LanguageHaskell2010

Nix.Parser

Description

Main module for parsing Nix expressions.

Synopsis

Documentation

type Result a = Either (Doc Void) a Source #

data NAssoc Source #

Constructors

NAssocLeft 
NAssoc

Bidirectional associativity, or simply: associative property.

NAssocRight 

Instances

Instances details
Data NAssoc Source # 
Instance details

Defined in Nix.Parser

Methods

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

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

toConstr :: NAssoc -> Constr #

dataTypeOf :: NAssoc -> DataType #

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

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

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

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

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

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

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

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

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

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

Generic NAssoc Source # 
Instance details

Defined in Nix.Parser

Associated Types

type Rep NAssoc :: Type -> Type #

Methods

from :: NAssoc -> Rep NAssoc x #

to :: Rep NAssoc x -> NAssoc #

Show NAssoc Source # 
Instance details

Defined in Nix.Parser

NFData NAssoc Source # 
Instance details

Defined in Nix.Parser

Methods

rnf :: NAssoc -> () #

Eq NAssoc Source # 
Instance details

Defined in Nix.Parser

Methods

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

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

Ord NAssoc Source # 
Instance details

Defined in Nix.Parser

type Rep NAssoc Source # 
Instance details

Defined in Nix.Parser

type Rep NAssoc = D1 ('MetaData "NAssoc" "Nix.Parser" "hnix-0.17.0-8saIMbclRB9HPH4JCEpCXn" 'False) (C1 ('MetaCons "NAssocLeft" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "NAssoc" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "NAssocRight" 'PrefixI 'False) (U1 :: Type -> Type)))

newtype NOpPrecedence Source #

Constructors

NOpPrecedence Int 

Instances

Instances details
Data NOpPrecedence Source # 
Instance details

Defined in Nix.Parser

Methods

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

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

toConstr :: NOpPrecedence -> Constr #

dataTypeOf :: NOpPrecedence -> DataType #

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

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

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

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

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

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

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

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

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

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

Bounded NOpPrecedence Source # 
Instance details

Defined in Nix.Parser

Enum NOpPrecedence Source # 
Instance details

Defined in Nix.Parser

Generic NOpPrecedence Source # 
Instance details

Defined in Nix.Parser

Associated Types

type Rep NOpPrecedence :: Type -> Type #

Num NOpPrecedence Source # 
Instance details

Defined in Nix.Parser

Show NOpPrecedence Source # 
Instance details

Defined in Nix.Parser

NFData NOpPrecedence Source # 
Instance details

Defined in Nix.Parser

Methods

rnf :: NOpPrecedence -> () #

Eq NOpPrecedence Source # 
Instance details

Defined in Nix.Parser

Ord NOpPrecedence Source # 
Instance details

Defined in Nix.Parser

type Rep NOpPrecedence Source # 
Instance details

Defined in Nix.Parser

type Rep NOpPrecedence = D1 ('MetaData "NOpPrecedence" "Nix.Parser" "hnix-0.17.0-8saIMbclRB9HPH4JCEpCXn" 'True) (C1 ('MetaCons "NOpPrecedence" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)))

newtype NOpName Source #

Constructors

NOpName Text 

Instances

Instances details
Data NOpName Source # 
Instance details

Defined in Nix.Parser

Methods

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

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

toConstr :: NOpName -> Constr #

dataTypeOf :: NOpName -> DataType #

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

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

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

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

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

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

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

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

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

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

IsString NOpName Source # 
Instance details

Defined in Nix.Parser

Methods

fromString :: String -> NOpName #

Generic NOpName Source # 
Instance details

Defined in Nix.Parser

Associated Types

type Rep NOpName :: Type -> Type #

Methods

from :: NOpName -> Rep NOpName x #

to :: Rep NOpName x -> NOpName #

Show NOpName Source # 
Instance details

Defined in Nix.Parser

NFData NOpName Source # 
Instance details

Defined in Nix.Parser

Methods

rnf :: NOpName -> () #

Eq NOpName Source # 
Instance details

Defined in Nix.Parser

Methods

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

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

Ord NOpName Source # 
Instance details

Defined in Nix.Parser

ToString NOpName Source # 
Instance details

Defined in Nix.Parser

Methods

toString :: NOpName -> String #

type Rep NOpName Source # 
Instance details

Defined in Nix.Parser

type Rep NOpName = D1 ('MetaData "NOpName" "Nix.Parser" "hnix-0.17.0-8saIMbclRB9HPH4JCEpCXn" 'True) (C1 ('MetaCons "NOpName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)))

data NSpecialOp Source #

Constructors

NHasAttrOp 
NSelectOp 
NTerm

For special handling of internal special cases.

Instances

Instances details
Data NSpecialOp Source # 
Instance details

Defined in Nix.Parser

Methods

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

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

toConstr :: NSpecialOp -> Constr #

dataTypeOf :: NSpecialOp -> DataType #

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

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

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

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

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

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

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

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

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

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

Generic NSpecialOp Source # 
Instance details

Defined in Nix.Parser

Associated Types

type Rep NSpecialOp :: Type -> Type #

Show NSpecialOp Source # 
Instance details

Defined in Nix.Parser

NFData NSpecialOp Source # 
Instance details

Defined in Nix.Parser

Methods

rnf :: NSpecialOp -> () #

Eq NSpecialOp Source # 
Instance details

Defined in Nix.Parser

Ord NSpecialOp Source # 
Instance details

Defined in Nix.Parser

NOp NSpecialOp Source # 
Instance details

Defined in Nix.Parser

type Rep NSpecialOp Source # 
Instance details

Defined in Nix.Parser

type Rep NSpecialOp = D1 ('MetaData "NSpecialOp" "Nix.Parser" "hnix-0.17.0-8saIMbclRB9HPH4JCEpCXn" 'False) (C1 ('MetaCons "NHasAttrOp" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "NSelectOp" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "NTerm" 'PrefixI 'False) (U1 :: Type -> Type)))

data NOperatorDef Source #

Single operator grammar entries.

Instances

Instances details
Data NOperatorDef Source # 
Instance details

Defined in Nix.Parser

Methods

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

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

toConstr :: NOperatorDef -> Constr #

dataTypeOf :: NOperatorDef -> DataType #

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

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

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

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

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

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

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

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

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

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

Generic NOperatorDef Source # 
Instance details

Defined in Nix.Parser

Associated Types

type Rep NOperatorDef :: Type -> Type #

Show NOperatorDef Source # 
Instance details

Defined in Nix.Parser

NFData NOperatorDef Source # 
Instance details

Defined in Nix.Parser

Methods

rnf :: NOperatorDef -> () #

Eq NOperatorDef Source # 
Instance details

Defined in Nix.Parser

Ord NOperatorDef Source # 
Instance details

Defined in Nix.Parser

NOp NOperatorDef Source # 
Instance details

Defined in Nix.Parser

type Rep NOperatorDef Source # 
Instance details

Defined in Nix.Parser

nixExprAlgebra :: Parser NExprLoc Source #

Nix expression algebra parser. "Expression algebra" is to explain megaparsec use of the term Expression (parser for language algebraic coperators without any statements (without let etc.)), which is essentially an algebra inside the language.

nixSearchPath :: Parser NExprLoc Source #

A path surrounded by angle brackets, indicating that it should be looked up in the NIX_PATH environment variable at evaluation.

class NOp a where Source #

Class to get a private free construction to abstract away the gap between the Nix operation types NUnaryOp, NBinaryOp, NSpecialOp. And in doing remove OperatorInfo from existance.

appOpDef :: NOperatorDef Source #

Functional application operator definition, left associative, high precedence.