private static void AddNode(KeyEventSequence keyEventSequence, ParseNode node) { if (node.HasContent) { if (node.Direction != KeyDirection.Up) { keyEventSequence.Add(node.ToKeyEvent(KeyDirection.Down)); } } foreach (ParseNode child in node.Children) { AddNode(keyEventSequence, child); } if (node.HasContent) { if (node.Direction != KeyDirection.Down) { keyEventSequence.Add(node.ToKeyEvent(KeyDirection.Up)); } } }