package de.peeeq.wurstscript.ast abstract syntax: Identifier(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, String name) WurstModel * CompilationUnit CompilationUnit(de.peeeq.wurstscript.attributes.CompilationUnitInfo cuInfo, JassToplevelDeclarations jassDecls, WPackages packages) JassToplevelDeclarations * JassToplevelDeclaration WPackages * WPackage TopLevelDeclaration = JassToplevelDeclaration | WPackage TopLevelDeclarations * TopLevelDeclaration WPackage(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, Modifiers modifiers, Identifier nameId, WImports imports, WEntities elements) WImports * WImport WEntities * WEntity WImport(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, boolean isPublic, boolean isInitLater, Identifier packagenameId) WEntity = TypeDef | FuncDef | GlobalVarDef | ExtensionFuncDef(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, Modifiers modifiers, TypeExpr extendedType, Identifier nameId, TypeParamDefs typeParameters, WParameters parameters, OptTypeExpr returnTyp, WStatements body) | InitBlock (@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, WStatements body) | NativeFunc(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, Modifiers modifiers, Identifier nameId, WParameters parameters, OptTypeExpr returnTyp) | ModuleDef(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, Modifiers modifiers, Identifier nameId, TypeParamDefs typeParameters, ClassDefs innerClasses, FuncDefs methods, GlobalVarDefs vars, ConstructorDefs constructors, ModuleInstanciations p_moduleInstanciations, ModuleUses moduleUses, OnDestroyDef onDestroy) TypeExpr = TypeExprSimple(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, OptTypeExpr scopeType, String typeName, TypeExprList typeArgs) | TypeExprArray(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, TypeExpr base, OptExpr arraySize) | TypeExprThis(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, OptTypeExpr scopeType) | TypeExprResolved(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, de.peeeq.wurstscript.types.WurstType resolvedType) OptTypeExpr = NoTypeExpr() | TypeExpr OptExpr = NoExpr() | Expr TypeDef = NativeType(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, Modifiers modifiers, Identifier nameId, OptTypeExpr optTyp) | ClassDef(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, Modifiers modifiers, Identifier nameId, TypeParamDefs typeParameters, OptTypeExpr extendedClass, TypeExprList implementsList, ClassDefs innerClasses, FuncDefs methods, GlobalVarDefs vars, ConstructorDefs constructors, ModuleInstanciations p_moduleInstanciations, ModuleUses moduleUses, OnDestroyDef onDestroy) | InterfaceDef(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, Modifiers modifiers, Identifier nameId, TypeParamDefs typeParameters, TypeExprList extendsList, FuncDefs methods, GlobalVarDefs vars, ConstructorDefs constructors, ModuleInstanciations moduleInstanciations, ModuleUses moduleUses, OnDestroyDef onDestroy) | TupleDef(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, Modifiers modifiers, Identifier nameId, WParameters parameters, OptTypeExpr returnTyp) | TypeParamDef | EnumDef(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, Modifiers modifiers, Identifier nameId, EnumMembers members ) | StructureDef ClassDefs * ClassDef EnumMembers * EnumMember FuncDefs * FuncDef GlobalVarDefs * GlobalVarDef ConstructorDefs * ConstructorDef ModuleInstanciations * ModuleInstanciation ModuleUses * ModuleUse TypeExprList * TypeExpr SwitchCases * SwitchCase SwitchCase( @ignoreForEquality de.peeeq.wurstscript.parser.WPos source, ExprList expressions, WStatements stmts ) SwitchDefaultCase = SwitchDefaultCaseStatements(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, WStatements stmts) | NoDefaultCase() ClassSlot = ConstructorDef(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, Modifiers modifiers, WParameters parameters, SuperConstructorCall superConstructorCall, WStatements body) | OnDestroyDef(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, WStatements body) | ModuleUse(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, Identifier moduleNameId, TypeExprList typeArgs) | ModuleInstanciation(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, Modifiers modifiers, Identifier nameId, ClassDefs innerClasses, FuncDefs methods, GlobalVarDefs vars, ConstructorDefs constructors, ModuleInstanciations p_moduleInstanciations, ModuleUses moduleUses, OnDestroyDef onDestroy) | ClassMember | ClassDef ClassMember = GlobalVarDef | FuncDef EnumMember(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, Modifiers modifiers, Identifier nameId) SuperConstructorCall = SomeSuperConstructorCall(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, @ignoreForEquality de.peeeq.wurstscript.parser.WPos keywordSource, Arguments superArgs) | NoSuperConstructorCall() GlobalVarDef(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, Modifiers modifiers, OptTypeExpr optTyp, Identifier nameId, VarInitialization initialExpr) LocalVarDef(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, Modifiers modifiers, OptTypeExpr optTyp, Identifier nameId, VarInitialization initialExpr) VarInitialization = OptExpr | ArrayInitializer(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, ExprList values) FuncDef(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, Modifiers modifiers, Identifier nameId, TypeParamDefs typeParameters, WParameters parameters, OptTypeExpr returnTyp, WStatements body) ArraySizes * Expr //FuncSignature(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, Identifier nameId, TypeParamDefs typeParameters, WParameters parameters, OptTypeExpr returnTyp) TypeParamDefs * TypeParamDef TypeParamDef(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, Modifiers modifiers, Identifier nameId, TypeParamConstraints typeParamConstraints) TypeParamConstraints = NoTypeParamConstraints() | TypeExprList WParameters * WParameter WParameter(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, Modifiers modifiers, TypeExpr typ, Identifier nameId) WShortParameters * WShortParameter WShortParameter(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, Modifiers modifiers, OptTypeExpr typOpt, Identifier nameId) WStatements * WStatement ExprOrStatements = WStatements | WStatement | Expr WStatement = ActionStatement | ControlflowStatement | EndFunctionStatement(de.peeeq.wurstscript.parser.WPos source) | StartFunctionStatement(de.peeeq.wurstscript.parser.WPos source) ActionStatement = StmtSkip(de.peeeq.wurstscript.parser.WPos source) | LocalVarDef | StmtSet(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, LExpr updatedExpr, Expr right) | StmtCall | StmtErr(de.peeeq.wurstscript.parser.WPos source) | ExprMemberVar | ExprVarAccess | ExprDestroy ControlflowStatement = CompoundStatement | StmtReturn(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, OptExpr returnedObj) | StmtExitwhen(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, Expr cond) CompoundStatement = StmtIf(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, Expr cond, WStatements thenBlock, WStatements elseBlock, boolean hasElse) | SwitchStmt(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, Expr expr, SwitchCases cases, SwitchDefaultCase switchDefault) | WBlock(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, WStatements body) | LoopStatement LoopStatement = StmtWhile(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, Expr cond, WStatements body) | StmtLoop(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, WStatements body) | LoopStatementWithVarDef LoopStatementWithVarDef = StmtForRange | StmtForEach StmtForEach = StmtForIn(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, LocalVarDef loopVar, Expr in, WStatements body) | StmtForFrom(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, LocalVarDef loopVar, Expr in, WStatements body) StmtForRange = StmtForRangeUp(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, LocalVarDef loopVar, Expr to, Expr step, WStatements body) | StmtForRangeDown(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, LocalVarDef loopVar, Expr to, Expr step, WStatements body) Expr = LExpr | FunctionCall | ExprBinary(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, Expr left, de.peeeq.wurstscript.WurstOperator op, Expr right) | ExprUnary(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, de.peeeq.wurstscript.WurstOperator opU, Expr right) | ExprMember | ExprFunctionCall(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, Identifier funcNameId, TypeExprList typeArgs, Arguments args) | ExprNewObject(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, Identifier typeNameId, TypeExprList typeArgs, Arguments args) | ExprCast(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, TypeExpr typ, Expr expr) | ExprInstanceOf(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, TypeExpr typ, Expr expr) | ExprClosure(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, @ignoreForEquality de.peeeq.wurstscript.parser.WPos arrowSource, WShortParameters shortParameters, Expr implementation) | ExprAtomic | ExprIncomplete(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, String errorMessage) | ExprStatementsBlock(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, WStatements body) | ExprDestroy(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, Expr destroyedObj) | ExprIfElse(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, Expr cond, Expr ifTrue, Expr ifFalse) ExprMember = ExprMemberVar | ExprMemberArrayVar | ExprMemberMethod | ExprTypeId(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, Expr left) ExprMemberVar = ExprMemberVarDot(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, Expr left, Identifier varNameId) | ExprMemberVarDotDot(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, Expr left, Identifier varNameId) ExprMemberArrayVar = ExprMemberArrayVarDot(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, Expr left, Identifier varNameId, Indexes indexes) | ExprMemberArrayVarDotDot(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, Expr left, Identifier varNameId, Indexes indexes) ExprMemberMethod = ExprMemberMethodDot(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, Expr left, Identifier funcNameId, TypeExprList typeArgs, Arguments args) | ExprMemberMethodDotDot(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, Expr left, Identifier funcNameId, TypeExprList typeArgs, Arguments args) ExprAtomic = ExprIntVal(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, String valIraw) | ExprRealVal(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, String valR) | ExprStringVal(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, String valS) | ExprBoolVal(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, boolean valB) | ExprFuncRef(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, String scopeName, Identifier funcNameId) | ExprVarAccess(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, Identifier varNameId) | ExprVarArrayAccess(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, Identifier varNameId, Indexes indexes) | ExprThis(de.peeeq.wurstscript.parser.WPos source) | ExprNull(de.peeeq.wurstscript.parser.WPos source) | ExprSuper(de.peeeq.wurstscript.parser.WPos source) | ExprEmpty(de.peeeq.wurstscript.parser.WPos source) Indexes * Expr Arguments * Expr ExprList * Expr // auxiliary types: IdentifierWithTypeArgs(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, Identifier nameId, ref TypeExprList typeArgs) IdentifierWithTypeParamDefs(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, Identifier nameId, ref TypeParamDefs typeParams) // a reference to a variable, needs a varName:String attribute NameRef = ExprVarArrayAccess | ExprVarAccess | ExprMemberVar | ExprMemberArrayVar // an expression that can be used on the left-hand side of an assignment LExpr = NameRef VarDef = GlobalOrLocalVarDef | WParameter | WShortParameter GlobalOrLocalVarDef = GlobalVarDef | LocalVarDef // has funcName:String attribute StmtCall = FunctionCall | ExprNewObject FunctionCall = ExprMemberMethod | ExprFunctionCall FuncRef = ExprFuncRef | FunctionCall | Annotation NotExtensionFunction = NativeFunc | FuncDef | TupleDef FunctionDefinition = NotExtensionFunction | ExtensionFuncDef | FunctionImplementation FunctionImplementation = FuncDef | ExtensionFuncDef FunctionLike = FunctionImplementation | ConstructorDef | InitBlock | OnDestroyDef Documentable = NameDef | ConstructorDef WScope = NamedScope | PackageOrGlobal | FunctionDefinition | FunctionLike | WurstModel | WStatements | LoopStatementWithVarDef | WBlock | WEntities | ExprClosure PackageOrGlobal = WPackage | CompilationUnit TypeRef = TypeExpr | ExprNewObject NameDef = NamedScope | VarDef | TypeDef | ModuleDef | ModuleInstanciation | FunctionDefinition | WPackage | EnumDef | EnumMember VisibilityModifier = VisibilityPublic(de.peeeq.wurstscript.parser.WPos source) | VisibilityPrivate(de.peeeq.wurstscript.parser.WPos source) | VisibilityPublicread(de.peeeq.wurstscript.parser.WPos source) | VisibilityProtected(de.peeeq.wurstscript.parser.WPos source) | VisibilityDefault(de.peeeq.wurstscript.parser.WPos source) Modifiers * Modifier Modifier = VisibilityModifier | Annotation(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, Identifier funcNameId, Arguments args) | ModStatic(de.peeeq.wurstscript.parser.WPos source) | ModOverride(de.peeeq.wurstscript.parser.WPos source) | ModAbstract(de.peeeq.wurstscript.parser.WPos source) | ModConstant(de.peeeq.wurstscript.parser.WPos source) | WurstDoc(@ignoreForEquality de.peeeq.wurstscript.parser.WPos source, String rawComment) | ModVararg(de.peeeq.wurstscript.parser.WPos source) // ElementWithBody = FunctionImplementation | InitBlock | ConstructorDef | OnDestroyDef //ElementWithModifier = NameDef | TypeDef | ModuleDef | ConstructorDef | GlobalVarDef | FunctionDefinition HasModifier = NameDef | TypeDef | ModuleDef | ConstructorDef | GlobalVarDef | FunctionDefinition HasTypeArgs = ExprNewObject | FunctionCall | ModuleUse | StmtCall | TypeExprSimple AstElementWithFuncName = ExprFunctionCall | ExprMemberMethod | ExprFuncRefc AstElementWithBody = ExtensionFuncDef | InitBlock | ConstructorDef | OnDestroyDef | FuncDef | WBlock | LoopStatement | ExprStatementsBlock | FunctionLike AstElementWithNameId = WPackage | NativeFunc | ModuleDef | TypeDef | ModuleInstanciation | EnumMember | GlobalVarDef | LocalVarDef | FuncDef | TypeParamDef | WParameter | WShortParameter | IdentifierWithTypeArgs | IdentifierWithTypeParamDefs AstElementWithParameters = FunctionDefinition | ExtensionFuncDef | NativeFunc | TupleDef | ConstructorDef | FuncDef AstElementWithTypeParameters = ExtensionFuncDef | ModuleDef | ClassDef | InterfaceDef | FuncDef AstElementWithArgs = StmtCall | ExprFunctionCall | ExprNewObject | ExprMemberMethod AstElementWithTypeArgs = IdentifierWithTypeArgs | TypeExprSimple | ModuleUse | ExprFunctionCall | ExprNewObject | ExprMemberMethod | FunctionCall HasReceiver = ExprMemberVar | ExprMemberArrayVar | ExprMemberMethod AstElementWithSource = Identifier | WPackage | WImport | WEntity | TypeExpr | TypeDef | SwitchCase | ClassSlot | ClassMember | EnumMember | GlobalVarDef | LocalVarDef | FuncDef | TypeParamDef | WParameter | WShortParameter | WStatement | Expr | IdentifierWithTypeArgs | IdentifierWithTypeParamDefs | NameRef | VarDef | FunctionDefinition | NameRef | NameDef | Modifier | SomeSuperConstructorCall AstElementWithIndexes = ExprMemberArrayVar | ExprVarArrayAccess ClassOrModule = ClassDef | ModuleDef StructureDef = ClassOrModuleOrModuleInstanciation | ClassOrInterface ClassOrInterface = ClassDef | InterfaceDef ClassOrModuleInstanciation = ClassDef | ModuleInstanciation ClassOrModuleOrModuleInstanciation = ClassOrModule | ClassOrModuleInstanciation NamedScope = WPackage | StructureDef | InterfaceDef | EnumDef HasReadVariables = Expr | WStatement | WScope HasFunctionSignature = FunctionDefinition | ConstructorDef // Jass types: JassToplevelDeclaration = JassGlobalBlock | NotExtensionFunction | NativeType JassGlobalBlock * GlobalVarDef // special types for translation TranslatedToImFunction = ConstructorDef | FunctionDefinition | InitBlock | OnDestroyDef | ExprClosure attributes: WStatement.attrNextStatements "returns all statements which can be executed after this statement" returns java.util.List implemented by de.peeeq.wurstscript.attributes.Flow.getNext WStatement.attrPreviousStatements "returns all statements which could have been executed before this statement" returns java.util.List implemented by de.peeeq.wurstscript.attributes.Flow.getPrevious CompoundStatement.attrAfterBodyStatements "returns all statements which can be executed after the body/thenBlock/elseBlock of this statement is executed" returns java.util.List implemented by de.peeeq.wurstscript.attributes.Flow.getAfterBody WStatement.attrListIndex "returns the index this statement has in the underlying list" returns int implemented by de.peeeq.wurstscript.attributes.Flow.getListIndex HasReadVariables.attrReadVariables returns de.peeeq.immutablecollections.ImmutableList implemented by de.peeeq.wurstscript.attributes.ReadVariables.calculate FunctionDefinition.attrReturnTyp() returns de.peeeq.wurstscript.types.WurstType implemented by de.peeeq.wurstscript.attributes.AttrReturnTyp.calculate OptTypeExpr.attrTyp returns de.peeeq.wurstscript.types.WurstType implemented by de.peeeq.wurstscript.attributes.AttrTypeExprType.normalizedType Expr.attrTyp returns de.peeeq.wurstscript.types.WurstType implemented by de.peeeq.wurstscript.attributes.AttrExprType.normalizedType Expr.attrConstantValue returns de.peeeq.wurstscript.intermediatelang.ILconst implemented by de.peeeq.wurstscript.attributes.AttrConstantValue.calculate OptTypeExpr.attrTypRaw returns de.peeeq.wurstscript.types.WurstType implemented by de.peeeq.wurstscript.attributes.AttrTypeExprType.calculate Expr.attrTypRaw returns de.peeeq.wurstscript.types.WurstType implemented by de.peeeq.wurstscript.attributes.AttrExprType.calculate Expr.attrExpectedTypRaw returns de.peeeq.wurstscript.types.WurstType implemented by de.peeeq.wurstscript.attributes.AttrExprExpectedType.calculate Expr.attrExpectedTyp "try to guess what type is expected here" returns de.peeeq.wurstscript.types.WurstType implemented by de.peeeq.wurstscript.attributes.AttrExprExpectedType.normalizedType Expr.attrExpectedTypAfterOverloading() "more precise expected type, after overloading" returns de.peeeq.wurstscript.types.WurstType implemented by de.peeeq.wurstscript.attributes.AttrExprExpectedType.afterOverloading ExprClosure.attrClosureAbstractMethod returns de.peeeq.wurstscript.attributes.names.FuncLink implemented by de.peeeq.wurstscript.attributes.AttrClosureAbstractMethod.calculate ExprClosure.attrCapturedVariables returns com.google.common.collect.ImmutableMultimap implemented by de.peeeq.wurstscript.attributes.AttrClosureCapturedVariables.calculate FunctionCall.attrImplicitParameter returns OptExpr implemented by de.peeeq.wurstscript.attributes.AttrImplicitParameter.getImplicitParameter LExpr.attrImplicitParameter returns OptExpr implemented by de.peeeq.wurstscript.attributes.AttrImplicitParameter.getImplicitParameter NameDef.attrTyp returns de.peeeq.wurstscript.types.WurstType implemented by de.peeeq.wurstscript.attributes.AttrVarDefType.calculate ClassDef.attrTypC returns de.peeeq.wurstscript.types.WurstTypeClass implemented by de.peeeq.wurstscript.attributes.AttrVarDefType.calculate InterfaceDef.attrTypI returns de.peeeq.wurstscript.types.WurstTypeInterface implemented by de.peeeq.wurstscript.attributes.AttrVarDefType.calculate FunctionLike.attrReturnType returns de.peeeq.wurstscript.types.WurstType implemented by de.peeeq.wurstscript.attributes.AttrVarDefType.calculate VarDef.attrIsDynamicClassMember() returns boolean implemented by de.peeeq.wurstscript.attributes.AttrIsClassMember.calculate FunctionDefinition.attrIsDynamicClassMember() returns boolean implemented by de.peeeq.wurstscript.attributes.AttrIsClassMember.calculate FunctionDefinition.attrParameterTypesIncludingReceiver returns com.google.common.collect.ImmutableList implemented by de.peeeq.wurstscript.attributes.AttrParameterTypes.parameterTypesIncludingReceiver FunctionDefinition.attrParameterTypes returns com.google.common.collect.ImmutableList implemented by de.peeeq.wurstscript.attributes.AttrParameterTypes.parameterTypes FunctionDefinition.attrReceiverType returns de.peeeq.wurstscript.types.WurstType implemented by de.peeeq.wurstscript.attributes.AttrParameterTypes.receiverType Element.attrIsDynamicContext() returns boolean implemented by de.peeeq.wurstscript.attributes.IsDynamicContext.calculate Element.attrNearestPackage() returns @Nullable PackageOrGlobal implemented by de.peeeq.wurstscript.attributes.AttrNearest.nearestPackage Element.attrNearestNamedScope() returns @Nullable NamedScope implemented by de.peeeq.wurstscript.attributes.AttrNearest.nearestNamedScope Element.attrNearestScope() returns @Nullable WScope implemented by de.peeeq.wurstscript.attributes.AttrNearest.nearestScope WScope.attrNextScope "returns the scope surrounding this scope" returns @Nullable WScope implemented by de.peeeq.wurstscript.attributes.AttrNearest.nextScope Element.attrPathDescription() returns String implemented by de.peeeq.wurstscript.attributes.PathDescription.get Element.attrCompilationUnit() returns CompilationUnit implemented by de.peeeq.wurstscript.attributes.AttrNearest.nearestCompilationUnit Element.attrNearestClassDef() returns @Nullable ClassDef implemented by de.peeeq.wurstscript.attributes.AttrNearest.nearestClassDef Element.attrNearestClassOrInterface() returns @Nullable ClassOrInterface implemented by de.peeeq.wurstscript.attributes.AttrNearest.nearestClassOrInterface Element.attrNearestClassOrModule() returns @Nullable ClassOrModule implemented by de.peeeq.wurstscript.attributes.AttrNearest.nearestClassOrModule Element.attrNearestStructureDef() returns @Nullable StructureDef implemented by de.peeeq.wurstscript.attributes.AttrNearest.nearestStructureDef Element.attrNearestFuncDef() returns @Nullable FunctionImplementation implemented by de.peeeq.wurstscript.attributes.AttrNearest.nearestFuncDef Element.attrNearestExprClosure() returns @Nullable ExprClosure implemented by de.peeeq.wurstscript.attributes.AttrNearest.nearestExprClosure Element.attrNearestExprStatementsBlock() returns @Nullable ExprStatementsBlock implemented by de.peeeq.wurstscript.attributes.AttrNearest.nearestExprStatementsBlock Element.tryGetNameDef() "returns the element itself if it is a NameDef or returns the referenced NameDef if the elem is a reference or returns null otherwise " returns @Nullable NameDef implemented by de.peeeq.wurstscript.attributes.AttrNameDef.tryGetNameDef ExprStatementsBlock.getReturnStmt() returns StmtReturn implemented by de.peeeq.wurstscript.attributes.SmallHelpers.getReturnStatement HasModifier.attrIsCompiletime() returns boolean implemented by de.peeeq.wurstscript.attributes.ModifiersHelper.isCompiletime HasModifier.attrHasAnnotation(String name) returns boolean implemented by de.peeeq.wurstscript.attributes.ModifiersHelper.hasAnnotation HasModifier.attrGetAnnotation(String name) returns Annotation implemented by de.peeeq.wurstscript.attributes.ModifiersHelper.getAnnotation HasModifier.attrIsPublic() returns boolean implemented by de.peeeq.wurstscript.attributes.ModifiersHelper.isPublic HasModifier.attrIsPublicRead() returns boolean implemented by de.peeeq.wurstscript.attributes.ModifiersHelper.isPublicRead HasModifier.attrIsPrivate() returns boolean implemented by de.peeeq.wurstscript.attributes.ModifiersHelper.isPrivate HasModifier.attrIsProtected() returns boolean implemented by de.peeeq.wurstscript.attributes.ModifiersHelper.isProtected HasModifier.attrIsStatic() returns boolean implemented by de.peeeq.wurstscript.attributes.ModifiersHelper.isStatic HasModifier.attrIsOverride() returns boolean implemented by de.peeeq.wurstscript.attributes.ModifiersHelper.isOverride HasModifier.attrIsAbstract() returns boolean implemented by de.peeeq.wurstscript.attributes.ModifiersHelper.isAbstract HasModifier.attrIsConstant() returns boolean implemented by de.peeeq.wurstscript.attributes.ModifiersHelper.isConstant HasModifier.attrIsVararg() returns boolean implemented by de.peeeq.wurstscript.attributes.ModifiersHelper.isVararg ClassOrModuleOrModuleInstanciation.getModuleInstanciations() returns ModuleInstanciations implemented by de.peeeq.wurstscript.ModuleExpander.expandModules ClassOrModule.attrUsedModules returns com.google.common.collect.ImmutableCollection implemented by de.peeeq.wurstscript.attributes.AttrUsedModules.calculate WImport.attrImportedPackage returns @Nullable WPackage implemented by de.peeeq.wurstscript.attributes.AttrImportedPackage.getImportedPackage ModuleInstanciation.attrModuleOrigin returns ModuleDef implemented by de.peeeq.wurstscript.attributes.AttrModuleInstanciations.getModuleOrigin StmtCall.attrPossibleFunctionSignatures returns com.google.common.collect.ImmutableCollection implemented by de.peeeq.wurstscript.attributes.AttrPossibleFunctionSignatures.calculate StmtCall.attrFunctionSignature returns de.peeeq.wurstscript.types.FunctionSignature implemented by de.peeeq.wurstscript.attributes.AttrFunctionSignature.calculate StmtCall.attrCallSignature returns de.peeeq.wurstscript.types.CallSignature implemented by de.peeeq.wurstscript.attributes.AttrCallSignature.calculate Element.attrSource() returns de.peeeq.wurstscript.parser.WPos implemented by de.peeeq.wurstscript.attributes.AttrPos.getPos Element.attrErrorPos() "returns the position where errors are marked" returns de.peeeq.wurstscript.parser.WPos implemented by de.peeeq.wurstscript.attributes.AttrPos.getErrorPos ClassDef.isInnerClass() returns boolean implemented by de.peeeq.wurstscript.attributes.InnerClasses.isInnerClass ConstructorDef.attrSuperConstructor returns ConstructorDef implemented by de.peeeq.wurstscript.attributes.SubClasses.getSuperConstructor WurstModel.attrPackages returns com.google.common.collect.ImmutableMap implemented by de.peeeq.wurstscript.attributes.AttrImportedPackage.getPackages Element.getModel() returns WurstModel implemented by de.peeeq.wurstscript.attributes.AttrImportedPackage.getModel CompilationUnit.attrGetByType returns de.peeeq.wurstscript.attributes.ByTypes implemented by de.peeeq.wurstscript.attributes.GetByType.calculate WurstModel.attrConfigOverridePackages returns com.google.common.collect.ImmutableMap implemented by de.peeeq.wurstscript.attributes.CofigOverridePackages.calculate NameDef.attrConfigActualNameDef returns NameDef implemented by de.peeeq.wurstscript.attributes.CofigActualDef.calculate NameDef.hasAnnotation(String annotation) returns boolean implemented by de.peeeq.wurstscript.attributes.HasAnnotation.hasAnnotation NameDef.getAnnotation(String annotation) returns Annotation implemented by de.peeeq.wurstscript.attributes.HasAnnotation.getAnnotation StmtForIn.attrIteratorFunc returns java.util.Optional implemented by de.peeeq.wurstscript.attributes.AttrForEachStatement.calcIterator StmtForEach.attrItrType returns de.peeeq.wurstscript.types.WurstType implemented by de.peeeq.wurstscript.attributes.AttrForEachStatement.calcItrType StmtForEach.attrHasNextFunc returns java.util.Optional implemented by de.peeeq.wurstscript.attributes.AttrForEachStatement.calcHasNext StmtForEach.attrGetNextFunc returns java.util.Optional implemented by de.peeeq.wurstscript.attributes.AttrForEachStatement.calcGetNext StmtForEach.attrCloseFunc returns java.util.Optional implemented by de.peeeq.wurstscript.attributes.AttrForEachStatement.calcClose // Im translation WPackage.imTranslateTLD( de.peeeq.wurstscript.translation.imtranslation.ImTranslator translator ) returns void implemented by de.peeeq.wurstscript.translation.imtranslation.TLDTranslation.translate JassToplevelDeclaration.imTranslateTLD( de.peeeq.wurstscript.translation.imtranslation.ImTranslator translator ) returns void implemented by de.peeeq.wurstscript.translation.imtranslation.TLDTranslation.translate WEntity.imTranslateEntity( de.peeeq.wurstscript.translation.imtranslation.ImTranslator translator ) returns void implemented by de.peeeq.wurstscript.translation.imtranslation.TLDTranslation.translate LExpr.imTranslateExprLvalue( de.peeeq.wurstscript.translation.imtranslation.ImTranslator translator, de.peeeq.wurstscript.jassIm.ImFunction f ) returns de.peeeq.wurstscript.jassIm.ImLExpr implemented by de.peeeq.wurstscript.translation.imtranslation.ExprTranslation.translateLvalue Expr.imTranslateExpr( de.peeeq.wurstscript.translation.imtranslation.ImTranslator translator, de.peeeq.wurstscript.jassIm.ImFunction f ) returns de.peeeq.wurstscript.jassIm.ImExpr implemented by de.peeeq.wurstscript.translation.imtranslation.ExprTranslation.translate OptExpr.imTranslateExprOpt( de.peeeq.wurstscript.translation.imtranslation.ImTranslator translator, de.peeeq.wurstscript.jassIm.ImFunction f ) returns de.peeeq.wurstscript.jassIm.ImExprOpt implemented by de.peeeq.wurstscript.translation.imtranslation.ExprTranslation.translate WStatement.imTranslateStmt( de.peeeq.wurstscript.translation.imtranslation.ImTranslator translator, de.peeeq.wurstscript.jassIm.ImFunction f ) returns de.peeeq.wurstscript.jassIm.ImStmt implemented by de.peeeq.wurstscript.translation.imtranslation.StmtTranslation.translate TranslatedToImFunction.imCreateFuncSkeleton( de.peeeq.wurstscript.translation.imtranslation.ImTranslator translator, de.peeeq.wurstscript.jassIm.ImFunction f ) returns void implemented by de.peeeq.wurstscript.translation.imtranslation.FuncSkeleton.create Element.addError(String msg) returns void implemented by de.peeeq.wurstscript.attributes.ErrorHandling.addError Element.addWarning(String msg) returns void implemented by de.peeeq.wurstscript.attributes.ErrorHandling.addWarning Element.getErrorHandler() returns de.peeeq.wurstscript.attributes.ErrorHandler implemented by de.peeeq.wurstscript.attributes.ErrorHandling.getErrorHandler FunctionLike.attrHasEmptyBody() returns boolean implemented by de.peeeq.wurstscript.attributes.SmallHelpers.hasEmptyBody // Naming: LExpr.attrNameLink returns de.peeeq.wurstscript.attributes.names.NameLink implemented by de.peeeq.wurstscript.attributes.AttrNameDef.calculate LExpr.attrNameDef returns NameDef implemented by de.peeeq.wurstscript.attributes.AttrNameDef.calculateDef FuncRef.attrPossibleFuncDefs returns com.google.common.collect.ImmutableCollection implemented by de.peeeq.wurstscript.attributes.PossibleFuncDefs.calculate FuncRef.attrFuncLink returns de.peeeq.wurstscript.attributes.names.FuncLink implemented by de.peeeq.wurstscript.attributes.AttrFuncDef.calculate FuncRef.attrFuncDef() returns FunctionDefinition implemented by de.peeeq.wurstscript.attributes.AttrFuncDef.calculateDef ExprNewObject.attrConstructorDef returns @Nullable ConstructorDef implemented by de.peeeq.wurstscript.attributes.AttrConstructorDef.calculate ExprBinary.attrFuncLink returns de.peeeq.wurstscript.attributes.names.FuncLink implemented by de.peeeq.wurstscript.attributes.AttrFuncDef.calculate ExprBinary.attrFuncDef() returns FunctionDefinition implemented by de.peeeq.wurstscript.attributes.AttrFuncDef.calculateDef FunctionDefinition.attrRealFuncDef "returns the function definition which overrides this definition" returns @Nullable FunctionDefinition implemented by de.peeeq.wurstscript.attributes.OverriddenFunctions.getRealFuncDef StructureDef.attrLevel "returns the level in the hierarchy. no supertype -> level 1" returns int implemented by de.peeeq.wurstscript.attributes.Level.get TypeDef.createTypeLink(WScope definedIn) "returns a TypeLink pointing to this NameDef" returns de.peeeq.wurstscript.attributes.names.TypeLink implemented by de.peeeq.wurstscript.attributes.names.TypeLink.create FunctionDefinition.createFuncLink(WScope definedIn) "returns a FuncLink pointing to this NameDef" returns de.peeeq.wurstscript.attributes.names.FuncLink implemented by de.peeeq.wurstscript.attributes.names.FuncLink.create VarDef.createVarLink(WScope definedIn) "returns a VarLink pointing to this NameDef" returns de.peeeq.wurstscript.attributes.names.VarLink implemented by de.peeeq.wurstscript.attributes.names.VarLink.create VarDef.attrOptTypeExpr() returns OptTypeExpr implemented by de.peeeq.wurstscript.attributes.names.VarLink.getTypeExpr ModuleUse.attrModuleDef returns @Nullable ModuleDef implemented by de.peeeq.wurstscript.attributes.AttrModuleDef.calculate TypeRef.attrTypeDef returns @Nullable TypeDef implemented by de.peeeq.wurstscript.attributes.AttrTypeDef.calculate //WPackage.attrExportedNames "get the exported names of a package" // returns com.google.common.collect.ImmutableMultimap // implemented by de.peeeq.wurstscript.attributes.Scopes.getExportedNames //WScope.attrDefinedNames "get the names defined in this scope" // returns com.google.common.collect.ImmutableMultimap // implemented by de.peeeq.wurstscript.attributes.Scopes.getDefinedNames //WScope.attrVisibleNamesPrivate "" // returns com.google.common.collect.ImmutableMultimap // implemented by de.peeeq.wurstscript.attributes.Scopes.getVisibleNamesPrivate //WScope.attrVisibleNamesProtected // returns com.google.common.collect.ImmutableMultimap // implemented by de.peeeq.wurstscript.attributes.Scopes.getVisibleNamesProtected //WScope.attrVisibleNamesPublic // returns com.google.common.collect.ImmutableMultimap // implemented by de.peeeq.wurstscript.attributes.Scopes.getVisibleNamesPublic WScope.attrNameLinks "returns a map of all the names visible in this scope." returns com.google.common.collect.ImmutableMultimap implemented by de.peeeq.wurstscript.attributes.names.NameLinks.calculate WScope.attrTypeNameLinks "returns a map of all the names visible in this scope." returns com.google.common.collect.ImmutableMultimap implemented by de.peeeq.wurstscript.attributes.names.TypeNameLinks.calculate WPackage.attrExportedNameLinks returns com.google.common.collect.ImmutableMultimap implemented by de.peeeq.wurstscript.attributes.names.Exports.exportedNameLinks WPackage.attrExportedTypeNameLinks returns com.google.common.collect.ImmutableMultimap implemented by de.peeeq.wurstscript.attributes.names.Exports.exportedTypeNameLinks Element.lookupType(String name, boolean showErrors) returns @Nullable TypeDef implemented by de.peeeq.wurstscript.attributes.names.NameResolution.lookupType Element.lookupPackage(String name, boolean showErrors) returns de.peeeq.wurstscript.attributes.names.PackageLink implemented by de.peeeq.wurstscript.attributes.names.NameResolution.lookupPackage Element.lookupVar(String name, boolean showErrors) returns de.peeeq.wurstscript.attributes.names.NameLink implemented by de.peeeq.wurstscript.attributes.names.NameResolution.lookupVar Element.lookupVarNoConfig(String name, boolean showErrors) returns de.peeeq.wurstscript.attributes.names.NameLink implemented by de.peeeq.wurstscript.attributes.names.NameResolution.lookupVarNoConfig Element.lookupMemberVar(de.peeeq.wurstscript.types.WurstType receiverType, String name, boolean showErrors) returns de.peeeq.wurstscript.attributes.names.NameLink implemented by de.peeeq.wurstscript.attributes.names.NameResolution.lookupMemberVar Element.lookupFuncs(String name, boolean showErrors) returns com.google.common.collect.ImmutableCollection implemented by de.peeeq.wurstscript.attributes.names.NameResolution.lookupFuncs Element.lookupFuncsNoConfig(String name, boolean showErrors) returns com.google.common.collect.ImmutableCollection implemented by de.peeeq.wurstscript.attributes.names.NameResolution.lookupFuncsNoConfig Element.lookupMemberFuncs(de.peeeq.wurstscript.types.WurstType receiverType, String name, boolean showErrors) returns com.google.common.collect.ImmutableCollection implemented by de.peeeq.wurstscript.attributes.names.NameResolution.lookupMemberFuncs Element.lookupType(String name) returns @Nullable TypeDef implemented by de.peeeq.wurstscript.attributes.names.NameResolution.lookupTypeShort Element.lookupPackage(String name) returns de.peeeq.wurstscript.attributes.names.PackageLink implemented by de.peeeq.wurstscript.attributes.names.NameResolution.lookupPackageShort Element.lookupVar(String name) returns de.peeeq.wurstscript.attributes.names.NameLink implemented by de.peeeq.wurstscript.attributes.names.NameResolution.lookupVarShort Element.lookupMemberVar(de.peeeq.wurstscript.types.WurstType receiverType, String name) returns de.peeeq.wurstscript.attributes.names.NameLink implemented by de.peeeq.wurstscript.attributes.names.NameResolution.lookupMemberVarShort Element.lookupFuncs(String name) returns com.google.common.collect.ImmutableCollection implemented by de.peeeq.wurstscript.attributes.names.NameResolution.lookupFuncsShort Element.lookupMemberFuncs(de.peeeq.wurstscript.types.WurstType receiverType, String name) returns com.google.common.collect.ImmutableCollection implemented by de.peeeq.wurstscript.attributes.names.NameResolution.lookupMemberFuncsShort TypeParamDefs.attrTypes() returns com.google.common.collect.ImmutableList implemented by de.peeeq.wurstscript.attributes.TypeParamTypes.calculte Documentable.attrComment() returns String implemented by de.peeeq.wurstscript.attributes.AttrWurstDoc.getComment ExprOrStatements.attrUsedGlobalVariables returns com.google.common.collect.ImmutableList implemented by de.peeeq.wurstscript.attributes.UsedGlobalVariables.getUsedGlobals circular de.peeeq.wurstscript.utils.Utils.emptyList FunctionDefinition.attrUsedGlobalVariables returns com.google.common.collect.ImmutableList implemented by de.peeeq.wurstscript.attributes.UsedGlobalVariables.getUsedGlobals circular de.peeeq.wurstscript.utils.Utils.emptyList ExprOrStatements.attrReadGlobalVariables returns com.google.common.collect.ImmutableList implemented by de.peeeq.wurstscript.attributes.UsedGlobalVariables.getReadGlobals circular de.peeeq.wurstscript.utils.Utils.emptyList FunctionDefinition.attrReadGlobalVariables returns com.google.common.collect.ImmutableList implemented by de.peeeq.wurstscript.attributes.UsedGlobalVariables.getReadGlobals circular de.peeeq.wurstscript.utils.Utils.emptyList InitBlock.attrReadGlobalVariables returns com.google.common.collect.ImmutableList implemented by de.peeeq.wurstscript.attributes.UsedGlobalVariables.getReadGlobals Element.attrUsedPackages() returns com.google.common.collect.ImmutableCollection implemented by de.peeeq.wurstscript.attributes.UsedPackages.usedPackages WPackage.attrImportedPackagesTransitive returns com.google.common.collect.ImmutableCollection implemented by de.peeeq.wurstscript.attributes.InitOrder.importedPackagesTrans WPackage.attrInitDependencies returns com.google.common.collect.ImmutableList implemented by de.peeeq.wurstscript.attributes.InitOrder.initDependencies WPackage.attrInitDependenciesTransitive returns com.google.common.collect.ImmutableList implemented by de.peeeq.wurstscript.attributes.InitOrder.initDependenciesTransitive ExprIntVal.getValI() returns int implemented by de.peeeq.wurstscript.attributes.IntVal.getValI Element.description() returns String implemented by de.peeeq.wurstscript.attributes.Description.description Element.descriptionHtml() returns String implemented by de.peeeq.wurstscript.attributes.DescriptionHtml.description TypeExpr.isModuleUseTypeArg() returns boolean implemented by de.peeeq.wurstscript.attributes.SmallHelpers.isModuleUseTypeArg Element.isSubtreeOf(Element other) returns boolean implemented by de.peeeq.wurstscript.attributes.SmallHelpers.isSubtreeOf TypeParamDef.isStructureDefTypeParam() returns boolean implemented by de.peeeq.wurstscript.attributes.SmallHelpers.isStructureDefTypeParam Element.prettyPrint(de.peeeq.wurstscript.attributes.prettyPrint.Spacer spacer, StringBuilder sb, int indent) returns void implemented by de.peeeq.wurstscript.attributes.prettyPrint.PrettyPrinter.prettyPrint NameDef.getName() returns String implemented by de.peeeq.wurstscript.attributes.SmallHelpers.getName WImport.getPackagename() returns String implemented by de.peeeq.wurstscript.attributes.SmallHelpers.getPackagename ExprNewObject.getTypeName() returns String implemented by de.peeeq.wurstscript.attributes.SmallHelpers.getTypeName LExpr.getVarName() returns String implemented by de.peeeq.wurstscript.attributes.SmallHelpers.getVarName FuncRef.getFuncName() returns String implemented by de.peeeq.wurstscript.attributes.SmallHelpers.getFuncName ModuleUse.getModuleName() returns String implemented by de.peeeq.wurstscript.attributes.SmallHelpers.getModuleName SwitchStmt.calculateUnhandledCases() returns java.util.List implemented by de.peeeq.wurstscript.attributes.SwitchStatements.unhandledCases SwitchStmt.calculateHandlesAllCases() returns boolean implemented by de.peeeq.wurstscript.attributes.SwitchStatements.handlesAllCases Annotation.getAnnotationType() returns String implemented by de.peeeq.wurstscript.attributes.Annotations.annotationType Annotation.getAnnotationMessage() returns String implemented by de.peeeq.wurstscript.attributes.Annotations.annotationMessage