可能性に応じて、複数の翻訳が可能な動的言語を分析しようとしています。私の言語には、数値、ベクトルなど、いくつかの型が定義されています...
たとえば、'a+b' という式を見た場合、それは 2 つの数値の加算または 2 つのベクトルの加算である可能性があります。数値の可能性が高いため、「最良の」表現は 2 つの数値の合計であると考えられます。ただし、それらがベクトルである可能性があるため、この「可能性が低い」表現を維持したいと考えています。
後で「a/b」を見た場合、ベクトルの除算は定義されていないため、それらがベクトルではないことがわかります。したがって、「ベクトル」表現を破棄すると、正しい表現が優先されます。
ASTを分析してこれを行いたいです。問題は、型と演算子の可能な組み合わせが多数あるため、組み合わせ爆発が発生することです。
私が使用できる適切な戦略またはパターンに関するアイデアはありますか? 構造に最良の意味を与えるために並行して実行される、さまざまな組み合わせのビジターのタイプについて考えています。自然言語処理で文を分析するようなものです。
私は分析に ANTLR のツリー ウォーキング メカニズムを使用しているため、そのシステムに固有のリファレンスや、動的言語のセマンティクスの実装は大歓迎です。