AST
Древовидное представление структуры исходного кода, очищенное от синтаксического шума.
a + b * c превращается в узел сложения, у которого дети — a и узел умножения. Скобки и точки с запятой исчезли: приоритет закодирован формой дерева, и именно поэтому оно абстрактное.
Всё, что понимает код, работает с AST: поздние фазы компилятора, правила ESLint, трансформации Babel, Prettier, рефакторинги в IDE и инструменты структурного поиска вроде `ast-grep`. Правка AST вместо текста — это разница между рефакторингом и «найти и заменить», которое всё испортило.