diff options
Diffstat (limited to 'tools')
-rwxr-xr-x | tools/genruby.rb | 7 | ||||
-rw-r--r-- | tools/sed-enums | 9 |
2 files changed, 12 insertions, 4 deletions
diff --git a/tools/genruby.rb b/tools/genruby.rb index 2315da0..58e5f91 100755 --- a/tools/genruby.rb +++ b/tools/genruby.rb @@ -169,6 +169,13 @@ def gen_enums path, indent elsif v.nil? h[s]=i i+=1 + elsif v=~/\|/ + els = v.gsub(/[\(\)]/,'').split(/\|/) + puts h.inspect + puts els.inspect + v = els.inject('') { |s,e| s+="#{h[e]}|" }[0..-2] + h[s]=v + i=eval(v).to_i+1 else h[s]=v i=eval(v).to_i+1 diff --git a/tools/sed-enums b/tools/sed-enums index 870e030..aa44675 100644 --- a/tools/sed-enums +++ b/tools/sed-enums @@ -7,9 +7,9 @@ T;h :attrs;n # read again if { /^\s*\{/ b attrs -# append each item -s/^\s*([A-Z0-9_]+)(\s*=\s*[^,\/]+)?.*$/\1\2, / -# goto next if subsitution fails, append pattern, loop +# append each item finished by , or \/ +s/^\s*([A-Z0-9_]+)(\s*=\s*[^,\/]+)?\s*([,|\)])?[\/]?.*$/\1\2\3 / +# goto next if subsitution fails, append pattern, loop to attrs T next;H;b attrs :next # try again if } not found @@ -29,4 +29,5 @@ H;x s/\n//g # replace multi spaces with one s/ {2,}/ /g -s/, }/ }/p +s/, }/ }/ +p |