我试图绘制一个有限状态机(开始,下一个状态等) 我怎样才能使用7种状态来绘制它?
我写出了表格的样子,将这些字符输入到标记中 表:例如如果用户输入一个T表示true,则输出
输入/输出或令牌
1 / T,
2 / F,
# / ~,
! / ~,
& / ^,
* / ^,
+ / v,
<> / x,
!= / x,
=> / >,
--> / >,
-- / =,
= / =,
== / =,
( / (,
) / ),
答案 0 :(得分:0)
输入序列的每个前缀都需要一个状态。所以你的州应该对应
"", "<", "!", "=", "-", "--"
通常,完成识别输入序列的每个输入字符都将生成相应的输出,然后返回初始状态。任何有助于输入序列但尚未完成它的输入字符将导致与到目前为止读取的前缀匹配的状态转换。任何两个输入都不会被报告为错误。
但是你的桌子确实有一些棘手的情况。有一些输入序列本身是其他输入序列的前缀。例如,当输入包含“= +”时。在第一个“=”之后你不知道是否会有“&gt;”,所以你还不能输出任何东西。在“+”之后你知道你必须首先输出“=”然后输出“+”immediatley。因此,您的自动机必须设计为每次转换处理多个输出。