2012-01-13 10 views
0

誰かが正しい方向に向かうことができますか?私はlexのパーサを持っています。これはC#で使いたい人、 ?CをC#(特にlex)に組み込む方法

EDIT:具体的には、数式とXMLを解析したいと思います。

+0

[C#からC++コードを呼び出すことができますか?](http://stackoverflow.com/questions/935664/possible-to-call-c-code-from-c) –

+0

http:// stackoverflowを参照してください。 .com/questions/540593/lex-yacc-for-cまた、解析する内容に応じてC#Expression Treesが好きかもしれません。 –

+0

@DavidLively私は質問を編集しました。私はリンクのおかげで見てみましょうありがとう。 – mihajlv

答えて

1

CコードでDLLを作成し、C#でPlatformInvokeメカニズムを使用することができます。

2つのプロジェクトを含むソリューションを作成することもできます.1つはc/C++ソースを含むライブラリプロジェクトで、もう1つはc#です。

2

そこにはいくつかのC#Lexプロセッサがあります。例えば:

http://www.seclab.tuwien.ac.at/projects/cuplex/lex.htm

+0

@おめでとう私は知らなかった、それは人生の節約になるだろう、私はそれをチェックアウトします。あなたはそれを使ったことがありますが、どのようにそれがパフォーマンスに関係しているのかを知っていますか? – mihajlv

+1

@mihajlv - いいえ、私はそれを使用していません。しかし、私が言ったように、そこには多数の人がいます。あなたの必要を満たしていない場合は、別の人に試してみてください。可能ならばすべてを管理し、絶対に必要な場合は管理対象外にするほうがよいでしょう。 –

+0

もう一度感謝します。 – mihajlv

1

あなたが(例えばおよびないのSilverlightまたはCompact Frameworkの上)のみのデスクトップ/サーバーアプリケーションでは、このモジュールを使用する場合は、CLRをサポートしてあなたのC/C++コードをビルドし、それを使用することができますC#から。

1

私は大成功を収めたC++バージョンのflexを使用しています。

http://www.kohsuke.org/flex++bison++/

から

あなたは窓が事前に構築され得ることができたバイナリは具体的に、私は(ブースト::精神のためにあまりにも多くの)ダース以上のルールのEBNF文法を解析するために、これを使用しています

IF a > 10 AND b < -22 THEN OUTPUT X 

などの文を入力ユーザースクリプトとして使用しているので、あなたが言及している数式には問題ありません。

XMLの解析は、別の話です。なぜXMLを解析するためのライブラリがたくさんあるのでしょうか。 TinyXML(​​)とCMarkup(http://www.firstobject.com/dn_markup.htm)があり、両方ともいくつかのプロジェクトでうまく使用しています。

+0

ありがとう、私は見てみましょう。 – mihajlv

+0

編集していただきありがとうございます。私はちょうどXMLを使い始めていますが、私は主題についてたくさんの研究をしていません。XML要素を子として持つXMLツリーを提供するいくつかの種類のDOMオブジェクトがあります。私はリンクを見てみましょう。ところで、boost :: spiritは何らかの構文解析ツールですか?再度、感謝します。 – mihajlv

関連する問題