1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
# frozen_string_literal: true
# typed: ignore
require_relative "../test_helper"
module Prism
class CompilerTest < TestCase
class SExpressions < Prism::Compiler
def visit_arguments_node(node)
[:arguments, super]
end
def visit_call_node(node)
[:call, super]
end
def visit_integer_node(node)
[:integer]
end
def visit_program_node(node)
[:program, super]
end
end
def test_compiler
expected = [:program, [[[:call, [[:integer], [:arguments, [[:integer]]]]]]]]
assert_equal expected, Prism.parse("1 + 2").value.accept(SExpressions.new)
end
end
end
|