diff options
Diffstat (limited to 'src/org/jetbrains/java/decompiler/modules/decompiler/exps/Exprent.java')
-rw-r--r-- | src/org/jetbrains/java/decompiler/modules/decompiler/exps/Exprent.java | 233 |
1 files changed, 116 insertions, 117 deletions
diff --git a/src/org/jetbrains/java/decompiler/modules/decompiler/exps/Exprent.java b/src/org/jetbrains/java/decompiler/modules/decompiler/exps/Exprent.java index 6e15170..63b3a5f 100644 --- a/src/org/jetbrains/java/decompiler/modules/decompiler/exps/Exprent.java +++ b/src/org/jetbrains/java/decompiler/modules/decompiler/exps/Exprent.java @@ -1,134 +1,133 @@ /* - * Fernflower - The Analytical Java Decompiler - * http://www.reversed-java.com + * Copyright 2000-2014 JetBrains s.r.o. * - * (C) 2008 - 2010, Stiver + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * - * This software is NEITHER public domain NOR free software - * as per GNU License. See license.txt for more details. + * http://www.apache.org/licenses/LICENSE-2.0 * - * This software is distributed WITHOUT ANY WARRANTY; without - * even the implied warranty of MERCHANTABILITY or FITNESS FOR - * A PARTICULAR PURPOSE. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ - package org.jetbrains.java.decompiler.modules.decompiler.exps; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - import org.jetbrains.java.decompiler.main.DecompilerContext; import org.jetbrains.java.decompiler.main.collectors.CounterContainer; import org.jetbrains.java.decompiler.modules.decompiler.vars.CheckTypesResult; import org.jetbrains.java.decompiler.modules.decompiler.vars.VarVersionPaar; import org.jetbrains.java.decompiler.struct.gen.VarType; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; public class Exprent { - - public static final int MULTIPLE_USES = 1; - public static final int SIDE_EFFECTS_FREE = 2; - public static final int BOTH_FLAGS = 3; - - - public static final int EXPRENT_ARRAY = 1; - public static final int EXPRENT_ASSIGNMENT = 2; - public static final int EXPRENT_CONST = 3; - public static final int EXPRENT_EXIT = 4; - public static final int EXPRENT_FIELD = 5; - public static final int EXPRENT_FUNCTION = 6; - public static final int EXPRENT_IF = 7; - public static final int EXPRENT_INVOCATION = 8; - public static final int EXPRENT_MONITOR = 9; - public static final int EXPRENT_NEW = 10; - public static final int EXPRENT_SWITCH = 11; - public static final int EXPRENT_VAR = 12; - public static final int EXPRENT_ANNOTATION = 13; - public static final int EXPRENT_ASSERT = 14; - - public int type; - - public int id; - - { - // set exprent id - id = DecompilerContext.getCountercontainer().getCounterAndIncrement(CounterContainer.EXPRENT_COUNTER); - } - - public int getPrecedence() { - return 0; // the highest precedence - } - - public VarType getExprType() { - return VarType.VARTYPE_VOID; - } - - public int getExprentUse() { - return 0; - } - - public CheckTypesResult checkExprTypeBounds() { - return new CheckTypesResult(); - } - - public boolean containsExprent(Exprent exprent) { - - List<Exprent> listTemp = new ArrayList<Exprent>(getAllExprents(true)); - listTemp.add(this); - - for(Exprent lstexpr : listTemp) { - if(lstexpr.equals(exprent)) { - return true; - } - } - - return false; - } - - public List<Exprent> getAllExprents(boolean recursive) { - List<Exprent> lst = getAllExprents(); - - if(recursive) { - for(int i=lst.size()-1;i>=0;i--) { - lst.addAll(lst.get(i).getAllExprents(true)); - } - } - - return lst; - } - - public Set<VarVersionPaar> getAllVariables() { - - HashSet<VarVersionPaar> set = new HashSet<VarVersionPaar>(); - - List<Exprent> lstAllExprents = getAllExprents(true); - lstAllExprents.add(this); - - for(Exprent expr : lstAllExprents) { - if(expr.type == Exprent.EXPRENT_VAR) { - set.add(new VarVersionPaar((VarExprent)expr)); - } - } - - return set; - } - - public List<Exprent> getAllExprents() { - throw new RuntimeException("not implemented"); - } - - public Exprent copy() { - throw new RuntimeException("not implemented"); - } - - public String toJava(int indent) { - throw new RuntimeException("not implemented"); - } - - public void replaceExprent(Exprent oldexpr, Exprent newexpr) {} - - + + public static final int MULTIPLE_USES = 1; + public static final int SIDE_EFFECTS_FREE = 2; + public static final int BOTH_FLAGS = 3; + + + public static final int EXPRENT_ARRAY = 1; + public static final int EXPRENT_ASSIGNMENT = 2; + public static final int EXPRENT_CONST = 3; + public static final int EXPRENT_EXIT = 4; + public static final int EXPRENT_FIELD = 5; + public static final int EXPRENT_FUNCTION = 6; + public static final int EXPRENT_IF = 7; + public static final int EXPRENT_INVOCATION = 8; + public static final int EXPRENT_MONITOR = 9; + public static final int EXPRENT_NEW = 10; + public static final int EXPRENT_SWITCH = 11; + public static final int EXPRENT_VAR = 12; + public static final int EXPRENT_ANNOTATION = 13; + public static final int EXPRENT_ASSERT = 14; + + public int type; + + public int id; + + { + // set exprent id + id = DecompilerContext.getCountercontainer().getCounterAndIncrement(CounterContainer.EXPRENT_COUNTER); + } + + public int getPrecedence() { + return 0; // the highest precedence + } + + public VarType getExprType() { + return VarType.VARTYPE_VOID; + } + + public int getExprentUse() { + return 0; + } + + public CheckTypesResult checkExprTypeBounds() { + return new CheckTypesResult(); + } + + public boolean containsExprent(Exprent exprent) { + + List<Exprent> listTemp = new ArrayList<Exprent>(getAllExprents(true)); + listTemp.add(this); + + for (Exprent lstexpr : listTemp) { + if (lstexpr.equals(exprent)) { + return true; + } + } + + return false; + } + + public List<Exprent> getAllExprents(boolean recursive) { + List<Exprent> lst = getAllExprents(); + + if (recursive) { + for (int i = lst.size() - 1; i >= 0; i--) { + lst.addAll(lst.get(i).getAllExprents(true)); + } + } + + return lst; + } + + public Set<VarVersionPaar> getAllVariables() { + + HashSet<VarVersionPaar> set = new HashSet<VarVersionPaar>(); + + List<Exprent> lstAllExprents = getAllExprents(true); + lstAllExprents.add(this); + + for (Exprent expr : lstAllExprents) { + if (expr.type == Exprent.EXPRENT_VAR) { + set.add(new VarVersionPaar((VarExprent)expr)); + } + } + + return set; + } + + public List<Exprent> getAllExprents() { + throw new RuntimeException("not implemented"); + } + + public Exprent copy() { + throw new RuntimeException("not implemented"); + } + + public String toJava(int indent) { + throw new RuntimeException("not implemented"); + } + + public void replaceExprent(Exprent oldexpr, Exprent newexpr) { + } } |