簡體   English   中英

如何在Boo中創建嵌套宏

[英]How to create nested macro in Boo

我在Boo中創建嵌套宏,我編寫了以下程序:

macro text:
  macro subMacro:
    text["Text"] = "Hello World"

  return [|
    block:  
      System.Console.WriteLine( "Hello World" );
  |]

但是我在代碼的第三行中收到錯誤消息“ Unknown Identifer:' text '”。

您收到的錯誤很可能與從中調用宏的代碼中缺少導入有關。

例如,如果您的宏位於名為foo的命名空間中,則需要添加

import foo

在調用代碼的頂部。

解決此編譯器問題后,您可能會遇到的第二個問題是錯誤

“未知標識符“塊”(BCE0005)

要解決此問題, .Body在准引用部分之后添加.Body ,如下所示:

import Boo.Lang.Compiler.Ast

macro text:
    macro subMacro:
        text["Text"] = "Hello world"

    return [|
        block:
            System.Console.WriteLine("Hello World");
    |].Body

編輯-恕我直言,宏有點藝術。 要獲得更多幫助,您應該嘗試boo郵件列表BOO中出色的DSL

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM