2016-12-05 6 views
1

コードブロックのためのcfgの書き方は? 正規表現のcfgを書く方法を知っていますが、次の入力のためにcfgを書く必要がある場合、つまり文の文脈自由文法

int a = 0;

どうすればよいですか?

+0

「コードブロック」の意味に依存します。たとえばCFGではC++を記述することはできません。 – Iluvatar

+0

@Iluvatar「コードブロック」によって、私はC++コードを意味します。 ありがとうbtw! –

答えて

1

今のところはCに固執してください。

ブロックは、ステートメント(本質的にライン)、中括弧、変数宣言のリスト、ステートメントまたはブロックのリスト、および別の中括弧で構成されます。

まず、intが唯一の変数型であると仮定します。lグローバルまたはパラメータがなく、算術式(例:a = 2 * b + c;)の代入が唯一の文の型です。

if文を文法に追加し、whileループを追加します。最後に、パラメータ付きの関数呼び出し。

あなたは本質的にC言語の文法を持っています。残りはちょうど詳細です(C typedefの問題もあります)。

関連する問題