InterpreterVisitor class

Main visitor that walks the AST and interprets the code. Uses a two-pass approach (DeclarationVisitor first).

Inheritance
Available extensions

Constructors

InterpreterVisitor({required Environment globalEnvironment, required ModuleLoader moduleLoader, Uri? initiallibrary})

Properties

currentAsyncState AsyncExecutionState?
getter/setter pair
currentFunction InterpretedFunction?
getter/setter pair
environment Environment
getter/setter pair
globalEnvironment Environment
final
hashCode int
The hash code for this object.
no setterinherited
isLazySyncGeneratorContext bool
For lazy sync* generators: when true, yield throws SyncYieldSuspension to pause execution and bubble up through the call stack.
getter/setter pair
moduleLoader → ModuleLoader
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
syncGeneratorValues List<Object?>?
For sync* generators: the list to collect yielded values into. When non-null, yield statements add directly to this list.
getter/setter pair

Methods

computeCompoundValue(Object? currentValue, Object? rhsValue, TokenType operatorType) Object?
executeBlock(List<Statement> statements, Environment blockEnvironment) Object?
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
stringify(Object? value) String
toBridgedInstance(Object? nativeObject, {String? methodName}) → (BridgedInstance<Object>?, bool)

Available on InterpreterVisitor, provided by the InterpreterVisitorExtension extension

