gpt4 book ai didi

javascript - 巴别塔 v6 : How/Can I write a plugin that adds a new syntax (ie a new operator)?

转载 作者:可可西里 更新时间:2023-11-01 01:43:24 24 4
gpt4 key购买 nike

Note: I found this question on Babel issue tracker (https://phabricator.babeljs.io/T2653) and it was rejected, but AFAIK its author did not asked it here.

我检查了像 packages/babel-plugin-syntax-do-expressions 这样的 Babel 插件似乎这些 ES6+ 新语法/运算符实际上根本没有在插件中定义,而是 implemented in Babylon并且只是toggled on通过这些插件。

newest blog post 中留下声明“开发人员已经构建了从调试工具 [...] 到实验性新语法 [...] 的所有内容,以在他们的代码库上执行复杂的规则”令人怀疑 - 实际上,我已经搜索了整个插件生态系统,但发现没有插件能够提供新的运算符/语法,并且只有一个插件能够为一些现有运算符提供运算符重载。

那么,对于 Babel v6,我们真的能够看到在用户空间中定义新的运算符/语法,这是真的吗?

这也是我感谢整个 Babel 团队所做的出色工作的机会!

PS:我开始搜索如何扩展 Babylon 解析器语法,以便实现一个可以实现“模式匹配”的插件,如 Julia methods .

最佳答案

从 Babel v6.18.0 开始,添加了 parserOpts 选项,允许将配置传递给解析器,即传递给 Babylon。 .

Babylon 接受选项 plugins , 可用于指定要启用的插件名称列表。在撰写本文时,您只能引用 plugins built into Babylon 中的一个。 .

有多个建议允许外部插件,例如

共识是~

We've been against the idea of allowing external extensions to Babylon in the past. It would be much more difficult to support custom parsing than it is to support custom transformations. Babel already has a lot it has to support, so we haven't wanted to open this up.

https://github.com/babel/babylon/pull/5#issuecomment-195801336

要启用自定义解析,您需要:

关于javascript - 巴别塔 v6 : How/Can I write a plugin that adds a new syntax (ie a new operator)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34028730/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com