Я пытаюсь понять все тонкости Clang, и я не очень уверен в библиотеке "Sema". Находится ли семантический анализ на пути, по которому компилятор компилирует программу? Или он используется только программистом для анализа своего кода?
Из того, что я понял, синтаксический анализатор создает AST, а затем есть «потребители AST», которые используют AST для разных целей. Итак, библиотека генерации кода превращает AST в IR. А библиотека семантического анализа использует AST для анализа кода. Верно ли это понимание, или для компиляции тоже используется семантический анализатор?