当前位置: 首页>>代码示例>>C#>>正文


C# ProtoCore.SetNewEntryPoint方法代码示例

本文整理汇总了C#中ProtoCore.SetNewEntryPoint方法的典型用法代码示例。如果您正苦于以下问题:C# ProtoCore.SetNewEntryPoint方法的具体用法?C# ProtoCore.SetNewEntryPoint怎么用?C# ProtoCore.SetNewEntryPoint使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ProtoCore的用法示例。


在下文中一共展示了ProtoCore.SetNewEntryPoint方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: MarkGraphNodesDirty

        /// <summary>
        /// Finds all graphnodes associated with each AST and marks them dirty
        /// </summary>
        /// <param name="nodeList"></param>
        /// <summary>
        /// <returns></returns>
        public static void MarkGraphNodesDirty(ProtoCore.Core core, IEnumerable<ProtoCore.AST.AssociativeAST.AssociativeNode> nodeList)
        {
            if (nodeList == null)
                return;

            bool setEntryPoint = false;
            foreach (var node in nodeList)
            {
                var bNode = node as ProtoCore.AST.AssociativeAST.BinaryExpressionNode;
                if (bNode == null)
                {
                    continue;
                }

                foreach (var gnode in core.DSExecutable.instrStreamList[0].dependencyGraph.GraphList)
                {
                    if (gnode.isActive && gnode.OriginalAstID == bNode.OriginalAstID)
                    {
                        if (!setEntryPoint)
                        {
                            setEntryPoint = true;
                            core.SetNewEntryPoint(gnode.updateBlock.startpc);
                        }
                        gnode.isDirty = true;
                        gnode.isActive = true;
                    }
                }
            }
        }
开发者ID:algobasket,项目名称:Dynamo,代码行数:35,代码来源:AssociativeGraph.cs

示例2: MarkGraphNodesDirtyFromFunctionRedef

        public static void MarkGraphNodesDirtyFromFunctionRedef(ProtoCore.Core core, List<ProtoCore.AST.AssociativeAST.AssociativeNode> fnodeList)
        {
            foreach (ProtoCore.AST.AssociativeAST.AssociativeNode node in fnodeList)
            {
                ProtoCore.AST.AssociativeAST.FunctionDefinitionNode fnode = node as ProtoCore.AST.AssociativeAST.FunctionDefinitionNode;
                if (null == fnode)
                {
                    continue;
                }

                int exprId = ProtoCore.DSASM.Constants.kInvalidIndex;
                foreach (var gnode in core.DSExecutable.instrStreamList[0].dependencyGraph.GraphList)
                {
                    if (gnode.isActive)
                    {
                        if (null != gnode.firstProc)
                        {
                            if (fnode.Name == gnode.firstProc.name && fnode.Signature.Arguments.Count == gnode.firstProc.argInfoList.Count)
                            {
                                if (ProtoCore.DSASM.Constants.kInvalidIndex == exprId)
                                {
                                    exprId = gnode.exprUID;
                                    core.SetNewEntryPoint(gnode.updateBlock.startpc);
                                }
                                gnode.isDirty = true;
                            }
                        }
                        else if (ProtoCore.DSASM.Constants.kInvalidIndex != exprId)
                        {
                            if (gnode.exprUID == exprId)
                            {
                                gnode.isDirty = true;
                                if (gnode.IsLastNodeInSSA)
                                {
                                    exprId = ProtoCore.DSASM.Constants.kInvalidIndex;
                                }
                            }
                        }
                    }
                }
            }
        }
开发者ID:heegwon,项目名称:Dynamo,代码行数:42,代码来源:AssociativeGraph.cs


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