ファイルを解析するために独自のfsmを実装しています。私はfsmパターンに慣れていないので、それについて学ぼうとしています。
私のfsmクラスは、現在の状態とすべての受け入れ状態のコレクションとともに解析されているファイルのストリームを取得します。
今、私はいくつかのことについて混乱しています。
fsmはどのように状態を移動し、これまでに解析されたものを追跡しますか?
状態オブジェクトはどのような情報を保存する必要がありますか?現在、それらはライン上で一致するパターンを持っており、fsmがこの状態に移行できるかどうかを確認します。
例:
解析するファイル:
Person: bob smith
Age: 33
Location: new York
End person
Person: Jane smith
Age: 66
Location: Chicago
End person
ですから、私には、人の開始、年齢、場所、および終了者の状態があります。各状態オブジェクトにはパターンがあります。(正規表現)指定された行が受け入れられるかどうかを確認します。
しかし、fsmを使用してこのファイルを解析するときにPersonオブジェクトをどのように構築するのかということに固執していますか?