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

  1. import java.io.PrintStream;
  2. import stardiv.tools.HoldJavaEnvironment;
  3.  
  4. class JScriptCompiler extends SJMTObject {
  5.    private JScriptManager aJScriptManager;
  6.    private JScriptTokenizer aTokenizer;
  7.    private JScriptParser aParser;
  8.  
  9.    public JScriptTokenInterface GetTokenInterface() {
  10.       return this.aTokenizer;
  11.    }
  12.  
  13.    public JScriptErrorLog GetErrorLog() {
  14.       return this.aJScriptManager == null ? null : this.aJScriptManager.GetErrorLog();
  15.    }
  16.  
  17.    public JScriptCompiler(JScriptManager var1, ThreadGroup var2) {
  18.       super(var1, "JavaScript Compiler", var2);
  19.       this.aJScriptManager = var1;
  20.       this.InitRefs();
  21.    }
  22.  
  23.    public JScriptCompiler(JScriptManager var1) {
  24.       super(var1, false);
  25.       this.aJScriptManager = var1;
  26.       this.InitRefs();
  27.    }
  28.  
  29.    private final void InitRefs() {
  30.       this.aTokenizer = new JScriptTokenizer();
  31.       this.aParser = new JScriptParser(this);
  32.    }
  33.  
  34.    public synchronized void Compile(JScriptModule var1, boolean var2) throws JScriptParserException {
  35.       this.aTokenizer.SetSource(var1.GetSource());
  36.       this.aParser.ParseModule(var1, var2);
  37.    }
  38.  
  39.    public void RuntimeCompile(String var1, JScriptModule var2, JScriptCodeBlock var3, JScriptMethod var4, boolean var5) throws JScriptParserException {
  40.       this.aTokenizer.SetSource(var1);
  41.       this.aParser.RuntimeParse(var2, var3, var4, var5);
  42.    }
  43.  
  44.    protected void ProcessMessage(SJMessage var1) {
  45.       if (var1 instanceof JScriptAction) {
  46.          JScriptAction var2 = (JScriptAction)var1;
  47.          switch (((SJMessage)var2).GetID()) {
  48.             case 2001:
  49.                ((SJMTObject)this).StopMessageLoop();
  50.                return;
  51.             case 2002:
  52.                synchronized(this){}
  53.  
  54.                try {
  55.                   String var7;
  56.                   label95: {
  57.                      try {
  58.                         this.Compile((JScriptModule)((SJMessage)var2).GetObject(0), true);
  59.                      } catch (JScriptTokenizerException var11) {
  60.                         JScriptTokenPosition var6 = var11.GetErrorPosition();
  61.                         if (var6 != null) {
  62.                            var7 = " --> line=" + var6.GetLine() + " col=" + var6.GetCol();
  63.                            break label95;
  64.                         }
  65.  
  66.                         var7 = " --> no valid position";
  67.                         break label95;
  68.                      } catch (Throwable var12) {
  69.                         HoldJavaEnvironment.AddToProtocol("Compiler-Error: " + var12);
  70.                      }
  71.  
  72.                      var1.Acknowledge();
  73.                      return;
  74.                   }
  75.  
  76.                   HoldJavaEnvironment.AddToProtocol("Compiler-Error: " + var11);
  77.                   HoldJavaEnvironment.AddToProtocol("-->" + var7);
  78.                   if (this.aJScriptManager != null) {
  79.                      this.aJScriptManager.SetLastError(var11 + var7);
  80.                   }
  81.  
  82.                   var1.AcknowledgeError();
  83.                } catch (Throwable var13) {
  84.                   throw var13;
  85.                }
  86.  
  87.                return;
  88.             default:
  89.          }
  90.       }
  91.    }
  92.  
  93.    public void SetDebug(boolean var1, boolean var2, PrintStream var3) {
  94.       this.aParser.SetDebug(var1, var2, var3);
  95.    }
  96.  
  97.    public JScriptParserTerm DEBUG_ParseTerm(String var1) {
  98.       JScriptParserTerm var2 = null;
  99.       this.aTokenizer.SetSource(var1);
  100.  
  101.       try {
  102.          var2 = this.aParser.ParseTerm();
  103.       } catch (JSbxExceptionBase var4) {
  104.          System.out.println("Exception in DEBUG_ParseTerm(): " + var4);
  105.       }
  106.  
  107.       return var2;
  108.    }
  109. }
  110.