この簡単な例に従って、パーボイルドフレームワークのパーサークラスを作成しました。
package my.package;
import org.parboiled.BaseParser;
import org.parboiled.annotations.BuildParseTree;
@BuildParseTree
public class QueryParser extends BaseParser<Object> {
//some rules
}
例に示すようにパーサーを作成しようとすると
QueryParser parser = Parboiled.createParser(QueryParser.class);
その行で例外が発生します:
java.lang.ClassCastException: my.package.QueryParser$$parboiled cannot be cast to org.parboiled.BaseParser
at org.parboiled.Parboiled.createParser(Parboiled.java:56)
...
例で行われていない特別なことは実際には何もしていません。唯一の違いは、パーサーとそれを呼び出すクラスが異なるプロジェクトにあることですが、なぜこれが重要なのか想像できません。プロジェクト(Eclipseプラグインプロジェクト)間の依存関係は問題ないはずです。
誰かが私が間違っていることや間違いがどこにあるのかを知ることができますか?