home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1997 August / PCO0897.ISO / filesbbs / os2 / fp1os2.arj / OS2 / DATA / 49 / C / 0 / F_26836 / JScriptToken.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-05-15  |  3.9 KB  |  187 lines

  1. import java.io.PrintStream;
  2.  
  3. public class JScriptToken extends JSbxBase implements Cloneable {
  4.    public static final byte JSTT_KEYWORD = 1;
  5.    public static final byte JSTT_IDENTIFIER = 2;
  6.    public static final byte JSTT_CONSTANT = 3;
  7.    public static final byte JSTT_OPERATOR = 4;
  8.    public static final byte JSTT_SPECIAL_CHAR = 5;
  9.    public static final byte JSTT_DEBUG = 6;
  10.    private String aTokenStr;
  11.    private JSbxValue aTokenVal;
  12.    private byte nTokType;
  13.    private short nTokID;
  14.  
  15.    private JScriptToken(String var1, JSbxValue var2, byte var3, short var4) {
  16.       this.Init(var1, var2, var3, var4);
  17.    }
  18.  
  19.    public JScriptToken(String var1, JSbxValue var2) {
  20.       this.Init(var1, var2, (byte)3, (short)0);
  21.    }
  22.  
  23.    public JScriptToken(String var1, byte var2, short var3) {
  24.       this.Init(var1, (JSbxValue)null, var2, var3);
  25.    }
  26.  
  27.    private void Init(String var1, JSbxValue var2, byte var3, short var4) {
  28.       this.aTokenStr = var1;
  29.       this.aTokenVal = var2;
  30.       this.nTokType = var3;
  31.       this.nTokID = var4;
  32.    }
  33.  
  34.    public Object clone() {
  35.       JScriptToken var1 = new JScriptToken(new String(this.aTokenStr), this.nTokType, this.nTokID);
  36.       var1.aTokenVal = this.aTokenVal != null ? (JSbxValue)this.aTokenVal.clone() : null;
  37.       return var1;
  38.    }
  39.  
  40.    public String GetString() {
  41.       return this.aTokenStr;
  42.    }
  43.  
  44.    public JSbxValue GetValue() {
  45.       return this.aTokenVal;
  46.    }
  47.  
  48.    public byte GetType() {
  49.       return this.nTokType;
  50.    }
  51.  
  52.    public short GetID() {
  53.       return this.nTokID;
  54.    }
  55.  
  56.    public void DumpToken(PrintStream var1, boolean var2, int var3) {
  57.       if (var2) {
  58.          String var4 = "";
  59.  
  60.          for(int var5 = 0; var5 < var3; ++var5) {
  61.             var4 = var4 + "    ";
  62.          }
  63.  
  64.          switch (this.nTokType) {
  65.             case 1:
  66.                var1.print("<FONT COLOR=\"LIGHT BLUE\">");
  67.                var1.print(var4 + this.aTokenStr + " ");
  68.                var1.print("</FONT>");
  69.                return;
  70.             case 2:
  71.                var1.print("<FONT COLOR=\"BLACK\">");
  72.                var1.print(var4 + this.aTokenStr + " ");
  73.                var1.print("</FONT>");
  74.                return;
  75.             case 3:
  76.                var1.print("<FONT COLOR=\"RED\">");
  77.  
  78.                try {
  79.                   String var9 = this.aTokenVal.GetString();
  80.                   if (this.aTokenVal.GetType() == 4) {
  81.                      var1.print(var4 + """ + this.ToHTML(var9) + """ + " ");
  82.                   } else {
  83.                      var1.print(var4 + var9 + " ");
  84.                   }
  85.                } catch (JSbxException var7) {
  86.                }
  87.  
  88.                var1.print("</FONT>");
  89.                return;
  90.             case 4:
  91.                String var6 = this.aTokenStr;
  92.                var1.print("<FONT COLOR=\"LIGHT BLUE\">");
  93.                var1.print(var4 + this.ToHTML(var6) + " ");
  94.                var1.print("</FONT>");
  95.                return;
  96.             case 5:
  97.                if (this.nTokID != 134) {
  98.                   var1.print("<FONT COLOR=\"MAGENTA\">");
  99.                   var1.print(var4 + this.aTokenStr + " ");
  100.                   var1.print("</FONT>");
  101.                   return;
  102.                }
  103.                break;
  104.             case 6:
  105.                var1.print("<FONT COLOR=\"GREEN\">");
  106.                var1.print(var4 + this.aTokenStr + " ");
  107.                var1.print("</FONT>");
  108.                return;
  109.          }
  110.       } else {
  111.          switch (this.nTokType) {
  112.             case 1:
  113.                var1.println("KEYWORD-Token: " + this.aTokenStr + "\t(ID = " + this.nTokID + ")");
  114.                return;
  115.             case 2:
  116.                var1.println("IDENTIFIER-Token: " + this.aTokenStr);
  117.                return;
  118.             case 3:
  119.                var1.print("CONSTANT-Token: " + this.aTokenStr + "\t");
  120.  
  121.                try {
  122.                   this.aTokenVal.Dump(var1, 0, -1);
  123.                   return;
  124.                } catch (JSbxException var8) {
  125.                   return;
  126.                }
  127.             case 4:
  128.                var1.println("OPERATOR-Token: " + this.aTokenStr + "\t(ID = " + this.nTokID + ")");
  129.                return;
  130.             case 5:
  131.                var1.println("CHAR-Token: " + this.aTokenStr + "\t(ID = " + this.nTokID + ")");
  132.                return;
  133.             case 6:
  134.                var1.println("DEBUG-Token: " + this.aTokenStr);
  135.                return;
  136.          }
  137.       }
  138.  
  139.    }
  140.  
  141.    private String ToHTML(String var1) {
  142.       char[] var2 = var1.toCharArray();
  143.       String var3 = "";
  144.       int var4 = var2.length;
  145.  
  146.       for(int var5 = 0; var5 < var4; ++var5) {
  147.          char var6 = var2[var5];
  148.          switch (var6) {
  149.             case '\b':
  150.                var3 = var3 + "\\b";
  151.                break;
  152.             case '\t':
  153.                var3 = var3 + "\\t";
  154.                break;
  155.             case '\n':
  156.                var3 = var3 + "\\n";
  157.                break;
  158.             case '\f':
  159.                var3 = var3 + "\\f";
  160.                break;
  161.             case '\r':
  162.                var3 = var3 + "\\r";
  163.                break;
  164.             case '"':
  165.                var3 = var3 + "\\\"";
  166.                break;
  167.             case '\'':
  168.                var3 = var3 + "\\'";
  169.                break;
  170.             case '<':
  171.                var3 = var3 + "<";
  172.                break;
  173.             case '>':
  174.                var3 = var3 + ">";
  175.                break;
  176.             case '\\':
  177.                var3 = var3 + "\\\\";
  178.                break;
  179.             default:
  180.                var3 = var3 + String.valueOf(var2[var5]);
  181.          }
  182.       }
  183.  
  184.       return var3;
  185.    }
  186. }
  187.