Decouple command parsing from execution
I am willing to do refactoring described below and curious about opinions.
Currently in CMake command parsing is tightly coupled with command execution. This makes impossible to reuse parsing code for e.g. syntax highlighting, code completion in IDEs or code formatting.
The idea is to decouple model creation and parsing completely. Parsed data can be represented e.g. as AST (Abstract Syntaxt Tree). Also it would be great if it would be linked into separate library and/or executable for client reuse.