class Prism::Translation::RubyParser
Этот модуль служит точкой входа для преобразования синтаксического дерева Prism в синтаксическое дерево гемa seattlerb/ruby_parser.
Публичные методы класса
# File lib/prism/translation/ruby_parser.rb, line 1904 def parse(source, filepath = "(string)") new.parse(source, filepath) end
Разбирает указанный исходный код и преобразует его в формат Sexp гема seattlerb/ruby_parser.
# File lib/prism/translation/ruby_parser.rb, line 1910 def parse_file(filepath) new.parse_file(filepath) end
Разбирает указанный файл и преобразует его в формат Sexp гема seattlerb/ruby_parser.
Публичные методы экземпляра
# File lib/prism/translation/ruby_parser.rb, line 1891 def parse(source, filepath = "(string)") translate(Prism.parse(source, filepath: filepath, partial_script: true), filepath) end
Разбирает указанный исходный код и преобразует его в формат Sexp гема seattlerb/ruby_parser.
# File lib/prism/translation/ruby_parser.rb, line 1897 def parse_file(filepath) translate(Prism.parse_file(filepath, partial_script: true), filepath) end
Разбирает указанный файл и преобразует его в формат Sexp гема seattlerb/ruby_parser.
Приватные методы экземпляра
# File lib/prism/translation/ruby_parser.rb, line 1919
def translate(result, filepath)
if result.failure?
error = result.errors.first
raise ::RubyParser::SyntaxError, "#{filepath}:#{error.location.start_line} :: #{error.message}"
end
result.value.accept(Compiler.new(filepath))
end Преобразует указанный результат разбора и путь к файлу в формат Sexp гема seattlerb/ruby_parser.
Ruby Core © 1993–2025 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.