def traverse_subnodes(aParentNode)
      subnodes = aParentNode.subnodes
      broadcast(:before_subnodes, aParentNode, subnodes)

      # Let's proceed with the visit of subnodes
      subnodes.each { |a_node| a_node.accept(self) }

      broadcast(:after_subnodes, aParentNode, subnodes)
    end
def traverse_subnodes(aParentNode)
      subnodes = aParentNode.subnodes
      broadcast(:before_subnodes, aParentNode, subnodes)

      # Let's proceed with the visit of subnodes
      subnodes.each { |a_node| a_node.accept(self) }

      broadcast(:after_subnodes, aParentNode, subnodes)
    end
Visit event. The visitor is about to visit the subnodes of a non
 terminal node.
 @param aParentNode [NonTeminalNode] the (non-terminal) parent node.