home *** CD-ROM | disk | FTP | other *** search
- package netrexx.lang;
-
- import java.io.PrintStream;
- import java.util.Vector;
-
- public final class RexxTrace {
- private static final Rexx $01 = Rexx.toRexx("*=*");
- private static final Rexx $02 = new Rexx(' ');
- private static final Rexx $03 = Rexx.toRexx("*-*");
- private static final Rexx $04 = new Rexx('>');
- private static final Rexx $05 = new Rexx('"');
- private static final Rexx $06 = Rexx.toRexx("---");
- // $FF: renamed from: $0 java.lang.String
- private static final String field_0 = "RexxTrace.nrx";
- public static final int OFF = 0;
- public static final int VAR = 1;
- public static final int METHODS = 2;
- public static final int ALL = 3;
- public static final int RESULTS = 4;
- public static final int TERMS = 5;
- public static final int OPS = 6;
- private static final Rexx levelwords = Rexx.toRexx("off var methods all results");
- private static final String nulltrace = "[null]";
- private int level;
- private boolean context;
- private int width;
- private int lastline;
- private String programname;
- private PrintStream tracestream;
- private String[] varnames;
- private static Thread lastthread = null;
- private static String lastprogramname = "";
- private static Object threadlock = new Object();
-
- public RexxTrace(int var1) {
- this(var1, System.err, "?");
- }
-
- public RexxTrace(int var1, PrintStream var2) {
- this(var1, var2, "?");
- }
-
- public RexxTrace(int var1, PrintStream var2, String var3) {
- this.level = 0;
- this.context = true;
- this.varnames = new String[0];
- this.width = String.valueOf(var1).length();
- this.tracestream = var2;
- this.programname = var3;
- }
-
- public RexxTrace(RexxTrace var1) {
- this.level = 0;
- this.context = true;
- this.varnames = new String[0];
- this.level = var1.level;
- this.width = var1.width;
- this.lastline = var1.lastline;
- this.tracestream = var1.tracestream;
- this.programname = var1.programname;
- this.varnames = var1.varnames;
- this.context = var1.context;
- }
-
- public Rexx levelword() {
- return levelwords.word(new Rexx(this.level + 1));
- }
-
- public void newlevel(int var1) {
- this.level = var1;
- if (this.level == 0) {
- this.lastline = 0;
- }
-
- }
-
- public boolean getContext() {
- return this.context;
- }
-
- public void setContext(boolean var1) {
- this.context = var1;
- }
-
- public void modnames(String[] var1, String[] var2) {
- int var4 = 0;
- boolean var5 = false;
- Object var6 = null;
- boolean var7 = false;
- if (this.level == 0) {
- this.level = 1;
- }
-
- if (var1 == null) {
- var1 = new String[0];
- }
-
- if (var2 == null) {
- var2 = new String[0];
- }
-
- Vector var3 = new Vector(this.varnames.length + var1.length);
- int var8 = var1.length;
-
- for(int var12 = 0; var8 > 0; ++var12) {
- var3.addElement(var1[var12]);
- --var8;
- }
-
- int var9 = this.varnames.length;
-
- for(int var14 = 0; var9 > 0; ++var14) {
- String var15 = this.varnames[var14];
- int var10 = var1.length;
- var4 = 0;
-
- label47:
- while(true) {
- if (var10 <= 0) {
- int var11 = var2.length;
-
- for(int var16 = 0; var11 > 0; ++var16) {
- if (var2[var16].equals(var15)) {
- break label47;
- }
-
- --var11;
- }
-
- var3.addElement(var15);
- break;
- }
-
- if (var1[var4].equals(var15)) {
- break;
- }
-
- --var10;
- ++var4;
- }
-
- --var9;
- }
-
- this.varnames = new String[var3.size()];
- var3.copyInto(this.varnames);
- }
-
- public void traceclause(int var1, String[] var2) {
- this.traceclause(var1, var2, 3, (String[])null);
- }
-
- public void traceclause(int var1, String[] var2, int var3) {
- this.traceclause(var1, var2, var3, (String[])null);
- }
-
- public void traceclause(int var1, String[] var2, int var3, String[] var4) {
- int var5 = 0;
- Object var6 = null;
- boolean var7 = false;
- Object var8 = null;
- boolean var9 = false;
- if (this.level >= var3) {
- if (var3 == 1 && this.level < 3) {
- if (var4 == null) {
- return;
- }
-
- int var10 = var4.length;
- var5 = 0;
-
- label127:
- while(true) {
- if (var10 <= 0) {
- return;
- }
-
- String var16 = var4[var5];
- int var11 = this.varnames.length;
-
- for(int var17 = 0; var11 > 0; ++var17) {
- if (this.varnames[var17].equals(var16)) {
- break label127;
- }
-
- --var11;
- }
-
- --var10;
- ++var5;
- }
- }
-
- Object var21 = threadlock;
- synchronized(var21){}
-
- try {
- if (this.context) {
- this.showContext();
- }
-
- Rexx var18;
- if (this.lastline == var1) {
- var18 = (new Rexx(' ')).copies(new Rexx(this.width));
- } else {
- var18 = (new Rexx(var1)).right(new Rexx(this.width));
- this.lastline = var1 + var2.length - 1;
- }
-
- var18 = var18.OpCcblank((RexxSet)null, $01);
- int var12 = var2.length - 1;
-
- for(int var20 = 0; var20 <= var12; ++var20) {
- this.tracestream.println($02.OpCc((RexxSet)null, var18).OpCcblank((RexxSet)null, Rexx.toRexx(var2[var20])));
- var18 = (new Rexx(var1 + var20 + 1)).right(new Rexx(this.width)).OpCcblank((RexxSet)null, $03);
- }
- } catch (Throwable var14) {
- throw var14;
- }
-
- }
- }
-
- private void traceresult(int var1, Rexx var2, char var3, String var4) {
- Object var5 = null;
- int var6 = 0;
- Object var7 = null;
- Object var8 = null;
- boolean var9 = false;
- if (this.level < 4) {
- if (this.level == 0) {
- return;
- }
-
- String var15 = var4.toLowerCase();
- int var10 = this.varnames.length;
- var6 = 0;
-
- while(true) {
- if (var10 <= 0) {
- return;
- }
-
- if (this.varnames[var6].equals(var15)) {
- break;
- }
-
- --var10;
- ++var6;
- }
- }
-
- Object var21 = threadlock;
- synchronized(var21){}
-
- try {
- if (this.context) {
- this.showContext();
- }
-
- Rexx var17;
- if (this.lastline == var1) {
- var17 = (new Rexx(' ')).copies(new Rexx(this.width));
- } else {
- var17 = (new Rexx(var1)).right(new Rexx(this.width));
- this.lastline = var1;
- }
-
- var17 = var17.OpCcblank((RexxSet)null, $04).OpCc((RexxSet)null, new Rexx(var3)).OpCc((RexxSet)null, $04);
- if (!var4.equals("")) {
- var17 = var17.OpCcblank((RexxSet)null, Rexx.toRexx(var4));
- }
-
- if (var2 == null) {
- this.tracestream.println($02.OpCc((RexxSet)null, var17).OpCcblank((RexxSet)null, Rexx.toRexx("[null]")));
- } else {
- char[] var19 = Rexx.tochararray(var2);
- int var12 = var19.length - 1;
-
- for(int var20 = 0; var20 <= var12; ++var20) {
- if (var19[var20] < ' ') {
- if (var19[var20] == '\t') {
- var19[var20] = ' ';
- } else {
- var19[var20] = '?';
- }
- }
- }
-
- this.tracestream.println($02.OpCc((RexxSet)null, var17).OpCcblank((RexxSet)null, $05).OpCc((RexxSet)null, Rexx.toRexx(var19)).OpCc((RexxSet)null, $05));
- }
- } catch (Throwable var14) {
- throw var14;
- }
-
- }
-
- public void showContext() {
- Thread var1 = Thread.currentThread();
- if (lastthread != var1 || !lastprogramname.equals(this.programname)) {
- Rexx var2 = (new Rexx(' ')).copies(new Rexx(this.width)).OpCcblank((RexxSet)null, $06);
- String var3 = var1.getName();
- String var4 = var1.getThreadGroup().getName();
- if (!var4.equals("main")) {
- var3 = var3 + "," + var4;
- }
-
- if (var3.equals("main")) {
- var3 = "";
- } else {
- var3 = " [" + var3 + "]";
- }
-
- this.tracestream.println($02.OpCc((RexxSet)null, var2).OpCcblank((RexxSet)null, Rexx.toRexx(this.programname)).OpCc((RexxSet)null, Rexx.toRexx(var3)));
- lastthread = var1;
- lastprogramname = this.programname;
- this.lastline = 0;
- }
- }
-
- public char tracechar(int var1, char var2, char var3, int var4, String var5) {
- if (this.level < var4) {
- return var2;
- } else {
- this.traceresult(var1, new Rexx(var2), var3, var5);
- return var2;
- }
- }
-
- public boolean traceboolean(int var1, boolean var2, char var3, int var4, String var5) {
- if (this.level < var4) {
- return var2;
- } else {
- this.traceresult(var1, new Rexx(var2), var3, var5);
- return var2;
- }
- }
-
- public byte tracebyte(int var1, byte var2, char var3, int var4, String var5) {
- if (this.level < var4) {
- return var2;
- } else {
- this.traceresult(var1, new Rexx(var2), var3, var5);
- return var2;
- }
- }
-
- public short traceshort(int var1, short var2, char var3, int var4, String var5) {
- if (this.level < var4) {
- return var2;
- } else {
- this.traceresult(var1, new Rexx(var2), var3, var5);
- return var2;
- }
- }
-
- public int traceint(int var1, int var2, char var3, int var4, String var5) {
- if (this.level < var4) {
- return var2;
- } else {
- this.traceresult(var1, new Rexx(var2), var3, var5);
- return var2;
- }
- }
-
- public long tracelong(int var1, long var2, char var4, int var5, String var6) {
- if (this.level < var5) {
- return var2;
- } else {
- this.traceresult(var1, new Rexx(var2), var4, var6);
- return var2;
- }
- }
-
- public float tracefloat(int var1, float var2, char var3, int var4, String var5) {
- if (this.level < var4) {
- return var2;
- } else {
- this.traceresult(var1, new Rexx(var2), var3, var5);
- return var2;
- }
- }
-
- public double tracedouble(int var1, double var2, char var4, int var5, String var6) {
- if (this.level < var5) {
- return var2;
- } else {
- this.traceresult(var1, new Rexx(var2), var4, var6);
- return var2;
- }
- }
-
- public Rexx traceRexx(int var1, Rexx var2, char var3, int var4, String var5) {
- if (this.level < var4) {
- return var2;
- } else {
- this.traceresult(var1, var2, var3, var5);
- return var2;
- }
- }
-
- public String traceString(int var1, String var2, char var3, int var4, String var5) {
- Object var6 = null;
- if (this.level < var4) {
- return var2;
- } else {
- Rexx var7;
- if (var2 == null) {
- var7 = null;
- } else {
- var7 = new Rexx(var2);
- }
-
- this.traceresult(var1, var7, var3, var5);
- return var2;
- }
- }
-
- public char[] tracechararray(int var1, char[] var2, char var3, int var4, String var5) {
- Object var6 = null;
- if (this.level < var4) {
- return var2;
- } else {
- Rexx var7;
- if (var2 == null) {
- var7 = null;
- } else {
- var7 = new Rexx(var2);
- }
-
- this.traceresult(var1, var7, var3, var5);
- return var2;
- }
- }
-
- public Object traceObject(int var1, Object var2, char var3, int var4, String var5) {
- Object var6 = null;
- if (this.level < var4) {
- return var2;
- } else {
- Rexx var7;
- if (var2 == null) {
- var7 = null;
- } else {
- var7 = new Rexx(var2.toString());
- }
-
- this.traceresult(var1, var7, var3, var5);
- return var2;
- }
- }
- }
-