home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / hcshdemo.zip / csh-os2.zip / SAMPLES / SH_2_CSH / EXPR.SED < prev    next >
Text File  |  1993-11-24  |  988b  |  47 lines

  1. #    First-pass fixup of expressions.
  2.  
  3. #        1. Fixup expression operators and syntax:
  4.  
  5. #                -n foo        -->        foo != ""
  6. #                -z foo        -->        foo == ""
  7. #                a = b            -->        a == b
  8. #                a -eq b        -->        a == b
  9. #                a -gt b        -->        a > b
  10. #                a -ge b        -->        a >= b
  11. #                a -lt b        -->        a < b
  12. #                a -le b        -->        a <= b
  13. #                a -ne b        -->        a != b
  14. #                a -o b        -->        a || b
  15.  
  16. #                [ ... ]        -->        ( ... )
  17.  
  18. #        2.    Do `expr ...` evaluation in the C shell:
  19.  
  20. #                i=`expr ${i} + 1`    -->    @ i=i + 1
  21.  
  22. #        3. Other assignments become set statements.
  23.  
  24. /^[^#]* \[[^[].*\]/{
  25.     s/-n  *\([^ ].*\) \]/\1 != "" ]/g
  26.     s/-z  *\([^ ].*\) \]/\1 == "" ]/g
  27.     s/ = / == /g
  28.     s/ -eq / == /g
  29.     s/ -gt / > /g
  30.     s/ -ge / >= /g
  31.     s/ -lt / < /g
  32.     s/ -le / <= /g
  33.     s/ -ne / != /g
  34.     s/ -o / || /g
  35.     s/\[/(/
  36.     s/]/)/
  37.     }
  38.  
  39. /^[^#]*=`expr.*`/{
  40.     s/`//g
  41.     s/expr //
  42.     /: "\.\*"/s/\([^     =][^     ]*\)[     ]*: "\.\*"/strlen(\1)/
  43.     /^[     ]*[a-zA-Z][a-zA-Z0-9_]*[     ]*=/s/[a-zA-Z]/@ &/
  44.     }
  45.  
  46. /^[     ]*[a-zA-Z][a-zA-Z0-9_]*[     ]*=/s/[a-zA-Z]/set &/
  47.