home *** CD-ROM | disk | FTP | other *** search
- public class JScriptParserSubTerm extends JSbxBase {
- public JScriptParserIdentifier aIdentifier = null;
- public boolean bStartsAsExpression;
- public boolean bThis = false;
- public String aStaticStr = null;
- private JSbxVector aCallAndIndexVector = new JSbxVector(5);
-
- public void AddCall(JScriptParserParamList var1) throws JSbxException {
- this.aCallAndIndexVector.Add(var1);
- }
-
- public void AddIndex(JScriptParserExpression var1) throws JSbxException {
- this.aCallAndIndexVector.Add(var1);
- }
-
- public JSbxBase GetCallOrIndex(int var1) {
- return var1 >= this.aCallAndIndexVector.GetSize() ? null : (JSbxBase)this.aCallAndIndexVector.Get(var1);
- }
-
- public int GetNumberOfCallOrIndex() {
- return this.aCallAndIndexVector.GetSize();
- }
-
- public void GeneratePreCode(JScriptCodeGenParam var1) throws JScriptParserException, JSbxException {
- int var2 = this.GetNumberOfCallOrIndex() - 1;
-
- for(int var3 = 0; var3 <= var2; ++var3) {
- JSbxBase var4 = this.GetCallOrIndex(var3);
- if (var4 instanceof JScriptParserExpression) {
- ((JScriptParserExpression)var4).GeneratePreCode(var1);
- } else if (var4 instanceof JScriptParserParamList) {
- JScriptParserParamList var5 = (JScriptParserParamList)var4;
-
- for(int var6 = var5.GetNumberOfParams() - 1; var6 >= 0; --var6) {
- var5.GetExpression(var6).GeneratePreCode(var1);
- }
- }
- }
-
- }
-
- public void GeneratePostCode(JScriptCodeGenParam var1) throws JScriptParserException, JSbxException {
- int var2 = this.GetNumberOfCallOrIndex() - 1;
-
- for(int var3 = 0; var3 <= var2; ++var3) {
- JSbxBase var4 = this.GetCallOrIndex(var3);
- if (var4 instanceof JScriptParserExpression) {
- ((JScriptParserExpression)var4).GeneratePostCode(var1);
- } else if (var4 instanceof JScriptParserParamList) {
- JScriptParserParamList var5 = (JScriptParserParamList)var4;
-
- for(int var6 = var5.GetNumberOfParams() - 1; var6 >= 0; --var6) {
- var5.GetExpression(var6).GeneratePostCode(var1);
- }
- }
- }
-
- }
-
- public void GenerateCode(JScriptCodeGenParam var1, boolean var2, boolean var3, boolean var4) throws JScriptParserException, JSbxException {
- if (this.aIdentifier != null) {
- if (this.GetNumberOfCallOrIndex() > 0) {
- this.aIdentifier.GenerateCode(var1, false, var3);
- } else {
- this.aIdentifier.GenerateCode(var1, var2, var3);
- }
- } else if (this.bThis) {
- var1.AddCode(new JSP_PushThis());
- } else if (this.aStaticStr != null) {
- var1.AddCode(new JSP_StringConst(this.aStaticStr));
- } else if (!this.bStartsAsExpression) {
- throw new JScriptParserException(999, "FATAL SubTerm.GenerateCode: Kein Identifier");
- }
-
- int var5 = this.GetNumberOfCallOrIndex() - 1;
-
- for(int var6 = 0; var6 <= var5; ++var6) {
- JSbxBase var7 = this.GetCallOrIndex(var6);
- if (var7 instanceof JScriptParserExpression) {
- ((JScriptParserExpression)var7).GenerateMainCode(var1);
- if (var2 && var6 == var5) {
- var1.AddCode(new JSP_StoreInIndex());
- } else {
- var1.AddCode(new JSP_Index());
- }
- } else if (var7 instanceof JScriptParserParamList) {
- JScriptParserParamList var8 = (JScriptParserParamList)var7;
-
- for(int var9 = var8.GetNumberOfParams() - 1; var9 >= 0; --var9) {
- var8.GetExpression(var9).GenerateMainCode(var1);
- }
-
- var1.AddCode(new JSP_Call(((JScriptParserParamList)var7).GetNumberOfParams(), var4));
- }
- }
-
- }
- }
-