| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Nix.Parser
Description
Main module for parsing Nix expressions.
Synopsis
- parseNixFile :: MonadFile m => Path -> m (Result NExpr)
- parseNixFileLoc :: MonadFile m => Path -> m (Result NExprLoc)
- parseNixText :: Text -> Result NExpr
- parseNixTextLoc :: Text -> Result NExprLoc
- parseExpr :: MonadFail m => Text -> m NExpr
- parseFromFileEx :: MonadFile m => Parser a -> Path -> m (Result a)
- type Parser = ParsecT Void Text (State SourcePos)
- parseFromText :: Parser a -> Text -> Result a
- type Result a = Either (Doc Void) a
- reservedNames :: HashSet VarName
- data NAssoc
- newtype NOpPrecedence = NOpPrecedence Int
- newtype NOpName = NOpName Text
- data NSpecialOp
- = NHasAttrOp
- | NSelectOp
- | NTerm
- data NOperatorDef
- nixExpr :: Parser NExprLoc
- nixExprAlgebra :: Parser NExprLoc
- nixSet :: Parser NExprLoc
- nixBinders :: Parser [Binding NExprLoc]
- nixSelector :: Parser (AnnUnit SrcSpan (NAttrPath NExprLoc))
- nixSym :: Parser NExprLoc
- nixPath :: Parser NExprLoc
- nixString :: Parser NExprLoc
- nixUri :: Parser NExprLoc
- nixSearchPath :: Parser NExprLoc
- nixFloat :: Parser NExprLoc
- nixInt :: Parser NExprLoc
- nixBool :: Parser NExprLoc
- nixNull :: Parser NExprLoc
- whiteSpace :: Parser ()
- class NOp a where
- getOpDef :: a -> NOperatorDef
- getOpAssoc :: a -> NAssoc
- getOpPrecedence :: a -> NOpPrecedence
- getOpName :: a -> NOpName
- appOpDef :: NOperatorDef
Documentation
Constructors
| NAssocLeft | |
| NAssoc | Bidirectional associativity, or simply: associative property. |
| NAssocRight |
Instances
| NFData NAssoc Source # | |||||
Defined in Nix.Parser | |||||
| Data NAssoc Source # | |||||
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 # | |||||
Defined in Nix.Parser Associated Types
| |||||
| Show NAssoc Source # | |||||
| Eq NAssoc Source # | |||||
| Ord NAssoc Source # | |||||
| type Rep NAssoc Source # | |||||
Defined in Nix.Parser type Rep NAssoc = D1 ('MetaData "NAssoc" "Nix.Parser" "hnix-0.17.0-70ystd6u6qm9QLpKYxOC5P" '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
| NFData NOpName Source # | |||||
Defined in Nix.Parser | |||||
| Data NOpName Source # | |||||
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 # | |||||
Defined in Nix.Parser Methods fromString :: String -> NOpName # | |||||
| Generic NOpName Source # | |||||
Defined in Nix.Parser Associated Types
| |||||
| Show NOpName Source # | |||||
| Eq NOpName Source # | |||||
| Ord NOpName Source # | |||||
| ToString NOpName Source # | |||||
| type Rep NOpName Source # | |||||
Defined in Nix.Parser | |||||
data NSpecialOp Source #
Constructors
| NHasAttrOp | |
| NSelectOp | |
| NTerm | For special handling of internal special cases. |
Instances
| NFData NSpecialOp Source # | |||||
Defined in Nix.Parser Methods rnf :: NSpecialOp -> () # | |||||
| Data NSpecialOp Source # | |||||
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 # | |||||
Defined in Nix.Parser Associated Types
| |||||
| Show NSpecialOp Source # | |||||
Defined in Nix.Parser Methods showsPrec :: Int -> NSpecialOp -> ShowS # show :: NSpecialOp -> String # showList :: [NSpecialOp] -> ShowS # | |||||
| Eq NSpecialOp Source # | |||||
Defined in Nix.Parser | |||||
| Ord NSpecialOp Source # | |||||
Defined in Nix.Parser Methods compare :: NSpecialOp -> NSpecialOp -> Ordering # (<) :: NSpecialOp -> NSpecialOp -> Bool # (<=) :: NSpecialOp -> NSpecialOp -> Bool # (>) :: NSpecialOp -> NSpecialOp -> Bool # (>=) :: NSpecialOp -> NSpecialOp -> Bool # max :: NSpecialOp -> NSpecialOp -> NSpecialOp # min :: NSpecialOp -> NSpecialOp -> NSpecialOp # | |||||
| NOp NSpecialOp Source # | |||||
Defined in Nix.Parser Methods getOpDef :: NSpecialOp -> NOperatorDef Source # getOpAssoc :: NSpecialOp -> NAssoc Source # getOpPrecedence :: NSpecialOp -> NOpPrecedence Source # getOpName :: NSpecialOp -> NOpName Source # | |||||
| type Rep NSpecialOp Source # | |||||
Defined in Nix.Parser type Rep NSpecialOp = D1 ('MetaData "NSpecialOp" "Nix.Parser" "hnix-0.17.0-70ystd6u6qm9QLpKYxOC5P" '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.
Constructors
| NAppDef NAppOp NAssoc NOpPrecedence NOpName | |
| NUnaryDef NUnaryOp NAssoc NOpPrecedence NOpName | |
| NBinaryDef NBinaryOp NAssoc NOpPrecedence NOpName | |
| NSpecialDef NSpecialOp NAssoc NOpPrecedence NOpName |
Instances
| NFData NOperatorDef Source # | |||||
Defined in Nix.Parser Methods rnf :: NOperatorDef -> () # | |||||
| Data NOperatorDef Source # | |||||
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 # | |||||
Defined in Nix.Parser Associated Types
| |||||
| Show NOperatorDef Source # | |||||
Defined in Nix.Parser Methods showsPrec :: Int -> NOperatorDef -> ShowS # show :: NOperatorDef -> String # showList :: [NOperatorDef] -> ShowS # | |||||
| Eq NOperatorDef Source # | |||||
Defined in Nix.Parser | |||||
| Ord NOperatorDef Source # | |||||
Defined in Nix.Parser Methods compare :: NOperatorDef -> NOperatorDef -> Ordering # (<) :: NOperatorDef -> NOperatorDef -> Bool # (<=) :: NOperatorDef -> NOperatorDef -> Bool # (>) :: NOperatorDef -> NOperatorDef -> Bool # (>=) :: NOperatorDef -> NOperatorDef -> Bool # max :: NOperatorDef -> NOperatorDef -> NOperatorDef # min :: NOperatorDef -> NOperatorDef -> NOperatorDef # | |||||
| NOp NOperatorDef Source # | |||||
Defined in Nix.Parser Methods getOpDef :: NOperatorDef -> NOperatorDef Source # getOpAssoc :: NOperatorDef -> NAssoc Source # getOpPrecedence :: NOperatorDef -> NOpPrecedence Source # getOpName :: NOperatorDef -> NOpName Source # | |||||
| type Rep NOperatorDef Source # | |||||
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.
whiteSpace :: Parser () 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.
Methods
getOpDef :: a -> NOperatorDef Source #
getOpAssoc :: a -> NAssoc Source #
getOpPrecedence :: a -> NOpPrecedence Source #
Instances
| NOp NBinaryOp Source # | |
Defined in Nix.Parser Methods getOpDef :: NBinaryOp -> NOperatorDef Source # getOpAssoc :: NBinaryOp -> NAssoc Source # | |
| NOp NUnaryOp Source # | |
Defined in Nix.Parser Methods getOpDef :: NUnaryOp -> NOperatorDef Source # getOpAssoc :: NUnaryOp -> NAssoc Source # | |
| NOp NOperatorDef Source # | |
Defined in Nix.Parser Methods getOpDef :: NOperatorDef -> NOperatorDef Source # getOpAssoc :: NOperatorDef -> NAssoc Source # getOpPrecedence :: NOperatorDef -> NOpPrecedence Source # getOpName :: NOperatorDef -> NOpName Source # | |
| NOp NSpecialOp Source # | |
Defined in Nix.Parser Methods getOpDef :: NSpecialOp -> NOperatorDef Source # getOpAssoc :: NSpecialOp -> NAssoc Source # getOpPrecedence :: NSpecialOp -> NOpPrecedence Source # getOpName :: NSpecialOp -> NOpName Source # | |
appOpDef :: NOperatorDef Source #
Functional application operator definition, left associative, high precedence.