「通常の」表現言語と型注釈の言語の2つのサブ言語で構成される言語のパーサーをPLYで作成しています。問題は、それらがいくつかのトークンを共有し、その優先順位が2つの言語間で異なることです。
たとえば、式言語では(Pythonと同じ意味で)とa | b, c
同等である必要がありますが、型言語では(typeまたはtypeのいずれか、つまりtypeとtypeのメンバーを持つタプル)と同等である必要があります。(a | b), c
a | (b, c)
a
b, c
b
c
実際の問題はそれよりも少し複雑ですが、それでも基本的には同じです。
PLYで一時的に優先順位を変更することは可能でしょうか?そうでない場合、私が適用できる別の解決策はありますか?