这里实现了一个正则文法匹配器。其中正则文法是使用正则表达式实现的。正则表达式是我们平时经常使用的一种文法工具,各种编程工具里都有正则表达式的匹配器。Linux下的Grep工具也是一种正则文法的匹配器实现。
我们这里给出正则文法的形式定义
这个定义是有二义的,消除二义之后的定义形式如下所示:
算法的基本思路如下所示:
类图如下所示:
另,为了效果能更友好,使用了Latex的几个宏包,无法打包进代码里,所以想要运行请安装CTex套装,代码在CTex2.5以上版本运行通过。
参考文献:
[1]: John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman,Introduction to Automata Theory, Languages, and Computation[M],2nd Edition. Addison Wesley Press, November 24, 2000.
[2]: 罗贵明,自动机与形式逻辑课件[EB/OL],清华大学软件学院,2010。
[3]: 高仲仪,金茂忠,编译原理及编译程序构造[M],北京航空航天大学出版社,1990-12。
[4]: Alfred V.Aho, Monica S.Lam, Ravi Sethi, Jeffrey D.Ullman, Compilers: Principles, Techniques, and Tools (2nd Edition)[M],Addison Wesley Press,2009-1.
[5]: The TikZ and PGF manual, Example: State machine[EB/OL], ,2006-11-08
[6]: 如何将正则表达式转化为自动机[EB/OL],.