MPF を使用して言語サービスを作成しており、基本的な構文強調表示は既に機能していますが、セマンティック強調表示も追加したいと考えています。
たとえば、C# は型名に対してこれを行います。型に名前を付ける場合、識別子の色は異なります。同じステートメント内の同じ単語でも、コンテキストに基づいて異なる方法で強調表示される場合があります。
私がサポートしている言語には、コンテキスト キーワードに関する非常に複雑なルールがあるため、識別子とキーワードを区別するためにトークナイザーよりも高レベルのものに依存したいと考えています。現在、私のスキャナーは、コンテキスト内の識別子である可能性がある場合でも、考えられるすべてのキーワードをキーワードとしてマークしています。
どうすればこれを達成できますか?これを行う別の言語サービスのサンプル ソース コードはありますか?