SciRuby/rubex

How can I refer to self?

ledsun opened this issue · 2 comments

Tutorial sample fast_blank is

class String
  def blank?(string)
    char *s = string
    int i = 0
    int a = string.size

    while i < a do
      return false if s[i] != ' '
      i += 1
    end

    return true
  end
end

This code define String#blank?(string) method.
But I think the fast_blank evaluates value of self, not argument.
I tried below:

class String
  def blank?
    char *s = self
  end
end

I got error below:

~ rubex fast_blank.rubex

PARSE ERROR:
Line:     char *s = self
Location: fast_blank.rubex:3
Error:

parse error on value "self" (kSELF)
Traceback (most recent call last):
	7: from /Users/shigerunakajima/rubex/bin/rubex:7:in `<main>'
	6: from /usr/local/lib/ruby/gems/2.5.0/gems/thor-0.20.0/lib/thor/base.rb:466:in `start'
	5: from /usr/local/lib/ruby/gems/2.5.0/gems/thor-0.20.0/lib/thor.rb:387:in `dispatch'
	4: from /usr/local/lib/ruby/gems/2.5.0/gems/thor-0.20.0/lib/thor/invocation.rb:126:in `invoke_command'
	3: from /usr/local/lib/ruby/gems/2.5.0/gems/thor-0.20.0/lib/thor/command.rb:27:in `run'
	2: from /Users/shigerunakajima/rubex/lib/rubex/cli.rb:21:in `generate'
	1: from /Users/shigerunakajima/rubex/lib/rubex/compiler.rb:48:in `compile'
/Users/shigerunakajima/rubex/lib/rubex/compiler.rb:105:in `generate_code': Must be a Rubex::AST::Node::MainNode, not NilClass (RuntimeError)

Tried version is 'bf5ee9365e1b93ae58c97827c1a6ef6c04cb5f33' of the mater branch.

v0dro commented

Hmmm good point. Currently there is no support for self. I will add it in future versions.

Hi, I'm using rubex for the first time today (2019), I think that is the golden gate for ruby performances!!! Please, not abandon this amazing project!