私は Clang の詳細を理解しようとしていますが、「Sema」ライブラリについてはよくわかりません。コンパイラがプログラムをコンパイルするためにたどるパスのセマンティック分析ですか? それとも、プログラマーが自分のコードを分析するためにのみ使用しますか?
私が収集したものから、パーサーはASTを構築し、ASTを使用してさまざまなことを行う「ASTコンシューマー」があります。そのため、コード生成ライブラリは AST を IR に変換します。また、セマンティック分析ライブラリは AST を使用してコードを分析します。この理解は正しいですか、それともセマンティック アナライザーはコンパイルにも使用されますか?