• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C# Interpreter.InterpretedFrame类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C#中Microsoft.Scripting.Interpreter.InterpretedFrame的典型用法代码示例。如果您正苦于以下问题:C# InterpretedFrame类的具体用法?C# InterpretedFrame怎么用?C# InterpretedFrame使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



InterpretedFrame类属于Microsoft.Scripting.Interpreter命名空间,在下文中一共展示了InterpretedFrame类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。

示例1: Run

 public override int Run(InterpretedFrame frame) {
     object l = frame.Data[frame.StackIndex - 2];
     object r = frame.Data[frame.StackIndex - 1];
     frame.Data[frame.StackIndex - 2] = ScriptingRuntimeHelpers.Int32ToObject(unchecked((Int32)l * (Int32)r));
     frame.StackIndex--;
     return +1;
 }
开发者ID:knocte,项目名称:mono,代码行数:7,代码来源:MulInstruction.cs


示例2: Run

 public override int Run(InterpretedFrame frame) {
     object l = frame.Data[frame.StackIndex - 2];
     object r = frame.Data[frame.StackIndex - 1];
     frame.Data[frame.StackIndex - 2] = (Int64)((Int64)l / (Int64)r);
     frame.StackIndex--;
     return 1;
 }
开发者ID:nlhepler,项目名称:mono,代码行数:7,代码来源:DivInstruction.cs


示例3: Run

 public override int Run(InterpretedFrame frame) {
     var l = (UInt32)frame.Data[frame.StackIndex - 2];
     var r = (UInt32)frame.Data[frame.StackIndex - 1];
     frame.Data[frame.StackIndex - 2] = (UInt32)(l & r);
     frame.StackIndex--;
     return 1;
 }
开发者ID:knocte,项目名称:mono,代码行数:7,代码来源:AndInstruction.cs


示例4: Run

 public override int Run(InterpretedFrame frame) {
     var l = frame.Data[frame.StackIndex - 2];
     var r = frame.Data[frame.StackIndex - 1];
     frame.Data[frame.StackIndex - 2] = (UInt16)((UInt16)l | (UInt16)r);
     frame.StackIndex--;
     return 1;
 }
开发者ID:knocte,项目名称:mono,代码行数:7,代码来源:OrInstruction.cs


示例5: Run

 public override int Run(InterpretedFrame frame) {
     object l = frame.Data[frame.StackIndex - 2];
     object r = frame.Data[frame.StackIndex - 1];
     frame.Data[frame.StackIndex - 2] = (Int32)((UInt16)l >> (Int32)r);
     frame.StackIndex--;
     return 1;
 }
开发者ID:knocte,项目名称:mono,代码行数:7,代码来源:ShrInstruction.cs


示例6: Run

 public override int Run(InterpretedFrame frame) {
     object l = frame.Data[frame.StackIndex - 2];
     object r = frame.Data[frame.StackIndex - 1];
     frame.Data[frame.StackIndex - 2] = Calculate (l, r);
     frame.StackIndex--;
     return +1;
 }
开发者ID:pmq20,项目名称:mono_forked,代码行数:7,代码来源:AritmeticInstruction.cs


示例7: Run

        public override int Run(InterpretedFrame frame) {
            int first = frame.StackIndex - _argumentCount;
            object ret = _site.Target(_site, new ArgumentArray(frame.Data, first, _argumentCount));
            frame.Data[first] = ret;
            frame.StackIndex = first + 1;

            return 1;
        }
开发者ID:rudimk,项目名称:dlr-dotnet,代码行数:8,代码来源:DynamicSplatInstruction.cs


示例8: Run

        public override int Run(InterpretedFrame frame) {
            Debug.Assert(_offset != Unknown);

            if (!(bool)frame.Pop()) {
                return _offset;
            }

            return +1;
        }
开发者ID:nlhepler,项目名称:mono,代码行数:9,代码来源:ControlFlowInstructions.cs


示例9: Run

        public override int Run(InterpretedFrame frame) {
            DebugInfo info = DebugInfo.GetMatchingDebugInfo(_debugInfos, frame.FaultingInstruction);
            if (info != null && !info.IsClear) {
                frame.Push(info.StartLine);
            }else{
                frame.Push(-1);
            }

            return +1;
        }
