如何在 Boo 中创建嵌套宏
我正在 Boo 中创建嵌套宏,我编写了这个程序:
macro text:
macro subMacro:
text["Text"] = "Hello World"
return [|
block:
System.Console.WriteLine( "Hello World" );
|]
但是我在代码的第三行中收到错误“未知标识符:'文本'”。
I am creating nested macros in Boo, I wrote this program:
macro text:
macro subMacro:
text["Text"] = "Hello World"
return [|
block:
System.Console.WriteLine( "Hello World" );
|]
But I am getting the error "Unknown Identifer: 'text'" in the 3rd line of the code.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您收到的错误可能与调用宏的代码中缺少导入有关。
例如,如果您的宏位于名为 foo 的命名空间中,则需要添加
At 调用代码的顶部。
修复此编译器问题后,您可能遇到的第二个问题是错误
“未知标识符'块'(BCE0005)
要解决此问题,请在准引用部分后添加
.Body
,如下所示:编辑- 恕我直言,宏有点黑暗艺术要获得更多帮助,您应该尝试 boo 邮件列表,或者优秀的 BOO 中的 DSL
The error you are getting is likely to do with a missing import in the code where the macro is being called from.
If your macro is in a namespace named foo for example, you will need to add
At the top of the calling code.
A second issue you may run into once you fix this compiler issue is the error
"Unknown identifier 'block' (BCE0005)
To fix this, add a
.Body
after the quasi-quotation section like this:EDIT - IMHO macros are a bit of a dark art. For more help, you should try the boo mailing list, or the excellent DSLs in BOO