我正在实现自己的 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 对象?