리퍼는 Ruby 1.9와 함께 제공되는 파싱 라이브러리입니다. 이 AST를 가지고 루비 코드로 다시 변환 할 수있는 라이브러리가 있습니까리퍼의 AST를 어떻게 Ruby 코드로 재 컴파일하나요?
pp Ripper.sexp("def foo; yield :a; return 1 end")
#=>
[:program,
[[:def,
[:@ident, "foo", [1, 4]],
[:params, nil, nil, nil, nil, nil],
[:bodystmt,
[[:yield,
[:args_add_block,
[[:symbol_literal, [:symbol, [:@ident, "a", [1, 16]]]]],
false]],
[:return, [:args_add_block, [[:@int, "1", [1, 26]]], false]]],
nil,
nil,
nil]]]]
: 그것은과 같이, 대서양 표준시로 루비 코드를 변환?
ruby_parser and ruby2ruby이 작업에 사용되었지만 리퍼를 파서로 사용하고 싶습니다. (Ruby 1.9는 그러한 라이브러리와 함께 제공 될 수도 있지만 리퍼 자체에서도 문서를 찾기 위해 고심 중입니다)
https://github.com/svenfuchs/ripper2ruby와 함께 놀았습니다. http://www.artweb-design.de/2009/7/5/ripper2ruby-modify-and-recompile-your-ruby-code 그러나 NoMethodError : # 에 대해 정의되지 않은 메소드 'to_ruby'로 인해 사망했습니다. 거기에서 어디로 가야할지 모르겠다. –
나는 어떤 점에서 그것을 발견했다. 그러나 그것은 단지 믿을 만하게 보이지 않았다. 그것으로 당신의 경험을 제공 해주셔서 감사합니다. –