home *** CD-ROM | disk | FTP | other *** search
/ PC Professionell 2005 July / PCpro_2005_07.ISO / files / wintools / FullSync / FullSyncInstaller.exe / org / apache / regexp / REProgram.class (.txt) < prev    next >
Encoding:
Java Class File  |  2005-03-08  |  916 b   |  68 lines

  1. package org.apache.regexp;
  2.  
  3. import java.io.Serializable;
  4.  
  5. public class REProgram implements Serializable {
  6.    static final int OPT_HASBACKREFS = 1;
  7.    char[] instruction;
  8.    int lenInstruction;
  9.    char[] prefix;
  10.    int flags;
  11.    int maxParens;
  12.  
  13.    public REProgram(char[] var1) {
  14.       this(var1, var1.length);
  15.    }
  16.  
  17.    public REProgram(int var1, char[] var2) {
  18.       this(var2, var2.length);
  19.       this.maxParens = var1;
  20.    }
  21.  
  22.    public REProgram(char[] var1, int var2) {
  23.       this.maxParens = -1;
  24.       this.setInstructions(var1, var2);
  25.    }
  26.  
  27.    public char[] getInstructions() {
  28.       if (this.lenInstruction != 0) {
  29.          char[] var1 = new char[this.lenInstruction];
  30.          System.arraycopy(this.instruction, 0, var1, 0, this.lenInstruction);
  31.          return var1;
  32.       } else {
  33.          return null;
  34.       }
  35.    }
  36.  
  37.    public void setInstructions(char[] var1, int var2) {
  38.       this.instruction = var1;
  39.       this.lenInstruction = var2;
  40.       this.flags = 0;
  41.       this.prefix = null;
  42.       if (var1 != null && var2 != 0) {
  43.          if (var2 >= 3 && var1[0] == '|') {
  44.             char var3 = var1[2];
  45.             if (var1[var3 + 0] == 'E' && var2 >= 6 && var1[3] == 'A') {
  46.                char var4 = var1[4];
  47.                this.prefix = new char[var4];
  48.                System.arraycopy(var1, 6, this.prefix, 0, var4);
  49.             }
  50.          }
  51.  
  52.          for(int var5 = 0; var5 < var2; var5 += 3) {
  53.             switch (var1[var5 + 0]) {
  54.                case '#':
  55.                   this.flags |= 1;
  56.                   return;
  57.                case 'A':
  58.                   var5 += var1[var5 + 1];
  59.                   break;
  60.                case '[':
  61.                   var5 += var1[var5 + 1] * 2;
  62.             }
  63.          }
  64.       }
  65.  
  66.    }
  67. }
  68.