Sha256: b86fc75126580295607acb1e0895989df2d7a07e57cb89771f3dd41675d37b38

Contents?: true

Size: 631 Bytes

Versions: 5

Compression:

Stored size: 631 Bytes

Contents

module Alf
  class Predicate
    class Renamer < Sexpr::Rewriter

      grammar Grammar

      def on_identifier(sexpr)
        return sexpr unless new_name = options[:renaming][sexpr.name]
        return new_name if Sexpr===new_name
        [:identifier, new_name]
      end

      def on_qualified_identifier(sexpr)
        return sexpr unless new_name = options[:renaming][sexpr.name]
        return new_name if Sexpr===new_name
        [:qualified_identifier, sexpr.qualifier, new_name]
      end

      def on_native(sexpr)
        raise NotSupportedError
      end

      alias :on_missing :copy_and_apply

    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
alf-core-0.16.3 lib/alf/predicate/processors/renamer.rb
alf-core-0.16.2 lib/alf/predicate/processors/renamer.rb
alf-core-0.16.1 lib/alf/predicate/processors/renamer.rb
alf-core-0.16.0 lib/alf/predicate/processors/renamer.rb
alf-core-0.15.0 lib/alf/predicate/processors/renamer.rb