乍一看,调车码算法似乎适用于POSIX正则表达式解析,但由于我在编写解析器方面没有多少经验(或理论背景),所以我想在跳进去写东西之前问一问。
也许这个问题的一个更复杂的版本是:对调车场算法可以应用的问题类别的一个好的正式陈述是什么?
Clarification:这个问题是关于是否可以使用分流算法的基本原理将POSIX语法解析为抽象语法树,而不是是否可以使用正则表达式来实现分流算法。对不起,我一开始说的还不够清楚!
发布于 2010-11-12 09:40:45
我很肯定它可以。如果您查看Henry的正则表达式包:
regexp.shar.Z
这是Perl正则表达式的基础,您会注意到,他将该程序描述为“铁路正常形式”。
发布于 2010-11-12 09:54:02
我想你会有一些问题,因为不同的字符在不同的上下文中有不同的含义。
^[^a-z][asd-]^有两个不同的含义,-也是如此。我想我会选择一个递归下降解析器。
发布于 2010-11-12 09:31:46
我不明白为什么不合适。但是,看看一些旧代码,似乎我对上一个regexp解析器使用了完全不同的解析策略(从本质上讲,从一开始就走了一步,一边构建生成的自动机表示,一边使用一些前瞻性调用和递归调用来实现正则表达式分组)。
https://stackoverflow.com/questions/4161553
复制相似问题