main.js
import {另} from './chinese-macros';
另 {
}chinese-macros.js
export syntax 另 = function(ctx) {
return #`else`;
}main.js应该编译成else {},但是我得到了以下错误消息:
throw this.createError(start, "not a valid expression");任何帮助都将不胜感激。
发布于 2016-10-14 05:24:05
else {}本身就是一个无效的表达式,所以您才会收到该错误消息。你所做的(我相信)是在尝试用中文代替if (If)。因此,假设您已经为if语句创建了一个宏,编译器将最终为if、计算宏,然后为macro宏单独计算。
相反,您应该在一个宏中为if/else-if/else语句构建一个宏,就像教程如何为一个cond表达式构建一个宏:cond。请注意,它们是如何迭代关键字的,首先是case,然后是default,如果这两个关键字都没有出现,则会抛出一个错误(无效语法)。除了按顺序做if、else if和else之外,你想要达到的目的也是一样的.同时添加更多的错误处理和考虑不同的语法。
https://stackoverflow.com/questions/39682273
复制相似问题