Spec-Zone.ru › Ruby 3.4
  1. Prism::
  2. Перевод::
  3. RubyParser

class Prism::Translation::RubyParser

Родительский класс:
Object

Этот модуль служит точкой входа для преобразования синтаксического дерева Prism в синтаксическое дерево гемa seattlerb/ruby_parser.

Публичные методы класса

parse (source, filepath = "(string)") Показать исходный код
# File lib/prism/translation/ruby_parser.rb, line 1904
def parse(source, filepath = "(string)")
  new.parse(source, filepath)
end

Разбирает указанный исходный код и преобразует его в формат Sexp гема seattlerb/ruby_parser.

parse_file (filepath) Показать исходный код
# File lib/prism/translation/ruby_parser.rb, line 1910
def parse_file(filepath)
  new.parse_file(filepath)
end

Разбирает указанный файл и преобразует его в формат Sexp гема seattlerb/ruby_parser.

Публичные методы экземпляра

parse (source, filepath = "(string)") Показать исходный код
# 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.

parse_file (filepath) Показать исходный код
# 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.

Приватные методы экземпляра

translate (result, filepath) Показать исходный код
# 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API