快速业务通道

确定有穷自动机分析内核

作者 佚名技术 来源 程序设计 浏览 发布时间 2012-06-29
建立。

CStateChangeRule rule; rule.nCurState  = 0;
rule.nNextState = 1;
rule.route[0].byStart = ''''_''''; rule.route[0].byEnd =  ''''_'''';
rule.route[1].byStart = ''''A''''; rule.route[1].byEnd = ''''Z'''';
rule.route[2].byStart  = ''''a''''; rule.route[2].byEnd = ''''z'''';
m_ruleArr.Add(rule);
rule.Clear();

例子程序中的DFA如图二所示。

确定有穷自动机分析内核

图二

状态属性

当然除了规则以外,另一个重要的数据就是状态的属性,分析内核需要知道一个状态是不是终止态。m_stateArr 记录了所有的状态的属性。这个数组的下标代表状态编号,数组元素的值是状态属性。

结束语

可能各位都知道,其实作词法分析挺简单的,但是语法分析十分的困难。据我所知,语法分析尚且不十分的形式化,也就是说理论并非十分完善。这将对构造语法分析器带来困难。我做 DocWizard 的时候并没有采用教科书上的语法分析方法,做的很麻烦,而且也不能保证正确。说实在的做得挺滥的。呵呵~~ 希望以后能做得好一些。

下一步我得好好的学习 lex 和 yacc 了。毕竟用它们来构造分析器还是挺轻松的。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号