如何扩展Crystal语言语法?

时间:2018-05-23 14:41:38

标签: macros crystal-lang

例如,我希望获得看起来像原生的“for”循环,它是用crystal的嵌入式宏语言实现的,但是在主要的“运行时”语言中缺少(出于原理的原因):

for i in list do
end

for k, v in hash do
end

(这里“{}”是一个简单的块。我无论如何都不能使用do .. end语法(也许不是))。 将很好地实现多inlcude指令,例如:

includes MixinX, MixinY, MixinZ

依旧...... 据我所知,宏(在提供的片段中命名为“for”和“includes”)不能在没有双引号的情况下接受“i in list”。所以...只有一种方法可以做到 - 扩展crystal的语法/词法解析器和分析器本身?

0 个答案:

没有答案