例如,我想获得看起来像原生的“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的语法/词法解析器和分析器本身?
1 回答
也许,你可以使用这样的东西: