def classes
      raise StreamNotParsed, 'you must parse first' if @tree.nil?

      classes = statements.select do |node|
        node.is_a?(ClassStatement)
      end

      classes.map(&:to_hash)
    end
def classes
      raise StreamNotParsed, 'you must parse first' if @tree.nil?

      classes = statements.select do |node|
        node.is_a?(ClassStatement)
      end

      classes.map(&:to_hash)
    end
Returns an array of classes parsed from the IO stream. The array
 contains hashes with class information and variables.

 The hash is the hash form of ClassStatement

 @example Accessing the classes
   parser.classes # => [{ name: 'test', variables: [], ...]

 @return [Array<Hash>] an array of hashes representing the class
 @see ClassStatement