开发者ID:BenHall,项目名称:ironruby,代码行数:10,代码来源:LastFaultingLineExpression.cs


示例10: Run

            public override int Run(InterpretedFrame frame) {
                object l = frame.Data[frame.StackIndex - 2];
                object r = frame.Data[frame.StackIndex - 1];
                if (l == null || r == null)
                    frame.Data[frame.StackIndex - 2] = LiftedToNull ? (object) null : (object) false;
                else
                    frame.Data[frame.StackIndex - 2] = (Char)l < (Char)r;

                frame.StackIndex--;
                return +1;
            }
开发者ID:knocte,项目名称:mono,代码行数:11,代码来源:LessThanInstruction.cs


示例11: Run

        public override int Run(InterpretedFrame frame) {
            var targetDelegate = _targetField.GetValue(_site);

            object[] args = new object[_argCount];
            
            for (int i = _argCount - 1; i >= 1; i--) {
                args[i] = frame.Pop();
            }
            args[0] = _site;

            object ret = _target.InvokeInstance(targetDelegate, args);
            if (!_isVoid) frame.Push(ret);
            return +1;
        }
开发者ID:andreakn,项目名称:ironruby,代码行数:14,代码来源:DynamicInstructions.cs


示例12: Run

        public override int Run(InterpretedFrame frame) {
            int first = frame.StackIndex - _argumentCount;
            object[] args = new object[1 + _argumentCount];
            args[0] = _site;
            for (int i = 0; i < _argumentCount; i++) {
                args[1 + i] = frame.Data[first + i];
            }

            object ret = _target.InvokeInstance(_targetDelegate, args);
            if (_isVoid) {
                frame.StackIndex = first;
            } else {
                frame.Data[first] = ret;
                frame.StackIndex = first + 1;
            }

            return 1;
        }
开发者ID:jschementi,项目名称:iron,代码行数:18,代码来源:DynamicInstructionN.cs


示例13: Run

        public void Run(InterpretedFrame frame) {
            if (_onlyFaultHandlers) {
                bool fault = true;
                try {
                    RunInstructions(frame);
                    fault = false;
                    return;
                } finally {
                    if (fault) {
                        frame.FaultingInstruction = frame.InstructionIndex;
                        HandleFault(frame);
                    }
                }
            } else {
                while (true) {
                    try {
                        RunInstructions(frame);
                        return;
                    } catch (Exception exc) {
                        frame.FaultingInstruction = frame.InstructionIndex;
                        ExceptionHandler handler = HandleCatch(frame, exc);

                        if (handler == null) {
                            throw;
                        }

                        // stay in the current catch so that ThreadAbortException is not rethrown by CLR:
                        var abort = exc as ThreadAbortException;
                        if (abort != null) {
                            _anyAbortException = abort;
                            frame.CurrentAbortHandler = handler;
                            Run(frame);
                            return;
                        } 
                    }
                }
            }
        }
开发者ID:mstram,项目名称:ironruby,代码行数:38,代码来源:Interpreter.cs


示例14: CreateBacktrace

        private RubyArray CreateBacktrace(RubyContext/*!*/ context, InterpretedFrame handlerFrame, StackTrace catchSiteTrace) {
            Assert.NotNull(context);

            bool hasFileAccessPermissions = DetectFileAccessPermissions();

            var result = new RubyArray();
            
            // Compiled trace: contains frames starting with the throw site up to the first filter/catch that the exception was caught by:
            StackTrace throwSiteTrace = DebugInfoAvailable ? new StackTrace(_exception, true) : new StackTrace(_exception);

            var interpretedFrame = handlerFrame ?? CurrentInterpretedFrame.Value;
            AddBacktrace(result, throwSiteTrace.GetFrames(), ref interpretedFrame, handlerFrame, hasFileAccessPermissions, 0, context.Options.ExceptionDetail);

            // Compiled trace: contains frames above and including the first Ruby filter/catch site that the exception was caught by:
            if (catchSiteTrace != null) {
                // skip one frame - the catch-site frame is already included
                AddBacktrace(result, catchSiteTrace.GetFrames(), ref interpretedFrame, handlerFrame, hasFileAccessPermissions,
                    handlerFrame != null ? 0 : 1, false
                );
            }

            return result;            
        }
