• Aurum


        Aurum是一个用Ruby实现的LALR(n) parser generator(是的,又是一个parser generator),不过它和其他一些广泛应用的parser generator相比略有不同的:

    1.Aurum的主要目标之一,是简化external DSL的开发(尤其是ruby external DSL)。
    2.Aurum采用增量LALR(n)算法,而不是通常的LALR(1)。这意味着:
    a.不必由于LALR(1)能力的限制,而改写语法,很多在LALR(1)中冲突的语法在LALR(n)中可以比较自然地表达。
    b.由于识别能力的增强,可以处理一些比较复杂的语法,比如COBOL(LALR(2)或LALR(3)),比如一些简化的自然语言(LALR(3+))。
    c.处理能力接近Generalized LR,却快很多
    d.比起Full LALR/LR(n),增量算法生成的语法表更小。
    3.出于简化external DSL实现的考虑,Aurum支持语法重用。
    4.Aurum采用Ruby internal DSL作为语法声明的元语言,可以利用Ruby丰富的测试框架,有效地对编译/解释/分析器进行测试。
    5.正如名字所暗示的,Aurum(Gold的化学名称)的一部分灵感来自GOLD parsing system,它将支持独立于平台和语言的编译器开发。转载自:http://www.blogjava.net/raimundox/archive/2007/09/05/143028.html.
    点击次数   官方主页【官方主页】   下载地址【下载地址】

    网友留言/评论

    我要留言/评论

    相关开源项目