home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 1999 March / maximum-cd-1999-03.iso / Feature / Lotus / ORGANIZE / COMPNENT / LTOUIN21.ZIP / sun / activator / plugin / win32 / RemoveCommentReader.class (.txt) < prev   
Encoding:
Java Class File  |  1998-03-12  |  1.0 KB  |  67 lines

  1. package sun.activator.plugin.win32;
  2.  
  3. import java.io.FilterReader;
  4. import java.io.IOException;
  5. import java.io.Reader;
  6.  
  7. public class RemoveCommentReader extends FilterReader {
  8.    boolean inComment1 = false;
  9.    boolean inComment2 = false;
  10.  
  11.    public RemoveCommentReader(Reader var1) {
  12.       super(var1);
  13.    }
  14.  
  15.    public int read() throws IOException {
  16.       char[] var1 = new char[1];
  17.       int var2 = this.read(var1, 0, 1);
  18.       return var2 == -1 ? -1 : var1[0];
  19.    }
  20.  
  21.    public int read(char[] var1, int var2, int var3) throws IOException {
  22.       int var4;
  23.       int var5;
  24.       for(var4 = 0; var4 == 0; var4 = var5 - var2) {
  25.          var4 = super.in.read(var1, var2, var3);
  26.          if (var4 == -1) {
  27.             return -1;
  28.          }
  29.  
  30.          var5 = var2;
  31.  
  32.          for(int var6 = var2; var6 < var2 + var4; ++var6) {
  33.             if (!this.inComment1 && !this.inComment2) {
  34.                if (var1[var6] == '/') {
  35.                   if (var1[var6 + 1] == '/') {
  36.                      this.inComment1 = true;
  37.                      ++var6;
  38.                      continue;
  39.                   }
  40.  
  41.                   if (var1[var6 + 1] == '*') {
  42.                      this.inComment2 = true;
  43.                      ++var6;
  44.                      continue;
  45.                   }
  46.                }
  47.  
  48.                if (Character.isWhitespace(var1[var6])) {
  49.                   var1[var5++] = ' ';
  50.                } else {
  51.                   var1[var5++] = var1[var6];
  52.                }
  53.             } else if (this.inComment1) {
  54.                if (var1[var6] == '\n') {
  55.                   this.inComment1 = false;
  56.                }
  57.             } else if (this.inComment2 && var1[var6] == '*' && var1[var6 + 1] == '/') {
  58.                this.inComment2 = false;
  59.                ++var6;
  60.             }
  61.          }
  62.       }
  63.  
  64.       return var4;
  65.    }
  66. }
  67.