Example #1
0
 internal MSAst.Expression /*!*/ DeleteIndex(MSAst.Expression /*!*/[] /*!*/ expressions)
 {
     return(CompilationMode.Dynamic(
                PyContext.DeleteIndex(
                    expressions.Length
                    ),
                typeof(void),
                expressions
                ));
 }
Example #2
0
 internal MSAst.Expression /*!*/ Delete(Type /*!*/ resultType, string /*!*/ name, MSAst.Expression /*!*/ target)
 {
     return(CompilationMode.Dynamic(
                PyContext.DeleteMember(
                    name
                    ),
                resultType,
                target
                ));
 }
Example #3
0
 internal MSAst.Expression /*!*/ SetIndex(MSAst.Expression /*!*/[] /*!*/ expressions)
 {
     return(new PythonDynamicExpressionN(
                PyContext.SetIndex(
                    expressions.Length - 1
                    ),
                CompilationMode,
                expressions
                ));
 }
Example #4
0
 internal MSAst.Expression /*!*/ Set(string /*!*/ name, MSAst.Expression /*!*/ target, MSAst.Expression /*!*/ value)
 {
     return(new PythonDynamicExpression2(
                PyContext.SetMember(
                    name
                    ),
                CompilationMode,
                target,
                value
                ));
 }
Example #5
0
 internal MSAst.Expression/*!*/ Invoke(CallSignature signature, params MSAst.Expression/*!*/[]/*!*/ args) {
     PythonInvokeBinder invoke = PyContext.Invoke(signature);
     switch (args.Length) {
         case 1: return GlobalParent.CompilationMode.Dynamic(invoke, typeof(object), args[0]);
         case 2: return GlobalParent.CompilationMode.Dynamic(invoke, typeof(object), args[0], args[1]);
         case 3: return GlobalParent.CompilationMode.Dynamic(invoke, typeof(object), args[0], args[1], args[2]);
         case 4: return GlobalParent.CompilationMode.Dynamic(invoke, typeof(object), args[0], args[1], args[2], args[3]);
         default:
             return GlobalParent.CompilationMode.Dynamic(
                 invoke,
                 typeof(object),
                 args
             );
     }
 }
Example #6
0
        private void ReloadCode()
        {
            _ctx?.Dispose();
            _ctx = null;

            var mod = new PyModule("Flumin", _moduleDef);

            try {
                _ctx = PyContext.FromCode(_code, new[] { mod });
                DisplayPythonError(null);
            } catch (PyException e) {
                DisplayPythonError(e);
                Parent.Context.Notify(new GraphNotification(this, GraphNotification.NotificationType.Error, "Error in python code: " + e.Message));
            }

            if (_ctx != null)
            {
                GetPortDefs();
            }
        }
Example #7
0
        internal MSAst.Expression /*!*/ Convert(Type /*!*/ type, ConversionResultKind resultKind, MSAst.Expression /*!*/ target)
        {
            if (resultKind == ConversionResultKind.ExplicitCast)
            {
                return(new DynamicConvertExpression(
                           PyContext.Convert(
                               type,
                               resultKind
                               ),
                           CompilationMode,
                           target
                           ));
            }

            return(CompilationMode.Dynamic(
                       PyContext.Convert(
                           type,
                           resultKind
                           ),
                       type,
                       target
                       ));
        }
Example #8
0
 internal MSAst.Expression /*!*/ Get(string /*!*/ name, MSAst.Expression /*!*/ target)
 {
     return(new DynamicGetMemberExpression(PyContext.GetMember(name), _mode, target, LocalContext));
 }