[comp.lang.icon] 1st bug in comment stripper

alex@laguna.metaphor.COM (Bob Alexander) (09/27/90)

I *knew* I should let this routine age for a couple of days before
posting it!  It couldn't handle "abc\"def". First bug fix (with a bit
of vertical compactification, and other misc changes):

procedure trimcomment(s1) # s2
#
#  Trim comments (and any trailing spaces) from Icon program text line.
#
   local c,delim
   s1 ? {
      while tab(upto('"\'\\#')) do {
         case c := move(1) of {
            "#": if /delim then return trim(&subject[1:&pos - 1],' \t')
            "\\": if \delim then {="^" ; move(1)}   # in case he used "\^""
            default: delim := if \delim then (if delim == c then &null) else c
            }
         }
      }
   return trim(s1,' \t')
end


-- Bob Alexander

Metaphor Computer Systems   (415) 961-3600 x751   alex@metaphor.com
====^=== Mountain View, CA  ...{uunet}!{decwrl,apple}!metaphor!alex