2016-06-24 6 views
0

私はpythonでJavaコードのための非常にベアボーンのパーサを書こうとしています。PythonでJavaコードの非常に単純なパーサを書く方法は?

基本的には、キーワードと演算子に遭遇したときに自動的に呼び出されるhandle_keyword(キーワード)とhandle_operator(演算子)の2つのメソッドが必要です。

また、キーワードや演算子ではないファイルの部分文字列を処理するhandle_other(text)という3番目のメソッドが必要です。 Pythonはこのような何か、またはがあるかどう任意の構文解析アルゴリズム/技術のための内蔵のいくつかの並べ替えを持っている場合は、上記の方法で

テキスト、キーワード、およびオペレータは、すべて私が知りたいのですが、文字列

であろうと誰でもお勧めできます。私はPythonのHTMLパーサーを見てきましたが、私は同様のメソッドをJavaコードに使用できるかどうかはわかりません。既に存在するライブラリが既に存在する場合/

+0

私がこれを行うために知っている最善の方法は正規表現を使用することです。すべてのコードテキストエディタと同じように。 –

+0

よく働くものや、常に機能するものが必要ですか?後者の場合、Unicodeエスケープ、コメント、文字列などを扱うJava用の実際のレクサーを書く必要があります。正規表現はすべてのケースを処理するのに十分強力ではありません。 –

答えて

3

Java文法でANTLRを使用し、Pythonをターゲット言語として指定するだけです。

+0

キーワードや演算子、その他のトークンだけを必要としているので、それを追加するだけで、言語文法ではなくレクサーが必要になります。しかし、レクサーはANTLRのJava文法の一部でもありますので、私は+1しました –

関連する問題