//generated by abstract-syntax-gen package de.peeeq.wurstscript.ast; import java.util.*; public interface ExprMember extends Expr, Element{ void setSource(de.peeeq.wurstscript.parser.WPos source); de.peeeq.wurstscript.parser.WPos getSource(); void setLeft(Expr left); Expr getLeft(); Element getParent(); T match(Matcher s); void match(MatcherVoid s); public interface Matcher { T case_ExprMemberMethodDot(ExprMemberMethodDot exprMemberMethodDot); T case_ExprMemberMethodDotDot(ExprMemberMethodDotDot exprMemberMethodDotDot); T case_ExprMemberVarDot(ExprMemberVarDot exprMemberVarDot); T case_ExprMemberVarDotDot(ExprMemberVarDotDot exprMemberVarDotDot); T case_ExprMemberArrayVarDot(ExprMemberArrayVarDot exprMemberArrayVarDot); T case_ExprTypeId(ExprTypeId exprTypeId); T case_ExprMemberArrayVarDotDot(ExprMemberArrayVarDotDot exprMemberArrayVarDotDot); } public interface MatcherVoid { void case_ExprMemberMethodDot(ExprMemberMethodDot exprMemberMethodDot); void case_ExprMemberMethodDotDot(ExprMemberMethodDotDot exprMemberMethodDotDot); void case_ExprMemberVarDot(ExprMemberVarDot exprMemberVarDot); void case_ExprMemberVarDotDot(ExprMemberVarDotDot exprMemberVarDotDot); void case_ExprMemberArrayVarDot(ExprMemberArrayVarDot exprMemberArrayVarDot); void case_ExprTypeId(ExprTypeId exprTypeId); void case_ExprMemberArrayVarDotDot(ExprMemberArrayVarDotDot exprMemberArrayVarDotDot); } ExprMember copy(); ExprMember copyWithRefs(); /** */ public abstract de.peeeq.immutablecollections.ImmutableList attrReadVariables(); /** */ public abstract de.peeeq.wurstscript.types.WurstType attrTyp(); /** */ public abstract de.peeeq.wurstscript.intermediatelang.ILconst attrConstantValue(); /** */ public abstract de.peeeq.wurstscript.types.WurstType attrTypRaw(); /** */ public abstract de.peeeq.wurstscript.types.WurstType attrExpectedTypRaw(); /** "try to guess what type is expected here"*/ public abstract de.peeeq.wurstscript.types.WurstType attrExpectedTyp(); /** "more precise expected type, after overloading"*/ public abstract de.peeeq.wurstscript.types.WurstType attrExpectedTypAfterOverloading(); /** */ public abstract boolean attrIsDynamicContext(); /** */ public abstract @org.eclipse.jdt.annotation.Nullable PackageOrGlobal attrNearestPackage(); /** */ public abstract @org.eclipse.jdt.annotation.Nullable NamedScope attrNearestNamedScope(); /** */ public abstract @org.eclipse.jdt.annotation.Nullable WScope attrNearestScope(); /** */ public abstract String attrPathDescription(); /** */ public abstract CompilationUnit attrCompilationUnit(); /** */ public abstract @org.eclipse.jdt.annotation.Nullable ClassDef attrNearestClassDef(); /** */ public abstract @org.eclipse.jdt.annotation.Nullable ClassOrInterface attrNearestClassOrInterface(); /** */ public abstract @org.eclipse.jdt.annotation.Nullable ClassOrModule attrNearestClassOrModule(); /** */ public abstract @org.eclipse.jdt.annotation.Nullable StructureDef attrNearestStructureDef(); /** */ public abstract @org.eclipse.jdt.annotation.Nullable FunctionImplementation attrNearestFuncDef(); /** */ public abstract @org.eclipse.jdt.annotation.Nullable ExprClosure attrNearestExprClosure(); /** */ public abstract @org.eclipse.jdt.annotation.Nullable ExprStatementsBlock attrNearestExprStatementsBlock(); /** "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 abstract @org.eclipse.jdt.annotation.Nullable NameDef tryGetNameDef(); /** */ public abstract de.peeeq.wurstscript.parser.WPos attrSource(); /** "returns the position where errors are marked"*/ public abstract de.peeeq.wurstscript.parser.WPos attrErrorPos(); /** */ public abstract WurstModel getModel(); /** */ public abstract de.peeeq.wurstscript.jassIm.ImExpr imTranslateExpr(de.peeeq.wurstscript.translation.imtranslation.ImTranslator translator, de.peeeq.wurstscript.jassIm.ImFunction f); /** */ public abstract de.peeeq.wurstscript.jassIm.ImExprOpt imTranslateExprOpt(de.peeeq.wurstscript.translation.imtranslation.ImTranslator translator, de.peeeq.wurstscript.jassIm.ImFunction f); /** */ public abstract void addError(String msg); /** */ public abstract void addWarning(String msg); /** */ public abstract de.peeeq.wurstscript.attributes.ErrorHandler getErrorHandler(); /** */ public abstract @org.eclipse.jdt.annotation.Nullable TypeDef lookupType(String name, boolean showErrors); /** */ public abstract de.peeeq.wurstscript.attributes.names.PackageLink lookupPackage(String name, boolean showErrors); /** */ public abstract de.peeeq.wurstscript.attributes.names.NameLink lookupVar(String name, boolean showErrors); /** */ public abstract de.peeeq.wurstscript.attributes.names.NameLink lookupVarNoConfig(String name, boolean showErrors); /** */ public abstract de.peeeq.wurstscript.attributes.names.NameLink lookupMemberVar(de.peeeq.wurstscript.types.WurstType receiverType, String name, boolean showErrors); /** */ public abstract com.google.common.collect.ImmutableCollection lookupFuncs(String name, boolean showErrors); /** */ public abstract com.google.common.collect.ImmutableCollection lookupFuncsNoConfig(String name, boolean showErrors); /** */ public abstract com.google.common.collect.ImmutableCollection lookupMemberFuncs(de.peeeq.wurstscript.types.WurstType receiverType, String name, boolean showErrors); /** */ public abstract @org.eclipse.jdt.annotation.Nullable TypeDef lookupType(String name); /** */ public abstract de.peeeq.wurstscript.attributes.names.PackageLink lookupPackage(String name); /** */ public abstract de.peeeq.wurstscript.attributes.names.NameLink lookupVar(String name); /** */ public abstract de.peeeq.wurstscript.attributes.names.NameLink lookupMemberVar(de.peeeq.wurstscript.types.WurstType receiverType, String name); /** */ public abstract com.google.common.collect.ImmutableCollection lookupFuncs(String name); /** */ public abstract com.google.common.collect.ImmutableCollection lookupMemberFuncs(de.peeeq.wurstscript.types.WurstType receiverType, String name); /** */ public abstract com.google.common.collect.ImmutableList attrUsedGlobalVariables(); /** */ public abstract com.google.common.collect.ImmutableList attrReadGlobalVariables(); /** */ public abstract com.google.common.collect.ImmutableCollection attrUsedPackages(); /** */ public abstract String description(); /** */ public abstract String descriptionHtml(); /** */ public abstract boolean isSubtreeOf(Element other); /** */ public abstract void prettyPrint(de.peeeq.wurstscript.attributes.prettyPrint.Spacer spacer, StringBuilder sb, int indent); }