可能的用途是:
1。文本重新格式化输出;
2。原有web应用的再包装,比如原来输出html的web程序,不需要改动任何源代码就可以让它输出xml,wml,或者任何你想要的东西;
3。mud机器人;
4。聊天机器人;
5。变形script病毒的匹配;
6。文本特征识别;
7...

解决方案 »

  1.   

    楼上的批评人也不用这样吧
    支持vive
      

  2.   

    不是算法问题。匹配算法是很简单的算法,但是能带来实际的用处
    我得意的不是匹配算法,而是简洁的语法,竟然可以完成进行文本匹配的绝大部分功能。技巧很多,比如完全可以根据前面检测到的条件来决定后面的输出结果。我在做wml输出的时候就在gepal里面(而不是在java里面)判断用户手机型号,屏幕大小,来决定页面的安排;甚至,html和wml都混在一个文件里输出
      

  3.   

        我的考虑是,对于程序员来说,迫切需要简单明了的语法。我考虑过支持通用的bnf范式,比如遇到某个语法成分就在整个规则库里面去搜索相关规则,找到新的语法成分之后继续寻找新的语法规则;这样也是一种风格,能力更强,但是这样做不仅效率非常低下,你很难弄明白程序每一步都做了些什么,很容易导致程序崩溃,也使得程序员很难书写和调试程序,因而并不是一种好的做法。
        目前它还处于非常原始的状态。函数定义的引入,对我自己来说也很难取舍。一方面,不引入函数的话就无法处理表结构;或者引入循环也可以,但是不管哪种语言都需要函数吧?而有了函数的定义,就不一定需要循环,都可以用递归来处理了。
        另外一方面,函数的引入破坏了它的简单性。它原来还有一个奇妙的性质:可逆性。只要把每一句倒过来运算,就可以从输出得到输入;而现在有了函数,它好像不具备这种性质了(我没有仔细确认)。没有函数的定义,写出来的代码可以说完全是描述性的,并不需要考虑执行过程,也永远不用担心程序会崩溃。现在就不行了
        它还迫切需要类似include的语法。实现并不难,但是我迟迟无法决定如何引入。因为我做语法分析的时候并不知道它是一个文件,只知道是一个流;它是外面传进来的,很有可能是一个url,或者是一个字符串(我是指.gpl程序本身);那语法分析器凭什么去打开一个文件呢,既然它本身都不是文件的话?
      

  4.   

    多谢大家捧场 :)
    昨天晚上刚刚包装好(以前只有我自己看得懂),写了一点点文档,然后用chinaren的主页大巴wizard做了一个主页。声明,那首恶心的诗是自动生成的,不是我写的 :)
    如果觉得有用可以和我联系。我打算公开rungpl的源代码,这样大家可以对照rungpl.java来把gepal嵌入到自己的程序里面
    其实,简单的词法分析和语法分析相信大家到处都要用到的,可是写起来很头疼。如果直接用gepal的话就很省事了(gepal程序可以直接放在java的字符串里面,不需要另外开文件);还有mud机器人,用这个来做最合适不过了!
      

  5.   

    to vive(白起) 我下载时说找不到文件
      

  6.   

    首先,是正则表达式,不是正规表达式
    其次,正则表达式是描述词法用的,能力很弱,并不适合描述文法,比如,无法描述递归文法
    我用的是简化的标准bnf范式。没有用扩展的bnf范式,因为扩展的bnf范式并没有增强它的处理能力,只是表达形式可以简化
      

  7.   

    to bobokong(轨迹球),我试了一下,很正常啊,可以下载
      

  8.   

    哦,打错字了。
    在公司去不了,有忙寄我一份。
    [email protected]
      

  9.   

    希望大家多多捧场!
    这几天我一直在整理gepal的源代码,可能要对gepal的语法进行大幅度的调整了
    现在感觉写一个语言解释环境比以前轻松多了,越来越有信心
      

  10.   

    to skyyoung(路人甲):给你寄了
    大家试验了之后感觉如何,欢迎发表意见
    欢迎给我来信,[email protected]
      

  11.   

    有空的话给我也来一份吧,vive:)
    [email protected]
      

  12.   

    请给我一份好吗?
    [email protected]
      

  13.   

    有空的话给我也来一份吧,vive:)
    [email protected]
      

  14.   

    呵呵,我不喜欢到处是邮件列表的贴子,欢迎大家用了之后提出宝贵意见
    可以去gepal.home.chinaren.com下载,才29k。我不发了
      

  15.   

    兄弟,咱没有找到你说的source code, 或许是俺太笨了?
    还有,执行文件运行不起来。
    Exception in thread "main" java.lang.NoClassDefFoundError: untemplate/CharReader        at rungpl.readWhole(rungpl.java, Compiled Code)
            at rungpl.main(rungpl.java, Compiled Code)
      

  16.   

    哦,我还没公布source code.不大敢,公司想申请专利保护起来,我要等上面决定了再说
    这几天我在大改源代码。源代码贴出来很有用吗?这个东西本来也不难实现
    to riverhorse:你找找看,我估计你没解开untemplate那个目录
    大家看看test.gpl的源代码,觉得好不好懂?可以改改试试看。我总怕别人看不懂,我做的东西常常很不友好
      

  17.   

    给我寄一份源代码看看。
    [email protected]
      

  18.   

    也送我一份源代码吧,写写啦!
    [email protected]