當前位置: 首頁>>代碼示例>>C#>>正文


C# BinaryExpressionNode.InheritID方法代碼示例

本文整理匯總了C#中ProtoCore.AST.AssociativeAST.BinaryExpressionNode.InheritID方法的典型用法代碼示例。如果您正苦於以下問題:C# BinaryExpressionNode.InheritID方法的具體用法?C# BinaryExpressionNode.InheritID怎麽用?C# BinaryExpressionNode.InheritID使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在ProtoCore.AST.AssociativeAST.BinaryExpressionNode的用法示例。


在下文中一共展示了BinaryExpressionNode.InheritID方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。

示例1: HandleRedefinedLHS

 /// <summary>
 ///             
 /// Handle instances of redefining the lhs of an expression
 /// Given:
 ///      a = p.x -> b = p.x
 /// In such a scenario, the new expression 'b = p.x' must inherit the previous expression id of a = p.x
 /// </summary>
 /// <param name="newNode"></param>
 /// <param name="cachedASTList"></param>
 private void HandleRedefinedLHS(BinaryExpressionNode newNode, List<AssociativeNode> cachedASTList)
 {
     //
     // Note that after SSA is applied, the expression:
     //      a = p.x 
     // transforms to: 
     //      t0 = p
     //      t1 = t0.x
     //      a = t1
     //      
     // And the expression:
     //      b = p.x 
     // transforms to: 
     //      t0 = p
     //      t1 = t0.x
     //      b = t1
     //
     // As such we only need to update the expression id of 'b = t1' to inherit the expression id of 'a = t1'
     //
     if (null != newNode)
     {
         IdentifierNode rnode = newNode.RightNode as IdentifierNode;
         if (null != rnode)
         {
             foreach (AssociativeNode prevNode in cachedASTList)
             {
                 BinaryExpressionNode prevBinaryNode = prevNode as BinaryExpressionNode;
                 if (null != prevBinaryNode)
                 {
                     IdentifierNode prevIdent = prevBinaryNode.LeftNode as IdentifierNode;
                     if (null != prevIdent)
                     {
                         if (prevIdent.Equals(rnode))
                         {
                             newNode.InheritID(prevBinaryNode.ID);
                             newNode.ExpressionUID = prevBinaryNode.ExpressionUID;
                         }
                     }
                 }
             }
         }
     }
 }
開發者ID:maajor,項目名稱:Dynamo,代碼行數:52,代碼來源:LiveRunner.cs


注:本文中的ProtoCore.AST.AssociativeAST.BinaryExpressionNode.InheritID方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。