Beispiel #1
0
 public void VisitValueCollectorNode(ValueCollectorNode node)
 {
     if (node.IsCollected)
     {
         collectValueNode(node);
     }
     else
     {
         continueValueNode(node);
     }
 }
Beispiel #2
0
        protected override void collectValueNode(ValueCollectorNode node)
        {
            MemoryIndexModification modification = PathModifications.GetOrCreateModification(node.TargetIndex);

            if (node.IsMust || ForceStrongWrite)
            {
                modification.SetCollectedIndex();

                valueLocationVisitor.IsMust        = true;
                node.ValueLocation.ContainingIndex = node.TargetIndex;

                node.ValueLocation.Accept(valueLocationVisitor);
            }
            else
            {
                modification.SetCollectedIndex();

                valueLocationVisitor.IsMust        = false;
                node.ValueLocation.ContainingIndex = node.TargetIndex;

                node.ValueLocation.Accept(valueLocationVisitor);
            }
        }
Beispiel #3
0
 /// <summary>
 /// Perform custom assign operation on value node.
 /// </summary>
 /// <param name="node">The node.</param>
 protected abstract void collectValueNode(ValueCollectorNode node);
Beispiel #4
0
 /// <summary>
 /// Continues the value node.
 /// </summary>
 /// <param name="node">The node.</param>
 protected void continueValueNode(ValueCollectorNode node)
 {
     enqueueLocationChildNodes(node);
 }
Beispiel #5
0
 protected override void collectValueNode(ValueCollectorNode node)
 {
 }