класс Prism::ParseResult
Представляет результат вызова ::parse или ::parse_file. Содержит AST, любые встреченные комментарии и возникшие ошибки.
Атрибуты
Список комментариев, встреченных во время парсинга.
Необязательная локация, представляющая расположение содержимого после маркера __END__. Это содержимое загружается в константу DATA, когда анализируемый файл является основным исполняемым файлом.
Список ошибок, сгенерированных во время парсинга.
Список магических комментариев, встреченных во время парсинга.
Объект Source, представляющий исходный код, который был проанализирован.
Значение, сгенерированное в результате парсинга. Обычно содержит AST, но иногда может содержать список токенов или другие результаты, возвращаемые парсером.
Список предупреждений, сгенерированных во время парсинга.
Публичные методы класса
# 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
Создаёт новый объект результата парсинга с заданными значениями.
Публичные методы экземпляра
# File lib/prism/parse_result/comments.rb, line 173 def attach_comments! Comments.new(self).attach! end
Прикрепляет список комментариев к соответствующим им позициям в дереве.
# 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.
# File lib/prism/parse_result.rb, line 410 def failure? !success? end
Возвращает true, если во время парсинга были ошибки, и false, если ошибок не было.
# File lib/prism/parse_result/newlines.rb, line 60 def mark_newlines! value.accept(Newlines.new(Array.new(1 + source.offsets.size, false))) end
Проходит по дереву и отмечает узлы, которые находятся на новой строке.
# 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.