class ReplaceIndirectsWithReferencesAst
Attributes
count_replaced[RW]
replacement_made[RW]
Public Class Methods
new()
click to toggle source
# File src/simplify/replace_indirects_with_references.rb, line 8 def initialize @count_replaced = 0 end
Public Instance Methods
function(ast)
click to toggle source
# File src/simplify/replace_indirects_with_references.rb, line 25 def function(ast) return unless ast[1] == :INDIRECT args = ast[2..-1] if args[0][0] == :string @count_replaced += 1 @replacement_made = true ast.replace(CachingFormulaParser.parse(args[0][1])) elsif args[0][0] == :error @count_replaced += 1 @replacement_made = true ast.replace(args[0]) end end
map(ast)
click to toggle source
# File src/simplify/replace_indirects_with_references.rb, line 18 def map(ast) return ast unless ast.is_a?(Array) function(ast) if ast[0] == :function ast.each { |a| map(a) } ast end
replace(ast)
click to toggle source
# File src/simplify/replace_indirects_with_references.rb, line 12 def replace(ast) @replacement_made = false map(ast) @replacement_made end