Spec-Zone.ru › Ruby 3.3

класс Prism::ParseResult

Родитель:
Объект

Представляет результат вызова ::parse или ::parse_file. Содержит AST, любые встреченные комментарии и возникшие ошибки.

Атрибуты

comments[R]

Список комментариев, встреченных во время парсинга.

data_loc[R]

Необязательная локация, представляющая расположение содержимого после маркера __END__. Это содержимое загружается в константу DATA, когда анализируемый файл является основным исполняемым файлом.

errors[R]

Список ошибок, сгенерированных во время парсинга.

magic_comments[R]

Список магических комментариев, встреченных во время парсинга.

source[R]

Объект Source, представляющий исходный код, который был проанализирован.

value[R]

Значение, сгенерированное в результате парсинга. Обычно содержит AST, но иногда может содержать список токенов или другие результаты, возвращаемые парсером.

warnings[R]

Список предупреждений, сгенерированных во время парсинга.

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

new(value, comments, magic_comments, data_loc, errors, warnings, source) Показать исходный код
# File lib/prism/parse_result.rb, line 387
def initialize(value, comments, magic_comments, data_loc, errors, warnings, source)
  @value = value
  @comments = comments
  @magic_comments = magic_comments
  @data_loc = data_loc
  @errors = errors
  @warnings = warnings
  @source = source
end

Создаёт новый объект результата парсинга с заданными значениями.

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

attach_comments!() Показать исходный код
# File lib/prism/parse_result/comments.rb, line 173
def attach_comments!
  Comments.new(self).attach!
end

Прикрепляет список комментариев к соответствующим им позициям в дереве.

deconstruct_keys(keys) Показать исходный код
# File lib/prism/parse_result.rb, line 398
def deconstruct_keys(keys)
  { value: value, comments: comments, magic_comments: magic_comments, data_loc: data_loc, errors: errors, warnings: warnings }
end

Реализует интерфейс шаблонов разбора хешей для ParseResult.

failure?() Показать исходный код
# File lib/prism/parse_result.rb, line 410
def failure?
  !success?
end

Возвращает true, если во время парсинга были ошибки, и false, если ошибок не было.

mark_newlines!() Показать исходный код
# File lib/prism/parse_result/newlines.rb, line 60
def mark_newlines!
  value.accept(Newlines.new(Array.new(1 + source.offsets.size, false)))
end

Проходит по дереву и отмечает узлы, которые находятся на новой строке.

success?() Показать исходный код
# File lib/prism/parse_result.rb, line 404
def success?
  errors.empty?
end

Возвращает true, если во время парсинга не было ошибок, и false, если ошибки были.

Ruby Core © 1993–2022 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.

Spec-Zone.ru

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