问题标签 [sweet.js]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
40 浏览

javascript - 在 Sweet.js 中访问父母变量

我正在创建一个新的面向对象系统,我需要访问宏父级的变量。我有以下内容:

我希望能够在 中fn macro拥有可用的module名称,在这种情况下x,因为也许我想做类似的事情$parentModule.prototype.myFunc。但如果我这样做$e$e,它就不能正常工作。可能吗?

0 投票
8 回答
489 浏览

javascript - Javascript 宏:实现 F# 风格的正向管道运算符

我想实现一个高阶函数 ( hof),它基本上像 F# 风格的正向管道运算符一样工作(将一个值作为第一个参数传递给另一个函数,myFunc)。我能想到的唯一方法是:

args_array调用的参数数组在哪里myFunc(不包括第一个参数,因为那将是val

但这对我来说看起来不是很优雅。有一个更好的方法吗?

编辑:我在 github https://gist.github.com/aaronpowell/d5ffaf78666f2b8fb033上找到了这个。但我真的不明白sweet.js代码在做什么。如果您可以注释代码,这将非常有帮助,特别是:

0 投票
1 回答
112 浏览

sweet.js - 使用 sweet.js 宏删除日志语句

我今天刚开始使用 sweet.js,所以有些问题可能很容易解决......

我想从我的生产版本的源中删除日志语句。sweet.js 似乎足够灵活来做到这一点。

有多种日志语句和限制:

  • console.log( "wow");应该被删除,而console.warn( "wow");因此应该保持不变。

  • this.log( "wow");也应该删除

  • 在像这样的陈述中this.assert(foo, "foo is undefined").log( "object created");,应该去掉部分。this.assert(foo, "foo is undefined").log( "object created").flush();.log( ...)

我当前的 sweet.js 宏包括示例什么工作和什么不工作:

你可以在这里玩:sweetjs editor contains this example

欢迎任何帮助:-)

0 投票
1 回答
145 浏览

sweet.js - sweet.js 宏是否可以定义其他宏?

我试图定义一个 sweet.js 宏,它允许更容易地定义其他重复宏,但我在这里发现了一个语法错误:

这是产生此语法错误的宏:

如果这个宏被正确定义,那么它将允许创建其他宏,比如这个:

此代码可以在此处在线编辑。

换句话说,是否可以定义一个将自动转换此宏的宏:

...进入这个宏?

0 投票
1 回答
83 浏览

javascript - Sweet.js:在标记之前针对变量的宏?

我的 TODO 列表中的一项是创建一种有趣的编码语言,它可以“编译”为 JavaScript。我想为此尝试Sweet.js,但我想知道是否可以编写一个针对规则之前的关键字的规则?

例如,假设您想要创建一个 Yoda 风格的 JavaScript。源代码行可能如下所示:

将映射到

这可能使用 Sweet.js 吗?

0 投票
1 回答
49 浏览

sweet.js - 为什么 case 宏不嵌套?

鉴于这个 sweet.js 宏

而这个源代码:

您如何创建一个产生此输出的案例:

而不是这个?

PS实际用例需要案例宏,而不是规则宏。

0 投票
2 回答
358 浏览

javascript - 如何在 sweet.js 中创建参数化中缀宏

bluebird wiki 关于 JavaScript 优化杀手的文章中,作者提到将arguments关键字传递给任何函数(除了apply)都会导致父函数不可优化。我想创建一个sweet.js宏,它允许我编写标准的惯用 JavaScript,但会处理优化杀手。

理想情况下,我想要一个具有以下功能的宏:

并输出如下内容:

但是,我无法正确获取 sweet.js 宏语法。 这是我到目前为止所拥有的

例子.sjs

输出以下内容:

我尝试让我的宏在arguments关键字周围加上括号并包含var声明,但没有任何成功。我试过这样的事情:

无效宏

这会产生以下错误:

0 投票
1 回答
51 浏览

macros - Sweet.js 宏将任何传递给宏的结构失败

我有一个宏,我可以在括号之间输入任何代码。然后我将它传递给另一个对该代码有规则的宏。我在其中做其他事情,test它的名称不同,但我认为一个最小的测试用例在这里会很有用。

这是我收到的错误消息:

0 投票
1 回答
94 浏览

sweet.js - 是否可以将 sweet.js 宏“m”扩展为符号“m”?

假设某处有一个名为 的函数m,它的调用方式如下

我有一个 sweet.js 宏,它定义了一个名为的宏,该宏m用于获取 foo.js 并展开m(基本上是在编译时运行该函数)

在某些情况下我不想扩展m,因为与宏不同,函数可以作为一等公民传递

如果我在宏中没有涵盖这种情况的案例,sweet.js 会抱怨,所以我需要一个只扩展为相同符号的包罗万象的规则。

鉴于宏的其他情况确实需要递归扩展为宏,如何使m宏扩展为函数?mm

0 投票
1 回答
27 浏览

codekit - CodeKit 是否支持 sweet.js 编译?

我只是想知道 CodeKit 是否支持 Sweet.js 文件的编译?