Module to represent the structure of Ninja build files
Author: Marc Andre Wittorf
A Ninja file
Constructors:
File
:: [Decl] -> File
A Ninja declaration
Constructors:
Rule
:: RuleName -> [Def] -> Decl
: a build rule
Edge
:: RuleName -> [Target] -> [Target] -> [Target] -> [Target] -> [Target] -> [Def] -> Decl
: a build edge
Var
:: Def -> Decl
: a global variable definition
Default
:: Target -> Decl
: a default edge specification
Subninja
:: FilePath -> Decl
: a subninja directive
Include
:: FilePath -> Decl
: an include directive
Pool
:: String -> [Def] -> Decl
: a pool section
A Ninja definition (variable, value)
Type synonym: Def = (String,String)
A Ninja target
Type synonym: Target = String
A Ninja rule name
Type synonym: RuleName = String