Rename Block to RubyBlock at Ruby level

The parser presents the whole call that defines the block as a block. And so does the Ruby layer, as we don't want to do processing in ast.
Just making it clearer, also Vool:: block will have to be renamed
This commit is contained in:
Torsten Rüger 2019-08-19 10:31:11 +03:00
parent 4f3d117e40
commit 02807cf6f9
5 changed files with 6 additions and 5 deletions

View File

@ -5,7 +5,7 @@ module Ruby
# A block is in essence quite like a method, so the block definition is like a
# method definition, except it is not bound to the class direcly, but the enclosing
# method. The enclosing method also provides the scope.
class BlockStatement < Statement
class RubyBlockStatement < Statement
attr_reader :send , :args , :body
def initialize( send , args , body )

View File

@ -76,10 +76,11 @@ module Ruby
end
def on_block(block_node)
puts block_node.to_s
sendd = process(block_node.children[0])
args = process(block_node.children[1])
body = process(block_node.children[2])
BlockStatement.new(sendd , args , body)
RubyBlockStatement.new(sendd , args , body)
end
def on_yield(node)

View File

@ -9,7 +9,7 @@ module Ruby
@lst = compile( input )
end
def test_block
assert_equal BlockStatement , @lst.class
assert_equal RubyBlockStatement , @lst.class
end
def test_send
assert_equal SendStatement , @lst.send.class

View File

@ -15,7 +15,7 @@ module Ruby
assert_equal LocalAssignment , @lst.first.class
end
def test_assign_right
assert_equal BlockStatement , @lst.first.value.class
assert_equal RubyBlockStatement , @lst.first.value.class
end
def test_method_name
assert_equal :plus_one , @lst.first.value.send.name

View File

@ -2,7 +2,7 @@ require_relative "helper"
module RubyX
class TestObjecCompile < MiniTest::Test
class TestObjectCompile < MiniTest::Test
include ParfaitHelper
def source
load_parfait(:object)