ParseTree не будет работать с ruby ​​1.9. Зачем? - PullRequest
3 голосов
/ 15 сентября 2009

Согласно это парсет не будет работать в ruby ​​1.9. У меня нет опыта работы в области компьютерных наук, но я программирую уже несколько лет. Может кто-нибудь объяснить немного подробнее, почему parsetree не будет работать в ruby ​​1.9.

Ответы [ 3 ]

3 голосов
/ 16 сентября 2009

Интерпретатор ruby ​​1.8 создавал и затем обходил абстрактное синтаксическое дерево, тогда как интерпретатор ruby ​​1.9 основан на байт-коде. Поэтому во время выполнения AST недоступен для работы с parsetree.

3 голосов
/ 20 декабря 2010

ngty опубликовал гем под названием sourcify, который предоставляет множество функций ParseTree в Ruby 1.9.

Поскольку он не мог использовать AST, он написал синтаксический анализатор sexp, который работает большую часть времени.Иногда вам нужно оказать ему некоторую помощь, например, сообщив, к какому Proc приложен код:

## The old ParseTree way
# proc.to_ruby
## The sourcify way - but may raise NoMatchingProcError or MultipleMatchingProcsPerLineError
# proc.to_source
## The sourcify way - giving :attached_to a symbol to help it find the correct Proc
proc.to_source :attached_to => :name_of_proc

Вот более подробное объяснение того, как мы заменили ParseTree при переходе на Ruby 1.9 .

2 голосов
/ 15 сентября 2009

ParseTree кажется мертвым из-за некоторых внутренних изменений в Ruby 1.9 по этой ссылке: http://blog.zenspider.com/2009/04/parsetree-eol.html

Хотя, возможно, некоторые люди придумают какие-то обходные пути для части этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...