前页 后页

正则表达式解析器

用于正则表达式解析器的StateMachine

RegularExpressionParser用一个属性定义:bMatch。

An Example Regular Expression Parser Class in Sparx Systems Enterprise Architect

StateMachine用于描述正则表达式(a | b)* abb

Example Regular Expression in StateMachine in Sparx Systems Enterprise Architect.

  • 转换触发器指定为事件abxreset
  • 在进入State4时,bMatch设置为True;从State4退出时,bMatch设置为False
  • 进入State5时,bMatch设置为False
  • 在State6的自我转换时,bMatch设置为False

自定义index.html和statemachineGUI.js

对生成的文件进行以下更改:

  • 创建一个HTML输入字段和一个图像以指示结果
  • 创建JavaScript作为字段的oninput事件处理程序
  • 创建函数“ SetResult 以切换通过/失败图像
  • 创建函数“getEventStr”,这将返回“A”上“B”“A”和“b”,但可以在任何其它字符返回“X”
  • 初始化时,播放“ 重置
  • 在广播事件上,请求运行时变量“ regxParser.bMatch”
statemachineGUI.js,找到函数“onRuntimeValueResponse”。
  • 在“ regxParser.bMatch”中,我们将收到“ True”或“ False”并将其传递给“ SetResult”以更新图像

完整的例子

通过单击以下链接,可以从Sparx Systems网站的“资源”页面访问该示例:

正则表达式解析器仿真