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

  1. import java.io.PrintStream;
  2.  
  3. public class JScriptParserTerm extends JSbxBase {
  4.    private JSbxVector aSubTermVector = new JSbxVector(5);
  5.    public boolean bUsedForNew;
  6.  
  7.    public void AddSubTerm(JScriptParserSubTerm var1) throws JSbxException {
  8.       this.aSubTermVector.Add(var1);
  9.    }
  10.  
  11.    public JScriptParserSubTerm GetSubTerm(int var1) {
  12.       return var1 >= this.aSubTermVector.GetSize() ? null : (JScriptParserSubTerm)this.aSubTermVector.Get(var1);
  13.    }
  14.  
  15.    public int GetSubTermCount() {
  16.       return this.aSubTermVector != null ? this.aSubTermVector.GetSize() : 0;
  17.    }
  18.  
  19.    public JScriptParserSubTerm GetLastSubTerm() {
  20.       return this.GetSubTerm(this.GetSubTermCount() - 1);
  21.    }
  22.  
  23.    public void GeneratePreCode(JScriptCodeGenParam var1) throws JScriptParserException, JSbxException {
  24.       for(int var2 = 0; var2 < this.GetSubTermCount(); ++var2) {
  25.          this.GetSubTerm(var2).GeneratePreCode(var1);
  26.       }
  27.  
  28.    }
  29.  
  30.    public void GeneratePostCode(JScriptCodeGenParam var1) throws JScriptParserException, JSbxException {
  31.       for(int var2 = 0; var2 < this.GetSubTermCount(); ++var2) {
  32.          this.GetSubTerm(var2).GeneratePostCode(var1);
  33.       }
  34.  
  35.    }
  36.  
  37.    public void GenerateLValueCode(JScriptCodeGenParam var1) throws JScriptParserException, JSbxException {
  38.       this.GenerateCode(var1, true);
  39.    }
  40.  
  41.    public void GenerateRValueCode(JScriptCodeGenParam var1) throws JScriptParserException, JSbxException {
  42.       this.GenerateCode(var1, false);
  43.    }
  44.  
  45.    private void GenerateCode(JScriptCodeGenParam var1, boolean var2) throws JScriptParserException, JSbxException {
  46.       int var3 = this.GetSubTermCount();
  47.       if (this.bUsedForNew) {
  48.          String var4 = null;
  49.          if (var3 == 1) {
  50.             JScriptParserSubTerm var5 = (JScriptParserSubTerm)this.aSubTermVector.Get(0);
  51.             if (var5.GetNumberOfCallOrIndex() == 1 && var5.GetCallOrIndex(0) instanceof JScriptParserParamList) {
  52.                var4 = var5.aIdentifier.aIdentifierName;
  53.             }
  54.          }
  55.  
  56.          var1.AddCode(new JSP_CreateObject(var4));
  57.       }
  58.  
  59.       if (var3 == 1) {
  60.          this.GetSubTerm(0).GenerateCode(var1, var2, false, this.bUsedForNew);
  61.       } else {
  62.          this.GetSubTerm(0).GenerateCode(var1, false, false, false);
  63.  
  64.          for(int var6 = 1; var6 < var3 - 1; ++var6) {
  65.             this.GetSubTerm(var6).GenerateCode(var1, false, true, false);
  66.          }
  67.  
  68.          this.GetLastSubTerm().GenerateCode(var1, var2, true, this.bUsedForNew);
  69.       }
  70.    }
  71.  
  72.    public void Show(PrintStream var1) {
  73.       this.Show(var1, 0);
  74.    }
  75.  
  76.    public void Show(PrintStream var1, int var2) {
  77.       for(int var3 = 0; var3 < this.GetSubTermCount(); ++var3) {
  78.          if (var3 > 0) {
  79.             var1.print(".");
  80.          }
  81.  
  82.          JScriptParserSubTerm var4 = (JScriptParserSubTerm)this.aSubTermVector.Get(var3);
  83.          if (var4 != null && var4.aIdentifier != null) {
  84.             var1.print(var4.aIdentifier.aIdentifierName);
  85.          } else {
  86.             var1.print("NULL");
  87.          }
  88.  
  89.          for(int var5 = 0; var5 < var4.GetNumberOfCallOrIndex(); ++var5) {
  90.             JSbxBase var6 = var4.GetCallOrIndex(var5);
  91.             if (var6 instanceof JScriptParserExpression) {
  92.                var1.print("[?]");
  93.             }
  94.  
  95.             if (var6 instanceof JScriptParserParamList) {
  96.                var1.print("(");
  97.  
  98.                for(int var7 = 0; var7 < ((JScriptParserParamList)var6).GetNumberOfParams(); ++var7) {
  99.                   if (var7 > 0) {
  100.                      var1.print(",");
  101.                   }
  102.  
  103.                   var1.print("?");
  104.                }
  105.  
  106.                var1.print(")");
  107.             }
  108.          }
  109.       }
  110.  
  111.    }
  112. }
  113.