home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1997 October / PCO1097.ISO / FilesBBS / OS2 / NETREXX.ARJ / NETREXX.ZIP / NetRexx / netrexx / lang / RexxParse.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-08-03  |  2.3 KB  |  196 lines

  1. package netrexx.lang;
  2.  
  3. public final class RexxParse {
  4.    public static final char EOP = '\u0000';
  5.    public static final char EOS = '\u0001';
  6.    public static final char STRING = '\u0002';
  7.    public static final char ABS = '\u0003';
  8.    public static final char PLUS = '\u0004';
  9.    public static final char MINUS = '\u0005';
  10.    public static final char VAR = '\u0006';
  11.    public static final char VARABS = '\u0007';
  12.    public static final char VARPLUS = '\b';
  13.    public static final char VARMINUS = '\t';
  14.    public static final char VARLIST = '\n';
  15.    public static final int MinCol = 0;
  16.    public static final int MaxCol = 999999999;
  17.    // $FF: renamed from: $0 java.lang.String
  18.    private static final String field_0 = "RexxParse.nrx";
  19.  
  20.    public static void parse(Rexx var0, char[] var1, Rexx[] var2) {
  21.       int var6 = 0;
  22.       Object var10 = null;
  23.       int var11 = 0;
  24.       boolean var12 = false;
  25.       int var13 = 0;
  26.       char var14 = '\u0000';
  27.       boolean var15 = false;
  28.       int var16 = 0;
  29.       int var17 = 0;
  30.       int var18 = 0;
  31.       Object var19 = null;
  32.       char[] var3 = var0.toCharArray();
  33.       int var4 = 0;
  34.       int var5 = 0;
  35.       int var7 = 0;
  36.       int var8 = 0;
  37.       char var9 = var1[0];
  38.  
  39.       while(true) {
  40.          var6 = var4;
  41.          if (var9 == 0) {
  42.             return;
  43.          }
  44.  
  45.          if (var9 == 1) {
  46.             var7 = var3.length;
  47.             var5 = var7;
  48.             var4 = var7;
  49.             ++var8;
  50.          } else if (var9 == 2 | var9 == 6) {
  51.             char[] var25;
  52.             if (var9 == 6) {
  53.                var25 = var2[var1[var8 + 1]].toCharArray();
  54.                var11 = var25.length;
  55.                var8 += 2;
  56.             } else {
  57.                var11 = var1[var8 + 1];
  58.                var25 = new char[var11];
  59.                var8 += 2;
  60.                int var38 = var11 - 1;
  61.  
  62.                for(int var28 = 0; var28 <= var38; ++var28) {
  63.                   var25[var28] = var1[var8];
  64.                   ++var8;
  65.                }
  66.             }
  67.  
  68.             var5 = RexxWords.pos(var25, var3, var4 + 1) - 1;
  69.             if (var5 < 0) {
  70.                var7 = var3.length;
  71.                var5 = var7;
  72.                var4 = var7;
  73.             } else {
  74.                var7 = var5;
  75.                var4 = var5 + var11;
  76.             }
  77.          } else if (var9 == 7 | var9 == '\b' | var9 == '\t') {
  78.             var13 = var2[var1[var8 + 1]].toint();
  79.             if (var13 < 0 | var13 > 999999999) {
  80.                throw new BadColumnException(Rexx.toString(var2[var1[var8 + 1]]));
  81.             }
  82.  
  83.             var8 += 2;
  84.             if (var9 == 7) {
  85.                var5 = var13 - 1;
  86.             } else if (var9 == '\b') {
  87.                var6 = var5;
  88.                var5 += var13;
  89.             } else {
  90.                if (var9 != '\t') {
  91.                   throw new NoOtherwiseException();
  92.                }
  93.  
  94.                var6 = var5;
  95.                var5 -= var13;
  96.             }
  97.  
  98.             if (var5 < 0) {
  99.                var5 = 0;
  100.             }
  101.  
  102.             var7 = var5;
  103.             var4 = var5;
  104.             if (var5 <= var6) {
  105.                var7 = var3.length;
  106.             }
  107.          } else {
  108.             var13 = 0;
  109.             ++var8;
  110.             char var20 = var1[var8];
  111.  
  112.             for(int var27 = 1; var27 <= var20; ++var27) {
  113.                ++var8;
  114.                var13 = var13 * 256 + var1[var8];
  115.             }
  116.  
  117.             ++var8;
  118.             if (var9 == 3) {
  119.                var5 = var13 - 1;
  120.             } else if (var9 == 4) {
  121.                var6 = var5;
  122.                var5 += var13;
  123.             } else {
  124.                if (var9 != 5) {
  125.                   throw new NoOtherwiseException();
  126.                }
  127.  
  128.                var6 = var5;
  129.                var5 -= var13;
  130.             }
  131.  
  132.             if (var5 < 0) {
  133.                var5 = 0;
  134.             }
  135.  
  136.             var7 = var5;
  137.             var4 = var5;
  138.             if (var5 <= var6) {
  139.                var7 = var3.length;
  140.             }
  141.          }
  142.  
  143.          if (var6 > var3.length) {
  144.             var6 = var3.length;
  145.          }
  146.  
  147.          if (var7 > var3.length) {
  148.             var7 = var3.length;
  149.          }
  150.  
  151.          var9 = var1[var8];
  152.          if (var9 == '\n') {
  153.             var14 = var1[var8 + 1];
  154.             var8 += 2;
  155.             char var39 = var14;
  156.  
  157.             for(int var33 = 1; var33 <= var39; ++var33) {
  158.                if (var33 == var14) {
  159.                   var16 = var6;
  160.                   var17 = var7;
  161.                   var6 = var7;
  162.                } else {
  163.                   for(var16 = var6; var16 < var7 && var3[var16] == ' '; ++var16) {
  164.                   }
  165.  
  166.                   for(var17 = var16; var17 < var7 && var3[var17] != ' '; ++var17) {
  167.                   }
  168.  
  169.                   if (var17 < var7) {
  170.                      var6 = var17 + 1;
  171.                   } else {
  172.                      var6 = var17;
  173.                   }
  174.                }
  175.  
  176.                var18 = var17 - var16;
  177.                char[] var37 = new char[var18];
  178.                int var21 = var18 - 1;
  179.  
  180.                for(int var29 = 0; var29 <= var21; ++var29) {
  181.                   var37[var29] = var3[var16 + var29];
  182.                }
  183.  
  184.                var2[var1[var8]] = new Rexx(var37);
  185.                ++var8;
  186.             }
  187.  
  188.             var9 = var1[var8];
  189.          }
  190.       }
  191.    }
  192.  
  193.    private RexxParse() {
  194.    }
  195. }
  196.