16

私が知っている唯一の方法は、「直接」ではありません。

  • ANTLR 形式に変換し、独自のビジュアライザーを使用する
  • VISUALLANGLAB、マウスクリック全体の「書き換え」が必要なようです
  • 自分でコンバーターを実装します (これは面白いですが、時間がかかります)。
  • 下の2番目のリンク

関連している:

2 番目のリンクは、暗黙的にメソッドをパーサーに追加してデバッグすることを提案しています。

implicit def toLogged(name:String) = new { 
  def !!![T](p:Parser[T]) = log(p)(name)
}

ASTの方がより実現可能/有用である可能性があります。しかし、質問は似ています。

4

1 に答える 1

1

私はあなたの質問を誤解したかもしれません。

Scalaパーサーコンビネーターは、文字列を、使用可能なタイプ(カスタムまたは組み込み)のインスタンスに解析するために使用されます。結果はあなたが決めるScalaインスタンスの構造です、これは何でもかまいません。

たとえば、任意の文字列をよく知られているJava構造のインスタンスに解析するパーサーを作成できますECore

ユースケースがなければ、問題に最適な道を提案するのは困難です。たぶんXtextがあなたを助けることができます:http ://www.eclipse.org/Xtext/ 。Xtextにはかなりの数の組み込み機能がありますが、これはEclipseプラグインであり、他のものが必要になる場合があります。

于 2013-02-14T07:50:12.570 に答える