は私が私のJavaを使用して、これを評価する必要がJavaを使用して一般ルールを解釈するにはどうすればよいですか?
if a<b
then set a=25
else set a=-25
以下のような非常に基本的なルールを持っていると言います。これらの種類の解析を実行する最良の方法は何ですか?正規表現を使用することは非常に困難であり、正しく維持することは非常に難しいでしょうか?
誰かがアプローチを提案できますか?詳しい情報が必要な場合はお知らせください。
は私が私のJavaを使用して、これを評価する必要がJavaを使用して一般ルールを解釈するにはどうすればよいですか?
if a<b
then set a=25
else set a=-25
以下のような非常に基本的なルールを持っていると言います。これらの種類の解析を実行する最良の方法は何ですか?正規表現を使用することは非常に困難であり、正しく維持することは非常に難しいでしょうか?
誰かがアプローチを提案できますか?詳しい情報が必要な場合はお知らせください。
構文が正規の場合は、正規表現を使用できます。そうでない場合は、LexersやParsersなどのより複雑なツール(AntlrまたはYacc/Lex/Bison)を使用する必要があります。
あなたは言語設計についてあまり知らない場合、私はあなたがに飛び込む前に、被写体にbookを読むことをお勧め。
Davidに返信してくれてありがとう。私はそれほど複雑ではない。正規表現はこれを行うための最良の方法ですか? – Apps
@Apps、正規表現は、定義済みのパターンが与えられた特定のテキストを照合するために使用されます。言語を解釈する(評価する)場合、ターゲット言語が正規であるかどうかにかかわらず、正規表現は使用できません。 –
次のことができるようにできるか/あなたのルール構文を微調整することができますどのくらいに応じて、 GroovyまたはJRubyを使用します。両方とも密接に統合されたDSLを実装するのに非常に優れています。私は外部のDSLを実装する前に、このアプローチを真剣に検討していますが、Antlrはかなり簡単です。
あなたの言語の構文チェッカーを作成しようとしていますか、何を達成しようとしていますか? – kba
私は、レキシカルパーサー - JavaCCのJava実装を参照してください。ルールをJava表現にコンパイルしますか? – Apps