2009-03-05 10 views
0

私は最初の単語としてキーワードを含むコマンドを含む各行の構文を確認する必要があるアプリケーションを作成しています。
また、構文が正しい場合は、キーワードで使用されている変数のタイプを確認する必要があります。C#でRegExとXMLを使用するパーサー

は、printコマンドがあるかどうのように:これは、使用される変数を抽出し、その種類を確認するために、バリアントグループ内のすべての単語にアクセスすることである

\s*[<>]\s*((?'variant'\w+)(\[\d+\])*) 

print "string" < variable < "some another string" //some comments 

    print\s".*"((\s?<\s?".*")*\s?<\s?(?'string1'\w+))?(\s*//.*)? 

は、だから私は、次の正規表現を作りました。
このように私のツールは多くのキーワードを持っており、現在私は各キーワードに対して正規表現を書いています。そして、明日の変更がある場合は、毎回各キーワードのどこかでそれぞれの変更が置き換えられます。
各キーワードのRegexをXMLファイルに保存しています。さて、このように

print %string% (%<% %string%|%variable%)* %comments% 

:仕様変更はので、私は一度だけそれを変更する必要があると私は印刷正規表現を変換するように、それはすべての場所で何かを反映することになる明日言うところしかし、私は、それは拡張することに興味がありました私は各キーワードの仕様を書いて、その正規表現を格納する別のファイルにstring、variable、commentsの定義を書きます。次に、この文字列を解析して正規表現の文字列を作成するパーサーを作成します。

これは可能ですか?

これを実行する方法はありますか、それともXMLでこれを行うことができますか?

答えて

0

私はアイデアを得て、自分の代用者を作った。 %myname%の種類のタグを使用して正規表現を定義しました。%myname%タグの定義はregexを使って別々に書きました。それから私は文字列を再帰的にスキャンし、%myname%タグの出現を彼らが持っていた仕様に変換しました。それは私の仕事でした。どうもありがとうございます

関連する問題