2011-01-29 7 views
0

私はC#でデスクトップアプリケーションを設計しており、提供された要件に基づいてコード を自動的に生成します。cで動的に生成されたコードの構文を確認してください#

ここで、生成されるコードの構文を確認したいと思います。 初期段階では、システムにいくつかの可能性を与えることができます。 のためにシステムを供給するのではなく、私がここでできることはありますか?

ありがとうございました。

+2

こんにちは、スタックオーバーフローを歓迎しますが、プリフォーマットされたテキスト以外のものには "pre"タグを使用しないでください。また、「システム」とは何か、そして「システムへの供給」ということを教えてください。 –

+0

こんにちは、私の問題は、与えられたコードの構文をチェックすることです。そのためには、考えられるすべての構文に対していくつかの規則を書くことができるはずです。私は構文検査の頭痛をスキップすることができますので、私が使用できる他の方法はありますか? – Prakash

答えて

5

generateコードを自分で作成すると、構文的に正しいことを確認する最も良い方法は、最初に構文的に正しいコードを生成することです。

カスタムC#パーサとセマンティックアナライザ(「ハーフコンパイラ」)を作成する以外に、.NETフレームワークの一部であるコマンドラインC#コンパイラを呼び出して、そのテキスト出力を解析することもできます。

MSDNのコマンドラインC#コンパイラの使用方法と出力方法は、hereと記載されています。コードから新しいプロセスを開始する方法についてはProcess.Startをご覧ください。

+0

ありがとうございます。コードからコマンドラインのC#コンパイラの使い方を見つけることができる投稿またはウェブサイトに私を案内してください。 – Prakash

+0

@Prakash私の答えが関連するリソースを指すように更新されました。 –

+1

大丈夫です。ありがとう。 – Prakash

1

生成されたコードの構文を確認する最も簡単な方法は、コンパイルすることです。コンパイラでこれを処理させてください。

これを生成しているので、正しく生成されたら、それはうまくいくはずです(設計がうまくいっていれば)。

+0

私はユーザーが生成したコードを変更することを許可すれば?プロジェクトの実行中にコンパイルする方法は? – Prakash

+1

@Prakash:CodeDomを使用して、実行時にユーザのシステム上でコードを実行することができます。参照してください:http://msdn.microsoft.com/en-us/library/y2k85ax6.aspx –

0

コマンドラインのC#コンパイラcsc.exeを実行して出力を確認してください。構文は "csc Desktop \ MyProgram.cs"です。 .dllの場合、構文は "csc.exe/target:library Desktop \ MyProgram.cs"です。 csc.exe実行ファイルは通常Windows \ Microsoft.NET \ Framework \\ csc.exeにあります。

+0

おかげで... – Prakash

+0

ようこそ! –

関連する問題