mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* ext/ripper: ripper extention added.
* ext/ripper/MANIFEST: new file. * ext/ripper/README: new file. * ext/ripper/depend: new file. * ext/ripper/extconf.rb: new file. * ext/ripper/eventids2.c: new file. * ext/ripper/ripper.rb.in: new file. * ext/ripper/lib/ripper.rb: new file. * ext/ripper/test/check-event-arity.rb: new file. * ext/ripper/test/check-event-coverage.sh: new file. * ext/ripper/test/check-scanner-event-coverage.rb: new file. * ext/ripper/test/list-called-events.rb: new file. * ext/ripper/test/src_rb: new file. * ext/ripper/test/validate.rb: new file. * ext/ripper/tools/generate-eventids1.rb: new file. * ext/ripper/tools/generate-param-macros.rb: new file. * ext/ripper/tools/generate-ripper_rb.rb: new file. * ext/ripper/tools/list-parse-event-ids.rb: new file. * ext/ripper/tools/list-scan-event-ids.rb: new file. * ext/ripper/tools/preproc.rb: new file. * ext/ripper/tools/strip.rb: new file. * test/ripper: ripper tests added. * test/ripper/dummyparser.rb: new file. * test/ripper/test_parser_events.rb: new file. * test/ripper/test_scanner_events.rb: new file. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6891 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
5bea219a9d
commit
c971589817
25 changed files with 3911 additions and 0 deletions
57
ext/ripper/tools/preproc.rb
Executable file
57
ext/ripper/tools/preproc.rb
Executable file
|
|
@ -0,0 +1,57 @@
|
|||
def main
|
||||
prelude
|
||||
grammar
|
||||
usercode
|
||||
end
|
||||
|
||||
def prelude
|
||||
while line = ARGF.gets
|
||||
case line
|
||||
when %r</\*%%%\*/>
|
||||
puts '/*'
|
||||
when %r</\*%>
|
||||
puts '*/'
|
||||
when %r<%\*/>
|
||||
puts
|
||||
when /\A%%/
|
||||
puts '%%'
|
||||
return
|
||||
when /\A%token/
|
||||
puts line.sub(/<\w+>/, '<val>')
|
||||
when /\A%type/
|
||||
puts line.sub(/<\w+>/, '<val>')
|
||||
else
|
||||
print line
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def grammar
|
||||
while line = ARGF.gets
|
||||
case line
|
||||
when %r</\*%%%\*/>
|
||||
puts '#if 0'
|
||||
when %r</\*%c%\*/>
|
||||
puts '/*'
|
||||
when %r</\*%c>
|
||||
puts '*/'
|
||||
when %r</\*%>
|
||||
puts '#endif'
|
||||
when %r<%\*/>
|
||||
puts
|
||||
when /\A%%/
|
||||
puts '%%'
|
||||
return
|
||||
else
|
||||
print line
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def usercode
|
||||
while line = ARGF.gets
|
||||
print line
|
||||
end
|
||||
end
|
||||
|
||||
main
|
||||
Loading…
Add table
Add a link
Reference in a new issue