2

Nemerle の準引用符を使用して、Nemerle の単純なコード スニペットの AST を取得しようとしています。

これは私が試したコードです:

def ast() : void {
  System.Console.WriteLine(<["Test"]>)
}

IdeOne (ncc 0.9.3) で実行したところ、次のエラーが発生しました。

prog.nem:2:30:2:36: error: unbound name `Literal.String'
prog.nem:2:30:2:36: error: unbound name `PExpr.Literal'

これらの問題を解決するにはどうすればよいですか?

4

2 に答える 2

3

プロジェクトへの参照としてNemerle.Compiler.dllを追加する必要があります。また、より複雑な準引用符の一部はマクロでのみ機能します。

using Nemerle.Compiler;
using System.Console;

macro Test()
{
    def x = <[ while (true) WriteLine(4) ]>.ToString();
    <[ WriteLine($x) ]>
}
于 2012-05-13T02:50:05.220 に答える
2

準引用符は、マクロでの使用を目的としています。コンパイラのコンテキストが必要です。マクロライブラリプロジェクトを作成し、その中で準引用符を使用します。

于 2012-05-13T20:08:37.967 に答える