toString() String
A string representation of this object.
inherited
visitAdjacentStrings(AdjacentStrings node) Object?
inherited
visitAnnotatedNode(AnnotatedNode node) Object?
inherited
visitAnnotation(Annotation node) Object?
inherited
visitArgumentList(ArgumentList node) Object?
inherited
visitAsExpression(AsExpression node) Object?
override
visitAssertInitializer(AssertInitializer node) Object?
inherited
visitAssertStatement(AssertStatement node) Object?
override
visitAssignedVariablePattern(AssignedVariablePattern node) Object?
inherited
visitAssignmentExpression(AssignmentExpression node) Object?
override
visitAwaitExpression(AwaitExpression node) Object?
override
visitBinaryExpression(BinaryExpression node) Object?
override
visitBlock(Block node) Object?
override
visitBlockClassBody(BlockClassBody node) Object?
inherited
visitBlockFunctionBody(BlockFunctionBody node) Object?
inherited
visitBooleanLiteral(BooleanLiteral node) Object?
override
visitBreakStatement(BreakStatement node) Object?
override
visitCascadeExpression(CascadeExpression node) Object?
override
visitCaseClause(CaseClause node) Object?
inherited
visitCastPattern(CastPattern node) Object?
inherited
visitCatchClause(CatchClause node) Object?
inherited
visitCatchClauseParameter(CatchClauseParameter node) Object?
inherited
visitClassBody(ClassBody node) Object?
inherited
visitClassDeclaration(ClassDeclaration node) Object?
override
visitClassMember(ClassMember node) Object?
inherited
visitClassNamePart(ClassNamePart node) Object?
inherited
visitClassTypeAlias(ClassTypeAlias node) Object?
inherited
visitCollectionElement(CollectionElement node) Object?
inherited
visitCombinator(Combinator node) Object?
inherited
visitComment(Comment node) Object?
inherited
visitCommentReferableExpression(CommentReferableExpression node) Object?
inherited
visitCommentReference(CommentReference node) Object?
inherited
visitCompilationUnit(CompilationUnit node) Object?
override
visitCompilationUnitMember(CompilationUnitMember node) Object?
inherited
visitConditionalExpression(ConditionalExpression node) Object?
override
visitConfiguration(Configuration node) Object?
inherited
visitConstantPattern(ConstantPattern node) Object?
inherited
visitConstructorDeclaration(ConstructorDeclaration node) Object?
inherited
visitConstructorFieldInitializer(ConstructorFieldInitializer node) Object?
inherited
visitConstructorInitializer(ConstructorInitializer node) Object?
inherited
visitConstructorName(ConstructorName node) Object?
inherited
visitConstructorReference(ConstructorReference node) Object?
override
visitConstructorSelector(ConstructorSelector node) Object?
inherited
visitContinueStatement(ContinueStatement node) Object?
override
visitDartPattern(DartPattern node) Object?
inherited
visitDeclaration(Declaration node) Object?
inherited
visitDeclaredIdentifier(DeclaredIdentifier node) Object?
inherited
visitDeclaredVariablePattern(DeclaredVariablePattern node) Object?
inherited
visitDefaultFormalParameter(DefaultFormalParameter node) Object?
inherited
visitDirective(Directive node) Object?
inherited
visitDoStatement(DoStatement node) Object?
override
visitDotShorthandConstructorInvocation(DotShorthandConstructorInvocation node) Object?
inherited
visitDotShorthandInvocation(DotShorthandInvocation node) Object?
inherited
visitDotShorthandPropertyAccess(DotShorthandPropertyAccess node) Object?
inherited
visitDottedName(DottedName node) Object?
inherited
visitDoubleLiteral(DoubleLiteral node) Object?
override
visitEmptyClassBody(EmptyClassBody node) Object?
inherited
visitEmptyFunctionBody(EmptyFunctionBody node) Object?
inherited
visitEmptyStatement(EmptyStatement node) Object?
override
visitEnumBody(EnumBody node) Object?
inherited
visitEnumConstantArguments(EnumConstantArguments node) Object?
inherited
visitEnumConstantDeclaration(EnumConstantDeclaration node) Object?
inherited
visitEnumDeclaration(EnumDeclaration node) Object?
override
visitExportDirective(ExportDirective node) Object?
inherited
visitExpression(Expression node) Object?
inherited
visitExpressionFunctionBody(ExpressionFunctionBody node) Object?
inherited
visitExpressionStatement(ExpressionStatement node) Object?
override
visitExtendsClause(ExtendsClause node) Object?
inherited
visitExtensionDeclaration(ExtensionDeclaration node) Object?
override
visitExtensionOnClause(ExtensionOnClause node) Object?
inherited
visitExtensionOverride(ExtensionOverride node) Object?
inherited
visitExtensionTypeDeclaration(ExtensionTypeDeclaration node) Object?
Lim-1 FIX: Handle extension type declarations (Dart 3.3+)
override
visitFieldDeclaration(FieldDeclaration node) Object?
inherited
visitFieldFormalParameter(FieldFormalParameter node) Object?
inherited
visitForEachParts(ForEachParts node) Object?
inherited
visitForEachPartsWithDeclaration(ForEachPartsWithDeclaration node) Object?
inherited
visitForEachPartsWithIdentifier(ForEachPartsWithIdentifier node) Object?
inherited
visitForEachPartsWithPattern(ForEachPartsWithPattern node) Object?
inherited
visitForElement(ForElement node) Object?
inherited
visitForLoopParts(ForLoopParts node) Object?
inherited
visitFormalParameter(FormalParameter node) Object?
inherited
visitFormalParameterList(FormalParameterList node) Object?
inherited
visitForParts(ForParts node) Object?
inherited
visitForPartsWithDeclarations(ForPartsWithDeclarations node) Object?
inherited
visitForPartsWithExpression(ForPartsWithExpression node) Object?
inherited
visitForPartsWithPattern(ForPartsWithPattern node) Object?
inherited
visitForStatement(ForStatement node) Object?
override
visitFunctionBody(FunctionBody node) Object?
inherited
visitFunctionDeclaration(FunctionDeclaration node) Object?
override
visitFunctionDeclarationStatement(FunctionDeclarationStatement node) Object?
inherited
visitFunctionExpression(FunctionExpression node) Object?
override
visitFunctionExpressionInvocation(FunctionExpressionInvocation node) Object?
override
visitFunctionReference(FunctionReference node) Object?
override
visitFunctionTypeAlias(FunctionTypeAlias node) Object?
inherited
visitFunctionTypedFormalParameter(FunctionTypedFormalParameter node) Object?
inherited
visitGenericFunctionType(GenericFunctionType node) Object?
inherited
visitGenericTypeAlias(GenericTypeAlias node) Object?
inherited
visitGuardedPattern(GuardedPattern node) Object?
inherited
visitHideCombinator(HideCombinator node) Object?
inherited
visitIdentifier(Identifier node) → dynamic
override
visitIfElement(IfElement node) Object?
inherited
visitIfStatement(IfStatement node) Object?
override
visitImplementsClause(ImplementsClause node) Object?
inherited
visitImplicitCallReference(ImplicitCallReference node) Object?
inherited
visitImportDirective(ImportDirective node) Object?
override
visitImportPrefixReference(ImportPrefixReference node) Object?
inherited
visitIndexExpression(IndexExpression node) Object?
override
visitInstanceCreationExpression(InstanceCreationExpression node) Object?
override
visitIntegerLiteral(IntegerLiteral node) Object?
override
visitInterpolationElement(InterpolationElement node) Object?
inherited
visitInterpolationExpression(InterpolationExpression node) Object?
inherited
visitInterpolationString(InterpolationString node) Object?
inherited
visitInvocationExpression(InvocationExpression node) Object?
inherited
visitIsExpression(IsExpression node) Object?
override
visitLabel(Label node) Object?
inherited
visitLabeledStatement(LabeledStatement node) Object?
override
visitLibraryDirective(LibraryDirective node) Object?
inherited
visitLibraryIdentifier(LibraryIdentifier node) Object?
inherited
visitListLiteral(ListLiteral node) Object?
override
visitListPattern(ListPattern node) Object?
inherited
visitLiteral(Literal node) Object?
inherited
visitLogicalAndPattern(LogicalAndPattern node) Object?
inherited
visitLogicalOrPattern(LogicalOrPattern node) Object?
inherited
visitMapLiteralEntry(MapLiteralEntry node) Object?
inherited
visitMapPattern(MapPattern node) Object?
inherited
visitMapPatternEntry(MapPatternEntry node) Object?
inherited
visitMethodDeclaration(MethodDeclaration node) Object?
inherited
visitMethodInvocation(MethodInvocation node) Object?
override
visitMixinDeclaration(MixinDeclaration node) Object?
override
visitMixinOnClause(MixinOnClause node) Object?
inherited
visitNamedCompilationUnitMember(NamedCompilationUnitMember node) Object?
inherited
visitNamedExpression(NamedExpression node) Object?
inherited
visitNamedType(NamedType node) Object?
inherited
visitNamespaceDirective(NamespaceDirective node) Object?
inherited
visitNameWithTypeParameters(NameWithTypeParameters node) Object?
inherited
visitNativeClause(NativeClause node) Object?
inherited
visitNativeFunctionBody(NativeFunctionBody node) Object?
inherited
visitNode(AstNode node) Object?
inherited
visitNormalFormalParameter(NormalFormalParameter node) Object?
inherited
visitNullAssertPattern(NullAssertPattern node) Object?
inherited
visitNullAwareElement(NullAwareElement node) Object?
inherited
visitNullCheckPattern(NullCheckPattern node) Object?
inherited
visitNullLiteral(NullLiteral node) Object?
override
visitObjectPattern(ObjectPattern node) Object?
inherited
visitParenthesizedExpression(ParenthesizedExpression node) Object?
override
visitParenthesizedPattern(ParenthesizedPattern node) Object?
inherited
visitPartDirective(PartDirective node) Object?
inherited
visitPartOfDirective(PartOfDirective node) Object?
inherited
visitPatternAssignment(PatternAssignment node) Object?
override
visitPatternField(PatternField node) Object?
inherited
visitPatternFieldName(PatternFieldName node) Object?
inherited
visitPatternVariableDeclaration(PatternVariableDeclaration node) Object?
inherited
visitPatternVariableDeclarationStatement(PatternVariableDeclarationStatement node) Object?
override
visitPostfixExpression(PostfixExpression node) Object?
override
visitPrefixedIdentifier(PrefixedIdentifier node) Object?
override
visitPrefixExpression(PrefixExpression node) Object?
override
visitPrimaryConstructorDeclaration(PrimaryConstructorDeclaration node) Object?
inherited
visitPrimaryConstructorName(PrimaryConstructorName node) Object?
inherited
visitPropertyAccess(PropertyAccess node) Object?
override
visitRecordLiteral(RecordLiteral node) Object?
override
visitRecordPattern(RecordPattern node) Object?
inherited
visitRecordTypeAnnotation(RecordTypeAnnotation node) Object?
inherited
visitRecordTypeAnnotationField(RecordTypeAnnotationField node) Object?
inherited
visitRecordTypeAnnotationNamedField(RecordTypeAnnotationNamedField node) Object?
inherited
visitRecordTypeAnnotationNamedFields(RecordTypeAnnotationNamedFields node) Object?
inherited
visitRecordTypeAnnotationPositionalField(RecordTypeAnnotationPositionalField node) Object?
inherited
visitRedirectingConstructorInvocation(RedirectingConstructorInvocation node) Object?
inherited
visitRelationalPattern(RelationalPattern node) Object?
inherited
visitRepresentationConstructorName(RepresentationConstructorName node) Object?
inherited
visitRepresentationDeclaration(RepresentationDeclaration node) Object?
inherited
visitRestPatternElement(RestPatternElement node) Object?
inherited
visitRethrowExpression(RethrowExpression node) Object?
override
visitReturnStatement(ReturnStatement node) Object?
override
visitScriptTag(ScriptTag node) Object?
inherited
visitSetOrMapLiteral(SetOrMapLiteral node) Object?
override
visitShowCombinator(ShowCombinator node) Object?
inherited
visitSimpleFormalParameter(SimpleFormalParameter node) Object?
inherited
visitSimpleIdentifier(SimpleIdentifier node) Object?
override
visitSimpleStringLiteral(SimpleStringLiteral node) Object?
inherited
visitSingleStringLiteral(SingleStringLiteral node) Object?
inherited
visitSpreadElement(SpreadElement node) Object?
inherited
visitStatement(Statement node) Object?
inherited
visitStringInterpolation(StringInterpolation node) Object?
override
visitStringLiteral(StringLiteral node) Object?
override
visitSuperConstructorInvocation(SuperConstructorInvocation node) Object?
override
visitSuperExpression(SuperExpression node) Object?
override
visitSuperFormalParameter(SuperFormalParameter node) Object?
inherited
visitSwitchCase(SwitchCase node) Object?
inherited
visitSwitchDefault(SwitchDefault node) Object?
inherited
visitSwitchExpression(SwitchExpression node) Object?
override
visitSwitchExpressionCase(SwitchExpressionCase node) Object?
inherited
visitSwitchMember(SwitchMember node) Object?
inherited
visitSwitchPatternCase(SwitchPatternCase node) Object?
inherited
visitSwitchStatement(SwitchStatement node) Object?
override
visitSymbolLiteral(SymbolLiteral node) Object?
inherited
visitThisExpression(ThisExpression node) Object?
override
visitThrowExpression(ThrowExpression node) Object?
override
visitTopLevelVariableDeclaration(TopLevelVariableDeclaration node) Object?
override
visitTryStatement(TryStatement node) Object?
override
visitTypeAlias(TypeAlias node) Object?
inherited
visitTypeAnnotation(TypeAnnotation node) Object?
inherited
visitTypeArgumentList(TypeArgumentList node) Object?
inherited
visitTypedLiteral(TypedLiteral node) Object?
inherited
visitTypeLiteral(TypeLiteral node) Object?
inherited
visitTypeParameter(TypeParameter node) Object?
inherited
visitTypeParameterList(TypeParameterList node) Object?
inherited
visitUriBasedDirective(UriBasedDirective node) Object?
inherited
visitVariableDeclaration(VariableDeclaration node) Object?
inherited
visitVariableDeclarationList(VariableDeclarationList node) Object?
override
visitVariableDeclarationStatement(VariableDeclarationStatement node) Object?
override
visitVariablePattern(VariablePattern node) Object?
inherited
visitWhenClause(WhenClause node) Object?
inherited
visitWhileStatement(WhileStatement node) Object?
override
visitWildcardPattern(WildcardPattern node) Object?
inherited
visitWithClause(WithClause node) Object?
inherited
visitYieldStatement(YieldStatement node) Object?
override
wrapNativeReturnValue(Object? nativeValue) Object?
Wraps a native return value from a bridged call in a BridgedInstance if a bridge exists, otherwise returns the value as-is.

Operators

operator ==(Object other) bool
The equality operator.
inherited