开发者ID:bclubb,项目名称:ironruby,代码行数:23,代码来源:RubyExceptionData.cs


示例15: Run

 public override int Run(InterpretedFrame frame) {
     frame.Push(Convert(frame.Pop()));
     return +1;
 }
开发者ID:KonajuGames,项目名称:SharpLang,代码行数:4,代码来源:NumericConvertInstruction.cs


示例16: Run

 public override int Run(InterpretedFrame frame) {
     frame.Data[frame.StackIndex++] = frame.Data[_index];
     //frame.Push(frame.Data[_index]);
     return +1;
 }
开发者ID:madpilot,项目名称:ironruby,代码行数:5,代码来源:LocalAccess.cs


示例17: RubyMethodScope

        internal RubyMethodScope(MutableTuple locals, SymbolId[]/*!*/ variableNames, 
            RubyScope/*!*/ parent, RubyModule/*!*/ declaringModule, string/*!*/ definitionName,
            object selfObject, Proc blockParameter, InterpretedFrame interpretedFrame) {
            Assert.NotNull(parent, declaringModule, definitionName);

            // RuntimeFlowControl:
            _activeFlowControlScope = this;
            
            // RubyScope:
            _parent = parent;
            _top = parent.Top;
            _selfObject = selfObject;
            _methodAttributes = RubyMethodAttributes.PublicInstance;
            _locals = locals;
            _variableNames = variableNames;
            InterpretedFrame = interpretedFrame;
            
            // RubyMethodScope:
            _declaringModule = declaringModule;
            _definitionName = definitionName;
            _blockParameter = blockParameter;

            InitializeRfc(blockParameter);
            SetDebugName("method " + definitionName + ((blockParameter != null) ? "&" : null));
        }
开发者ID:jxnmaomao,项目名称:ironruby,代码行数:25,代码来源:RubyScope.cs


示例18: Run

            public override int Run(InterpretedFrame frame) {
                var v = (Double)frame.Data[frame.StackIndex - 1];
                frame.Data[frame.StackIndex - 1] = (Double)unchecked(-v);
                return 1;

            }
开发者ID:KonajuGames,项目名称:SharpLang,代码行数:6,代码来源:NegateInstruction.cs


示例19: Enter

 internal ThreadLocal<InterpretedFrame>.StorageInfo Enter() {
     var currentFrame = InterpretedFrame.CurrentFrame.GetStorageInfo();
     _parent = currentFrame.Value;
     currentFrame.Value = this;
     if (Interpreter._boxedLocals != null) {
         BoxLocals();
     }
     return currentFrame;
 }
开发者ID:yarrow2,项目名称:ironruby,代码行数:9,代码来源:InterpretedFrame.cs


示例20: RubyBlockScope

        internal RubyBlockScope(MutableTuple locals, SymbolId[]/*!*/ variableNames,
            BlockParam/*!*/ blockFlowControl, object selfObject, InterpretedFrame interpretedFrame) {
            var parent = blockFlowControl.Proc.LocalScope;

            // RuntimeFlowControl:
            _activeFlowControlScope = parent.FlowControlScope;

            // RubyScope:
            _parent = parent;
            _top = parent.Top;
            _selfObject = selfObject;
            _methodAttributes = RubyMethodAttributes.PublicInstance;
            _locals = locals;
            _variableNames = variableNames;
            InterpretedFrame = interpretedFrame;
            
            // RubyBlockScope:
            _blockFlowControl = blockFlowControl;
        }
开发者ID:jxnmaomao,项目名称:ironruby,代码行数:19,代码来源:RubyScope.cs



注:本文中的Microsoft.Scripting.Interpreter.InterpretedFrame类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# Interpreter.LightCompiler类代码示例发布时间:2022-05-26
下一篇:
C# Hosting.ScriptRuntimeSetup类代码示例发布时间:2022-05-26
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap