diff options
Diffstat (limited to 'tools/sed-enums')
-rw-r--r-- | tools/sed-enums | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/tools/sed-enums b/tools/sed-enums index 14738ac..aa44675 100644 --- a/tools/sed-enums +++ b/tools/sed-enums @@ -1,15 +1,15 @@ # drop if don't start with (typedef)? enum /^\s*(typedef\s)?\s*enum/ ! b # -s/^\s*(typedef\s)?\s*(enum(\s+\w+)?).*$/typedef \2 { / +s/^\s*(typedef\s)?\s*(enum(\s+\w+)?).*$/\1\2 { / # drop if substitution fail, copy pattern to hold space T;h :attrs;n # read again if { /^\s*\{/ b attrs -# append each item -s/^\s*([A-Z0-9_]+)(\s*=\s*-?[0-9]+)?.*$/\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 |