Например, я хочу получить цикл «for», похожий на «родной», который был реализован во встроенном макроязыке Crystal, но отсутствует (по принципиальным соображениям) в основном языке «runtime»:
for i in list do
end
for k, v in hash do
end
(Здесь "{}" - простой блок. Я не могу использовать do .. end синтаксис здесь в любом случае (возможно, нет)).Будет очень хорошо реализовать директиву multi-inlcude, такую как:
includes MixinX, MixinY, MixinZ
и так далее ... Как я знаю, макрос (названный "for" и "includes" в предоставленных фрагментах) может 'не принимать "я в списке" без двойных кавычек.Итак ... есть ли только один способ сделать это - расширить синтаксический / лексический синтаксический анализатор и сам анализатор кристалла?