Project

General

Profile

Bug #4599 » ripper_sexp.rb.patch

sho-h (Sho Hashimoto), 04/23/2011 03:39 PM

View differences:

ext/ripper/lib/ripper/sexp.rb (working copy)
# This method is for mainly developper use.
#
# require 'ripper'
# require 'pp
# require 'pp'
#
# pp Ripper.sexp("def m(a) nil end")
# #=> [:program,
# [[:def,
# [:@ident, "m", [1, 4]],
# [:paren, [:params, [[:@ident, "a", [1, 6]]], nil, nil, nil, nil]],
# [:bodystmt, [[:var_ref, [:@kw, "nil", [1, 9]]]], nil, nil, nil]]]]
#
def Ripper.sexp(src, filename = '-', lineno = 1)
SexpBuilderPP.new(src, filename, lineno).parse
end
# [EXPERIMENTAL]
# Parses +src+ and create S-exp tree.
# This method is for mainly developper use.
#
# require 'ripper'
# require 'pp'
#
# pp Ripper.sexp_raw("def m(a) nil end")
# #=> [:program,
# [:stmts_add,
# [:stmts_new],
# [:def,
......
# nil,
# nil]]]]
#
def Ripper.sexp(src, filename = '-', lineno = 1)
SexpBuilderPP.new(src, filename, lineno).parse
end
def Ripper.sexp_raw(src, filename = '-', lineno = 1)
SexpBuilder.new(src, filename, lineno).parse
end
(1-1/2)