/*##############################################*//*#######      *函数实现*     ######################*//*##############################################*//*状态*/pState newState() {      pState pS = NULL;      pS = (pState)malloc(sizeof(State));      if (pS != NULL) {          pS->destStateCollection =...
  
  
  
  
      这里是[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。...