home *** CD-ROM | disk | FTP | other *** search
- import java.io.PrintStream;
-
- public class JScriptParserTerm extends JSbxBase {
- private JSbxVector aSubTermVector = new JSbxVector(5);
- public boolean bUsedForNew;
-
- public void AddSubTerm(JScriptParserSubTerm var1) throws JSbxException {
- this.aSubTermVector.Add(var1);
- }
-
- public JScriptParserSubTerm GetSubTerm(int var1) {
- return var1 >= this.aSubTermVector.GetSize() ? null : (JScriptParserSubTerm)this.aSubTermVector.Get(var1);
- }
-
- public int GetSubTermCount() {
- return this.aSubTermVector != null ? this.aSubTermVector.GetSize() : 0;
- }
-
- public JScriptParserSubTerm GetLastSubTerm() {
- return this.GetSubTerm(this.GetSubTermCount() - 1);
- }
-
- public void GeneratePreCode(JScriptCodeGenParam var1) throws JScriptParserException, JSbxException {
- for(int var2 = 0; var2 < this.GetSubTermCount(); ++var2) {
- this.GetSubTerm(var2).GeneratePreCode(var1);
- }
-
- }
-
- public void GeneratePostCode(JScriptCodeGenParam var1) throws JScriptParserException, JSbxException {
- for(int var2 = 0; var2 < this.GetSubTermCount(); ++var2) {
- this.GetSubTerm(var2).GeneratePostCode(var1);
- }
-
- }
-
- public void GenerateLValueCode(JScriptCodeGenParam var1) throws JScriptParserException, JSbxException {
- this.GenerateCode(var1, true);
- }
-
- public void GenerateRValueCode(JScriptCodeGenParam var1) throws JScriptParserException, JSbxException {
- this.GenerateCode(var1, false);
- }
-
- private void GenerateCode(JScriptCodeGenParam var1, boolean var2) throws JScriptParserException, JSbxException {
- int var3 = this.GetSubTermCount();
- if (this.bUsedForNew) {
- String var4 = null;
- if (var3 == 1) {
- JScriptParserSubTerm var5 = (JScriptParserSubTerm)this.aSubTermVector.Get(0);
- if (var5.GetNumberOfCallOrIndex() == 1 && var5.GetCallOrIndex(0) instanceof JScriptParserParamList) {
- var4 = var5.aIdentifier.aIdentifierName;
- }
- }
-
- var1.AddCode(new JSP_CreateObject(var4));
- }
-
- if (var3 == 1) {
- this.GetSubTerm(0).GenerateCode(var1, var2, false, this.bUsedForNew);
- } else {
- this.GetSubTerm(0).GenerateCode(var1, false, false, false);
-
- for(int var6 = 1; var6 < var3 - 1; ++var6) {
- this.GetSubTerm(var6).GenerateCode(var1, false, true, false);
- }
-
- this.GetLastSubTerm().GenerateCode(var1, var2, true, this.bUsedForNew);
- }
- }
-
- public void Show(PrintStream var1) {
- this.Show(var1, 0);
- }
-
- public void Show(PrintStream var1, int var2) {
- for(int var3 = 0; var3 < this.GetSubTermCount(); ++var3) {
- if (var3 > 0) {
- var1.print(".");
- }
-
- JScriptParserSubTerm var4 = (JScriptParserSubTerm)this.aSubTermVector.Get(var3);
- if (var4 != null && var4.aIdentifier != null) {
- var1.print(var4.aIdentifier.aIdentifierName);
- } else {
- var1.print("NULL");
- }
-
- for(int var5 = 0; var5 < var4.GetNumberOfCallOrIndex(); ++var5) {
- JSbxBase var6 = var4.GetCallOrIndex(var5);
- if (var6 instanceof JScriptParserExpression) {
- var1.print("[?]");
- }
-
- if (var6 instanceof JScriptParserParamList) {
- var1.print("(");
-
- for(int var7 = 0; var7 < ((JScriptParserParamList)var6).GetNumberOfParams(); ++var7) {
- if (var7 > 0) {
- var1.print(",");
- }
-
- var1.print("?");
- }
-
- var1.print(")");
- }
- }
- }
-
- }
- }
-