看看Rakudo Perl6,我想知道是否有解析和词法分析的技术,允许更改/扩展语言的语法,并且高效且不难实现。
发布于 2010-11-29 16:53:10
“不”。编辑:在提出问题时,如果问题是关于词法分析/解析Perl的,那就相当困难了。我们(参见我对“We”的简介)有一个Perl5词法分析器。我们有非常好的词法生成器工具(Unicode、多态、内置了"not regexp“的regexp)。构建Perl词法分析器是一个令人头疼的问题;我们最终使用了大约50个词法模式(每个模式都有自己的一组标记定义)来处理词法分析部分。
我们一直在关注解析部分,今天我们很幸运,并没有直接需要做这件事,所以我们到目前为止都避免了这一部分。显然,根据各种标识符的动态定义,该语言是模糊的,因此您如何在某个时刻解释(解析)一个短语并不是静态可决定的。我们认为我们可以使用GLR解析器来处理歧义,并简单地将歧义作为可能的运行时替代方案。我会在几个月后告诉你。
发布于 2010-11-29 20:24:38
看看PEGs吧。有些语言是基于PEGs ( http://en.wikipedia.org/wiki/Parsing_expression_grammar )的,这些语言是可扩展的,例如:
http://www.chrisseaton.com/katahdin/
http://www.meta-alternative.net/mbase.html
Perl5和Perl6语法可以很容易地以PEG形式定义(我可能是错的,但当前的Perl6很可能是这样实现的)。
https://stackoverflow.com/questions/4301837
复制相似问题