//generated by abstract-syntax-gen package de.peeeq.wurstscript.ast; import java.util.*; @SuppressWarnings({"cast", "unused", "rawtypes"}) class StmtForInImpl implements StmtForIn{ StmtForInImpl(de.peeeq.wurstscript.parser.WPos source, LocalVarDef loopVar, Expr in, WStatements body) { if (source == null) throw new IllegalArgumentException("Element source must not be null."); if (loopVar == null) throw new IllegalArgumentException("Element loopVar must not be null."); if (in == null) throw new IllegalArgumentException("Element in must not be null."); if (body == null) throw new IllegalArgumentException("Element body must not be null."); this.source = source; this.loopVar = loopVar; this.in = in; this.body = body; loopVar.setParent(this); in.setParent(this); body.setParent(this); } private Element parent; public Element getParent() { return parent; } public void setParent(Element parent) { if (parent != null && this.parent != null) { throw new Error("Cannot change parent of element " + this.getClass().getSimpleName() + ", as it is already used in another tree." + "Use the copy method to create a new tree or remove the tree from its old parent or set the parent to null before moving the tree. "); } this.parent = parent; } public void replaceBy(Element other) { if (parent == null) throw new RuntimeException("Node not attached to tree."); for (int i=0; i<parent.size(); i++) { if (parent.get(i) == this) { parent.set(i, other); return; } } } private de.peeeq.wurstscript.parser.WPos source; public void setSource(de.peeeq.wurstscript.parser.WPos source) { if (source == null) throw new IllegalArgumentException(); this.source = source; } public de.peeeq.wurstscript.parser.WPos getSource() { return source; } private LocalVarDef loopVar; public void setLoopVar(LocalVarDef loopVar) { if (loopVar == null) throw new IllegalArgumentException(); this.loopVar.setParent(null); loopVar.setParent(this); this.loopVar = loopVar; } public LocalVarDef getLoopVar() { return loopVar; } private Expr in; public void setIn(Expr in) { if (in == null) throw new IllegalArgumentException(); this.in.setParent(null); in.setParent(this); this.in = in; } public Expr getIn() { return in; } private WStatements body; public void setBody(WStatements body) { if (body == null) throw new IllegalArgumentException(); this.body.setParent(null); body.setParent(this); this.body = body; } public WStatements getBody() { return body; } public Element get(int i) { switch (i) { case 0: return loopVar; case 1: return in; case 2: return body; default: throw new IllegalArgumentException("Index out of range: " + i); } } public Element set(int i, Element newElem) { Element oldElem; switch (i) { case 0: oldElem = loopVar; setLoopVar((LocalVarDef) newElem); return oldElem; case 1: oldElem = in; setIn((Expr) newElem); return oldElem; case 2: oldElem = body; setBody((WStatements) newElem); return oldElem; default: throw new IllegalArgumentException("Index out of range: " + i); } } @Override public void forEachElement(java.util.function.Consumer<? super Element> action) { action.accept(this.loopVar); action.accept(this.in); action.accept(this.body); } public int size() { return 3; } @Override public StmtForIn copy() { StmtForIn result = new StmtForInImpl(source, (LocalVarDef) this.loopVar.copy(), (Expr) this.in.copy(), (WStatements) this.body.copy()); return result; } @Override public StmtForIn copyWithRefs() { StmtForIn res = copy(); return res; } @Override public void clearAttributes() { loopVar.clearAttributes(); in.clearAttributes(); body.clearAttributes(); clearAttributesLocal(); } @Override public void clearAttributesLocal() { zzattr_attrNextStatements_state = 0; zzattr_attrPreviousStatements_state = 0; zzattr_attrAfterBodyStatements_state = 0; zzattr_attrListIndex_state = 0; zzattr_attrReadVariables_state = 0; zzattr_attrNextScope_state = 0; zzattr_attrIteratorFunc_state = 0; zzattr_attrItrType_state = 0; zzattr_attrHasNextFunc_state = 0; zzattr_attrGetNextFunc_state = 0; zzattr_attrCloseFunc_state = 0; zzattr_attrNameLinks_state = 0; zzattr_attrTypeNameLinks_state = 0; zzattr_attrUsedGlobalVariables_state = 0; zzattr_attrReadGlobalVariables_state = 0; } @Override public void accept(Visitor v) { v.visit(this); } @Override public <T> T match(ControlflowStatement.Matcher<T> matcher) { return matcher.case_StmtForIn(this); } @Override public void match(ControlflowStatement.MatcherVoid matcher) { matcher.case_StmtForIn(this); } @Override public <T> T match(StmtForEach.Matcher<T> matcher) { return matcher.case_StmtForIn(this); } @Override public void match(StmtForEach.MatcherVoid matcher) { matcher.case_StmtForIn(this); } @Override public <T> T match(HasReadVariables.Matcher<T> matcher) { return matcher.case_StmtForIn(this); } @Override public void match(HasReadVariables.MatcherVoid matcher) { matcher.case_StmtForIn(this); } @Override public <T> T match(WScope.Matcher<T> matcher) { return matcher.case_StmtForIn(this); } @Override public void match(WScope.MatcherVoid matcher) { matcher.case_StmtForIn(this); } @Override public <T> T match(Element.Matcher<T> matcher) { return matcher.case_StmtForIn(this); } @Override public void match(Element.MatcherVoid matcher) { matcher.case_StmtForIn(this); } @Override public <T> T match(CompoundStatement.Matcher<T> matcher) { return matcher.case_StmtForIn(this); } @Override public void match(CompoundStatement.MatcherVoid matcher) { matcher.case_StmtForIn(this); } @Override public <T> T match(AstElementWithBody.Matcher<T> matcher) { return matcher.case_StmtForIn(this); } @Override public void match(AstElementWithBody.MatcherVoid matcher) { matcher.case_StmtForIn(this); } @Override public <T> T match(LoopStatementWithVarDef.Matcher<T> matcher) { return matcher.case_StmtForIn(this); } @Override public void match(LoopStatementWithVarDef.MatcherVoid matcher) { matcher.case_StmtForIn(this); } @Override public <T> T match(AstElementWithSource.Matcher<T> matcher) { return matcher.case_StmtForIn(this); } @Override public void match(AstElementWithSource.MatcherVoid matcher) { matcher.case_StmtForIn(this); } @Override public <T> T match(WStatement.Matcher<T> matcher) { return matcher.case_StmtForIn(this); } @Override public void match(WStatement.MatcherVoid matcher) { matcher.case_StmtForIn(this); } @Override public <T> T match(ExprOrStatements.Matcher<T> matcher) { return matcher.case_StmtForIn(this); } @Override public void match(ExprOrStatements.MatcherVoid matcher) { matcher.case_StmtForIn(this); } @Override public <T> T match(LoopStatement.Matcher<T> matcher) { return matcher.case_StmtForIn(this); } @Override public void match(LoopStatement.MatcherVoid matcher) { matcher.case_StmtForIn(this); } @Override public String toString() { return "StmtForIn(" + source + ", " +loopVar + ", " +in + ", " +body+")"; } public boolean structuralEquals(Element e) { if (e instanceof StmtForIn) { StmtForIn o = (StmtForIn) e; return this.loopVar.structuralEquals(o.getLoopVar()) && this.in.structuralEquals(o.getIn()) && this.body.structuralEquals(o.getBody()); } else { return false; } } // circular = null private int zzattr_attrNextStatements_state = 0; private java.util.List<WStatement> zzattr_attrNextStatements_cache; /** "returns all statements which can be executed after this statement"*/ public java.util.List<WStatement> attrNextStatements() { if (zzattr_attrNextStatements_state == 0) { try { zzattr_attrNextStatements_state = 1; zzattr_attrNextStatements_cache = de.peeeq.wurstscript.attributes.Flow.getNext((StmtForIn)this); } finally { zzattr_attrNextStatements_state = 0; } zzattr_attrNextStatements_state = 2; } else if (zzattr_attrNextStatements_state == 1) { throw new CyclicDependencyError(this, "attrNextStatements"); } return zzattr_attrNextStatements_cache; } // circular = null private int zzattr_attrPreviousStatements_state = 0; private java.util.List<WStatement> zzattr_attrPreviousStatements_cache; /** "returns all statements which could have been executed before this statement"*/ public java.util.List<WStatement> attrPreviousStatements() { if (zzattr_attrPreviousStatements_state == 0) { try { zzattr_attrPreviousStatements_state = 1; zzattr_attrPreviousStatements_cache = de.peeeq.wurstscript.attributes.Flow.getPrevious((StmtForIn)this); } finally { zzattr_attrPreviousStatements_state = 0; } zzattr_attrPreviousStatements_state = 2; } else if (zzattr_attrPreviousStatements_state == 1) { throw new CyclicDependencyError(this, "attrPreviousStatements"); } return zzattr_attrPreviousStatements_cache; } // circular = null private int zzattr_attrAfterBodyStatements_state = 0; private java.util.List<WStatement> zzattr_attrAfterBodyStatements_cache; /** "returns all statements which can be executed after the body/thenBlock/elseBlock of this statement is executed"*/ public java.util.List<WStatement> attrAfterBodyStatements() { if (zzattr_attrAfterBodyStatements_state == 0) { try { zzattr_attrAfterBodyStatements_state = 1; zzattr_attrAfterBodyStatements_cache = de.peeeq.wurstscript.attributes.Flow.getAfterBody((StmtForIn)this); } finally { zzattr_attrAfterBodyStatements_state = 0; } zzattr_attrAfterBodyStatements_state = 2; } else if (zzattr_attrAfterBodyStatements_state == 1) { throw new CyclicDependencyError(this, "attrAfterBodyStatements"); } return zzattr_attrAfterBodyStatements_cache; } // circular = null private int zzattr_attrListIndex_state = 0; private int zzattr_attrListIndex_cache; /** "returns the index this statement has in the underlying list"*/ public int attrListIndex() { if (zzattr_attrListIndex_state == 0) { try { zzattr_attrListIndex_state = 1; zzattr_attrListIndex_cache = de.peeeq.wurstscript.attributes.Flow.getListIndex((StmtForIn)this); } finally { zzattr_attrListIndex_state = 0; } zzattr_attrListIndex_state = 2; } else if (zzattr_attrListIndex_state == 1) { throw new CyclicDependencyError(this, "attrListIndex"); } return zzattr_attrListIndex_cache; } // circular = null private int zzattr_attrReadVariables_state = 0; private de.peeeq.immutablecollections.ImmutableList<NameDef> zzattr_attrReadVariables_cache; /** */ public de.peeeq.immutablecollections.ImmutableList<NameDef> attrReadVariables() { if (zzattr_attrReadVariables_state == 0) { try { zzattr_attrReadVariables_state = 1; zzattr_attrReadVariables_cache = de.peeeq.wurstscript.attributes.ReadVariables.calculate((StmtForIn)this); } finally { zzattr_attrReadVariables_state = 0; } zzattr_attrReadVariables_state = 2; } else if (zzattr_attrReadVariables_state == 1) { throw new CyclicDependencyError(this, "attrReadVariables"); } return zzattr_attrReadVariables_cache; } /** */ public boolean attrIsDynamicContext() { return de.peeeq.wurstscript.attributes.IsDynamicContext.calculate((StmtForIn)this); } /** */ public @org.eclipse.jdt.annotation.Nullable PackageOrGlobal attrNearestPackage() { return de.peeeq.wurstscript.attributes.AttrNearest.nearestPackage((StmtForIn)this); } /** */ public @org.eclipse.jdt.annotation.Nullable NamedScope attrNearestNamedScope() { return de.peeeq.wurstscript.attributes.AttrNearest.nearestNamedScope((StmtForIn)this); } /** */ public @org.eclipse.jdt.annotation.Nullable WScope attrNearestScope() { return de.peeeq.wurstscript.attributes.AttrNearest.nearestScope((StmtForIn)this); } // circular = null private int zzattr_attrNextScope_state = 0; private @org.eclipse.jdt.annotation.Nullable WScope zzattr_attrNextScope_cache; /** "returns the scope surrounding this scope"*/ public @org.eclipse.jdt.annotation.Nullable WScope attrNextScope() { if (zzattr_attrNextScope_state == 0) { try { zzattr_attrNextScope_state = 1; zzattr_attrNextScope_cache = de.peeeq.wurstscript.attributes.AttrNearest.nextScope((StmtForIn)this); } finally { zzattr_attrNextScope_state = 0; } zzattr_attrNextScope_state = 2; } else if (zzattr_attrNextScope_state == 1) { throw new CyclicDependencyError(this, "attrNextScope"); } return zzattr_attrNextScope_cache; } /** */ public String attrPathDescription() { return de.peeeq.wurstscript.attributes.PathDescription.get((StmtForIn)this); } /** */ public CompilationUnit attrCompilationUnit() { return de.peeeq.wurstscript.attributes.AttrNearest.nearestCompilationUnit((StmtForIn)this); } /** */ public @org.eclipse.jdt.annotation.Nullable ClassDef attrNearestClassDef() { return de.peeeq.wurstscript.attributes.AttrNearest.nearestClassDef((StmtForIn)this); } /** */ public @org.eclipse.jdt.annotation.Nullable ClassOrInterface attrNearestClassOrInterface() { return de.peeeq.wurstscript.attributes.AttrNearest.nearestClassOrInterface((StmtForIn)this); } /** */ public @org.eclipse.jdt.annotation.Nullable ClassOrModule attrNearestClassOrModule() { return de.peeeq.wurstscript.attributes.AttrNearest.nearestClassOrModule((StmtForIn)this); } /** */ public @org.eclipse.jdt.annotation.Nullable StructureDef attrNearestStructureDef() { return de.peeeq.wurstscript.attributes.AttrNearest.nearestStructureDef((StmtForIn)this); } /** */ public @org.eclipse.jdt.annotation.Nullable FunctionImplementation attrNearestFuncDef() { return de.peeeq.wurstscript.attributes.AttrNearest.nearestFuncDef((StmtForIn)this); } /** */ public @org.eclipse.jdt.annotation.Nullable ExprClosure attrNearestExprClosure() { return de.peeeq.wurstscript.attributes.AttrNearest.nearestExprClosure((StmtForIn)this); } /** */ public @org.eclipse.jdt.annotation.Nullable ExprStatementsBlock attrNearestExprStatementsBlock() { return de.peeeq.wurstscript.attributes.AttrNearest.nearestExprStatementsBlock((StmtForIn)this); } /** "returns the element itself if it is a NameDef or returns the referenced NameDef if the elem is a reference or returns null otherwise "*/ public @org.eclipse.jdt.annotation.Nullable NameDef tryGetNameDef() { return de.peeeq.wurstscript.attributes.AttrNameDef.tryGetNameDef((StmtForIn)this); } /** */ public de.peeeq.wurstscript.parser.WPos attrSource() { return de.peeeq.wurstscript.attributes.AttrPos.getPos((StmtForIn)this); } /** "returns the position where errors are marked"*/ public de.peeeq.wurstscript.parser.WPos attrErrorPos() { return de.peeeq.wurstscript.attributes.AttrPos.getErrorPos((StmtForIn)this); } /** */ public WurstModel getModel() { return de.peeeq.wurstscript.attributes.AttrImportedPackage.getModel((StmtForIn)this); } // circular = null private int zzattr_attrIteratorFunc_state = 0; private java.util.Optional<de.peeeq.wurstscript.attributes.names.FuncLink> zzattr_attrIteratorFunc_cache; /** */ public java.util.Optional<de.peeeq.wurstscript.attributes.names.FuncLink> attrIteratorFunc() { if (zzattr_attrIteratorFunc_state == 0) { try { zzattr_attrIteratorFunc_state = 1; zzattr_attrIteratorFunc_cache = de.peeeq.wurstscript.attributes.AttrForEachStatement.calcIterator((StmtForIn)this); } finally { zzattr_attrIteratorFunc_state = 0; } zzattr_attrIteratorFunc_state = 2; } else if (zzattr_attrIteratorFunc_state == 1) { throw new CyclicDependencyError(this, "attrIteratorFunc"); } return zzattr_attrIteratorFunc_cache; } // circular = null private int zzattr_attrItrType_state = 0; private de.peeeq.wurstscript.types.WurstType zzattr_attrItrType_cache; /** */ public de.peeeq.wurstscript.types.WurstType attrItrType() { if (zzattr_attrItrType_state == 0) { try { zzattr_attrItrType_state = 1; zzattr_attrItrType_cache = de.peeeq.wurstscript.attributes.AttrForEachStatement.calcItrType((StmtForIn)this); } finally { zzattr_attrItrType_state = 0; } zzattr_attrItrType_state = 2; } else if (zzattr_attrItrType_state == 1) { throw new CyclicDependencyError(this, "attrItrType"); } return zzattr_attrItrType_cache; } // circular = null private int zzattr_attrHasNextFunc_state = 0; private java.util.Optional<de.peeeq.wurstscript.attributes.names.FuncLink> zzattr_attrHasNextFunc_cache; /** */ public java.util.Optional<de.peeeq.wurstscript.attributes.names.FuncLink> attrHasNextFunc() { if (zzattr_attrHasNextFunc_state == 0) { try { zzattr_attrHasNextFunc_state = 1; zzattr_attrHasNextFunc_cache = de.peeeq.wurstscript.attributes.AttrForEachStatement.calcHasNext((StmtForIn)this); } finally { zzattr_attrHasNextFunc_state = 0; } zzattr_attrHasNextFunc_state = 2; } else if (zzattr_attrHasNextFunc_state == 1) { throw new CyclicDependencyError(this, "attrHasNextFunc"); } return zzattr_attrHasNextFunc_cache; } // circular = null private int zzattr_attrGetNextFunc_state = 0; private java.util.Optional<de.peeeq.wurstscript.attributes.names.FuncLink> zzattr_attrGetNextFunc_cache; /** */ public java.util.Optional<de.peeeq.wurstscript.attributes.names.FuncLink> attrGetNextFunc() { if (zzattr_attrGetNextFunc_state == 0) { try { zzattr_attrGetNextFunc_state = 1; zzattr_attrGetNextFunc_cache = de.peeeq.wurstscript.attributes.AttrForEachStatement.calcGetNext((StmtForIn)this); } finally { zzattr_attrGetNextFunc_state = 0; } zzattr_attrGetNextFunc_state = 2; } else if (zzattr_attrGetNextFunc_state == 1) { throw new CyclicDependencyError(this, "attrGetNextFunc"); } return zzattr_attrGetNextFunc_cache; } // circular = null private int zzattr_attrCloseFunc_state = 0; private java.util.Optional<de.peeeq.wurstscript.attributes.names.FuncLink> zzattr_attrCloseFunc_cache; /** */ public java.util.Optional<de.peeeq.wurstscript.attributes.names.FuncLink> attrCloseFunc() { if (zzattr_attrCloseFunc_state == 0) { try { zzattr_attrCloseFunc_state = 1; zzattr_attrCloseFunc_cache = de.peeeq.wurstscript.attributes.AttrForEachStatement.calcClose((StmtForIn)this); } finally { zzattr_attrCloseFunc_state = 0; } zzattr_attrCloseFunc_state = 2; } else if (zzattr_attrCloseFunc_state == 1) { throw new CyclicDependencyError(this, "attrCloseFunc"); } return zzattr_attrCloseFunc_cache; } /** */ public de.peeeq.wurstscript.jassIm.ImStmt imTranslateStmt(de.peeeq.wurstscript.translation.imtranslation.ImTranslator translator, de.peeeq.wurstscript.jassIm.ImFunction f) { return de.peeeq.wurstscript.translation.imtranslation.StmtTranslation.translate((StmtForIn)this, translator, f); } /** */ public void addError(String msg) { de.peeeq.wurstscript.attributes.ErrorHandling.addError((StmtForIn)this, msg); } /** */ public void addWarning(String msg) { de.peeeq.wurstscript.attributes.ErrorHandling.addWarning((StmtForIn)this, msg); } /** */ public de.peeeq.wurstscript.attributes.ErrorHandler getErrorHandler() { return de.peeeq.wurstscript.attributes.ErrorHandling.getErrorHandler((StmtForIn)this); } // circular = null private int zzattr_attrNameLinks_state = 0; private com.google.common.collect.ImmutableMultimap<String, de.peeeq.wurstscript.attributes.names.DefLink> zzattr_attrNameLinks_cache; /** "returns a map of all the names visible in this scope."*/ public com.google.common.collect.ImmutableMultimap<String, de.peeeq.wurstscript.attributes.names.DefLink> attrNameLinks() { if (zzattr_attrNameLinks_state == 0) { try { zzattr_attrNameLinks_state = 1; zzattr_attrNameLinks_cache = de.peeeq.wurstscript.attributes.names.NameLinks.calculate((StmtForIn)this); } finally { zzattr_attrNameLinks_state = 0; } zzattr_attrNameLinks_state = 2; } else if (zzattr_attrNameLinks_state == 1) { throw new CyclicDependencyError(this, "attrNameLinks"); } return zzattr_attrNameLinks_cache; } // circular = null private int zzattr_attrTypeNameLinks_state = 0; private com.google.common.collect.ImmutableMultimap<String, de.peeeq.wurstscript.attributes.names.TypeLink> zzattr_attrTypeNameLinks_cache; /** "returns a map of all the names visible in this scope."*/ public com.google.common.collect.ImmutableMultimap<String, de.peeeq.wurstscript.attributes.names.TypeLink> attrTypeNameLinks() { if (zzattr_attrTypeNameLinks_state == 0) { try { zzattr_attrTypeNameLinks_state = 1; zzattr_attrTypeNameLinks_cache = de.peeeq.wurstscript.attributes.names.TypeNameLinks.calculate((StmtForIn)this); } finally { zzattr_attrTypeNameLinks_state = 0; } zzattr_attrTypeNameLinks_state = 2; } else if (zzattr_attrTypeNameLinks_state == 1) { throw new CyclicDependencyError(this, "attrTypeNameLinks"); } return zzattr_attrTypeNameLinks_cache; } /** */ public @org.eclipse.jdt.annotation.Nullable TypeDef lookupType(String name, boolean showErrors) { return de.peeeq.wurstscript.attributes.names.NameResolution.lookupType((StmtForIn)this, name, showErrors); } /** */ public de.peeeq.wurstscript.attributes.names.PackageLink lookupPackage(String name, boolean showErrors) { return de.peeeq.wurstscript.attributes.names.NameResolution.lookupPackage((StmtForIn)this, name, showErrors); } /** */ public de.peeeq.wurstscript.attributes.names.NameLink lookupVar(String name, boolean showErrors) { return de.peeeq.wurstscript.attributes.names.NameResolution.lookupVar((StmtForIn)this, name, showErrors); } /** */ public de.peeeq.wurstscript.attributes.names.NameLink lookupVarNoConfig(String name, boolean showErrors) { return de.peeeq.wurstscript.attributes.names.NameResolution.lookupVarNoConfig((StmtForIn)this, name, showErrors); } /** */ public de.peeeq.wurstscript.attributes.names.NameLink lookupMemberVar(de.peeeq.wurstscript.types.WurstType receiverType, String name, boolean showErrors) { return de.peeeq.wurstscript.attributes.names.NameResolution.lookupMemberVar((StmtForIn)this, receiverType, name, showErrors); } /** */ public com.google.common.collect.ImmutableCollection<de.peeeq.wurstscript.attributes.names.FuncLink> lookupFuncs(String name, boolean showErrors) { return de.peeeq.wurstscript.attributes.names.NameResolution.lookupFuncs((StmtForIn)this, name, showErrors); } /** */ public com.google.common.collect.ImmutableCollection<de.peeeq.wurstscript.attributes.names.FuncLink> lookupFuncsNoConfig(String name, boolean showErrors) { return de.peeeq.wurstscript.attributes.names.NameResolution.lookupFuncsNoConfig((StmtForIn)this, name, showErrors); } /** */ public com.google.common.collect.ImmutableCollection<de.peeeq.wurstscript.attributes.names.FuncLink> lookupMemberFuncs(de.peeeq.wurstscript.types.WurstType receiverType, String name, boolean showErrors) { return de.peeeq.wurstscript.attributes.names.NameResolution.lookupMemberFuncs((StmtForIn)this, receiverType, name, showErrors); } /** */ public @org.eclipse.jdt.annotation.Nullable TypeDef lookupType(String name) { return de.peeeq.wurstscript.attributes.names.NameResolution.lookupTypeShort((StmtForIn)this, name); } /** */ public de.peeeq.wurstscript.attributes.names.PackageLink lookupPackage(String name) { return de.peeeq.wurstscript.attributes.names.NameResolution.lookupPackageShort((StmtForIn)this, name); } /** */ public de.peeeq.wurstscript.attributes.names.NameLink lookupVar(String name) { return de.peeeq.wurstscript.attributes.names.NameResolution.lookupVarShort((StmtForIn)this, name); } /** */ public de.peeeq.wurstscript.attributes.names.NameLink lookupMemberVar(de.peeeq.wurstscript.types.WurstType receiverType, String name) { return de.peeeq.wurstscript.attributes.names.NameResolution.lookupMemberVarShort((StmtForIn)this, receiverType, name); } /** */ public com.google.common.collect.ImmutableCollection<de.peeeq.wurstscript.attributes.names.FuncLink> lookupFuncs(String name) { return de.peeeq.wurstscript.attributes.names.NameResolution.lookupFuncsShort((StmtForIn)this, name); } /** */ public com.google.common.collect.ImmutableCollection<de.peeeq.wurstscript.attributes.names.FuncLink> lookupMemberFuncs(de.peeeq.wurstscript.types.WurstType receiverType, String name) { return de.peeeq.wurstscript.attributes.names.NameResolution.lookupMemberFuncsShort((StmtForIn)this, receiverType, name); } // circular = de.peeeq.wurstscript.utils.Utils.emptyList private int zzattr_attrUsedGlobalVariables_state = 0; private com.google.common.collect.ImmutableList<VarDef> zzattr_attrUsedGlobalVariables_cache; /** */ public com.google.common.collect.ImmutableList<VarDef> attrUsedGlobalVariables() { if (zzattr_attrUsedGlobalVariables_state == 0) { zzattr_attrUsedGlobalVariables_state = 1; zzattr_attrUsedGlobalVariables_cache = de.peeeq.wurstscript.utils.Utils.emptyList(); while (true) { com.google.common.collect.ImmutableList<VarDef> r = de.peeeq.wurstscript.attributes.UsedGlobalVariables.getUsedGlobals((StmtForIn)this); if (zzattr_attrUsedGlobalVariables_state == 3) { if (!zzattr_attrUsedGlobalVariables_cache.equals(r)) { zzattr_attrUsedGlobalVariables_cache = r; continue; } } zzattr_attrUsedGlobalVariables_cache = r; break; } zzattr_attrUsedGlobalVariables_state = 2; } else if (zzattr_attrUsedGlobalVariables_state == 1) { zzattr_attrUsedGlobalVariables_state = 3; } return zzattr_attrUsedGlobalVariables_cache; } // circular = de.peeeq.wurstscript.utils.Utils.emptyList private int zzattr_attrReadGlobalVariables_state = 0; private com.google.common.collect.ImmutableList<VarDef> zzattr_attrReadGlobalVariables_cache; /** */ public com.google.common.collect.ImmutableList<VarDef> attrReadGlobalVariables() { if (zzattr_attrReadGlobalVariables_state == 0) { zzattr_attrReadGlobalVariables_state = 1; zzattr_attrReadGlobalVariables_cache = de.peeeq.wurstscript.utils.Utils.emptyList(); while (true) { com.google.common.collect.ImmutableList<VarDef> r = de.peeeq.wurstscript.attributes.UsedGlobalVariables.getReadGlobals((StmtForIn)this); if (zzattr_attrReadGlobalVariables_state == 3) { if (!zzattr_attrReadGlobalVariables_cache.equals(r)) { zzattr_attrReadGlobalVariables_cache = r; continue; } } zzattr_attrReadGlobalVariables_cache = r; break; } zzattr_attrReadGlobalVariables_state = 2; } else if (zzattr_attrReadGlobalVariables_state == 1) { zzattr_attrReadGlobalVariables_state = 3; } return zzattr_attrReadGlobalVariables_cache; } /** */ public com.google.common.collect.ImmutableCollection<WPackage> attrUsedPackages() { return de.peeeq.wurstscript.attributes.UsedPackages.usedPackages((StmtForIn)this); } /** */ public String description() { return de.peeeq.wurstscript.attributes.Description.description((StmtForIn)this); } /** */ public String descriptionHtml() { return de.peeeq.wurstscript.attributes.DescriptionHtml.description((StmtForIn)this); } /** */ public boolean isSubtreeOf(Element other) { return de.peeeq.wurstscript.attributes.SmallHelpers.isSubtreeOf((StmtForIn)this, other); } /** */ public void prettyPrint(de.peeeq.wurstscript.attributes.prettyPrint.Spacer spacer, StringBuilder sb, int indent) { de.peeeq.wurstscript.attributes.prettyPrint.PrettyPrinter.prettyPrint((StmtForIn)this, spacer, sb, indent); } }