我正在创建一个领域特定的语言。其中一个宏调用看起来是这样的:我可以区分字符串文字参数和计算为字符串的参数吗?
(我的宏了foo(bar“巴兹” qux)耶)
随着我已经写了我的宏的方式,这里的第二个参数应该是一对括号内的字符串列表。因此,只要bar和qux评估字符串,我的宏就可以工作。让我们只是说他们评价为“bar”和“qux”,my-macro将第二个参数视为“bar baz qux”。
但是现在我意识到我真的想要“baz”保留它的引号;我希望我的宏将第二个参数视为“bar \”baz \“qux”。这可能吗?在我的宏里面,我可以告诉我什么时候可以直接使用字符串,而当我需要添加双引号时?
在此先感谢!
@泰耶 - norderhaug唉我想酒吧和qux评估和‘巴兹’仍然是一个带引号的字符串。另外一个引用的字符串可以出现在arg2中的任何地方... – nil 2011-04-13 15:36:56