moon
moon copied to clipboard
a configuration language for Go projects
`moon diff file1 file2` should diff two moon files, yielding a moon patch file. the patch file describes the changes and can be applied to change one to another. similar...
`moon patch` should allow you to express a mutation on a moon file as some text-based input (itself in moon, duh). you know, like [unix patch](https://en.wikipedia.org/wiki/Patch\_\(Unix\)) but at the AST...
there should be a way to add a hook to perform an action after running the configuration parse stage (and after it passes). something like: ``` moon.AfterParse(func() { // ......
add an operation that takes as its input an unformatted moon document and returns as its output a pretty-printed moon document.
although we collect comment tokens in the lex stage, when the lexer passes a comment lexeme to the parser, the parser simply discards it. This means that certain features are...