Sha256: d82b1eb9060495dceb83bf8a40a4f879ae5bf97052a5229de7aa4927dd11384e

Contents?: true

Size: 778 Bytes

Versions: 10

Compression:

Stored size: 778 Bytes

Contents

module RbPlusPlus
  module Builders
    module EnumerationHelpers

      # Wrap up enumerations for this node.
      # Anonymous enumerations are a special case. C++ doesn't
      # see them as a seperate type and instead are just "scoped" constants,
      # so we have to wrap them as such, constants.
      def with_enumerations
        [self.code.enumerations].flatten.each do |enum|
          next if do_not_wrap?(enum)

          if enum.anonymous?
            # So for each value of this enumeration, 
            # expose it as a constant
            enum.values.each do |value|
              add_child ConstNode.new(value, self)
            end
          else
            add_child EnumerationNode.new(enum, self)
          end

        end
      end

    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
rbplusplus-1.4.0 lib/rbplusplus/builders/helpers/enumeration.rb
rbplusplus-1.3.0 lib/rbplusplus/builders/helpers/enumeration.rb
rbplusplus-1.2.1 lib/rbplusplus/builders/helpers/enumeration.rb
rbplusplus-1.2.0 lib/rbplusplus/builders/helpers/enumeration.rb
rbplusplus-1.1.0 lib/rbplusplus/builders/helpers/enumeration.rb
rbplusplus-1.0.3 lib/rbplusplus/builders/helpers/enumeration.rb
rbplusplus-1.0.1 lib/rbplusplus/builders/helpers/enumeration.rb
rbplusplus-1.0 lib/rbplusplus/builders/helpers/enumeration.rb
rbplusplus-0.9.1 lib/rbplusplus/builders/helpers/enumeration.rb
rbplusplus-0.9 lib/rbplusplus/builders/helpers/enumeration.rb