├── .gitattributes ├── .github ├── CODEOWNERS └── CONTRIBUTING.md ├── .gitignore ├── .hlint.yaml ├── .stylish-haskell.yaml ├── CHANGELOG.md ├── LICENSE.md ├── Makefile ├── README.md ├── Setup.hs ├── default.nix ├── executables ├── ninja-compile │ └── Main.hs ├── ninja-lex │ └── Main.hs └── ninja-parse │ └── Main.hs ├── language-ninja.cabal ├── library └── Language │ ├── Ninja.hs │ └── Ninja │ ├── AST.hs │ ├── AST │ ├── Build.hs │ ├── Deps.hs │ ├── Env.hs │ ├── Expr.hs │ ├── Ninja.hs │ └── Rule.hs │ ├── Compile.hs │ ├── Errors.hs │ ├── Errors │ ├── Compile.hs │ └── Parser.hs │ ├── IR.hs │ ├── IR │ ├── Build.hs │ ├── Meta.hs │ ├── Ninja.hs │ ├── Pool.hs │ ├── Rule.hs │ └── Target.hs │ ├── Lexer.hs │ ├── Lexer │ └── Types.hs │ ├── Misc.hs │ ├── Misc │ ├── Annotated.hs │ ├── Command.hs │ ├── IText.hs │ ├── Located.hs │ ├── Path.hs │ └── Positive.hs │ ├── Mock.hs │ ├── Mock │ └── ReadFile.hs │ ├── Parser.hs │ ├── Pretty.hs │ └── Tutorial.hs ├── misc ├── haddock.css └── haddock.js ├── nix ├── declarative.nix ├── haskell │ ├── language-ninja.nix │ ├── makefile.nix │ ├── monad-mock.nix │ ├── prettyprinter-ansi-terminal.nix │ ├── prettyprinter.nix │ └── versions.nix ├── nixpkgs.json ├── nixpkgs.nix └── spec.json ├── release.nix ├── shell.nix └── tests ├── DocTests.hs ├── Tests.hs ├── Tests ├── Lint.hs ├── Mock.hs ├── Orphans.hs ├── ReferenceLexer.hs └── ReferenceLexer │ └── Str0.hs └── data ├── buildseparate.ninja ├── compdb.ninja ├── compdb.output ├── lexical.ninja ├── lint.ninja ├── nocreate.ninja ├── outputtouch.ninja ├── phonyorder.ninja ├── redefine.ninja ├── subdir ├── 1.ninja └── 2.ninja ├── test1.ninja ├── test2.ninja ├── test3-inc.ninja ├── test3-sub.ninja ├── test3.ninja ├── test4.ninja ├── test5.ninja ├── test6-inc.ninja ├── test6-sub.ninja └── test6.ninja /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 2 | -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8; mode: gitattributes; -*- 2 | * @taktoa 3 | -------------------------------------------------------------------------------- /.github/CONTRIBUTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/.github/CONTRIBUTING.md -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/.gitignore -------------------------------------------------------------------------------- /.hlint.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/.hlint.yaml -------------------------------------------------------------------------------- /.stylish-haskell.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/.stylish-haskell.yaml -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/LICENSE.md -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/Makefile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/README.md -------------------------------------------------------------------------------- /Setup.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/Setup.hs -------------------------------------------------------------------------------- /default.nix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/default.nix -------------------------------------------------------------------------------- /executables/ninja-compile/Main.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/executables/ninja-compile/Main.hs -------------------------------------------------------------------------------- /executables/ninja-lex/Main.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/executables/ninja-lex/Main.hs -------------------------------------------------------------------------------- /executables/ninja-parse/Main.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/executables/ninja-parse/Main.hs -------------------------------------------------------------------------------- /language-ninja.cabal: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/language-ninja.cabal -------------------------------------------------------------------------------- /library/Language/Ninja.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/library/Language/Ninja.hs -------------------------------------------------------------------------------- /library/Language/Ninja/AST.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/library/Language/Ninja/AST.hs -------------------------------------------------------------------------------- /library/Language/Ninja/AST/Build.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/library/Language/Ninja/AST/Build.hs -------------------------------------------------------------------------------- /library/Language/Ninja/AST/Deps.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/library/Language/Ninja/AST/Deps.hs -------------------------------------------------------------------------------- /library/Language/Ninja/AST/Env.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/library/Language/Ninja/AST/Env.hs -------------------------------------------------------------------------------- /library/Language/Ninja/AST/Expr.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/library/Language/Ninja/AST/Expr.hs -------------------------------------------------------------------------------- /library/Language/Ninja/AST/Ninja.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/library/Language/Ninja/AST/Ninja.hs -------------------------------------------------------------------------------- /library/Language/Ninja/AST/Rule.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/library/Language/Ninja/AST/Rule.hs -------------------------------------------------------------------------------- /library/Language/Ninja/Compile.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/library/Language/Ninja/Compile.hs -------------------------------------------------------------------------------- /library/Language/Ninja/Errors.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/library/Language/Ninja/Errors.hs -------------------------------------------------------------------------------- /library/Language/Ninja/Errors/Compile.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/library/Language/Ninja/Errors/Compile.hs -------------------------------------------------------------------------------- /library/Language/Ninja/Errors/Parser.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/library/Language/Ninja/Errors/Parser.hs -------------------------------------------------------------------------------- /library/Language/Ninja/IR.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/library/Language/Ninja/IR.hs -------------------------------------------------------------------------------- /library/Language/Ninja/IR/Build.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/library/Language/Ninja/IR/Build.hs -------------------------------------------------------------------------------- /library/Language/Ninja/IR/Meta.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/library/Language/Ninja/IR/Meta.hs -------------------------------------------------------------------------------- /library/Language/Ninja/IR/Ninja.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/library/Language/Ninja/IR/Ninja.hs -------------------------------------------------------------------------------- /library/Language/Ninja/IR/Pool.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/library/Language/Ninja/IR/Pool.hs -------------------------------------------------------------------------------- /library/Language/Ninja/IR/Rule.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/library/Language/Ninja/IR/Rule.hs -------------------------------------------------------------------------------- /library/Language/Ninja/IR/Target.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/library/Language/Ninja/IR/Target.hs -------------------------------------------------------------------------------- /library/Language/Ninja/Lexer.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/library/Language/Ninja/Lexer.hs -------------------------------------------------------------------------------- /library/Language/Ninja/Lexer/Types.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/library/Language/Ninja/Lexer/Types.hs -------------------------------------------------------------------------------- /library/Language/Ninja/Misc.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/library/Language/Ninja/Misc.hs -------------------------------------------------------------------------------- /library/Language/Ninja/Misc/Annotated.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/library/Language/Ninja/Misc/Annotated.hs -------------------------------------------------------------------------------- /library/Language/Ninja/Misc/Command.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/library/Language/Ninja/Misc/Command.hs -------------------------------------------------------------------------------- /library/Language/Ninja/Misc/IText.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/library/Language/Ninja/Misc/IText.hs -------------------------------------------------------------------------------- /library/Language/Ninja/Misc/Located.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/library/Language/Ninja/Misc/Located.hs -------------------------------------------------------------------------------- /library/Language/Ninja/Misc/Path.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/library/Language/Ninja/Misc/Path.hs -------------------------------------------------------------------------------- /library/Language/Ninja/Misc/Positive.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/library/Language/Ninja/Misc/Positive.hs -------------------------------------------------------------------------------- /library/Language/Ninja/Mock.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/library/Language/Ninja/Mock.hs -------------------------------------------------------------------------------- /library/Language/Ninja/Mock/ReadFile.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/library/Language/Ninja/Mock/ReadFile.hs -------------------------------------------------------------------------------- /library/Language/Ninja/Parser.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/library/Language/Ninja/Parser.hs -------------------------------------------------------------------------------- /library/Language/Ninja/Pretty.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/library/Language/Ninja/Pretty.hs -------------------------------------------------------------------------------- /library/Language/Ninja/Tutorial.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/library/Language/Ninja/Tutorial.hs -------------------------------------------------------------------------------- /misc/haddock.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/misc/haddock.css -------------------------------------------------------------------------------- /misc/haddock.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/misc/haddock.js -------------------------------------------------------------------------------- /nix/declarative.nix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/nix/declarative.nix -------------------------------------------------------------------------------- /nix/haskell/language-ninja.nix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/nix/haskell/language-ninja.nix -------------------------------------------------------------------------------- /nix/haskell/makefile.nix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/nix/haskell/makefile.nix -------------------------------------------------------------------------------- /nix/haskell/monad-mock.nix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/nix/haskell/monad-mock.nix -------------------------------------------------------------------------------- /nix/haskell/prettyprinter-ansi-terminal.nix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/nix/haskell/prettyprinter-ansi-terminal.nix -------------------------------------------------------------------------------- /nix/haskell/prettyprinter.nix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/nix/haskell/prettyprinter.nix -------------------------------------------------------------------------------- /nix/haskell/versions.nix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/nix/haskell/versions.nix -------------------------------------------------------------------------------- /nix/nixpkgs.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/nix/nixpkgs.json -------------------------------------------------------------------------------- /nix/nixpkgs.nix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/nix/nixpkgs.nix -------------------------------------------------------------------------------- /nix/spec.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/nix/spec.json -------------------------------------------------------------------------------- /release.nix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/release.nix -------------------------------------------------------------------------------- /shell.nix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/shell.nix -------------------------------------------------------------------------------- /tests/DocTests.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/tests/DocTests.hs -------------------------------------------------------------------------------- /tests/Tests.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/tests/Tests.hs -------------------------------------------------------------------------------- /tests/Tests/Lint.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/tests/Tests/Lint.hs -------------------------------------------------------------------------------- /tests/Tests/Mock.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/tests/Tests/Mock.hs -------------------------------------------------------------------------------- /tests/Tests/Orphans.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/tests/Tests/Orphans.hs -------------------------------------------------------------------------------- /tests/Tests/ReferenceLexer.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/tests/Tests/ReferenceLexer.hs -------------------------------------------------------------------------------- /tests/Tests/ReferenceLexer/Str0.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/tests/Tests/ReferenceLexer/Str0.hs -------------------------------------------------------------------------------- /tests/data/buildseparate.ninja: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/tests/data/buildseparate.ninja -------------------------------------------------------------------------------- /tests/data/compdb.ninja: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/tests/data/compdb.ninja -------------------------------------------------------------------------------- /tests/data/compdb.output: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/tests/data/compdb.output -------------------------------------------------------------------------------- /tests/data/lexical.ninja: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/tests/data/lexical.ninja -------------------------------------------------------------------------------- /tests/data/lint.ninja: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/tests/data/lint.ninja -------------------------------------------------------------------------------- /tests/data/nocreate.ninja: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/tests/data/nocreate.ninja -------------------------------------------------------------------------------- /tests/data/outputtouch.ninja: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/tests/data/outputtouch.ninja -------------------------------------------------------------------------------- /tests/data/phonyorder.ninja: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/tests/data/phonyorder.ninja -------------------------------------------------------------------------------- /tests/data/redefine.ninja: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/tests/data/redefine.ninja -------------------------------------------------------------------------------- /tests/data/subdir/1.ninja: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/tests/data/subdir/1.ninja -------------------------------------------------------------------------------- /tests/data/subdir/2.ninja: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/data/test1.ninja: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/tests/data/test1.ninja -------------------------------------------------------------------------------- /tests/data/test2.ninja: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/tests/data/test2.ninja -------------------------------------------------------------------------------- /tests/data/test3-inc.ninja: -------------------------------------------------------------------------------- 1 | v5 = i1 2 | 3 | build out3.3: dump 4 | -------------------------------------------------------------------------------- /tests/data/test3-sub.ninja: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/tests/data/test3-sub.ninja -------------------------------------------------------------------------------- /tests/data/test3.ninja: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/tests/data/test3.ninja -------------------------------------------------------------------------------- /tests/data/test4.ninja: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/tests/data/test4.ninja -------------------------------------------------------------------------------- /tests/data/test5.ninja: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/tests/data/test5.ninja -------------------------------------------------------------------------------- /tests/data/test6-inc.ninja: -------------------------------------------------------------------------------- 1 | v2 = g2 2 | -------------------------------------------------------------------------------- /tests/data/test6-sub.ninja: -------------------------------------------------------------------------------- 1 | v2 = g3 2 | -------------------------------------------------------------------------------- /tests/data/test6.ninja: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awakesecurity/language-ninja/HEAD/tests/data/test6.ninja --------------------------------------------------------------------------------