Ejemplo n.º 1
0
        public override Value VisitTopLevelExpression([NotNull] TopLevelExpressionContext context)
        {
            var proto    = new Prototype($"anon_expr_{AnonNameIndex++}");
            var function = GetOrDeclareFunction(proto
                                                , isAnonymous: true
                                                );

            var(_, jitHandle) = DefineFunction(function, context.expression());

            var nativeFunc = JIT.GetDelegateForFunction <AnonExpressionFunc>(proto.Identifier.Name);
            var retVal     = Context.CreateConstant(nativeFunc( ));

            JIT.RemoveModule(jitHandle);
            return(retVal);
        }