私はC++でコンソールアプリケーションを作成しています。アプリケーションでオプションを設定するには、ユーザーシェルのようなコマンドシステムを取得する必要があります。 |C++でコマンドツリーを解析するには?
レジスタ名
接続オープン[telnetの:例えば、ユーザはこのような何かを書くことができSSH]
接続スイッチのtelnet
テキスト
接続スイッチSSH
を送信--register
|
--connetion
| |--open
| |--switch
|
--send
:
はが
だから、明らかに我々はいくつかのコマンドツリーを持って、上の例では、我々が持っているようにテキスト
...とを...送ります
各コマンドは、異なる量のパラメータを持つことができます。
QUESTION:
- どのようなコマンドツリーを解析するには?
ここで正規表現で解析しますが、この解決策は実際には醜いです。私はYACCとLEXについて読んだことがありますが、これを使うのは本当に良いアイデアだとは思いません。
コマンドツリーを解析する方法が広く使われていますか?私は字句解析理論では涼しいわけではないので、あなたが学問的な方法で答えるなら、私は感謝します。
提案:: - >(状態、オプションの<はstd ::機能>)遷移関数(状態、CHAR)を持つステートマシンを使用してあなたの例の引数の木を使用して
。 – lorro