diff options
Diffstat (limited to 'jni/ruby/tool/id2token.rb')
-rwxr-xr-x | jni/ruby/tool/id2token.rb | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/jni/ruby/tool/id2token.rb b/jni/ruby/tool/id2token.rb new file mode 100755 index 0000000..191b872 --- /dev/null +++ b/jni/ruby/tool/id2token.rb @@ -0,0 +1,24 @@ +#! /usr/bin/ruby -p +# -*- coding: us-ascii -*- +BEGIN { + require 'optparse' + $:.unshift(File.dirname(__FILE__)) + require 'vpath' + vpath = VPath.new + header = nil + + opt = OptionParser.new do |o| + vpath.def_options(o) + header = o.order!(ARGV).shift + end or abort opt.opt_s + + TOKENS = {} + h = vpath.read(header) rescue abort("#{header} not found in #{vpath.inspect}") + h.scan(/^#define\s+RUBY_TOKEN_(\w+)\s+(\d+)/) do |token, id| + TOKENS[token] = id + end + + TOKENS_RE = /\bRUBY_TOKEN\((#{TOKENS.keys.join('|')})\)\s*(?=\s)/ +} + +$_.gsub!(TOKENS_RE) {TOKENS[$1]} if /^%token/ =~ $_ |