Macro

Compile

macro Compile(context: TokenTreeMacroContext) -> ()

Namespace: Raven.Macros
Assembly: Raven.Macros.dll
Source file: Compile.rvn

Quotes a Raven expression and compiles it into the requested delegate type.

Import Raven.Macros.* to invoke the conventional compile! alias. Runtime compilation is comparatively expensive, so applications should compile once and reuse the resulting delegate.

The macro first represents its body through Raven's syntax-tree API before compiling it into the requested delegate type.

Example

import System.*
import Raven.Macros.*

let increment = compile<Func<int, int>>! {
    value => value + 1
}