diff options
author | Noe Rubinstein <nrubinstein@proformatique.com> | 2011-05-31 15:42:50 +0200 |
---|---|---|
committer | Noe Rubinstein <nrubinstein@proformatique.com> | 2011-05-31 15:42:50 +0200 |
commit | 582c80f5ab4964b214881fe99e4ea3d95eaa6eb8 (patch) | |
tree | 24ef2579d27a421f7070bc94b1c19272fb4d5e29 | |
parent | 5bc88d5fe31a9e0c4c0becc5b7e6b85af41eb20a (diff) |
add script to rename fields
-rw-r--r-- | rename_fields.rb | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/rename_fields.rb b/rename_fields.rb new file mode 100644 index 0000000..d62e15e --- /dev/null +++ b/rename_fields.rb @@ -0,0 +1,28 @@ +#!/usr/bin/env ruby1.9.1 +#charset: utf-8 +require 'pp' + +files = Dir[ARGV[0]] + +# 1. Search for every register field description +# 2. Replace + +$reg = /\/\*\s*(\w+) bits\s*\*\/\s*\n((?:#.+?\n)+)/i +$def = /^#\s*define[ \t]+([^ \t]+)/ +regs = [] +files.each do |f| + File.read(f).scan($reg).each do |match| + reg, fields = match + fields.scan($def).each do |field| + regs << [reg, field[0]] + end + end +end + +files.each do |f| + regs.each do |reg_field| + reg, field = reg_field + t = File.read(f).gsub(/\b#{field}\b/, reg+'_'+field) + File.open(f, 'w') {|w| w.print t} + end +end |