Class: CodeMiner::SexpFormatter

Inherits:
Object
  • Object
show all
Defined in:
lib/codeminer/sexp_processor.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(exp, parser) ⇒ SexpFormatter

Returns a new instance of SexpFormatter.



59
60
61
62
# File 'lib/codeminer/sexp_processor.rb', line 59

def initialize(exp, parser)
  @exp = exp
  @parser = parser
end

Instance Attribute Details

#expObject (readonly)

Returns the value of attribute exp.



57
58
59
# File 'lib/codeminer/sexp_processor.rb', line 57

def exp
  @exp
end

Instance Method Details

#eachObject



72
73
74
# File 'lib/codeminer/sexp_processor.rb', line 72

def each
  exp.each
end

#format(*nodes, children) ⇒ Object



88
89
90
# File 'lib/codeminer/sexp_processor.rb', line 88

def format(*nodes, children)
  CodeMiner::Sexp.new([*nodes, *children.map{|e| @parser.to_sexp(e)}], exp)
end

#src_extractObject



76
77
78
# File 'lib/codeminer/sexp_processor.rb', line 76

def src_extract
  exp.src_extract
end

#to_sexpObject



80
81
82
83
84
85
86
# File 'lib/codeminer/sexp_processor.rb', line 80

def to_sexp
  if exp.respond_to?(:each)
    format(type, *value, each)
  else
    exp
  end
end

#typeObject



64
65
66
# File 'lib/codeminer/sexp_processor.rb', line 64

def type
  exp.type
end

#valueObject



68
69
70
# File 'lib/codeminer/sexp_processor.rb', line 68

def value
  exp.value
end