这里是[regexp.h]的全部代码,所有的数据结构和针对他们的操作函数都在这里了,总揽一下哈: 终结符类型 状态 新建,销毁,置目标状态,克隆 状态集合的元素(相当于一条弧线:输入元素和目标状态) 新建,销毁,克隆 状态集合 新建,销毁,克隆,追加一个状态元素 状态表格 新建,销毁,克隆,追加一个状态,用于调试的showStateTable() 状态机 新建,销毁 ...
case REPEAT_RANGE_M_MORE: /*(A{m,})*/ pst_needed = repeatMachine_needed(g_repeat_m-1, pmnew); if (pst_needed != NULL) { g_st = joinStateTable(g_st, pst_needed); ...
case END_REGEXP: while_notfinish = 0; /*一会儿退出循环*/ printf("debug: end scan the regexp:\n\t\"%s\"\n", g_strRegExp); /*做一次状态机结束操作*/ case OR_MACHINE_END: if (symboltype == OR_MACHINE_END) { ...
站在喧闹的街上,看着来来往往的尽是情侣,我悲凉的心几乎就要崩溃了。为什么我仍学不会一个人?还天真的想象那个只见过两面的人可以陪在我身边。其实自己心里很清楚这是不可能的事情,可就是忍不住要想人家。
case END_REGEXP: while_notfinish = 0; /*一会儿退出循环*/ printf("debug: end scan the regexp:\n\t\"%s\"\n", g_strRegExp); /*做一次状态机结束操作*/ case OR_MACHINE_END: if (symboltype == OR_MACHINE_END) { ...
case DOT: for (OR_MACHINE_i=0; OR_MACHINE_i<(int)'\n'; OR_MACHINE_i++) { g_ele_ary[OR_MACHINE_i] = 1; } for (OR_MACHINE_i=(int)'\n' + 1; OR_MACHINE_i<=sizeo...
case OR_MACHINE_BEGIN: /*开始一个或运算子状态机(字母表),左括号: '['*/ pmnew = newMachine(NULL, NULL, g_scan_pos, -1, '|', NULL); pmnew->state_start = newState(); /*状态机开始状态*/ ...
case START_REGEXP: printf("debug: start scan the regexp:\n\t\"%s\"\n", g_strRegExp); /*做一次状态机开始操作*/ case AND_MACHINE_BEGIN: /*开始一个子状态机,左括号: '('*/ pmnew = newMachine(NULL, NULL, g_s...
case BACKTRACE: /*将当前状态与子状态机的结束状态连接*/ setdestState(g_st->curState, (int)g_st->eleCount, g_mstk->topM->state_end); /*将当前状态回退到子状态机的头部,开始一个新的分支*/ g_st->curState = g_mstk->topM->state_start; break; ...
这个函数是状态机的执行部分,他根据getSymbol()函数返回的一个词,来决定正则状态机的行为。下面我来对这其中的一些细节做一下解释:======================================
[1] 在这个DEMO版本中,输入被看作是字节流,像一个汉字会被解析成两个INPUT_ELE, 例如:"王"会被解析为 "\xCD\xF5"。[2] 我的一个比较重要的概念是“子状态机”,被“()”和“[]”包围的都是“子状态机”, 将括号以这种方式独立出来处理,可以很方便的进行各种运算(重复,或,连接)[3] 在[regexp.h]中定义的Machi...
[regexp.c]中主要函数声明和源代码下面是主要的函数声明:======================================SymbolType getSymbol(); /*词法分析函数,返回一个符号的类型和它的值*/int dealState(SymbolType symboltype); /*处理输入状态*/void repeat_needed(int m, int eleindex); /*{m,n}生成必选的m次循环状态表*/void repeat_optional(int n, int eleindex); /*{m,n}生成可选的n次循...
最近想做一个正则表达式的解析工具,目前已经完成了正则表达式向NFA(不确定有穷自动机)表格的转换代码。源代码包在这里下载:====================================== 源代码zip包:regexp.zip======================================我再跟几个帖子把核心代码贴出来一部分:供各位赏玩 。。。readME文件如下:===================================作者:王旭华泰山学院E-MAIL:qfhuazi@163.comQQ: 471600163文件:regexp-win.ex...
白馬飾金羈,連翩西北馳。借問誰家子,幽並遊俠兒。少小去鄉邑,揚名沙漠垂。宿昔秉良弓,楛矢何參差。控弦破左的,右發摧月支。仰手接飛猱,俯身散馬蹄。矯捷過猴猿,勇剽若豹螭。邊城多警急,胡虜數遷移。羽檄從北來,厲馬登高堤。長驅蹈匈奴,左顧凌鮮卑。棄身鋒刃端,性命安可懷?父母且不顧,何言子與妻?名編壯士籍,不得中顧私。捐軀赴國難,視死忽如歸。
曹植的這首樂府詩可分四節來理解其內容。第一節,從開頭至「幽並遊俠兒」,概寫主人公遊俠兒英俊豪邁的氣概;第二節,從「少小去鄉邑」到「勇剽若豹螭」,補敘遊俠兒的來歷和他超群的武藝;第三節,從「邊城多警急」到「左顧凌鮮卑」,寫遊俠兒在戰場上衝鋒陷陣、奮勇殺...
cucumalo 原创hibernate核心接口:Session 、 Transaction 、 Query 、Configuration Configuration :配置、根启动Hibernate 创建SessionFactory对象SessionFactory :初始化Hibernate创建Session对象Sesssion :负责保存、更新、删除、加载和查询对象Transaction :管理事务Query和Criteria : 执行数据库查询Query query = session.createQuery("from Customer c ...
今天带着晓茜去儿童乐园,感觉真是带了个小孩子.工资开得不多,看得出来有点不开心.
浏览了一下她的QQ空间,感觉她挺像当初的我,只是现在我已经不能有针对性的和她说些什么了.
当初训练那些孩子的时候,首先要他们做到的就是残忍、凶狠、执着。也许,我训练出来的都是机器。
鹰:他们现在有什么资格去玩,我不想让他们在失去什么以后才觉醒。
我:也许,等到他们什么都有的时候,却没有资格失去什么了。
但是人生真的有那么多事要去做吗?我做了很多事情,可是到最后才发现,那些东西不是要利用的,而是作为光环,来实现某个目的的。我突然发现,自己居然没有了目标。
风雨过后只是更大的风雨,因为我们不在云层之...
最近QQ老是掉线....
把一下代码复制到文本文档中
ping sz.telnet.comping sz2.telnet.com>QQServer.txtping sz3.telnet.com>>QQServer.txtping sz4.telnet.com>>QQServer.txtping sz5.telnet.com>>QQServer.txtping sz6.telnet.com>>QQServer.txtping sz7.telnet.com>>QQServer.txt
保存为任意名字的.bat文件 运行后 查看 当前目录中的 QQServer.txt文件 进行对比选择~
可能是因为刚结束一段感情没多久的缘故,让我对接触自己的异性朋友总有些抵触和刻意伤害,真的很对不起他们,可他们并没有因此而抱怨什么,相反却诚意的希望我能快点好起来。真的谢谢他们。
批处理文件恢复或新建管理员密码账号
--------------------------------------------------------------------------------
丢失管理员密码是件非常令人头疼的事情,但说不定什么时候就会碰到。在紧急情况下,如何恢复管理员密码乃至新建一个管理员账号,现在已经有许多成熟的技术,如经典的登录屏幕保护程序法、使用O&O软件等。实际上,使用启动脚本也是一个相当不错的选择。
(1)如果故障计算机使用FAT/FAT32文件系统,那可直接使用Win98引导盘引导。如果使用NTFS文件系统,可将故障...
attribute: 这个属性用来指定ActionForm保存到指定上下文时所使用的属性名。如果不指定attribute属性的值,将使用name属性的值作为保存时的属性名。也就是说,attribute属性的默认值就是name属性的值。 ==================================================================== className: 指定自定义的配置对象。这个配置对象必须是ActionMapping的子类。如果不对这个属性进行指定,那么将使用默认值org.apache.struts.action.ActionMapping。...
Oh, my God! The lovely prairie dogs come again! We know they are very naughty and always play some funny games. This time, they play a game named Spiral Queue.
Each of the prairie dogs has a number and they stand in a funny queue named Spiral Queue like in Figure 1.
Given the coordinate, the ...