summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNoe Rubinstein <nrubinstein@proformatique.com>2011-05-31 15:42:50 +0200
committerNoe Rubinstein <nrubinstein@proformatique.com>2011-05-31 15:42:50 +0200
commit582c80f5ab4964b214881fe99e4ea3d95eaa6eb8 (patch)
tree24ef2579d27a421f7070bc94b1c19272fb4d5e29
parent5bc88d5fe31a9e0c4c0becc5b7e6b85af41eb20a (diff)
add script to rename fields
-rw-r--r--rename_fields.rb28
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