# frozen_string_literal: false begin require 'ripper' require 'test/unit' ripper_test = true module TestRipper; end rescue LoadError end class TestRipper::Sexp < Test::Unit::TestCase def test_compile_error assert_nil Ripper.sexp("/") assert_nil Ripper.sexp("-") assert_nil Ripper.sexp("+") assert_nil Ripper.sexp("*") assert_nil Ripper.sexp("end") assert_nil Ripper.sexp("end 1") assert_nil Ripper.sexp("/*") assert_nil Ripper.sexp("/*/") assert_nil Ripper.sexp("/+/") end def test_regexp_content sexp = Ripper.sexp('//') assert_nil search_sexp(:@tstring_content, search_sexp(:regexp_literal, sexp)) sexp = Ripper.sexp('/foo/') assert_equal 'foo', search_sexp(:@tstring_content, search_sexp(:regexp_literal, sexp))[1] sexp = Ripper.sexp("/foo\nbar/") assert_equal "foo\nbar", search_sexp(:@tstring_content, search_sexp(:regexp_literal, sexp))[1] sexp = Ripper.sexp('/(?a(b|\g))/') assert_equal '(?a(b|\g))', search_sexp(:@tstring_content, search_sexp(:regexp_literal, sexp))[1] end def test_heredoc_content sexp = Ripper.sexp("<