https://engineering.soroco.com/abstract-syntax-tree-for-patching-code-and-assessing-code-quality/