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:
parent
4f3d117e40
commit
02807cf6f9
@ -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 )
|
@ -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)
|
||||
|
@ -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
|
@ -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
|
@ -2,7 +2,7 @@ require_relative "helper"
|
||||
|
||||
module RubyX
|
||||
|
||||
class TestObjecCompile < MiniTest::Test
|
||||
class TestObjectCompile < MiniTest::Test
|
||||
include ParfaitHelper
|
||||
def source
|
||||
load_parfait(:object)
|
||||
|
Loading…
Reference in New Issue
Block a user