我在 Boo 中创建嵌套宏,我编写了这个程序:
macro text:
macro subMacro:
text["Text"] = "Hello World"
return [|
block:
System.Console.WriteLine( "Hello World" );
|]
但我在代码的第 3 行收到错误“未知标识符:'文本'”。
我在 Boo 中创建嵌套宏,我编写了这个程序:
macro text:
macro subMacro:
text["Text"] = "Hello World"
return [|
block:
System.Console.WriteLine( "Hello World" );
|]
但我在代码的第 3 行收到错误“未知标识符:'文本'”。
您遇到的错误可能与调用宏的代码中缺少导入有关。
例如,如果您的宏位于名为 foo 的命名空间中,则需要添加
import foo
在调用代码的顶部。
修复此编译器问题后,您可能会遇到的第二个问题是错误
“未知标识符‘块’(BCE0005)
要解决此问题,.Body
请在 quasi-quotation 部分之后添加一个,如下所示:
import Boo.Lang.Compiler.Ast
macro text:
macro subMacro:
text["Text"] = "Hello world"
return [|
block:
System.Console.WriteLine("Hello World");
|].Body