Package org.pkl.core.ast.builder
Class SymbolTable
- java.lang.Object
-
- org.pkl.core.ast.builder.SymbolTable
-
public final class SymbolTable extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classSymbolTable.AnnotationScopestatic classSymbolTable.ClassScopestatic classSymbolTable.CustomThisScopeA scope wherethishas a special meaning (type constraint, object member predicate).static classSymbolTable.EntryScopestatic classSymbolTable.LambdaScopestatic classSymbolTable.MethodScopestatic classSymbolTable.ModuleScopestatic classSymbolTable.ObjectScopestatic classSymbolTable.PropertyScopestatic classSymbolTable.Scopestatic classSymbolTable.TypeAliasScopestatic classSymbolTable.TypeParameterizableScope
-
Field Summary
Fields Modifier and Type Field Description static java.lang.ObjectFOR_GENERATOR_VARIABLE
-
Constructor Summary
Constructors Constructor Description SymbolTable(ModuleInfo moduleInfo)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <T> TenterAnnotationScope(java.util.function.Function<SymbolTable.AnnotationScope,T> nodeFactory)ObjectMemberenterClass(Identifier name, java.util.List<TypeParameter> typeParameters, java.util.function.Function<SymbolTable.ClassScope,ObjectMember> nodeFactory)<T> TenterCustomThisScope(java.util.function.Function<SymbolTable.CustomThisScope,T> nodeFactory)<T> TenterEntry(@Nullable ExpressionNode keyNode, java.util.function.Function<SymbolTable.EntryScope,T> nodeFactory)<T> TenterLambda(com.oracle.truffle.api.frame.FrameDescriptor.Builder frameDescriptorBuilder, java.util.function.Function<SymbolTable.LambdaScope,T> nodeFactory)<T> TenterMethod(Identifier name, ConstLevel constLevel, com.oracle.truffle.api.frame.FrameDescriptor.Builder frameDescriptorBuilder, java.util.List<TypeParameter> typeParameters, java.util.function.Function<SymbolTable.MethodScope,T> nodeFactory)<T> TenterObjectScope(java.util.function.Function<SymbolTable.ObjectScope,T> nodeFactory)<T> TenterProperty(Identifier name, ConstLevel constLevel, java.util.function.Function<SymbolTable.PropertyScope,T> nodeFactory)ObjectMemberenterTypeAlias(Identifier name, java.util.List<TypeParameter> typeParameters, java.util.function.Function<SymbolTable.TypeAliasScope,ObjectMember> nodeFactory)@Nullable TypeParameterfindTypeParameter(java.lang.String name)SymbolTable.ScopegetCurrentScope()
-
-
-
Constructor Detail
-
SymbolTable
public SymbolTable(ModuleInfo moduleInfo)
-
-
Method Detail
-
getCurrentScope
public SymbolTable.Scope getCurrentScope()
-
findTypeParameter
public @Nullable TypeParameter findTypeParameter(java.lang.String name)
-
enterClass
public ObjectMember enterClass(Identifier name, java.util.List<TypeParameter> typeParameters, java.util.function.Function<SymbolTable.ClassScope,ObjectMember> nodeFactory)
-
enterTypeAlias
public ObjectMember enterTypeAlias(Identifier name, java.util.List<TypeParameter> typeParameters, java.util.function.Function<SymbolTable.TypeAliasScope,ObjectMember> nodeFactory)
-
enterMethod
public <T> T enterMethod(Identifier name, ConstLevel constLevel, com.oracle.truffle.api.frame.FrameDescriptor.Builder frameDescriptorBuilder, java.util.List<TypeParameter> typeParameters, java.util.function.Function<SymbolTable.MethodScope,T> nodeFactory)
-
enterLambda
public <T> T enterLambda(com.oracle.truffle.api.frame.FrameDescriptor.Builder frameDescriptorBuilder, java.util.function.Function<SymbolTable.LambdaScope,T> nodeFactory)
-
enterProperty
public <T> T enterProperty(Identifier name, ConstLevel constLevel, java.util.function.Function<SymbolTable.PropertyScope,T> nodeFactory)
-
enterEntry
public <T> T enterEntry(@Nullable ExpressionNode keyNode, java.util.function.Function<SymbolTable.EntryScope,T> nodeFactory)
-
enterCustomThisScope
public <T> T enterCustomThisScope(java.util.function.Function<SymbolTable.CustomThisScope,T> nodeFactory)
-
enterAnnotationScope
public <T> T enterAnnotationScope(java.util.function.Function<SymbolTable.AnnotationScope,T> nodeFactory)
-
enterObjectScope
public <T> T enterObjectScope(java.util.function.Function<SymbolTable.ObjectScope,T> nodeFactory)
-
-