mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/jpexs-decompiler.git
synced 2026-09-25 09:20:47 +00:00
Direct AS1/2 editing - Increment/Decrement fix after issue #304 changes
This commit is contained in:
@@ -18,6 +18,7 @@ package com.jpexs.decompiler.flash.action.model;
|
||||
|
||||
import com.jpexs.decompiler.flash.SourceGeneratorLocalData;
|
||||
import com.jpexs.decompiler.flash.action.model.operations.SubtractActionItem;
|
||||
import com.jpexs.decompiler.flash.action.parser.script.VariableActionItem;
|
||||
import com.jpexs.decompiler.flash.action.swf4.ActionPop;
|
||||
import com.jpexs.decompiler.flash.action.swf4.ActionPush;
|
||||
import com.jpexs.decompiler.flash.action.swf4.ActionSetProperty;
|
||||
@@ -91,28 +92,33 @@ public class PostDecrementActionItem extends ActionItem implements SetTypeAction
|
||||
public List<GraphSourceItem> toSourceIgnoreReturnValue(SourceGeneratorLocalData localData, SourceGenerator generator) {
|
||||
List<GraphSourceItem> ret = new ArrayList<>();
|
||||
|
||||
if (object instanceof GetVariableActionItem) {
|
||||
GetVariableActionItem gv = (GetVariableActionItem) object;
|
||||
GraphTargetItem val = object;
|
||||
if (val instanceof VariableActionItem) {
|
||||
val = ((VariableActionItem) val).getBoxedValue();
|
||||
}
|
||||
|
||||
if (val instanceof GetVariableActionItem) {
|
||||
GetVariableActionItem gv = (GetVariableActionItem) val;
|
||||
ret.addAll(gv.toSource(localData, generator));
|
||||
ret.remove(ret.size() - 1); //ActionGetVariable
|
||||
ret.addAll(gv.toSource(localData, generator));
|
||||
ret.add(new ActionDecrement());
|
||||
ret.add(new ActionSetVariable());
|
||||
} else if (object instanceof GetMemberActionItem) {
|
||||
GetMemberActionItem mem = (GetMemberActionItem) object;
|
||||
} else if (val instanceof GetMemberActionItem) {
|
||||
GetMemberActionItem mem = (GetMemberActionItem) val;
|
||||
ret.addAll(mem.toSource(localData, generator));
|
||||
ret.remove(ret.size() - 1); //ActionGetMember
|
||||
ret.addAll(mem.toSource(localData, generator));
|
||||
ret.add(new ActionDecrement());
|
||||
ret.add(new ActionSetMember());
|
||||
} else if ((object instanceof DirectValueActionItem) && ((DirectValueActionItem) object).value instanceof RegisterNumber) {
|
||||
RegisterNumber rn = (RegisterNumber) ((DirectValueActionItem) object).value;
|
||||
} else if ((val instanceof DirectValueActionItem) && ((DirectValueActionItem) val).value instanceof RegisterNumber) {
|
||||
RegisterNumber rn = (RegisterNumber) ((DirectValueActionItem) val).value;
|
||||
ret.add(new ActionPush(new RegisterNumber(rn.number)));
|
||||
ret.add(new ActionDecrement());
|
||||
ret.add(new ActionStoreRegister(rn.number));
|
||||
ret.add(new ActionPop());
|
||||
} else if (object instanceof GetPropertyActionItem) {
|
||||
GetPropertyActionItem gp = (GetPropertyActionItem) object;
|
||||
} else if (val instanceof GetPropertyActionItem) {
|
||||
GetPropertyActionItem gp = (GetPropertyActionItem) val;
|
||||
ret.addAll(gp.toSource(localData, generator));
|
||||
ret.remove(ret.size() - 1);
|
||||
ret.addAll(gp.toSource(localData, generator));
|
||||
|
||||
@@ -18,6 +18,7 @@ package com.jpexs.decompiler.flash.action.model;
|
||||
|
||||
import com.jpexs.decompiler.flash.SourceGeneratorLocalData;
|
||||
import com.jpexs.decompiler.flash.action.model.operations.AddActionItem;
|
||||
import com.jpexs.decompiler.flash.action.parser.script.VariableActionItem;
|
||||
import com.jpexs.decompiler.flash.action.swf4.ActionPop;
|
||||
import com.jpexs.decompiler.flash.action.swf4.ActionPush;
|
||||
import com.jpexs.decompiler.flash.action.swf4.ActionSetProperty;
|
||||
@@ -91,28 +92,33 @@ public class PostIncrementActionItem extends ActionItem implements SetTypeAction
|
||||
public List<GraphSourceItem> toSourceIgnoreReturnValue(SourceGeneratorLocalData localData, SourceGenerator generator) {
|
||||
List<GraphSourceItem> ret = new ArrayList<>();
|
||||
|
||||
if (object instanceof GetVariableActionItem) {
|
||||
GetVariableActionItem gv = (GetVariableActionItem) object;
|
||||
GraphTargetItem val = object;
|
||||
if (val instanceof VariableActionItem) {
|
||||
val = ((VariableActionItem) val).getBoxedValue();
|
||||
}
|
||||
|
||||
if (val instanceof GetVariableActionItem) {
|
||||
GetVariableActionItem gv = (GetVariableActionItem) val;
|
||||
ret.addAll(gv.toSource(localData, generator));
|
||||
ret.remove(ret.size() - 1); //ActionGetVariable
|
||||
ret.addAll(gv.toSource(localData, generator));
|
||||
ret.add(new ActionIncrement());
|
||||
ret.add(new ActionSetVariable());
|
||||
} else if (object instanceof GetMemberActionItem) {
|
||||
GetMemberActionItem mem = (GetMemberActionItem) object;
|
||||
} else if (val instanceof GetMemberActionItem) {
|
||||
GetMemberActionItem mem = (GetMemberActionItem) val;
|
||||
ret.addAll(mem.toSource(localData, generator));
|
||||
ret.remove(ret.size() - 1); //ActionGetMember
|
||||
ret.addAll(mem.toSource(localData, generator));
|
||||
ret.add(new ActionIncrement());
|
||||
ret.add(new ActionSetMember());
|
||||
} else if ((object instanceof DirectValueActionItem) && ((DirectValueActionItem) object).value instanceof RegisterNumber) {
|
||||
RegisterNumber rn = (RegisterNumber) ((DirectValueActionItem) object).value;
|
||||
} else if ((val instanceof DirectValueActionItem) && ((DirectValueActionItem) val).value instanceof RegisterNumber) {
|
||||
RegisterNumber rn = (RegisterNumber) ((DirectValueActionItem) val).value;
|
||||
ret.add(new ActionPush(new RegisterNumber(rn.number)));
|
||||
ret.add(new ActionIncrement());
|
||||
ret.add(new ActionStoreRegister(rn.number));
|
||||
ret.add(new ActionPop());
|
||||
} else if (object instanceof GetPropertyActionItem) {
|
||||
GetPropertyActionItem gp = (GetPropertyActionItem) object;
|
||||
} else if (val instanceof GetPropertyActionItem) {
|
||||
GetPropertyActionItem gp = (GetPropertyActionItem) val;
|
||||
ret.addAll(gp.toSource(localData, generator));
|
||||
ret.remove(ret.size() - 1);
|
||||
ret.addAll(gp.toSource(localData, generator));
|
||||
|
||||
@@ -18,6 +18,7 @@ package com.jpexs.decompiler.flash.action.model;
|
||||
|
||||
import com.jpexs.decompiler.flash.SourceGeneratorLocalData;
|
||||
import com.jpexs.decompiler.flash.action.parser.script.ActionSourceGenerator;
|
||||
import com.jpexs.decompiler.flash.action.parser.script.VariableActionItem;
|
||||
import com.jpexs.decompiler.flash.action.swf4.ActionPush;
|
||||
import com.jpexs.decompiler.flash.action.swf4.ActionSetVariable;
|
||||
import com.jpexs.decompiler.flash.action.swf4.RegisterNumber;
|
||||
@@ -71,7 +72,7 @@ public class SetVariableActionItem extends ActionItem implements SetTypeActionIt
|
||||
|
||||
@Override
|
||||
public GraphTextWriter appendTo(GraphTextWriter writer, LocalData localData) throws InterruptedException {
|
||||
if (name instanceof DirectValueActionItem || name instanceof GetVariableActionItem) {
|
||||
if (name instanceof DirectValueActionItem || name instanceof VariableActionItem) {
|
||||
stripQuotes(name, localData, writer);
|
||||
writer.append(" = ");
|
||||
return value.toString(writer, localData);
|
||||
|
||||
@@ -19,13 +19,11 @@ package com.jpexs.decompiler.flash.action.model.clauses;
|
||||
import com.jpexs.decompiler.flash.SourceGeneratorLocalData;
|
||||
import com.jpexs.decompiler.flash.action.Action;
|
||||
import com.jpexs.decompiler.flash.action.model.ActionItem;
|
||||
import com.jpexs.decompiler.flash.action.model.DirectValueActionItem;
|
||||
import com.jpexs.decompiler.flash.action.model.FunctionActionItem;
|
||||
import com.jpexs.decompiler.flash.action.model.GetMemberActionItem;
|
||||
import com.jpexs.decompiler.flash.action.model.GetVariableActionItem;
|
||||
import com.jpexs.decompiler.flash.action.model.SetMemberActionItem;
|
||||
import com.jpexs.decompiler.flash.action.parser.script.ActionSourceGenerator;
|
||||
import com.jpexs.decompiler.flash.action.swf4.RegisterNumber;
|
||||
import com.jpexs.decompiler.flash.action.parser.script.VariableActionItem;
|
||||
import com.jpexs.decompiler.flash.helpers.GraphTextWriter;
|
||||
import com.jpexs.decompiler.flash.helpers.collections.MyEntry;
|
||||
import com.jpexs.decompiler.graph.Block;
|
||||
@@ -97,23 +95,8 @@ public class ClassActionItem extends ActionItem implements Block {
|
||||
}
|
||||
|
||||
private boolean isThis(GraphTargetItem item) {
|
||||
if (item instanceof DirectValueActionItem) {
|
||||
DirectValueActionItem di = (DirectValueActionItem) item;
|
||||
if (di.value instanceof RegisterNumber) {
|
||||
RegisterNumber rn = (RegisterNumber) di.value;
|
||||
if ("this".equals(rn.name)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (item instanceof GetVariableActionItem) {
|
||||
GetVariableActionItem gv = (GetVariableActionItem) item;
|
||||
if (gv.name instanceof DirectValueActionItem) {
|
||||
DirectValueActionItem di = (DirectValueActionItem) gv.name;
|
||||
if ("this".equals(di.toStringNoH(null))) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if (item instanceof VariableActionItem) {
|
||||
return "this".equals(((VariableActionItem) item).getVariableName());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -140,7 +140,7 @@ public class ForInActionItem extends LoopActionItem implements Block {
|
||||
loopExpr.add(forInEndIf);
|
||||
List<Action> loopBody = new ArrayList<>();
|
||||
loopBody.add(new ActionPush(new RegisterNumber(exprReg)));
|
||||
if (asGenerator.isInFunction(localData)==2) {
|
||||
if (asGenerator.isInFunction(localData) == 2) {
|
||||
loopBody.add(new ActionStoreRegister(innerExprReg));
|
||||
loopBody.add(new ActionPop());
|
||||
} else {
|
||||
|
||||
+13
-9
@@ -22,6 +22,7 @@ import com.jpexs.decompiler.flash.action.model.GetMemberActionItem;
|
||||
import com.jpexs.decompiler.flash.action.model.GetPropertyActionItem;
|
||||
import com.jpexs.decompiler.flash.action.model.GetVariableActionItem;
|
||||
import com.jpexs.decompiler.flash.action.parser.script.ActionSourceGenerator;
|
||||
import com.jpexs.decompiler.flash.action.parser.script.VariableActionItem;
|
||||
import com.jpexs.decompiler.flash.action.swf4.ActionPush;
|
||||
import com.jpexs.decompiler.flash.action.swf4.ActionSetProperty;
|
||||
import com.jpexs.decompiler.flash.action.swf4.ActionSetVariable;
|
||||
@@ -52,9 +53,12 @@ public class PreDecrementActionItem extends UnaryOpItem {
|
||||
public List<GraphSourceItem> toSource(SourceGeneratorLocalData localData, SourceGenerator generator) {
|
||||
ActionSourceGenerator asGenerator = (ActionSourceGenerator) generator;
|
||||
List<GraphSourceItem> ret = new ArrayList<>();
|
||||
|
||||
if (value instanceof GetVariableActionItem) {
|
||||
GetVariableActionItem gv = (GetVariableActionItem) value;
|
||||
GraphTargetItem val = value;
|
||||
if (val instanceof VariableActionItem) {
|
||||
val = ((VariableActionItem) val).getBoxedValue();
|
||||
}
|
||||
if (val instanceof GetVariableActionItem) {
|
||||
GetVariableActionItem gv = (GetVariableActionItem) val;
|
||||
ret.addAll(gv.toSource(localData, generator));
|
||||
ret.remove(ret.size() - 1); //ActionGetVariable
|
||||
ret.addAll(gv.toSource(localData, generator));
|
||||
@@ -63,8 +67,8 @@ public class PreDecrementActionItem extends UnaryOpItem {
|
||||
ret.add(new ActionStoreRegister(tmpReg));
|
||||
ret.add(new ActionSetVariable());
|
||||
ret.add(new ActionPush(new RegisterNumber(tmpReg)));
|
||||
} else if (value instanceof GetMemberActionItem) {
|
||||
GetMemberActionItem mem = (GetMemberActionItem) value;
|
||||
} else if (val instanceof GetMemberActionItem) {
|
||||
GetMemberActionItem mem = (GetMemberActionItem) val;
|
||||
ret.addAll(mem.toSource(localData, generator));
|
||||
ret.remove(ret.size() - 1); //ActionGetMember
|
||||
ret.addAll(mem.toSource(localData, generator));
|
||||
@@ -73,13 +77,13 @@ public class PreDecrementActionItem extends UnaryOpItem {
|
||||
ret.add(new ActionStoreRegister(tmpReg));
|
||||
ret.add(new ActionSetMember());
|
||||
ret.add(new ActionPush(new RegisterNumber(tmpReg)));
|
||||
} else if ((value instanceof DirectValueActionItem) && ((DirectValueActionItem) value).value instanceof RegisterNumber) {
|
||||
RegisterNumber rn = (RegisterNumber) ((DirectValueActionItem) value).value;
|
||||
} else if ((val instanceof DirectValueActionItem) && ((DirectValueActionItem) val).value instanceof RegisterNumber) {
|
||||
RegisterNumber rn = (RegisterNumber) ((DirectValueActionItem) val).value;
|
||||
ret.add(new ActionPush(new RegisterNumber(rn.number)));
|
||||
ret.add(new ActionDecrement());
|
||||
ret.add(new ActionStoreRegister(rn.number));
|
||||
} else if (value instanceof GetPropertyActionItem) {
|
||||
GetPropertyActionItem gp = (GetPropertyActionItem) value;
|
||||
} else if (val instanceof GetPropertyActionItem) {
|
||||
GetPropertyActionItem gp = (GetPropertyActionItem) val;
|
||||
ret.addAll(gp.toSource(localData, generator)); // old value
|
||||
ret.addAll(gp.toSource(localData, generator));
|
||||
ret.remove(ret.size() - 1);
|
||||
|
||||
+13
-9
@@ -22,6 +22,7 @@ import com.jpexs.decompiler.flash.action.model.GetMemberActionItem;
|
||||
import com.jpexs.decompiler.flash.action.model.GetPropertyActionItem;
|
||||
import com.jpexs.decompiler.flash.action.model.GetVariableActionItem;
|
||||
import com.jpexs.decompiler.flash.action.parser.script.ActionSourceGenerator;
|
||||
import com.jpexs.decompiler.flash.action.parser.script.VariableActionItem;
|
||||
import com.jpexs.decompiler.flash.action.swf4.ActionPush;
|
||||
import com.jpexs.decompiler.flash.action.swf4.ActionSetProperty;
|
||||
import com.jpexs.decompiler.flash.action.swf4.ActionSetVariable;
|
||||
@@ -52,9 +53,12 @@ public class PreIncrementActionItem extends UnaryOpItem {
|
||||
public List<GraphSourceItem> toSource(SourceGeneratorLocalData localData, SourceGenerator generator) {
|
||||
ActionSourceGenerator asGenerator = (ActionSourceGenerator) generator;
|
||||
List<GraphSourceItem> ret = new ArrayList<>();
|
||||
|
||||
if (value instanceof GetVariableActionItem) {
|
||||
GetVariableActionItem gv = (GetVariableActionItem) value;
|
||||
GraphTargetItem val = value;
|
||||
if (val instanceof VariableActionItem) {
|
||||
val = ((VariableActionItem) val).getBoxedValue();
|
||||
}
|
||||
if (val instanceof GetVariableActionItem) {
|
||||
GetVariableActionItem gv = (GetVariableActionItem) val;
|
||||
ret.addAll(gv.toSource(localData, generator));
|
||||
ret.remove(ret.size() - 1); //ActionGetVariable
|
||||
ret.addAll(gv.toSource(localData, generator));
|
||||
@@ -63,8 +67,8 @@ public class PreIncrementActionItem extends UnaryOpItem {
|
||||
ret.add(new ActionStoreRegister(tmpReg));
|
||||
ret.add(new ActionSetVariable());
|
||||
ret.add(new ActionPush(new RegisterNumber(tmpReg)));
|
||||
} else if (value instanceof GetMemberActionItem) {
|
||||
GetMemberActionItem mem = (GetMemberActionItem) value;
|
||||
} else if (val instanceof GetMemberActionItem) {
|
||||
GetMemberActionItem mem = (GetMemberActionItem) val;
|
||||
ret.addAll(mem.toSource(localData, generator));
|
||||
ret.remove(ret.size() - 1); //ActionGetMember
|
||||
ret.addAll(mem.toSource(localData, generator));
|
||||
@@ -73,13 +77,13 @@ public class PreIncrementActionItem extends UnaryOpItem {
|
||||
ret.add(new ActionStoreRegister(tmpReg));
|
||||
ret.add(new ActionSetMember());
|
||||
ret.add(new ActionPush(new RegisterNumber(tmpReg)));
|
||||
} else if ((value instanceof DirectValueActionItem) && ((DirectValueActionItem) value).value instanceof RegisterNumber) {
|
||||
RegisterNumber rn = (RegisterNumber) ((DirectValueActionItem) value).value;
|
||||
} else if ((val instanceof DirectValueActionItem) && ((DirectValueActionItem) val).value instanceof RegisterNumber) {
|
||||
RegisterNumber rn = (RegisterNumber) ((DirectValueActionItem) val).value;
|
||||
ret.add(new ActionPush(new RegisterNumber(rn.number)));
|
||||
ret.add(new ActionIncrement());
|
||||
ret.add(new ActionStoreRegister(rn.number));
|
||||
} else if (value instanceof GetPropertyActionItem) {
|
||||
GetPropertyActionItem gp = (GetPropertyActionItem) value;
|
||||
} else if (val instanceof GetPropertyActionItem) {
|
||||
GetPropertyActionItem gp = (GetPropertyActionItem) val;
|
||||
ret.addAll(gp.toSource(localData, generator)); // old value
|
||||
ret.addAll(gp.toSource(localData, generator));
|
||||
ret.remove(ret.size() - 1);
|
||||
|
||||
@@ -1194,6 +1194,7 @@ public final class ActionScriptLexer {
|
||||
|
||||
/**
|
||||
* Closes the input stream.
|
||||
*
|
||||
* @throws java.io.IOException
|
||||
*/
|
||||
public final void yyclose() throws java.io.IOException {
|
||||
@@ -1229,7 +1230,8 @@ public final class ActionScriptLexer {
|
||||
|
||||
/**
|
||||
* Returns the current lexical state.
|
||||
* @return
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public final int yystate() {
|
||||
return zzLexicalState;
|
||||
@@ -1246,7 +1248,8 @@ public final class ActionScriptLexer {
|
||||
|
||||
/**
|
||||
* Returns the text matched by the current regular expression.
|
||||
* @return
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public final String yytext() {
|
||||
return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead);
|
||||
@@ -1268,7 +1271,8 @@ public final class ActionScriptLexer {
|
||||
|
||||
/**
|
||||
* Returns the length of the matched text region.
|
||||
* @return
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public final int yylength() {
|
||||
return zzMarkedPos - zzStartRead;
|
||||
|
||||
@@ -141,12 +141,6 @@ import java.util.List;
|
||||
*/
|
||||
public class ActionScriptParser {
|
||||
|
||||
public static final int REGISTER_THIS = 1;
|
||||
public static final int REGISTER_ARGUMENTS = 2;
|
||||
public static final int REGISTER_SUPER = 3;
|
||||
public static final int REGISTER_ROOT = 4;
|
||||
public static final int REGISTER_PARENT = 5;
|
||||
public static final int REGISTER_GLOBAL = 6;
|
||||
private long uniqLast = 0;
|
||||
private final boolean debugMode = false;
|
||||
|
||||
@@ -335,22 +329,12 @@ public class ActionScriptParser {
|
||||
expected(s, lexer.yyline(), SymbolType.COMMA, SymbolType.PARENT_CLOSE);
|
||||
}
|
||||
}
|
||||
HashMap<String, Integer> registerVars = new HashMap<>();
|
||||
registerVars.put("_parent", REGISTER_PARENT);
|
||||
registerVars.put("_root", REGISTER_ROOT);
|
||||
registerVars.put("super", REGISTER_SUPER);
|
||||
registerVars.put("arguments", REGISTER_ARGUMENTS);
|
||||
registerVars.put("this", REGISTER_THIS);
|
||||
registerVars.put("_global", REGISTER_GLOBAL);
|
||||
for (int i = 0; i < paramNames.size(); i++) {
|
||||
registerVars.put(paramNames.get(i), (7 + i)); //(paramNames.size() - i)));
|
||||
}
|
||||
List<GraphTargetItem> body = null;
|
||||
List<VariableActionItem> subvariables = new ArrayList<>();
|
||||
if (withBody) {
|
||||
expectedType(SymbolType.CURLY_OPEN);
|
||||
|
||||
body = commands(registerVars, true, isMethod, 0, subvariables);
|
||||
body = commands(new HashMap<String, Integer>(), true, isMethod, 0, subvariables);
|
||||
expectedType(SymbolType.CURLY_CLOSE);
|
||||
}
|
||||
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.jpexs.decompiler.flash.action.parser.script;
|
||||
|
||||
import com.jpexs.decompiler.flash.SourceGeneratorLocalData;
|
||||
@@ -34,23 +33,20 @@ import java.util.List;
|
||||
public class VariableActionItem extends ActionItem {
|
||||
|
||||
private ActionItem it;
|
||||
|
||||
private final String variableName;
|
||||
|
||||
private final String variableName;
|
||||
private GraphTargetItem storeValue;
|
||||
private final boolean definition;
|
||||
|
||||
public void setStoreValue(GraphTargetItem storeValue) {
|
||||
this.storeValue = storeValue;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public String getVariableName(){
|
||||
|
||||
public String getVariableName() {
|
||||
return variableName;
|
||||
}
|
||||
|
||||
|
||||
public VariableActionItem(String variableName, GraphTargetItem storeValue, boolean definition){
|
||||
|
||||
public VariableActionItem(String variableName, GraphTargetItem storeValue, boolean definition) {
|
||||
this.variableName = variableName;
|
||||
this.storeValue = storeValue;
|
||||
this.definition = definition;
|
||||
@@ -59,8 +55,6 @@ public class VariableActionItem extends ActionItem {
|
||||
public boolean isDefinition() {
|
||||
return definition;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void setBoxedValue(ActionItem it) {
|
||||
this.it = it;
|
||||
@@ -74,57 +68,45 @@ public class VariableActionItem extends ActionItem {
|
||||
return storeValue;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public GraphTextWriter appendTo(GraphTextWriter writer, LocalData localData) throws InterruptedException {
|
||||
if(it == null){
|
||||
if (it == null) {
|
||||
return writer;
|
||||
}
|
||||
return it.appendTo(writer, localData);
|
||||
return it.appendTo(writer, localData);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<GraphSourceItem> toSource(SourceGeneratorLocalData localData, SourceGenerator generator) {
|
||||
if(it==null){
|
||||
if (it == null) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
}
|
||||
return it.toSource(localData, generator);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<GraphSourceItem> toSourceIgnoreReturnValue(SourceGeneratorLocalData localData, SourceGenerator generator) {
|
||||
if(it==null){
|
||||
if (it == null) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
}
|
||||
return it.toSourceIgnoreReturnValue(localData, generator);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public boolean hasReturnValue() {
|
||||
if(it==null){
|
||||
if (it == null) {
|
||||
return false;
|
||||
}else{
|
||||
} else {
|
||||
return it.hasReturnValue();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean needsSemicolon() {
|
||||
if(it==null){
|
||||
if (it == null) {
|
||||
return super.needsSemicolon();
|
||||
}
|
||||
return it.needsSemicolon();
|
||||
return it.needsSemicolon();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user