首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于运行时语言变更的解析技术

用于运行时语言变更的解析技术
EN

Stack Overflow用户
提问于 2010-11-29 16:04:46
回答 2查看 279关注 0票数 3

看看Rakudo Perl6,我想知道是否有解析和词法分析的技术,允许更改/扩展语言的语法,并且高效且不难实现。

EN

回答 2

Stack Overflow用户

发布于 2010-11-29 16:53:10

“不”。编辑:在提出问题时,如果问题是关于词法分析/解析Perl的,那就相当困难了。我们(参见我对“We”的简介)有一个Perl5词法分析器。我们有非常好的词法生成器工具(Unicode、多态、内置了"not regexp“的regexp)。构建Perl词法分析器是一个令人头疼的问题;我们最终使用了大约50个词法模式(每个模式都有自己的一组标记定义)来处理词法分析部分。

我们一直在关注解析部分,今天我们很幸运,并没有直接需要做这件事,所以我们到目前为止都避免了这一部分。显然,根据各种标识符的动态定义,该语言是模糊的,因此您如何在某个时刻解释(解析)一个短语并不是静态可决定的。我们认为我们可以使用GLR解析器来处理歧义,并简单地将歧义作为可能的运行时替代方案。我会在几个月后告诉你。

票数 1
EN

Stack Overflow用户

发布于 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很可能是这样实现的)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4301837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档