Class: Renjin::RubySexp

Inherits:
Object
  • Object
show all
Includes:
RBSexp
Defined in:
lib/JRubyR/rbsexp.rb

Direct Known Subclasses

Environment, Function, List, Sequence, Vector

Instance Attribute Summary

Attributes included from RBSexp

#attr, #rvar, #scope, #sexp

Class Method Summary collapse

Instance Method Summary collapse

Methods included from RBSexp

#destroy, #ncol, #nrow, #pp, #print, #r, #rclass, #sexp?, #typeof, #unbind

Constructor Details

#initialize(sexp) ⇒ RubySexp





278
279
280
281
282
283
284
# File 'lib/JRubyR/rbsexp.rb', line 278

def initialize(sexp)

  @sexp = sexp
  @rvar = nil
  @attr = Attributes.new(self)

end

Class Method Details

.build(sexp) ⇒ Object





306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
# File 'lib/JRubyR/rbsexp.rb', line 306

def self.build(sexp)
  
  if (sexp.instance_of? Java::OrgRenjinPrimitivesSequence::IntSequence)
    res = Renjin::Sequence.new(sexp)
  elsif (sexp.instance_of? Java::OrgRenjinSexp::Null)
    res = nil
  elsif (sexp.instance_of? Java::OrgRenjinSexp::ListVector)
    res = Renjin::List.new(sexp)
  elsif (sexp.instance_of? Java::OrgRenjinSexp::LogicalArrayVector)
    res = Renjin::Logical.new(sexp)
  elsif (sexp.instance_of? Java::OrgRenjinSexp::Environment)
    res = Renjin::Environment.new(sexp)
  elsif (sexp.is_a? Java::OrgRenjinSexp::ComplexVector)
    res = Renjin::ComplexVector.new(sexp)
  elsif (sexp.is_a? Java::OrgRenjinSexp::Vector)
    res = Renjin::Vector.new(sexp)
  elsif (sexp.is_a? Java::OrgRenjinSexp::Closure)
    res = Renjin::Closure.new(sexp)
  # elsif (sexp.is_a? Java::OrgRenjinPrimitives::R$primitive$sum)
    # res = Renjin::Primitive.new(sexp)
  else
    p "sexp type needs to be specialized"
    p sexp
    res = Renjin::RubySexp.new(sexp)
  end
  
  return res
  
end

Instance Method Details

#fassign(function, value) ⇒ Object





298
299
300
# File 'lib/JRubyR/rbsexp.rb', line 298

def fassign(function, value)
  R.fassign(self, function, value)
end

#to_stringObject





290
291
292
# File 'lib/JRubyR/rbsexp.rb', line 290

def to_string
  R.eval("toString(#{r})")
end