Sha256: 7de6cb0c7a415ebfd6f2f3f74766fb59486cea67501557632525375d7d4806a4
Contents?: true
Size: 1.78 KB
Versions: 4
Compression:
Stored size: 1.78 KB
Contents
# frozen_string_literal: true require 'parser' module Leftovers module AST class Node < ::Parser::AST::Node def initialize(type, children = [], properties = {}) # ::AST::Node#initialize freezes itself. # so can't use normal memoizations @memo = {} super end # This is called by ::Parser::AST internals def updated(type = nil, children = nil, properties = nil) # leftovers:keep maybe_copy = super class_for_type = Builder.node_class(maybe_copy.type) return maybe_copy if maybe_copy.instance_of?(class_for_type) class_for_type.new(maybe_copy.type, maybe_copy.children, location: maybe_copy.loc) end def first children.first end def second children[1] end def path loc.expression.source_buffer.name end def privacy=(value) @memo[:privacy] = value end def privacy @memo[:privacy] || :public end def parent @memo[:parent] end def parent=(value) @memo[:parent] = value end def to_scalar_value nil end def scalar? false end def to_s '' end def to_sym :'' end def to_literal_s nil end def hash? false end def proc? false end def sym? false end def as_arguments_list @memo[:as_arguments_list] ||= [self] end def arguments nil end def positional_arguments nil end def receiver nil end def kwargs nil end def name nil end def block_given? false end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
leftovers-0.12.2 | lib/leftovers/ast/node.rb |
leftovers-0.12.1 | lib/leftovers/ast/node.rb |
leftovers-0.12.0 | lib/leftovers/ast/node.rb |
leftovers-0.11.2 | lib/leftovers/ast/node.rb |