5
我正在创建一个扩展卡游戏引擎的DSL,我正在努力,与嘘声。困难的嘘语法宏
我有一个卡宏创建一个新类型的卡的类,并初始化构造函数中的一些属性。该宏有几个用于设置其他内容的子宏。基本上我希望它变成是这样的:
card 'A new card':
type TypeA
ability EffectA:
// effect definition
成这样:
class ANewCard (Card):
def constructor():
Name = "A new card"
Type = Types.TypeA
AddEffect(EffectA())
class EffectA (Effect):
// effectdefintion
的影响肯定需要一个类,因为它会被传来传去(这是一个策略模式)。
到目前为止,我有这个简单的骨架:
macro card:
yield [|
class $(ReferenceExpression(card.Arguments[0])) (Card):
def constructor():
Name = $(card.Arguments[0])
|]
现在,我不知道我应该做card.Body使能力宏代码添加到构造函数,同时还产生一个嵌套类。有什么想法吗?这可以用当前的语言功能来完成吗?