问题标签 [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 投票
2 回答
524 浏览

javascript - Sweet.js - 将令牌扩展为字符串

我想将令牌扩展为字符串。例如,我有这个宏:

我希望String 1扩大到"1",但它扩大到只是1;

我怎样才能做到这一点?

编辑:这似乎不可能与声明性方法有关,但应该可以通过命令性方法实现(请参阅此评论):

但这仍然用引号扩展。

0 投票
1 回答
591 浏览

node.js - 在 Node.js 中将 SweetJS 编译为字符串

在 shell 中,我可以调用 Sweet.js 编译器。

sjs -m macro-providing-module -o output-directory/file.js input-directory/file.sjs

如何从 Node.js 模块内部执行相同操作,而不是输出到指定文件,而是将编译后的输出作为字符串获取?

0 投票
1 回答
62 浏览

javascript - Sweet.js: Error: ASSERT: enforest assumes there are tokens to work with

I was creating my macros and there is a bug than pops up (from my point of view) randomly:

I'm not sure about what does this mean but I did my best to encapsulate the problem and I end with this code:

If I invoke foo macro between parentheses and add the ? at the end this error is thrown:

But if I remove the parentheses or the ? it just works

You can see it failing here:

http://sweetjs.org/browser/editor.html#macro%20foo%20%7B%0A%20%20rule%20%7B%20$bar:expr%20?%20%7D%20=%3E%20%7B%20$bar%20%7D%0A%20%20rule%20%7B%20$bar:expr%20%7D%20=%3E%20%7B%20$bar%20%7D%0A%7D%0A%0A(foo%20test%20?)%0A

So please, this is driving me crazy I'm facing this error again and again. It should be related to the :expr operator, but I can't replace it with ... because it's so greedy and it selects everything to the last ? it found.

I can see the line than throws this error is here. But I don't know the context.

Any help?

0 投票
2 回答
120 浏览

gruntjs - 如何使用 grunt-sweet?

我想设置grunt sweet,这样我就可以让它开始监视我使用 sweetjs 的文件并在它们发生变化时编译它们。

但是,我是制作 gruntfiles 的新手,该链接中没有足够的信息让我知道如何设置它。搜索使用的文件grunt.loadNpmTasks('grunt-sweet');我能够找到一个用作模板的文件,但我无法让它工作。

这个 gruntfile

给我

这似乎是成功的,但实际上并非如此。我在这里做错了什么?

我想要的只是让它自动将 src 中的文件编译成 build

0 投票
1 回答
185 浏览

javascript - 在 sweetjs 中实现多行细箭头语法

我在玩sweetjs,我一生都无法弄清楚为什么这个无参数多行细箭头语法的规则不匹配

代码:

结果是

0 投票
1 回答
157 浏览

javascript - Sweet.js 可以输出到评论吗?

这个问题的标题回答了一切。

我希望有办法做到这一点,但我发现它很难。截至目前,这是我尝试过的。

那没有用:*(

所以然后我尝试了这个。

显然,正如我所想的那样,它会导致语法错误。有没有办法让 sweetjs 输出到评论?

0 投票
1 回答
414 浏览

sweet.js - 是否可以在 javascript 中创建一个使多行字符串成为可能的 sweetjs 宏?

我对 sweet.js 真的很陌生。

我很想在 javascript 中使用多行字符串,就像在 EcmaScript 6 中一样:

是否可以制定一个 sweetjs 宏处理(以及如何处理??)?

此外,是否可以像 ES6 一样使用该宏进行字符串插值/模板化?

0 投票
2 回答
106 浏览

javascript - sweetjs 添加:''

我正在尝试用 sweetjs 编写一个宏来

基本上我想列出一个对象的属性并创建一个具有该属性的空原型。

我写的规则是

如果我有

它扩展到

{ a = 3, b = 3, c = 3;}

但是如果我改变我得到= 3: ''

意外的令牌:[... ( a : ) , ...]

(另外我不知道为什么它;在扩展的末尾添加一个 after c = 3

任何想法?

0 投票
1 回答
255 浏览

sweet.js - 将 sweet.js 参数转换为字符串

你将如何创建一个从参数到 sweet.js 宏的字符串?例如:

将输出:

当我希望它输出时:

所以第一个参数有引号。

0 投票
1 回答
123 浏览

javascript - 用 Sweet.js 匹配一个块的结尾

我正在尝试在 sweet.js 中编写一个case宏,但我不知道如何匹配块的结尾。特别是我想匹配宏调用和包含它的块的末尾之间的代码。例如如果我的宏是myMacro,代码如下

我希望能够将行与“log2”和“log3”匹配。我的猜测是我不能,但我无法在文档中找到一个明确的定义(指针将不胜感激)。可能吗 ?