2017-03-24 9 views
1

私は私が構造化されていない文に検証することができますどのようにこの条件文を正しく検証する方法

start if 
    start if 
    start end 
start else 
    start if 
     start if 
     end if 
    end if 
start end 

のように有効な構造化されている?(構文エラー、適切ならばすなわちスタートを終了していない)

任意のアルゴリズムやロジックが助けになります。

+0

あなたはどういうことを言っていますか? 'start end'とは何ですか? – melpomene

+0

start endは、 –

+0

の終了括弧を考慮することです。いくつかの方法があります.1つは、条件付き解析を中断し、条件付きがうまく形成されていないと判断する非条件文を探す方法です。意味解析の前に字句スキャンを行い、次に構文解析を行っていると仮定すると、それはうまくいくはずです。 –

答えて

0

スタックのようなデータ構造を使用します。もし何かが見えたら、ifまたはstartを押してスタックにpushしてください。スタックからポップした場合は、終了が表示されます。次に、構造に違反する条件を確認します。例えば、空のスタックから飛び出そうとすると(違反とみなされるべきであることを意味します)、違反とみなされるべきです。もっと多くのものがあることに注意してください。これはあなた自身で考え始める良い例になるはずです。

上記は、上記のような多くの問題を調整して解決した有効なアルゴリズムです。私は、かなり類似している逆ポーランド記法について読むことを勧めます。