Sh_2_csh.csh | Next

Case.sed



#  Fixup case statements:

#     case word in            switch (word)
#        a)                      case "a":
#           :                       :
#           ;;                      break
#        b|c)        -->         case "b":
#           :                    case "c":
#                                   :
#           break                   FixBreak  <-- Hand-Fixup required
#        *)                      default:
#           :                       :
#     esac                    end

/^[   ]*case/,/^[ ]*esac/{
   s/case[  ][    ]*\([^   ].*\)[   ][    ]*in/switch (\1)/
   /^[^(]*)/{
      s/\([    ]*\)\([^)]*\))/\1case "\2":
\1   /
   :case
      /".*|.*"/{
         s/\([    ]*\)\(case "[^|]*\)|\(.*":\)/\1\2":
\1case "\3/
         b case
         }
      }
   s/case "\*":/default:/
   s/break/FixBreak/
   /;;/s/^\([  ]*\)\([^    ].*\);;/\1\2
\1break/
   /;;/s/;;/break/
   s/esac/end/
   }



Sh_2_csh.csh | Next



Copyright © 1988-2003 by Hamilton Laboratories. All rights reserved.