Sha256: 2c4dbd5ef4cb8dc401d6a02ecbd3bc672029d8eedd0c900cb70fd0ee56f9e86c
Contents?: true
Size: 962 Bytes
Versions: 12
Compression:
Stored size: 962 Bytes
Contents
module Parser module Source # General idea for Map subclasses: only store what's # absolutely necessary; don't duplicate the info contained in # ASTs; if it can be extracted from source given only the other # stored information, don't store it. # class Map attr_reader :expression def initialize(expression) @expression = expression freeze end def line @expression.line end def column @expression.column end def with_expression(expression_l) with { |map| map.update_expression(expression_l) } end def to_hash Hash[instance_variables.map do |ivar| [ ivar[1..-1].to_sym, instance_variable_get(ivar) ] end] end protected def with(&block) dup.tap(&block).freeze end def update_expression(expression_l) @expression = expression_l end end end end
Version data entries
12 entries across 12 versions & 1 rubygems