A normalizing representer for Exercism's Haxe track.
Currently the following is normalized by the representer:
- Comments
- Whitespace
- Braces
- Exponents
- Keywords (final, inline, public, private)
- Identifiers (classes, members, enums, typedefs)
- Booleans
- Import statements
- Using statements
- Declaration order of vars, functions, enums, typedefs
The high-level steps the representer takes:
- Apply formatting to original source code using haxe-formatter
- Parse into AST using haxe-parser
- Apply normalizations
- Convert AST back to source code
- Apply formatting to normalized code
- Write out representation and mapping