From 46463af983aee8b3e17635e796140c24a0469859 Mon Sep 17 00:00:00 2001 From: yui-knk Date: Thu, 31 May 2018 06:13:06 +0000 Subject: Define AST module under RubyVM [experimental] * ext/-test-/ast/ast.c: Rename to ast.c and define AST module under RubyVM. * common.mk: compile ast.c. * ext/-test-/ast/extconf.rb: Don't need this file anymore. * inits.c (rb_call_inits): Call Init_ast to setup AST module. * test/-ext-/ast/test_ast.rb: Follow up the namespace change. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63534 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/-ext-/ast/test_ast.rb | 59 +++++++++++++++++++++++----------------------- 1 file changed, 30 insertions(+), 29 deletions(-) (limited to 'test/-ext-') diff --git a/test/-ext-/ast/test_ast.rb b/test/-ext-/ast/test_ast.rb index 06bb0bf5e2..9133c75311 100644 --- a/test/-ext-/ast/test_ast.rb +++ b/test/-ext-/ast/test_ast.rb @@ -1,38 +1,39 @@ # frozen_string_literal: false require 'test/unit' -require "-test-/ast" - -module AST - class Node - class CodePosition - include Comparable - attr_reader :lineno, :column - def initialize(lineno, column) - @lineno = lineno - @column = column - end - def <=>(other) - case - when lineno < other.lineno - -1 - when lineno == other.lineno - column <=> other.column - when lineno > other.lineno - 1 +class RubyVM + module AST + class Node + class CodePosition + include Comparable + attr_reader :lineno, :column + def initialize(lineno, column) + @lineno = lineno + @column = column + end + + def <=>(other) + case + when lineno < other.lineno + -1 + when lineno == other.lineno + column <=> other.column + when lineno > other.lineno + 1 + end end end - end - def beg_pos - CodePosition.new(first_lineno, first_column) - end + def beg_pos + CodePosition.new(first_lineno, first_column) + end - def end_pos - CodePosition.new(last_lineno, last_column) - end + def end_pos + CodePosition.new(last_lineno, last_column) + end - alias to_s inspect + alias to_s inspect + end end end @@ -62,7 +63,7 @@ class TestAst < Test::Unit::TestCase def ast return @ast if defined?(@ast) - ast = AST.parse_file(@path) + ast = RubyVM::AST.parse_file(@path) raise "Syntax error: #{@path}" if ast.nil? @ast = ast end @@ -132,7 +133,7 @@ class TestAst < Test::Unit::TestCase def test_column_with_long_heredoc_identifier term = "A"*257 - ast = AST.parse("<<-#{term}\n""ddddddd\n#{term}\n") + ast = RubyVM::AST.parse("<<-#{term}\n""ddddddd\n#{term}\n") node = ast.children[1] assert_equal("NODE_STR", node.type) assert_equal(0, node.first_column) -- cgit v1.2.3