class AdLint::Cc1::EvalFunction

Public Class Methods

new(type_tbl) click to toggle source
Calls superclass method AdLint::Cc1::BuiltinFunction::new
# File lib/adlint/cc1/builtin.rb, line 70
def initialize(type_tbl)
  super(type_tbl, "__adlint__eval")
end

Public Instance Methods

call(interp, *, args) click to toggle source
Calls superclass method AdLint::Cc1::BuiltinFunction#call
# File lib/adlint/cc1/builtin.rb, line 74
def call(interp, *, args)
  puts "__adlint__eval"
  char_ary = args.first.first
  if char_ary.type.array?
    without_nil = char_ary.value.to_single_value.values[0..-2]
    prog_text = without_nil.map { |char| char.unique_sample.chr }.join
    if prog_text.empty?
      puts "no program text"
    else
      eval prog_text
    end
    puts "EOM"
  end
  super
end