org.extendj.ast.ASTNode Maven / Gradle / Ivy
/* This file was generated with JastAdd2 (http://jastadd.org) version 2.3.0 */
package org.extendj.ast;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.ArrayList;
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.*;
import java.util.zip.*;
import java.io.*;
import org.jastadd.util.PrettyPrintable;
import org.jastadd.util.PrettyPrinter;
import org.jastadd.util.*;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.io.IOException;
import java.util.Set;
import beaver.*;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentSkipListMap;
import java.io.BufferedInputStream;
import java.io.DataInputStream;
/**
* @ast node
* @astdecl ASTNode;
* @production ASTNode;
*/
public class ASTNode extends beaver.Symbol implements Cloneable, PrettyPrintable {
/**
* @aspect DumpTree
* @declaredat /home/jesper/git/extendj/java4/frontend/DumpTree.jadd:38
*/
private String DUMP_TREE_INDENT = " ";
/**
* @aspect DumpTree
* @declaredat /home/jesper/git/extendj/java4/frontend/DumpTree.jadd:40
*/
public String dumpTree() {
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
dumpTree(new PrintStream(bytes));
return bytes.toString();
}
/**
* @aspect DumpTree
* @declaredat /home/jesper/git/extendj/java4/frontend/DumpTree.jadd:46
*/
public void dumpTree(PrintStream out) {
dumpTree(out, "");
out.flush();
}
/**
* @aspect DumpTree
* @declaredat /home/jesper/git/extendj/java4/frontend/DumpTree.jadd:51
*/
public void dumpTree(PrintStream out, String indent) {
out.print(indent + getClass().getSimpleName());
out.println(getTokens());
String childIndent = indent + DUMP_TREE_INDENT;
for (int i = 0; i < getNumChild(); ++i) {
ASTNode child = getChild(i);
if (child == null) {
out.println(childIndent + "null");
} else {
child.dumpTree(out, childIndent);
}
}
}
/**
* Builds a string representation of the tokens of this AST node.
*
* Only used for debug tree dumping.
* @aspect DumpTree
* @declaredat /home/jesper/git/extendj/java4/frontend/DumpTree.jadd:70
*/
public String getTokens() {
StringBuilder sb = new StringBuilder();
Method[] methods = getClass().getMethods();
for (Method method : getClass().getMethods()) {
ASTNodeAnnotation.Token token = method.getAnnotation(ASTNodeAnnotation.Token.class);
if (token != null) {
try {
sb.append(" " + token.name() + "=\"" + method.invoke(this) + "\"");
} catch (IllegalAccessException e) {
} catch (InvocationTargetException e) {
}
}
}
return sb.toString();
}
/**
* @aspect DumpTree
* @declaredat /home/jesper/git/extendj/java4/frontend/DumpTree.jadd:86
*/
public String dumpTreeNoRewrite() {
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
dumpTreeNoRewrite(new PrintStream(bytes));
return bytes.toString();
}
/**
* @aspect DumpTree
* @declaredat /home/jesper/git/extendj/java4/frontend/DumpTree.jadd:92
*/
public void dumpTreeNoRewrite(PrintStream out) {
dumpTreeNoRewrite(out, "");
out.flush();
}
/**
* @aspect DumpTree
* @declaredat /home/jesper/git/extendj/java4/frontend/DumpTree.jadd:97
*/
public void dumpTreeNoRewrite(PrintStream out, String indent) {
out.print(indent + getClass().getSimpleName());
out.println(getTokens());
String childIndent = indent + DUMP_TREE_INDENT;
for (int i = 0; i < getNumChildNoTransform(); ++i) {
ASTNode child = getChildNoTransform(i);
if (child == null) {
out.println(childIndent + "null");
} else {
child.dumpTreeNoRewrite(out, childIndent);
}
}
}
/**
* @aspect StructuredPrettyPrint
* @declaredat /home/jesper/git/extendj/java4/frontend/StructuredPrettyPrint.jadd:32
*/
public String structuredPrettyPrint() throws IOException {
ByteArrayOutputStream out = new ByteArrayOutputStream();
// First, transform the tree by wrapping all expressions in ParExpr.
wrapExprs();
prettyPrint(new PrintStream(out, false, "UTF8"));
return out.toString().trim();
}
/**
* Hacky way of inserting parens around all expressions.
* @aspect StructuredPrettyPrint
* @declaredat /home/jesper/git/extendj/java4/frontend/StructuredPrettyPrint.jadd:43
*/
private void wrapExprs() {
for (int i = 0; i < getNumChildNoTransform(); ++i) {
ASTNode child = getChildNoTransform(i);
if (child instanceof Expr
&& !(child instanceof ParExpr)
&& !(child instanceof Access)
&& !(child instanceof Literal)) {
child.setParent(null);
ParExpr parExpr = new ParExpr((Expr) child);
setChild(parExpr, i);
}
child.wrapExprs();
}
}
/**
* Helper method to throw an error when prevExpr is evaluated somewhere where
* the attribute can not be evaluated.
* @aspect QualifiedNames
* @declaredat /home/jesper/git/extendj/java4/frontend/ResolveAmbiguousNames.jrag:138
*/
protected Expr prevExprError() {
throw new Error("prevExpr can not be evaluated outside of the right side of a Dot access.");
}
/**
* Helper method to throw an error when nextAccess is evaluated somewhere
* where the attribute can not be evaluated.
* @aspect QualifiedNames
* @declaredat /home/jesper/git/extendj/java4/frontend/ResolveAmbiguousNames.jrag:160
*/
protected Access nextAccessError() {
throw new Error("nextAccess can not be evaluated outside of the left side of a Dot access.");
}
/**
* Converts a null SimpleSet to an empty set.
* If the passed SimpleSet is not null, the input set is returned.
* @aspect TypeScopePropagation
* @declaredat /home/jesper/git/extendj/java4/frontend/LookupType.jrag:345
*/
public static > SimpleSet toSet(T set) {
if (set != null) {
return set;
} else {
return emptySet();
}
}
/**
* @aspect NameCheck
* @declaredat /home/jesper/git/extendj/java4/frontend/NameCheck.jrag:33
*/
public TypeDecl extractSingleType(SimpleSet types) {
return types.isSingleton() ? types.singletonValue() : null;
}
/**
* @aspect DataStructures
* @declaredat /home/jesper/git/extendj/java4/frontend/DataStructures.jrag:312
*/
public static SimpleSet emptySet() {
return (SimpleSet) SimpleSet.EMPTY_SET;
}
/**
* @aspect VariableDeclarationTransformation
* @declaredat /home/jesper/git/extendj/java4/frontend/VariableDeclaration.jrag:121
*/
public void clearLocations() {
setStart(0);
setEnd(0);
for (int i = 0; i < getNumChildNoTransform(); i++) {
getChildNoTransform(i).clearLocations();
}
}
/**
* Pretty-print this ASTNode.
* @return pretty-printed representation of this AST node
* @aspect PrettyPrintUtil
* @declaredat /home/jesper/git/extendj/java4/frontend/PrettyPrintUtil.jrag:41
*/
public String prettyPrint() {
ByteArrayOutputStream buf = new ByteArrayOutputStream();
prettyPrint(new PrettyPrinter(" ", new PrintStream(buf)));
return buf.toString();
}
/**
* Pretty print this AST node to the target PrintStream.
* @param out target for pretty printing
* @aspect PrettyPrintUtil
* @declaredat /home/jesper/git/extendj/java4/frontend/PrettyPrintUtil.jrag:51
*/
public void prettyPrint(PrintStream out) {
prettyPrint(new PrettyPrinter(" ", out));
}
/** @return the name of the class implementing this AST node.
* @aspect PrettyPrintUtil
* @declaredat /home/jesper/git/extendj/java4/frontend/PrettyPrintUtil.jrag:56
*/
@Override public String toString() {
return getClass().getName();
}
/**
* @aspect PrettyPrintUtil
* @declaredat /home/jesper/git/extendj/java4/frontend/PrettyPrintUtil.jrag:91
*/
public void prettyPrint(PrettyPrinter out) {
}
/**
* @param catchType test if this expression/statement throws an exception
* catchable as this type
* @return {@code true} if this expression/statement can throw an exception
* that is catchable as the given exception type.
* @aspect ExceptionHandling
* @declaredat /home/jesper/git/extendj/java4/frontend/ExceptionHandling.jrag:298
*/
protected boolean reachedException(TypeDecl catchType) {
for (int i = 0; i < getNumChild(); i++) {
if (getChild(i).reachedException(catchType)) {
return true;
}
}
return false;
}
/**
* @aspect PrimitiveTypes
* @declaredat /home/jesper/git/extendj/java4/frontend/PrimitiveTypes.jrag:35
*/
protected static final String PRIMITIVE_PACKAGE_NAME = "@primitive";
/**
* Finds all exceptions thrown in this part of the AST.
* @aspect AnonymousClasses
* @declaredat /home/jesper/git/extendj/java4/frontend/AnonymousClasses.jrag:127
*/
protected void collectExceptions(Collection exceptions) {
for (int i = 0; i < getNumChild(); i++) {
getChild(i).collectExceptions(exceptions);
}
}
/** @return a copy of the block as an NTAFinallyBlock.
* @aspect NTAFinally
* @declaredat /home/jesper/git/extendj/java4/frontend/NTAFinally.jrag:33
*/
protected static NTAFinallyBlock ntaFinallyBlock(FinallyHost origin,
Stmt branch, Block block) {
NTAFinallyBlock ntaBlock = new NTAFinallyBlock(origin);
ntaBlock.addStmt((Block) block.treeCopyNoTransform());
if (block.canCompleteNormally()) {
FinallyHost enclosing = block.enclosingFinally(branch);
if (enclosing != null) {
ntaBlock.addStmt(ntaFinallyBlock(enclosing, branch, enclosing.getFinallyBlock()));
}
}
return ntaBlock;
}
/**
* @aspect ErrorCheck
* @declaredat /home/jesper/git/extendj/java4/frontend/ErrorCheck.jrag:34
*/
protected String sourceFile() {
ASTNode node = this;
while (node != null && !(node instanceof CompilationUnit)) {
node = node.getParent();
}
if (node == null) {
return "Unknown file";
}
CompilationUnit u = (CompilationUnit) node;
return u.relativeName();
}
/**
* @aspect ErrorCheck
* @declaredat /home/jesper/git/extendj/java4/frontend/ErrorCheck.jrag:59
*/
public ASTNode setLocation(ASTNode node) {
setStart(node.getStart());
setEnd(node.getEnd());
return this;
}
/**
* @aspect ErrorCheck
* @declaredat /home/jesper/git/extendj/java4/frontend/ErrorCheck.jrag:65
*/
public ASTNode setStart(int i) {
start = i;
return this;
}
/**
* @aspect ErrorCheck
* @declaredat /home/jesper/git/extendj/java4/frontend/ErrorCheck.jrag:70
*/
public int start() {
return start;
}
/**
* @aspect ErrorCheck
* @declaredat /home/jesper/git/extendj/java4/frontend/ErrorCheck.jrag:74
*/
public ASTNode setEnd(int i) {
end = i;
return this;
}
/**
* @aspect ErrorCheck
* @declaredat /home/jesper/git/extendj/java4/frontend/ErrorCheck.jrag:79
*/
public int end() {
return end;
}
/**
* @aspect ErrorCheck
* @declaredat /home/jesper/git/extendj/java4/frontend/ErrorCheck.jrag:83
*/
public String location() {
return "" + lineNumber();
}
/** @return the source location of this node in the format "filename:line"
* @aspect ErrorCheck
* @declaredat /home/jesper/git/extendj/java4/frontend/ErrorCheck.jrag:88
*/
public String sourceLocation() {
return sourceFile() + ":" + lineNumber();
}
/**
* @aspect ErrorCheck
* @declaredat /home/jesper/git/extendj/java4/frontend/ErrorCheck.jrag:92
*/
public String errorPrefix() {
return sourceLocation() + ":\n" + " *** Semantic Error: ";
}
/**
* @aspect ErrorCheck
* @declaredat /home/jesper/git/extendj/java4/frontend/ErrorCheck.jrag:96
*/
public String warningPrefix() {
return sourceLocation() + ":\n" + " *** WARNING: ";
}
/**
* @aspect ErrorCheck
* @declaredat /home/jesper/git/extendj/java4/frontend/ErrorCheck.jrag:245
*/
public Problem errorf(String messagefmt, Object... args) {
return error(String.format(messagefmt, args));
}
/**
* @aspect ErrorCheck
* @declaredat /home/jesper/git/extendj/java4/frontend/ErrorCheck.jrag:249
*/
public Problem error(String message) {
ASTNode node = this;
while (node != null && !(node instanceof CompilationUnit)) {
node = node.getParent();
}
CompilationUnit cu = (CompilationUnit) node;
if (getNumChild() == 0 && getStart() != 0 && getEnd() != 0) {
int line = getLine(getStart());
int column = getColumn(getStart());
int endLine = getLine(getEnd());
int endColumn = getColumn(getEnd());
return new Problem(sourceFile(), message, line, column, endLine, endColumn,
Problem.Severity.ERROR, Problem.Kind.SEMANTIC);
} else {
return new Problem(sourceFile(), message, lineNumber(), Problem.Severity.ERROR,
Problem.Kind.SEMANTIC);
}
}
/**
* @aspect ErrorCheck
* @declaredat /home/jesper/git/extendj/java4/frontend/ErrorCheck.jrag:268
*/
public Problem warning(String message) {
ASTNode node = this;
while (node != null && !(node instanceof CompilationUnit)) {
node = node.getParent();
}
CompilationUnit cu = (CompilationUnit) node;
return new Problem(sourceFile(), message, lineNumber(),
Problem.Severity.WARNING, Problem.Kind.SEMANTIC);
}
/**
* @aspect BranchTarget
* @declaredat /home/jesper/git/extendj/java4/frontend/BranchTarget.jrag:94
*/
public void collectBranches(Collection c) {
for (int i = 0; i < getNumChild(); i++) {
getChild(i).collectBranches(c);
}
}
/**
* Filter a collection of methods, keeping only the static methods
* from the input collection.
*
* @return the filtered collection of methods.
* @aspect LookupMethod
* @declaredat /home/jesper/git/extendj/java4/frontend/LookupMethod.jrag:183
*/
public static Collection keepStaticMethods(
Collection methods) {
Collection result = new LinkedList();
for (MethodDecl method : methods) {
if (method.isStatic()) {
result.add(method);
}
}
return result;
}
/**
* Utility method to add a single item in a {@code SimpleSet}-based map.
* @aspect MemberMethods
* @declaredat /home/jesper/git/extendj/java4/frontend/LookupMethod.jrag:752
*/
protected static void putSimpleSetElement(Map> map,
String key, E value) {
SimpleSet result = map.get(key);
if (result == null) {
result = emptySet();
}
map.put(key, result.add(value));
}
/**
* @aspect DefiniteAssignment
* @declaredat /home/jesper/git/extendj/java4/frontend/DefiniteAssignment.jrag:570
*/
protected boolean checkDUeverywhere(Variable v) {
for (int i = 0; i < getNumChild(); i++) {
if (!getChild(i).checkDUeverywhere(v)) {
return false;
}
}
return true;
}
/**
* @aspect DefiniteAssignment
* @declaredat /home/jesper/git/extendj/java4/frontend/DefiniteAssignment.jrag:719
*/
protected boolean isDescendantTo(ASTNode node) {
if (this == node) {
return true;
}
if (getParent() == null) {
return false;
}
return getParent().isDescendantTo(node);
}
/**
* @aspect VariableScope
* @declaredat /home/jesper/git/extendj/java4/frontend/LookupVariable.jrag:299
*/
public SimpleSet removeInstanceVariables(SimpleSet vars) {
SimpleSet newSet = emptySet();
for (Variable v : vars) {
if (!v.isInstanceVariable()) {
newSet = newSet.add(v);
}
}
return newSet;
}
/**
* Create a copy of the access list where each access has been erased.
* @aspect LookupParTypeDecl
* @declaredat /home/jesper/git/extendj/java5/frontend/Generics.jrag:1625
*/
protected List erasedAccessList(List list) {
List result = new List();
for (Access access : list) {
result.add(access.erasedCopy());
}
return result;
}
/**
* Create a copy of the parameter list where each parameter has been erased.
* @aspect LookupParTypeDecl
* @declaredat /home/jesper/git/extendj/java5/frontend/Generics.jrag:1636
*/
protected List erasedParameterList(List list) {
List result = new List();
for (ParameterDeclaration param : list) {
result.add(param.erasedCopy());
}
return result;
}
/**
* @aspect CreateBCode
* @declaredat /home/jesper/git/extendj/java4/backend/CreateBCode.jrag:279
*/
public void createBCode(CodeGeneration gen) {
for (int i = 0; i < getNumChild(); i++) {
getChild(i).createBCode(gen);
}
}
/**
* @aspect InnerClasses
* @declaredat /home/jesper/git/extendj/java4/backend/InnerClasses.jrag:204
*/
public void collectEnclosingVariables(Collection vars, TypeDecl typeDecl) {
for (int i = 0; i < getNumChild(); i++) {
getChild(i).collectEnclosingVariables(vars, typeDecl);
}
}
/**
* @aspect InnerClasses
* @declaredat /home/jesper/git/extendj/java4/backend/InnerClasses.jrag:381
*/
protected static Access createAccess(Variable var) {
if (var instanceof FieldDeclarator) {
return ((FieldDeclarator) var).createAccess();
} else {
throw new Error("Trying to create accessor for non-field.");
}
}
/**
* Builds a collection of the extra attributes to attach to a code attribute.
* @aspect Attributes
* @declaredat /home/jesper/git/extendj/java4/backend/Attributes.jrag:221
*/
static Collection codeAttributes(CodeGeneration codeGen, MethodDecl m) {
Collection attributes = new ArrayList();
if (m == null || !m.getModifiers().isSynthetic()) {
if (!codeGen.lineNumberTable.isEmpty()) {
attributes.add(new LineNumberTableAttribute(codeGen));
}
if (!codeGen.localVariableTable.isEmpty()) {
attributes.add(new LocalVariableTableAttribute(codeGen));
}
}
return attributes;
}
/**
* @aspect CodeGeneration
* @declaredat /home/jesper/git/extendj/java4/backend/CodeGeneration.jrag:34
*/
public void setSourceLineNumber(int i) {
setStart(ASTNode.makePosition(i, 1));
}
/**
* @aspect CodeGeneration
* @declaredat /home/jesper/git/extendj/java4/backend/CodeGeneration.jrag:58
*/
protected int findFirstSourceLineNumber() {
if (getStart() != 0) {
return getLine(getStart());
}
for (int i = 0; i < getNumChild(); i++) {
int num = getChild(i).findFirstSourceLineNumber();
if (num != -1) {
return num;
}
}
return -1;
}
/**
* Throws an error about unimplemented code generation.
* @aspect CodeGeneration
* @declaredat /home/jesper/git/extendj/java4/backend/CodeGeneration.jrag:156
*/
public void codeGenError(String instr) {
throw new Error(String.format("Cannot create %s bytecode for type %s.",
instr, getClass().getName()));
}
/**
* Finds one method with the given name, and no parameters, in the specified
* type.
* @param type type to search for the method declaration
* @param name name of the method
* @return method declaration
* @aspect EnhancedForToBytecode
* @declaredat /home/jesper/git/extendj/java5/backend/EnhancedForCodegen.jrag:115
*/
protected static MethodDecl getMethod(TypeDecl type, String name) {
Collection methods = (Collection) type.memberMethods(name);
for (MethodDecl method : methods) {
if (method.getNumParameter() == 0) {
return method;
}
}
throw new Error("Could not find " + type.typeName() +
"." + name + "()");
}
/**
* @declaredat ASTNode:1
*/
public ASTNode() {
super();
init$Children();
}
/**
* Initializes the child array to the correct size.
* Initializes List and Opt nta children.
* @apilevel internal
* @ast method
* @declaredat ASTNode:11
*/
public void init$Children() {
}
/**
* Cached child index. Child indices are assumed to never change (AST should
* not change after construction).
* @apilevel internal
* @declaredat ASTNode:18
*/
private int childIndex = -1;
/** @apilevel low-level
* @declaredat ASTNode:21
*/
public int getIndexOfChild(ASTNode node) {
if (node == null) {
return -1;
}
if (node.childIndex >= 0) {
return node.childIndex;
}
for (int i = 0; children != null && i < children.length; i++) {
if (getChild(i) == node) {
node.childIndex = i;
return i;
}
}
return -1;
}
/** @apilevel internal
* @declaredat ASTNode:38
*/
public static final boolean generatedWithCacheCycle = false;
/** @apilevel low-level
* @declaredat ASTNode:41
*/
protected ASTNode parent;
/** @apilevel low-level
* @declaredat ASTNode:44
*/
protected ASTNode[] children;
/** @apilevel internal
* @declaredat ASTNode:48
*/
private static ASTState state = new ASTState();
/** @apilevel internal
* @declaredat ASTNode:51
*/
public final ASTState state() {
return state;
}
/** @apilevel internal
* @declaredat ASTNode:56
*/
public final static ASTState resetState() {
return state = new ASTState();
}
/**
* @return an iterator that can be used to iterate over the children of this node.
* The iterator does not allow removing children.
* @declaredat ASTNode:65
*/
public java.util.Iterator astChildIterator() {
return new java.util.Iterator() {
private int index = 0;
@Override
public boolean hasNext() {
return index < getNumChild();
}
@Override
public T next() {
return hasNext() ? (T) getChild(index++) : null;
}
@Override
public void remove() {
throw new UnsupportedOperationException();
}
};
}
/** @return an object that can be used to iterate over the children of this node
* @declaredat ASTNode:87
*/
public Iterable astChildren() {
return new Iterable() {
@Override
public java.util.Iterator iterator() {
return astChildIterator();
}
};
}
/** @apilevel low-level
* @declaredat ASTNode:97
*/
public T getChild(int i) {
ASTNode node = this.getChildNoTransform(i);
if (node != null && node.mayHaveRewrite()) {
ASTNode rewritten = node.rewrittenNode();
if (rewritten != node) {
rewritten.setParent(this);
node = rewritten;
}
}
return (T) node;
}
/** @apilevel low-level
* @declaredat ASTNode:109
*/
public void addChild(T node) {
setChild(node, getNumChildNoTransform());
}
/**
* This method does not invoke AST transformations.
* @apilevel low-level
* @declaredat ASTNode:116
*/
public final T getChildNoTransform(int i) {
if (children == null) {
return null;
}
T child = (T)children[i];
return child;
}
/** @apilevel low-level
* @declaredat ASTNode:124
*/
protected int numChildren;
/** @apilevel low-level
* @declaredat ASTNode:127
*/
protected int numChildren() {
return numChildren;
}
/** @apilevel low-level
* @declaredat ASTNode:132
*/
public int getNumChild() {
return numChildren();
}
/**
* Behaves like getNumChild, but does not invoke AST transformations (rewrites).
* @apilevel low-level
* @declaredat ASTNode:140
*/
public final int getNumChildNoTransform() {
return numChildren();
}
/** @apilevel low-level
* @declaredat ASTNode:144
*/
public void setChild(ASTNode node, int i) {
if (children == null) {
children = new ASTNode[(i + 1 > 4 || !(this instanceof List)) ? i + 1 : 4];
} else if (i >= children.length) {
ASTNode c[] = new ASTNode[i << 1];
System.arraycopy(children, 0, c, 0, children.length);
children = c;
}
children[i] = node;
if (i >= numChildren) {
numChildren = i+1;
}
if (node != null) {
node.setParent(this);
node.childIndex = i;
}
}
/** @apilevel low-level
* @declaredat ASTNode:162
*/
public void insertChild(ASTNode node, int i) {
if (children == null) {
children = new ASTNode[(i + 1 > 4 || !(this instanceof List)) ? i + 1 : 4];
children[i] = node;
} else {
ASTNode c[] = new ASTNode[children.length + 1];
System.arraycopy(children, 0, c, 0, i);
c[i] = node;
if (i < children.length) {
System.arraycopy(children, i, c, i+1, children.length-i);
for(int j = i+1; j < c.length; ++j) {
if (c[j] != null) {
c[j].childIndex = j;
}
}
}
children = c;
}
numChildren++;
if (node != null) {
node.setParent(this);
node.childIndex = i;
}
}
/** @apilevel low-level
* @declaredat ASTNode:187
*/
public void removeChild(int i) {
if (children != null) {
ASTNode child = (ASTNode) children[i];
if (child != null) {
child.parent = null;
child.childIndex = -1;
}
// Adding a check of this instance to make sure its a List, a move of children doesn't make
// any sense for a node unless its a list. Also, there is a problem if a child of a non-List node is removed
// and siblings are moved one step to the right, with null at the end.
if (this instanceof List || this instanceof Opt) {
System.arraycopy(children, i+1, children, i, children.length-i-1);
children[children.length-1] = null;
numChildren--;
// fix child indices
for(int j = i; j < numChildren; ++j) {
if (children[j] != null) {
child = (ASTNode) children[j];
child.childIndex = j;
}
}
} else {
children[i] = null;
}
}
}
/** @apilevel low-level
* @declaredat ASTNode:214
*/
public ASTNode getParent() {
return (ASTNode) parent;
}
/** @apilevel low-level
* @declaredat ASTNode:218
*/
public void setParent(ASTNode node) {
parent = node;
}
/**
* @apilevel internal
* @declaredat ASTNode:285
*/
public boolean mayHaveRewrite() {
return false;
}
/** @apilevel low-level
* @declaredat ASTNode:289
*/
public void flushTreeCache() {
flushCache();
if (children != null) {
for (int i = 0; i < children.length; i++) {
if (children[i] != null) {
((ASTNode) children[i]).flushTreeCache();
}
}
}
}
/** @apilevel low-level
* @declaredat ASTNode:300
*/
public void flushCache() {
flushAttrAndCollectionCache();
}
/** @apilevel internal
* @declaredat ASTNode:304
*/
public void flushAttrAndCollectionCache() {
flushAttrCache();
flushCollectionCache();
}
/** @apilevel internal
* @declaredat ASTNode:309
*/
public void flushAttrCache() {
}
/** @apilevel internal
* @declaredat ASTNode:312
*/
public void flushCollectionCache() {
}
/** @apilevel internal
* @declaredat ASTNode:315
*/
public ASTNode clone() throws CloneNotSupportedException {
ASTNode node = (ASTNode) super.clone();
node.flushAttrAndCollectionCache();
return node;
}
/** @apilevel internal
* @declaredat ASTNode:321
*/
public ASTNode copy() {
try {
ASTNode node = (ASTNode) clone();
node.parent = null;
if (children != null) {
node.children = (ASTNode[]) children.clone();
}
return node;
} catch (CloneNotSupportedException e) {
throw new Error("Error: clone not supported for " + getClass().getName());
}
}
/**
* Create a deep copy of the AST subtree at this node.
* The copy is dangling, i.e. has no parent.
* @return dangling copy of the subtree at this node
* @apilevel low-level
* @deprecated Please use treeCopy or treeCopyNoTransform instead
* @declaredat ASTNode:340
*/
@Deprecated
public ASTNode fullCopy() {
return treeCopyNoTransform();
}
/**
* Create a deep copy of the AST subtree at this node.
* The copy is dangling, i.e. has no parent.
* @return dangling copy of the subtree at this node
* @apilevel low-level
* @declaredat ASTNode:350
*/
public ASTNode treeCopyNoTransform() {
ASTNode tree = (ASTNode) copy();
if (children != null) {
for (int i = 0; i < children.length; ++i) {
ASTNode child = (ASTNode) children[i];
if (child != null) {
child = child.treeCopyNoTransform();
tree.setChild(child, i);
}
}
}
return tree;
}
/**
* Create a deep copy of the AST subtree at this node.
* The subtree of this node is traversed to trigger rewrites before copy.
* The copy is dangling, i.e. has no parent.
* @return dangling copy of the subtree at this node
* @apilevel low-level
* @declaredat ASTNode:370
*/
public ASTNode treeCopy() {
ASTNode tree = (ASTNode) copy();
if (children != null) {
for (int i = 0; i < children.length; ++i) {
ASTNode child = (ASTNode) getChild(i);
if (child != null) {
child = child.treeCopy();
tree.setChild(child, i);
}
}
}
return tree;
}
/**
* Performs a full traversal of the tree using getChild to trigger rewrites
* @apilevel low-level
* @declaredat ASTNode:387
*/
public void doFullTraversal() {
for (int i = 0; i < getNumChild(); i++) {
getChild(i).doFullTraversal();
}
}
/** @apilevel internal
* @declaredat ASTNode:393
*/
protected boolean is$Equal(ASTNode n1, ASTNode n2) {
if (n1 == null && n2 == null) return true;
if (n1 == null || n2 == null) return false;
return n1.is$Equal(n2);
}
/** @apilevel internal
* @declaredat ASTNode:399
*/
protected boolean is$Equal(ASTNode node) {
if (getClass() != node.getClass()) {
return false;
}
if (numChildren != node.numChildren) {
return false;
}
for (int i = 0; i < numChildren; i++) {
if (children[i] == null && node.children[i] != null) {
return false;
}
if (!((ASTNode)children[i]).is$Equal(((ASTNode)node.children[i]))) {
return false;
}
}
return true;
}
/**
* @aspect
* @declaredat /home/jesper/git/extendj/java4/frontend/ErrorCheck.jrag:283
*/
/** @apilevel internal */
protected void collect_contributors_CompilationUnit_problems(CompilationUnit _root, java.util.Map> _map) {
for (int i = 0; i < getNumChild(); i++) {
getChild(i).collect_contributors_CompilationUnit_problems(_root, _map);
}
}
/** @apilevel internal */
protected void contributeTo_CompilationUnit_problems(LinkedList collection) {
}
/**
* @aspect
* @declaredat /home/jesper/git/extendj/java4/backend/GenerateClassfile.jrag:346
*/
/** @apilevel internal */
protected void collect_contributors_TypeDecl_accessors(CompilationUnit _root, java.util.Map> _map) {
for (int i = 0; i < getNumChild(); i++) {
getChild(i).collect_contributors_TypeDecl_accessors(_root, _map);
}
}
/** @apilevel internal */
protected void contributeTo_TypeDecl_accessors(HashSet collection) {
}
/**
* @aspect
* @declaredat /home/jesper/git/extendj/java4/backend/InnerClasses.jrag:155
*/
/** @apilevel internal */
protected void collect_contributors_TypeDecl_nestedTypes(CompilationUnit _root, java.util.Map> _map) {
for (int i = 0; i < getNumChild(); i++) {
getChild(i).collect_contributors_TypeDecl_nestedTypes(_root, _map);
}
}
/** @apilevel internal */
protected void contributeTo_TypeDecl_nestedTypes(LinkedList collection) {
}
/**
* @aspect
* @declaredat /home/jesper/git/extendj/java5/backend/GenericsCodegen.jrag:257
*/
/** @apilevel internal */
protected void collect_contributors_TypeDecl_bridgeMethods(TypeDecl _root, java.util.Map> _map) {
for (int i = 0; i < getNumChild(); i++) {
getChild(i).collect_contributors_TypeDecl_bridgeMethods(_root, _map);
}
}
/** @apilevel internal */
protected void contributeTo_TypeDecl_bridgeMethods(HashSet collection) {
}
/**
* @aspect
* @declaredat /home/jesper/git/extendj/java5/backend/EnumsCodegen.jrag:115
*/
/** @apilevel internal */
protected void collect_contributors_TypeDecl_enumSwitchStatements(CompilationUnit _root, java.util.Map> _map) {
for (int i = 0; i < getNumChild(); i++) {
getChild(i).collect_contributors_TypeDecl_enumSwitchStatements(_root, _map);
}
}
/** @apilevel internal */
protected void contributeTo_TypeDecl_enumSwitchStatements(LinkedList collection) {
}
/**
* @attribute syn
* @aspect ErrorCheck
* @declaredat /home/jesper/git/extendj/java4/frontend/ErrorCheck.jrag:46
*/
@ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN)
@ASTNodeAnnotation.Source(aspect="ErrorCheck", declaredAt="/home/jesper/git/extendj/java4/frontend/ErrorCheck.jrag:46")
public int lineNumber() {
{
ASTNode n = this;
while (n.getParent() != null && n.getStart() == 0) {
n = n.getParent();
}
return getLine(n.getStart());
}
}
/**
* @attribute syn
* @aspect LookupParTypeDecl
* @declaredat /home/jesper/git/extendj/java5/frontend/Generics.jrag:1306
*/
@ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN)
@ASTNodeAnnotation.Source(aspect="LookupParTypeDecl", declaredAt="/home/jesper/git/extendj/java5/frontend/Generics.jrag:1306")
public boolean usesTypeVariable() {
{
for (int i = 0; i < getNumChild(); i++) {
if (getChild(i).usesTypeVariable()) {
return true;
}
}
return false;
}
}
/**
* @attribute syn
* @aspect Java2Rewrites
* @declaredat /home/jesper/git/extendj/java4/backend/Java2Rewrites.jrag:97
*/
@ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN)
@ASTNodeAnnotation.Source(aspect="Java2Rewrites", declaredAt="/home/jesper/git/extendj/java4/backend/Java2Rewrites.jrag:97")
public boolean hasAssertStatementRecursive() {
{
for (ASTNode child : astChildren()) {
if (child.hasAssertStatementRecursive()) {
return true;
}
}
return false;
}
}
/**
* @attribute syn
* @aspect InnerClasses
* @declaredat /home/jesper/git/extendj/java4/backend/InnerClasses.jrag:128
*/
@ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN)
@ASTNodeAnnotation.Source(aspect="InnerClasses", declaredAt="/home/jesper/git/extendj/java4/backend/InnerClasses.jrag:128")
public boolean isStringAdd() {
boolean isStringAdd_value = false;
return isStringAdd_value;
}
/**
* @attribute syn
* @aspect CodeGeneration
* @declaredat /home/jesper/git/extendj/java4/backend/CodeGeneration.jrag:38
*/
@ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN)
@ASTNodeAnnotation.Source(aspect="CodeGeneration", declaredAt="/home/jesper/git/extendj/java4/backend/CodeGeneration.jrag:38")
public int sourceLineNumber() {
int sourceLineNumber_value = getStart() != 0 ? getLine(getStart()) : -1;
return sourceLineNumber_value;
}
/**
* @attribute inh
* @aspect AddOptionsToProgram
* @declaredat /home/jesper/git/extendj/java4/frontend/Options.jadd:40
*/
@ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.INH)
@ASTNodeAnnotation.Source(aspect="AddOptionsToProgram", declaredAt="/home/jesper/git/extendj/java4/frontend/Options.jadd:40")
public Program program() {
Program program_value = getParent().Define_program(this, null);
return program_value;
}
/** @return the enclosing compilation unit.
* @attribute inh
* @aspect ClassPath
* @declaredat /home/jesper/git/extendj/java4/frontend/ClassPath.jrag:110
*/
@ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.INH)
@ASTNodeAnnotation.Source(aspect="ClassPath", declaredAt="/home/jesper/git/extendj/java4/frontend/ClassPath.jrag:110")
public CompilationUnit compilationUnit() {
CompilationUnit compilationUnit_value = getParent().Define_compilationUnit(this, null);
return compilationUnit_value;
}
/** @return {@code true} if the field declaration is before this node.
* @attribute inh
* @aspect DeclareBeforeUse
* @declaredat /home/jesper/git/extendj/java4/frontend/DeclareBeforeUse.jrag:58
*/
@ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.INH)
@ASTNodeAnnotation.Source(aspect="DeclareBeforeUse", declaredAt="/home/jesper/git/extendj/java4/frontend/DeclareBeforeUse.jrag:58")
public boolean declaredBefore(Variable decl) {
boolean declaredBefore_Variable_value = getParent().Define_declaredBefore(this, null, decl);
return declaredBefore_Variable_value;
}
/** @apilevel internal */
public ASTNode rewriteTo() {
return this;
}
/** @apilevel internal */
public boolean canRewrite() {
return false;
}
/** @apilevel internal */
public SimpleSet Define_lookupVariable(ASTNode _callerNode, ASTNode _childNode, String name) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_lookupVariable(self, _callerNode, name)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_lookupVariable(self, _callerNode, name);
}
/**
* @declaredat /home/jesper/git/extendj/java5/frontend/EnhancedFor.jrag:141
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute lookupVariable
*/
protected boolean canDefine_lookupVariable(ASTNode _callerNode, ASTNode _childNode, String name) {
return false;
}
/** @apilevel internal */
public VariableScope Define_outerScope(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_outerScope(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_outerScope(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java5/frontend/EnhancedFor.jrag:148
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute outerScope
*/
protected boolean canDefine_outerScope(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public boolean Define_isMethodParameter(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_isMethodParameter(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_isMethodParameter(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java5/frontend/EnhancedFor.jrag:182
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute isMethodParameter
*/
protected boolean canDefine_isMethodParameter(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public boolean Define_isConstructorParameter(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_isConstructorParameter(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_isConstructorParameter(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java5/frontend/EnhancedFor.jrag:183
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute isConstructorParameter
*/
protected boolean canDefine_isConstructorParameter(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public boolean Define_isExceptionHandlerParameter(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_isExceptionHandlerParameter(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_isExceptionHandlerParameter(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java5/frontend/EnhancedFor.jrag:184
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute isExceptionHandlerParameter
*/
protected boolean canDefine_isExceptionHandlerParameter(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public NameType Define_nameType(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_nameType(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_nameType(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java5/frontend/StaticImports.jrag:303
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute nameType
*/
protected boolean canDefine_nameType(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public boolean Define_reachable(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_reachable(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_reachable(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java5/frontend/EnhancedFor.jrag:192
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute reachable
*/
protected boolean canDefine_reachable(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public boolean Define_variableArityValid(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_variableArityValid(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_variableArityValid(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java5/frontend/VariableArityParameters.jrag:42
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute variableArityValid
*/
protected boolean canDefine_variableArityValid(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public int Define_localNum(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_localNum(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_localNum(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java5/backend/EnhancedForCodegen.jrag:41
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute localNum
*/
protected boolean canDefine_localNum(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public FinallyHost Define_enclosingFinally(ASTNode _callerNode, ASTNode _childNode, Stmt branch) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_enclosingFinally(self, _callerNode, branch)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_enclosingFinally(self, _callerNode, branch);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/BranchTarget.jrag:280
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute enclosingFinally
*/
protected boolean canDefine_enclosingFinally(ASTNode _callerNode, ASTNode _childNode, Stmt branch) {
return false;
}
/** @apilevel internal */
public Program Define_program(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_program(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_program(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/Options.jadd:42
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute program
*/
protected boolean canDefine_program(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public TypeDecl Define_typeObject(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_typeObject(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_typeObject(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/LookupType.jrag:41
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute typeObject
*/
protected boolean canDefine_typeObject(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public TypeDecl Define_typeCloneable(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_typeCloneable(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_typeCloneable(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/LookupType.jrag:42
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute typeCloneable
*/
protected boolean canDefine_typeCloneable(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public TypeDecl Define_typeSerializable(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_typeSerializable(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_typeSerializable(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/LookupType.jrag:43
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute typeSerializable
*/
protected boolean canDefine_typeSerializable(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public TypeDecl Define_typeBoolean(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_typeBoolean(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_typeBoolean(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/LookupType.jrag:55
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute typeBoolean
*/
protected boolean canDefine_typeBoolean(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public TypeDecl Define_typeByte(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_typeByte(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_typeByte(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/LookupType.jrag:56
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute typeByte
*/
protected boolean canDefine_typeByte(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public TypeDecl Define_typeShort(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_typeShort(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_typeShort(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/LookupType.jrag:57
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute typeShort
*/
protected boolean canDefine_typeShort(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public TypeDecl Define_typeChar(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_typeChar(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_typeChar(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/LookupType.jrag:58
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute typeChar
*/
protected boolean canDefine_typeChar(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public TypeDecl Define_typeInt(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_typeInt(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_typeInt(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/LookupType.jrag:59
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute typeInt
*/
protected boolean canDefine_typeInt(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public TypeDecl Define_typeLong(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_typeLong(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_typeLong(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/LookupType.jrag:60
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute typeLong
*/
protected boolean canDefine_typeLong(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public TypeDecl Define_typeFloat(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_typeFloat(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_typeFloat(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/LookupType.jrag:61
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute typeFloat
*/
protected boolean canDefine_typeFloat(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public TypeDecl Define_typeDouble(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_typeDouble(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_typeDouble(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/LookupType.jrag:62
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute typeDouble
*/
protected boolean canDefine_typeDouble(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public TypeDecl Define_typeString(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_typeString(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_typeString(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/LookupType.jrag:63
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute typeString
*/
protected boolean canDefine_typeString(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public TypeDecl Define_typeVoid(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_typeVoid(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_typeVoid(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/LookupType.jrag:66
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute typeVoid
*/
protected boolean canDefine_typeVoid(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public TypeDecl Define_typeNull(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_typeNull(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_typeNull(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/LookupType.jrag:69
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute typeNull
*/
protected boolean canDefine_typeNull(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public TypeDecl Define_unknownType(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_unknownType(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_unknownType(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/LookupType.jrag:72
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute unknownType
*/
protected boolean canDefine_unknownType(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public boolean Define_hasPackage(ASTNode _callerNode, ASTNode _childNode, String packageName) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_hasPackage(self, _callerNode, packageName)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_hasPackage(self, _callerNode, packageName);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/LookupType.jrag:120
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute hasPackage
*/
protected boolean canDefine_hasPackage(ASTNode _callerNode, ASTNode _childNode, String packageName) {
return false;
}
/** @apilevel internal */
public TypeDecl Define_lookupType(ASTNode _callerNode, ASTNode _childNode, String packageName, String typeName) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_lookupType(self, _callerNode, packageName, typeName)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_lookupType(self, _callerNode, packageName, typeName);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/LookupType.jrag:134
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute lookupType
*/
protected boolean canDefine_lookupType(ASTNode _callerNode, ASTNode _childNode, String packageName, String typeName) {
return false;
}
/** @apilevel internal */
public SimpleSet Define_lookupType(ASTNode _callerNode, ASTNode _childNode, String name) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_lookupType(self, _callerNode, name)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_lookupType(self, _callerNode, name);
}
/**
* @declaredat /home/jesper/git/extendj/java5/frontend/GenericMethods.jrag:246
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute lookupType
*/
protected boolean canDefine_lookupType(ASTNode _callerNode, ASTNode _childNode, String name) {
return false;
}
/** @apilevel internal */
public TypeDecl Define_componentType(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_componentType(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_componentType(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/Arrays.jrag:54
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute componentType
*/
protected boolean canDefine_componentType(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public Collection Define_lookupConstructor(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_lookupConstructor(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_lookupConstructor(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/LookupConstructor.jrag:39
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute lookupConstructor
*/
protected boolean canDefine_lookupConstructor(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public Collection Define_lookupSuperConstructor(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_lookupSuperConstructor(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_lookupSuperConstructor(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/LookupConstructor.jrag:45
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute lookupSuperConstructor
*/
protected boolean canDefine_lookupSuperConstructor(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public BodyDecl Define_enclosingMemberDecl(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_enclosingMemberDecl(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_enclosingMemberDecl(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/NameCheck.jrag:378
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute enclosingMemberDecl
*/
protected boolean canDefine_enclosingMemberDecl(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public boolean Define_insideLoop(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_insideLoop(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_insideLoop(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java5/frontend/EnhancedFor.jrag:224
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute insideLoop
*/
protected boolean canDefine_insideLoop(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public boolean Define_insideSwitch(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_insideSwitch(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_insideSwitch(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/NameCheck.jrag:534
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute insideSwitch
*/
protected boolean canDefine_insideSwitch(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public Case Define_previousCase(ASTNode _callerNode, ASTNode _childNode, Case c) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_previousCase(self, _callerNode, c)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_previousCase(self, _callerNode, c);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/NameCheck.jrag:594
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute previousCase
*/
protected boolean canDefine_previousCase(ASTNode _callerNode, ASTNode _childNode, Case c) {
return false;
}
/** @apilevel internal */
public boolean Define_isAnonymous(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_isAnonymous(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_isAnonymous(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/TypeAnalysis.jrag:234
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute isAnonymous
*/
protected boolean canDefine_isAnonymous(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public Variable Define_unknownField(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_unknownField(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_unknownField(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/TypeAnalysis.jrag:249
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute unknownField
*/
protected boolean canDefine_unknownField(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public MethodDecl Define_unknownMethod(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_unknownMethod(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_unknownMethod(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/TypeAnalysis.jrag:255
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute unknownMethod
*/
protected boolean canDefine_unknownMethod(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public ConstructorDecl Define_unknownConstructor(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_unknownConstructor(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_unknownConstructor(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/TypeAnalysis.jrag:262
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute unknownConstructor
*/
protected boolean canDefine_unknownConstructor(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public TypeDecl Define_declType(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_declType(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_declType(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java5/frontend/Annotations.jrag:720
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute declType
*/
protected boolean canDefine_declType(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public BodyDecl Define_enclosingBodyDecl(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_enclosingBodyDecl(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_enclosingBodyDecl(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/TypeAnalysis.jrag:577
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute enclosingBodyDecl
*/
protected boolean canDefine_enclosingBodyDecl(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public boolean Define_isMemberType(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_isMemberType(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_isMemberType(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/TypeAnalysis.jrag:590
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute isMemberType
*/
protected boolean canDefine_isMemberType(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public TypeDecl Define_hostType(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_hostType(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_hostType(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/TypeAnalysis.jrag:651
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute hostType
*/
protected boolean canDefine_hostType(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public TypeDecl Define_switchType(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_switchType(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_switchType(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/TypeCheck.jrag:483
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute switchType
*/
protected boolean canDefine_switchType(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public TypeDecl Define_returnType(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_returnType(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_returnType(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/TypeCheck.jrag:536
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute returnType
*/
protected boolean canDefine_returnType(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public TypeDecl Define_enclosingInstance(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_enclosingInstance(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_enclosingInstance(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/TypeCheck.jrag:688
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute enclosingInstance
*/
protected boolean canDefine_enclosingInstance(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public boolean Define_reportUnreachable(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_reportUnreachable(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_reportUnreachable(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/UnreachableStatements.jrag:216
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute reportUnreachable
*/
protected boolean canDefine_reportUnreachable(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public TypeDecl Define_typeException(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_typeException(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_typeException(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/ExceptionHandling.jrag:48
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute typeException
*/
protected boolean canDefine_typeException(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public TypeDecl Define_typeRuntimeException(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_typeRuntimeException(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_typeRuntimeException(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/ExceptionHandling.jrag:51
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute typeRuntimeException
*/
protected boolean canDefine_typeRuntimeException(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public TypeDecl Define_typeError(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_typeError(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_typeError(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/ExceptionHandling.jrag:54
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute typeError
*/
protected boolean canDefine_typeError(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public TypeDecl Define_typeNullPointerException(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_typeNullPointerException(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_typeNullPointerException(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/ExceptionHandling.jrag:57
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute typeNullPointerException
*/
protected boolean canDefine_typeNullPointerException(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public TypeDecl Define_typeThrowable(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_typeThrowable(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_typeThrowable(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/ExceptionHandling.jrag:61
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute typeThrowable
*/
protected boolean canDefine_typeThrowable(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public boolean Define_handlesException(ASTNode _callerNode, ASTNode _childNode, TypeDecl exceptionType) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_handlesException(self, _callerNode, exceptionType)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_handlesException(self, _callerNode, exceptionType);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/ExceptionHandling.jrag:266
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute handlesException
*/
protected boolean canDefine_handlesException(ASTNode _callerNode, ASTNode _childNode, TypeDecl exceptionType) {
return false;
}
/** @apilevel internal */
public TypeDecl Define_superType(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_superType(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_superType(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/AnonymousClasses.jrag:35
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute superType
*/
protected boolean canDefine_superType(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public ConstructorDecl Define_constructorDecl(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_constructorDecl(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_constructorDecl(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java5/frontend/MethodSignature.jrag:103
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute constructorDecl
*/
protected boolean canDefine_constructorDecl(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public LabeledStmt Define_lookupLabel(ASTNode _callerNode, ASTNode _childNode, String name) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_lookupLabel(self, _callerNode, name)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_lookupLabel(self, _callerNode, name);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/BranchTarget.jrag:260
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute lookupLabel
*/
protected boolean canDefine_lookupLabel(ASTNode _callerNode, ASTNode _childNode, String name) {
return false;
}
/** @apilevel internal */
public Expr Define_nestedScope(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_nestedScope(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_nestedScope(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/LookupMethod.jrag:100
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute nestedScope
*/
protected boolean canDefine_nestedScope(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public Collection Define_lookupMethod(ASTNode _callerNode, ASTNode _childNode, String name) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_lookupMethod(self, _callerNode, name)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_lookupMethod(self, _callerNode, name);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/LookupMethod.jrag:167
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute lookupMethod
*/
protected boolean canDefine_lookupMethod(ASTNode _callerNode, ASTNode _childNode, String name) {
return false;
}
/** @apilevel internal */
public boolean Define_isDest(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_isDest(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_isDest(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/DefiniteAssignment.jrag:62
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute isDest
*/
protected boolean canDefine_isDest(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public boolean Define_isSource(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_isSource(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_isSource(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/DefiniteAssignment.jrag:61
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute isSource
*/
protected boolean canDefine_isSource(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public boolean Define_isIncOrDec(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_isIncOrDec(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_isIncOrDec(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/DefiniteAssignment.jrag:69
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute isIncOrDec
*/
protected boolean canDefine_isIncOrDec(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public boolean Define_assignedBefore(ASTNode _callerNode, ASTNode _childNode, Variable v) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_assignedBefore(self, _callerNode, v)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_assignedBefore(self, _callerNode, v);
}
/**
* @declaredat /home/jesper/git/extendj/java5/frontend/EnhancedFor.jrag:205
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute assignedBefore
*/
protected boolean canDefine_assignedBefore(ASTNode _callerNode, ASTNode _childNode, Variable v) {
return false;
}
/** @apilevel internal */
public boolean Define_unassignedBefore(ASTNode _callerNode, ASTNode _childNode, Variable v) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_unassignedBefore(self, _callerNode, v)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_unassignedBefore(self, _callerNode, v);
}
/**
* @declaredat /home/jesper/git/extendj/java5/frontend/EnhancedFor.jrag:222
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute unassignedBefore
*/
protected boolean canDefine_unassignedBefore(ASTNode _callerNode, ASTNode _childNode, Variable v) {
return false;
}
/** @apilevel internal */
public String Define_methodHost(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_methodHost(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_methodHost(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java5/frontend/Annotations.jrag:776
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute methodHost
*/
protected boolean canDefine_methodHost(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public boolean Define_inExplicitConstructorInvocation(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_inExplicitConstructorInvocation(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_inExplicitConstructorInvocation(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/TypeHierarchyCheck.jrag:194
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute inExplicitConstructorInvocation
*/
protected boolean canDefine_inExplicitConstructorInvocation(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public TypeDecl Define_enclosingExplicitConstructorHostType(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_enclosingExplicitConstructorHostType(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_enclosingExplicitConstructorHostType(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/TypeHierarchyCheck.jrag:204
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute enclosingExplicitConstructorHostType
*/
protected boolean canDefine_enclosingExplicitConstructorHostType(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public boolean Define_inStaticContext(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_inStaticContext(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_inStaticContext(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java5/frontend/Enums.jrag:210
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute inStaticContext
*/
protected boolean canDefine_inStaticContext(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public CompilationUnit Define_compilationUnit(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_compilationUnit(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_compilationUnit(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/ClassPath.jrag:112
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute compilationUnit
*/
protected boolean canDefine_compilationUnit(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public int Define_blockIndex(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_blockIndex(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_blockIndex(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/DeclareBeforeUse.jrag:40
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute blockIndex
*/
protected boolean canDefine_blockIndex(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public boolean Define_declaredBefore(ASTNode _callerNode, ASTNode _childNode, Variable decl) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_declaredBefore(self, _callerNode, decl)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_declaredBefore(self, _callerNode, decl);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/DeclareBeforeUse.jrag:62
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute declaredBefore
*/
protected boolean canDefine_declaredBefore(ASTNode _callerNode, ASTNode _childNode, Variable decl) {
return false;
}
/** @apilevel internal */
public boolean Define_mayBePublic(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_mayBePublic(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_mayBePublic(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/Modifiers.jrag:326
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute mayBePublic
*/
protected boolean canDefine_mayBePublic(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public boolean Define_mayBeProtected(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_mayBeProtected(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_mayBeProtected(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/Modifiers.jrag:327
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute mayBeProtected
*/
protected boolean canDefine_mayBeProtected(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public boolean Define_mayBePrivate(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_mayBePrivate(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_mayBePrivate(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/Modifiers.jrag:328
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute mayBePrivate
*/
protected boolean canDefine_mayBePrivate(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public boolean Define_mayBeStatic(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_mayBeStatic(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_mayBeStatic(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java5/frontend/Enums.jrag:67
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute mayBeStatic
*/
protected boolean canDefine_mayBeStatic(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public boolean Define_mayBeFinal(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_mayBeFinal(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_mayBeFinal(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java5/frontend/Enums.jrag:404
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute mayBeFinal
*/
protected boolean canDefine_mayBeFinal(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public boolean Define_mayBeAbstract(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_mayBeAbstract(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_mayBeAbstract(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java5/frontend/Enums.jrag:60
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute mayBeAbstract
*/
protected boolean canDefine_mayBeAbstract(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public boolean Define_mayBeVolatile(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_mayBeVolatile(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_mayBeVolatile(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/Modifiers.jrag:323
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute mayBeVolatile
*/
protected boolean canDefine_mayBeVolatile(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public boolean Define_mayBeTransient(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_mayBeTransient(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_mayBeTransient(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/Modifiers.jrag:319
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute mayBeTransient
*/
protected boolean canDefine_mayBeTransient(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public boolean Define_mayBeStrictfp(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_mayBeStrictfp(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_mayBeStrictfp(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/Modifiers.jrag:334
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute mayBeStrictfp
*/
protected boolean canDefine_mayBeStrictfp(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public boolean Define_mayBeSynchronized(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_mayBeSynchronized(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_mayBeSynchronized(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/Modifiers.jrag:332
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute mayBeSynchronized
*/
protected boolean canDefine_mayBeSynchronized(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public boolean Define_mayBeNative(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_mayBeNative(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_mayBeNative(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/Modifiers.jrag:333
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute mayBeNative
*/
protected boolean canDefine_mayBeNative(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public boolean Define_mayUseAnnotationTarget(ASTNode _callerNode, ASTNode _childNode, String name) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_mayUseAnnotationTarget(self, _callerNode, name)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_mayUseAnnotationTarget(self, _callerNode, name);
}
/**
* @declaredat /home/jesper/git/extendj/java5/frontend/Annotations.jrag:147
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute mayUseAnnotationTarget
*/
protected boolean canDefine_mayUseAnnotationTarget(ASTNode _callerNode, ASTNode _childNode, String name) {
return false;
}
/** @apilevel internal */
public ElementValue Define_lookupElementTypeValue(ASTNode _callerNode, ASTNode _childNode, String name) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_lookupElementTypeValue(self, _callerNode, name)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_lookupElementTypeValue(self, _callerNode, name);
}
/**
* @declaredat /home/jesper/git/extendj/java5/frontend/Annotations.jrag:280
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute lookupElementTypeValue
*/
protected boolean canDefine_lookupElementTypeValue(ASTNode _callerNode, ASTNode _childNode, String name) {
return false;
}
/** @apilevel internal */
public boolean Define_withinSuppressWarnings(ASTNode _callerNode, ASTNode _childNode, String annot) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_withinSuppressWarnings(self, _callerNode, annot)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_withinSuppressWarnings(self, _callerNode, annot);
}
/**
* @declaredat /home/jesper/git/extendj/java5/frontend/Annotations.jrag:409
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute withinSuppressWarnings
*/
protected boolean canDefine_withinSuppressWarnings(ASTNode _callerNode, ASTNode _childNode, String annot) {
return false;
}
/** @apilevel internal */
public boolean Define_withinDeprecatedAnnotation(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_withinDeprecatedAnnotation(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_withinDeprecatedAnnotation(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java5/frontend/Annotations.jrag:538
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute withinDeprecatedAnnotation
*/
protected boolean canDefine_withinDeprecatedAnnotation(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public Annotation Define_lookupAnnotation(ASTNode _callerNode, ASTNode _childNode, TypeDecl typeDecl) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_lookupAnnotation(self, _callerNode, typeDecl)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_lookupAnnotation(self, _callerNode, typeDecl);
}
/**
* @declaredat /home/jesper/git/extendj/java5/frontend/Annotations.jrag:613
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute lookupAnnotation
*/
protected boolean canDefine_lookupAnnotation(ASTNode _callerNode, ASTNode _childNode, TypeDecl typeDecl) {
return false;
}
/** @apilevel internal */
public TypeDecl Define_enclosingAnnotationDecl(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_enclosingAnnotationDecl(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_enclosingAnnotationDecl(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java5/frontend/Annotations.jrag:653
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute enclosingAnnotationDecl
*/
protected boolean canDefine_enclosingAnnotationDecl(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public boolean Define_inExtendsOrImplements(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_inExtendsOrImplements(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_inExtendsOrImplements(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java5/frontend/Generics.jrag:382
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute inExtendsOrImplements
*/
protected boolean canDefine_inExtendsOrImplements(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public FieldDecl Define_fieldDecl(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_fieldDecl(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_fieldDecl(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java5/frontend/Generics.jrag:1391
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute fieldDecl
*/
protected boolean canDefine_fieldDecl(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public TypeDecl Define_typeWildcard(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_typeWildcard(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_typeWildcard(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java5/frontend/Generics.jrag:1745
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute typeWildcard
*/
protected boolean canDefine_typeWildcard(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public TypeDecl Define_lookupWildcardExtends(ASTNode _callerNode, ASTNode _childNode, TypeDecl typeDecl) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_lookupWildcardExtends(self, _callerNode, typeDecl)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_lookupWildcardExtends(self, _callerNode, typeDecl);
}
/**
* @declaredat /home/jesper/git/extendj/java5/frontend/Generics.jrag:1754
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute lookupWildcardExtends
*/
protected boolean canDefine_lookupWildcardExtends(ASTNode _callerNode, ASTNode _childNode, TypeDecl typeDecl) {
return false;
}
/** @apilevel internal */
public TypeDecl Define_lookupWildcardSuper(ASTNode _callerNode, ASTNode _childNode, TypeDecl typeDecl) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_lookupWildcardSuper(self, _callerNode, typeDecl)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_lookupWildcardSuper(self, _callerNode, typeDecl);
}
/**
* @declaredat /home/jesper/git/extendj/java5/frontend/Generics.jrag:1768
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute lookupWildcardSuper
*/
protected boolean canDefine_lookupWildcardSuper(ASTNode _callerNode, ASTNode _childNode, TypeDecl typeDecl) {
return false;
}
/** @apilevel internal */
public LUBType Define_lookupLUBType(ASTNode _callerNode, ASTNode _childNode, Collection bounds) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_lookupLUBType(self, _callerNode, bounds)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_lookupLUBType(self, _callerNode, bounds);
}
/**
* @declaredat /home/jesper/git/extendj/java5/frontend/Generics.jrag:1796
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute lookupLUBType
*/
protected boolean canDefine_lookupLUBType(ASTNode _callerNode, ASTNode _childNode, Collection bounds) {
return false;
}
/** @apilevel internal */
public GLBType Define_lookupGLBType(ASTNode _callerNode, ASTNode _childNode, Collection bounds) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_lookupGLBType(self, _callerNode, bounds)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_lookupGLBType(self, _callerNode, bounds);
}
/**
* @declaredat /home/jesper/git/extendj/java5/frontend/Generics.jrag:1837
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute lookupGLBType
*/
protected boolean canDefine_lookupGLBType(ASTNode _callerNode, ASTNode _childNode, Collection bounds) {
return false;
}
/** @apilevel internal */
public TypeDecl Define_assignConvertedType(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_assignConvertedType(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_assignConvertedType(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java5/frontend/GenericMethodsInference.jrag:73
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute assignConvertedType
*/
protected boolean canDefine_assignConvertedType(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public TypeDecl Define_genericDecl(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_genericDecl(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_genericDecl(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java5/frontend/GenericsParTypeDecl.jrag:90
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute genericDecl
*/
protected boolean canDefine_genericDecl(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public int Define_resultSaveLocalNum(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_resultSaveLocalNum(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_resultSaveLocalNum(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/backend/LocalNum.jrag:102
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute resultSaveLocalNum
*/
protected boolean canDefine_resultSaveLocalNum(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public TypeDecl Define_expectedType(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_expectedType(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_expectedType(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/backend/InnerClasses.jrag:108
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute expectedType
*/
protected boolean canDefine_expectedType(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public ClassInstanceExpr Define_classInstanceExpression(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_classInstanceExpression(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_classInstanceExpression(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/backend/InnerClasses.jrag:441
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute classInstanceExpression
*/
protected boolean canDefine_classInstanceExpression(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public int Define_variableScopeEndLabel(ASTNode _callerNode, ASTNode _childNode, CodeGeneration gen) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_variableScopeEndLabel(self, _callerNode, gen)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_variableScopeEndLabel(self, _callerNode, gen);
}
/**
* @declaredat /home/jesper/git/extendj/java4/backend/CodeGeneration.jrag:79
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute variableScopeEndLabel
*/
protected boolean canDefine_variableScopeEndLabel(ASTNode _callerNode, ASTNode _childNode, CodeGeneration gen) {
return false;
}
/** @apilevel internal */
public boolean Define_canResolve(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_canResolve(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_canResolve(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/ResolveAmbiguousNames.jrag:544
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute canResolve
*/
protected boolean canDefine_canResolve(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public SimpleSet Define_allImportedTypes(ASTNode _callerNode, ASTNode _childNode, String name) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_allImportedTypes(self, _callerNode, name)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_allImportedTypes(self, _callerNode, name);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/NameCheck.jrag:52
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute allImportedTypes
*/
protected boolean canDefine_allImportedTypes(ASTNode _callerNode, ASTNode _childNode, String name) {
return false;
}
/** @apilevel internal */
public TypeDecl Define_enclosingType(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_enclosingType(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_enclosingType(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java5/frontend/Generics.jrag:766
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute enclosingType
*/
protected boolean canDefine_enclosingType(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public boolean Define_isNestedType(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_isNestedType(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_isNestedType(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java5/frontend/Generics.jrag:765
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute isNestedType
*/
protected boolean canDefine_isNestedType(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public boolean Define_isLocalClass(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_isLocalClass(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_isLocalClass(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/TypeAnalysis.jrag:612
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute isLocalClass
*/
protected boolean canDefine_isLocalClass(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public String Define_hostPackage(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_hostPackage(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_hostPackage(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java5/frontend/Annotations.jrag:773
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute hostPackage
*/
protected boolean canDefine_hostPackage(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public String Define_packageName(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_packageName(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_packageName(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/QualifiedNames.jrag:115
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute packageName
*/
protected boolean canDefine_packageName(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public boolean Define_isOriginalEnumConstructor(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_isOriginalEnumConstructor(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_isOriginalEnumConstructor(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java5/frontend/Enums.jrag:134
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute isOriginalEnumConstructor
*/
protected boolean canDefine_isOriginalEnumConstructor(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public boolean Define_inEnumInitializer(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_inEnumInitializer(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_inEnumInitializer(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java5/frontend/Enums.jrag:569
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute inEnumInitializer
*/
protected boolean canDefine_inEnumInitializer(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public boolean Define_inComplexAnnotation(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_inComplexAnnotation(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_inComplexAnnotation(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java5/frontend/Annotations.jrag:97
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute inComplexAnnotation
*/
protected boolean canDefine_inComplexAnnotation(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public String Define_typeVariableContext(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_typeVariableContext(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_typeVariableContext(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java5/frontend/Generics.jrag:862
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute typeVariableContext
*/
protected boolean canDefine_typeVariableContext(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public Block Define_enclosingBlock(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_enclosingBlock(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_enclosingBlock(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java5/frontend/MethodSignature.jrag:430
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute enclosingBlock
*/
protected boolean canDefine_enclosingBlock(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public boolean Define_isLeftChildOfDot(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_isLeftChildOfDot(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_isLeftChildOfDot(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java5/frontend/Annotations.jrag:33
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute isLeftChildOfDot
*/
protected boolean canDefine_isLeftChildOfDot(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public boolean Define_isRightChildOfDot(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_isRightChildOfDot(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_isRightChildOfDot(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java5/frontend/GenericMethods.jrag:33
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute isRightChildOfDot
*/
protected boolean canDefine_isRightChildOfDot(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public Expr Define_prevExpr(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_prevExpr(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_prevExpr(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java5/frontend/Annotations.jrag:37
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute prevExpr
*/
protected boolean canDefine_prevExpr(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public Access Define_nextAccess(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_nextAccess(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_nextAccess(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java5/frontend/Annotations.jrag:39
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute nextAccess
*/
protected boolean canDefine_nextAccess(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public boolean Define_assignedBefore(ASTNode _callerNode, ASTNode _childNode, Variable v, BodyDecl b) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_assignedBefore(self, _callerNode, v, b)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_assignedBefore(self, _callerNode, v, b);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/DefiniteAssignment.jrag:292
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute assignedBefore
*/
protected boolean canDefine_assignedBefore(ASTNode _callerNode, ASTNode _childNode, Variable v, BodyDecl b) {
return false;
}
/** @apilevel internal */
public boolean Define_unassignedBefore(ASTNode _callerNode, ASTNode _childNode, Variable v, BodyDecl b) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_unassignedBefore(self, _callerNode, v, b)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_unassignedBefore(self, _callerNode, v, b);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/DefiniteAssignment.jrag:935
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute unassignedBefore
*/
protected boolean canDefine_unassignedBefore(ASTNode _callerNode, ASTNode _childNode, Variable v, BodyDecl b) {
return false;
}
/** @apilevel internal */
public SimpleSet Define_otherLocalClassDecls(ASTNode _callerNode, ASTNode _childNode, String name) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_otherLocalClassDecls(self, _callerNode, name)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_otherLocalClassDecls(self, _callerNode, name);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/NameCheck.jrag:686
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute otherLocalClassDecls
*/
protected boolean canDefine_otherLocalClassDecls(ASTNode _callerNode, ASTNode _childNode, String name) {
return false;
}
/** @apilevel internal */
public Stmt Define_branchTarget(ASTNode _callerNode, ASTNode _childNode, Stmt branch) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_branchTarget(self, _callerNode, branch)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_branchTarget(self, _callerNode, branch);
}
/**
* @declaredat /home/jesper/git/extendj/java5/frontend/EnhancedFor.jrag:38
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute branchTarget
*/
protected boolean canDefine_branchTarget(ASTNode _callerNode, ASTNode _childNode, Stmt branch) {
return false;
}
/** @apilevel internal */
public boolean Define_leavesMonitor(ASTNode _callerNode, ASTNode _childNode, Stmt branch, SynchronizedStmt monitor) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_leavesMonitor(self, _callerNode, branch, monitor)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_leavesMonitor(self, _callerNode, branch, monitor);
}
/**
* @declaredat /home/jesper/git/extendj/java4/backend/CreateBCode.jrag:1914
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute leavesMonitor
*/
protected boolean canDefine_leavesMonitor(ASTNode _callerNode, ASTNode _childNode, Stmt branch, SynchronizedStmt monitor) {
return false;
}
/** @apilevel internal */
public Modifiers Define_declarationModifiers(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_declarationModifiers(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_declarationModifiers(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java5/frontend/EnhancedFor.jrag:186
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute declarationModifiers
*/
protected boolean canDefine_declarationModifiers(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public Access Define_declarationType(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_declarationType(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_declarationType(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java5/frontend/EnhancedFor.jrag:188
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute declarationType
*/
protected boolean canDefine_declarationType(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public FieldDeclarator Define_erasedField(ASTNode _callerNode, ASTNode _childNode) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_erasedField(self, _callerNode)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_erasedField(self, _callerNode);
}
/**
* @declaredat /home/jesper/git/extendj/java5/frontend/Generics.jrag:1655
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute erasedField
*/
protected boolean canDefine_erasedField(ASTNode _callerNode, ASTNode _childNode) {
return false;
}
/** @apilevel internal */
public boolean Define_reachableCatchClause(ASTNode _callerNode, ASTNode _childNode, TypeDecl exceptionType) {
ASTNode self = this;
ASTNode parent = getParent();
while (parent != null && !parent.canDefine_reachableCatchClause(self, _callerNode, exceptionType)) {
_callerNode = self;
self = parent;
parent = self.getParent();
}
return parent.Define_reachableCatchClause(self, _callerNode, exceptionType);
}
/**
* @declaredat /home/jesper/git/extendj/java4/frontend/UnreachableStatements.jrag:183
* @apilevel internal
* @return {@code true} if this node has an equation for the inherited attribute reachableCatchClause
*/
protected boolean canDefine_reachableCatchClause(ASTNode _callerNode, ASTNode _childNode, TypeDecl exceptionType) {
return false;
}
public ASTNode rewrittenNode() { throw new Error("rewrittenNode is undefined for ASTNode"); }
}