Modulehnix-0.17.0Haskell2010
Nix.Parser
Main module for parsing Nix expressions.
- 7 types
- 1 class
- 24 values
- Packagehnix-0.17.0
- Exports32
- LanguageHaskell2010
- LicenceBSD-3-Clause
- SourceParser.hs
Constructors
NAssocLeftNAssocBidirectional associativity, or simply: associative property.
NAssocRight
Instances7Eq, Data, Ord, Show, Generic, NFData, …
Eq NAssocDefined in hnix-0.17.0 · Nix.ParserData NAssocDefined in hnix-0.17.0 · Nix.ParserOrd NAssocDefined in hnix-0.17.0 · Nix.ParserShow NAssocDefined in hnix-0.17.0 · Nix.ParserGeneric NAssocDefined in hnix-0.17.0 · Nix.ParserNFData NAssocDefined in hnix-0.17.0 · Nix.Parsertype Rep NAssoc = D1 ('MetaDataDefined in hnix-0.17.0 · Nix.Parser"NAssoc"
"Nix.Parser"
"hnix-0.17.0-Iy75YcImuzK7FD0KGfkLv7"
'False) (C1 ('MetaCons"NAssocLeft"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"NAssoc"
'PrefixI 'False) U1 :+: C1 ('MetaCons"NAssocRight"
'PrefixI 'False) U1))
Constructors
Instances10Bounded, Enum, Eq, Data, Num, Ord, …
Bounded NOpPrecedenceDefined in hnix-0.17.0 · Nix.ParserEnum NOpPrecedenceDefined in hnix-0.17.0 · Nix.ParserEq NOpPrecedenceDefined in hnix-0.17.0 · Nix.ParserData NOpPrecedenceDefined in hnix-0.17.0 · Nix.ParserNum NOpPrecedenceDefined in hnix-0.17.0 · Nix.ParserOrd NOpPrecedenceDefined in hnix-0.17.0 · Nix.ParserShow NOpPrecedenceDefined in hnix-0.17.0 · Nix.ParserGeneric NOpPrecedenceDefined in hnix-0.17.0 · Nix.ParserNFData NOpPrecedenceDefined in hnix-0.17.0 · Nix.Parsertype Rep NOpPrecedence = D1 ('MetaDataDefined in hnix-0.17.0 · Nix.Parser"NOpPrecedence"
"Nix.Parser"
"hnix-0.17.0-Iy75YcImuzK7FD0KGfkLv7"
'True) (C1 ('MetaCons"NOpPrecedence"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)))
Instances9Eq, Data, Ord, Show, IsString, Generic, …
Eq NOpNameDefined in hnix-0.17.0 · Nix.ParserData NOpNameDefined in hnix-0.17.0 · Nix.ParserOrd NOpNameDefined in hnix-0.17.0 · Nix.ParserShow NOpNameDefined in hnix-0.17.0 · Nix.ParserIsString NOpNameDefined in hnix-0.17.0 · Nix.ParserGeneric NOpNameDefined in hnix-0.17.0 · Nix.ParserNFData NOpNameDefined in hnix-0.17.0 · Nix.ParserToString NOpNameDefined in hnix-0.17.0 · Nix.Parsertype Rep NOpName = D1 ('MetaDataDefined in hnix-0.17.0 · Nix.Parser"NOpName"
"Nix.Parser"
"hnix-0.17.0-Iy75YcImuzK7FD0KGfkLv7"
'True) (C1 ('MetaCons"NOpName"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)))
Constructors
NHasAttrOpNSelectOpNTermFor special handling of internal special cases.
Instances8Eq, Data, Ord, Show, Generic, NFData, …
Eq NSpecialOpDefined in hnix-0.17.0 · Nix.ParserData NSpecialOpDefined in hnix-0.17.0 · Nix.ParserOrd NSpecialOpDefined in hnix-0.17.0 · Nix.ParserShow NSpecialOpDefined in hnix-0.17.0 · Nix.ParserGeneric NSpecialOpDefined in hnix-0.17.0 · Nix.ParserNFData NSpecialOpDefined in hnix-0.17.0 · Nix.ParserNOp NSpecialOpDefined in hnix-0.17.0 · Nix.Parsertype Rep NSpecialOp = D1 ('MetaDataDefined in hnix-0.17.0 · Nix.Parser"NSpecialOp"
"Nix.Parser"
"hnix-0.17.0-Iy75YcImuzK7FD0KGfkLv7"
'False) (C1 ('MetaCons"NHasAttrOp"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"NSelectOp"
'PrefixI 'False) U1 :+: C1 ('MetaCons"NTerm"
'PrefixI 'False) U1))
Single operator grammar entries.
Instances8Eq, Data, Ord, Show, Generic, NFData, …
Eq NOperatorDefDefined in hnix-0.17.0 · Nix.ParserData NOperatorDefDefined in hnix-0.17.0 · Nix.ParserOrd NOperatorDefDefined in hnix-0.17.0 · Nix.ParserShow NOperatorDefDefined in hnix-0.17.0 · Nix.ParserGeneric NOperatorDefDefined in hnix-0.17.0 · Nix.ParserNFData NOperatorDefDefined in hnix-0.17.0 · Nix.ParserNOp NOperatorDefDefined in hnix-0.17.0 · Nix.Parsertype Rep NOperatorDef = D1 ('MetaDataDefined in hnix-0.17.0 · Nix.Parser"NOperatorDef"
"Nix.Parser"
"hnix-0.17.0-Iy75YcImuzK7FD0KGfkLv7"
'False) ((C1 ('MetaCons"NAppDef"
'PrefixI 'False) ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 NAppOp) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 NAssoc)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 NOpPrecedence) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 NOpName))) :+: C1 ('MetaCons"NUnaryDef"
'PrefixI 'False) ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 NUnaryOp) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 NAssoc)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 NOpPrecedence) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 NOpName)))) :+: (C1 ('MetaCons"NBinaryDef"
'PrefixI 'False) ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 NBinaryOp) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 NAssoc)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 NOpPrecedence) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 NOpName))) :+: C1 ('MetaCons"NSpecialDef"
'PrefixI 'False) ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 NSpecialOp) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 NAssoc)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 NOpPrecedence) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 NOpName)))))
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.
A path surrounded by angle brackets, indicating that it should be looked up in the NIX_PATH environment variable at evaluation.
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 -> NOperatorDefgetOpAssoc :: a -> NAssocgetOpPrecedence :: a -> NOpPrecedencegetOpName :: a -> NOpName
Instances5NOp
NOp NBinaryOpDefined in hnix-0.17.0 · Nix.ParserNOp NUnaryOpDefined in hnix-0.17.0 · Nix.ParserNOp NAppOpDefined in hnix-0.17.0 · Nix.ParserNOp NOperatorDefDefined in hnix-0.17.0 · Nix.ParserNOp NSpecialOpDefined in hnix-0.17.0 · Nix.Parser
Functional application operator definition, left associative, high precedence.