在宏中调用函数会出现问题(已解决:宏不可以」结尾)
Wybxc opened this issue · 2 comments
Wybxc commented
吾有一術。名之曰「增益」。
欲行是術。必先得一數。曰「甲」。
是術曰。
加「甲」以一。名之曰「乙」。乃得「乙」。
是謂「增益」之術也。
或云「「增益「甲」」」。
蓋謂「「施「增益」於「甲」。書之」」。
有數一。名之曰「某」。
增益「某」。
增益「某」。
增益「某」。
增益「某」。
增益「某」。
编译结果:
var 增益 = _ => {}
增益 = 甲 => {
const _ans1 = 甲 + 1
var 乙 = _ans1
return 乙
}
var 某 = 1
const _ans2 = 增益()
console.log(_ans2)
console.log()
console.log()
const _ans3 = 增益()
console.log(_ans3)
console.log()
console.log()
console.log()
const _ans4 = 增益()
console.log(_ans4)
console.log()
console.log()
console.log()
console.log()
const _ans5 = 增益()
console.log(_ans5)
console.log()
console.log()
console.log()
console.log()
console.log()
const _ans6 = 增益()
console.log(_ans6)
console.log()
console.log()
console.log()
console.log()
console.log()
console.log()
已知问题:
- 参数不正确。
- 出现大量无意义的输出。
- 如果再增加一行
增益「某」。
,会报 syntax error。
LingDong- commented
Hi @Wybxc , thanks for the report!
Macro definition cannot end with 」
. This is a limitation of the preprocessor, and is documented here in wiki https://github.com/wenyan-lang/wenyan/wiki/Macros#cautions.
Try adding an additional character to macro definition:
吾有一術。名之曰「增益」。
欲行是術。必先得一數。曰「甲」。
是術曰。
加「甲」以一。名之曰「乙」。乃得「乙」。
是謂「增益」之術也。
或云「「增益「甲」焉」」。
蓋謂「「施「增益」於「甲」。書之」」。
有數一。名之曰「某」。
增益「某」焉。
增益「某」焉。
增益「某」焉。
增益「某」焉。
增益「某」焉。
Which should work.
Perhaps there's a way to detect such errors and warn the user... 🤔
Wybxc commented
谢谢!