Copyright | Copyright 2017 Awake Security |
---|---|
License | Apache-2.0 |
Maintainer | opensource@awakesecurity.com |
Stability | experimental |
Safe Haskell | None |
Language | Haskell2010 |
This module contains a type representing a parsed Ninja file AST, along with any supporting or related types.
Since: 0.1.0
- data Ninja ann
- makeNinja :: Monoid ann => Ninja ann
- ninjaRules :: Lens' (Ninja ann) (HashMap Text (Rule ann))
- ninjaSingles :: Lens' (Ninja ann) (HashMap Text (Build ann))
- ninjaMultiples :: Lens' (Ninja ann) (HashMap Outputs (Build ann))
- ninjaPhonys :: Lens' (Ninja ann) (HashMap Text (HashSet Text))
- ninjaDefaults :: Lens' (Ninja ann) (HashSet Text)
- ninjaPools :: Lens' (Ninja ann) (HashMap Text Int)
- ninjaSpecials :: Lens' (Ninja ann) (HashMap Text Text)
- type NinjaConstraint c ann = (BuildConstraint c ann, c (HashMap (HashSet Text) (Build ann)), c (HashMap Text (HashSet Text)), c (HashMap Text (Rule ann)), c (HashMap Text (Build ann)), c (HashMap Text Int), c ann)
- type Outputs = HashSet Output
- type Output = Text
Ninja
A parsed Ninja file.
Since: 0.1.0
Functor Ninja Source # | |
Foldable Ninja Source # | |
Traversable Ninja Source # | |
Annotated Ninja Source # | The usual definition for Since: 0.1.0 |
(Monad m, NinjaConstraint (Serial m) ann) => Serial m (Ninja ann) Source # | Default Since: 0.1.0 |
(Monad m, NinjaConstraint (CoSerial m) ann) => CoSerial m (Ninja ann) Source # | Default Since: 0.1.0 |
Eq ann => Eq (Ninja ann) Source # | |
Show ann => Show (Ninja ann) Source # | |
Generic (Ninja ann) Source # | |
(Arbitrary ann, NinjaConstraint Arbitrary ann) => Arbitrary (Ninja ann) Source # | Reasonable Since: 0.2.0 |
Hashable ann => Hashable (Ninja ann) Source # | Default Since: 0.1.0 |
ToJSON ann => ToJSON (Ninja ann) Source # | Converts to
Since: 0.1.0 |
FromJSON ann => FromJSON (Ninja ann) Source # | Inverse of the Since: 0.1.0 |
NFData ann => NFData (Ninja ann) Source # | Default Since: 0.1.0 |
type Rep (Ninja ann) Source # | |
ninjaRules :: Lens' (Ninja ann) (HashMap Text (Rule ann)) Source #
The rules defined in a parsed Ninja file.
Since: 0.1.0
ninjaSingles :: Lens' (Ninja ann) (HashMap Text (Build ann)) Source #
The set of build
declarations with precisely one output.
Since: 0.1.0
ninjaMultiples :: Lens' (Ninja ann) (HashMap Outputs (Build ann)) Source #
The set of build
declarations with two or more outputs.
Since: 0.1.0
ninjaPhonys :: Lens' (Ninja ann) (HashMap Text (HashSet Text)) Source #
The set of phony build
declarations.
Since: 0.1.0
ninjaPools :: Lens' (Ninja ann) (HashMap Text Int) Source #
A mapping from pool names to pool depth integers.
Since: 0.1.0
ninjaSpecials :: Lens' (Ninja ann) (HashMap Text Text) Source #
A map from "special" top-level variables to their values.
Since: 0.1.0
type NinjaConstraint c ann = (BuildConstraint c ann, c (HashMap (HashSet Text) (Build ann)), c (HashMap Text (HashSet Text)), c (HashMap Text (Rule ann)), c (HashMap Text (Build ann)), c (HashMap Text Int), c ann) Source #
The set of constraints required for a given constraint to be automatically
computed for a Ninja
.
Since: 0.1.0