MXVM 1.8.1
Virtual Machine, Compiler, and Pascal Frontend
Loading...
Searching...
No Matches
pascal::ArrayAssignmentNode Class Reference

AST node for assigning to an array element (arr[index] := value). More...

#include <ast.hpp>

Inheritance diagram for pascal::ArrayAssignmentNode:

Public Member Functions

 ArrayAssignmentNode (std::string arrayName, std::unique_ptr< ASTNode > index, std::unique_ptr< ASTNode > value)
void accept (ASTVisitor &visitor) override
 Accept an ASTVisitor (double-dispatch).
std::string toString () const override
 Return a human-readable description of this node.
Public Member Functions inherited from pascal::ASTNode
virtual ~ASTNode ()=default
virtual void print (std::ostream &out, int indent=0) const
 Pretty-print this node to a stream with indentation.
void setLineNumber (int line)
 Set the originating source line number.
int getLineNumber () const
 Get the originating source line number.

Public Attributes

std::string arrayName
 array variable name
std::unique_ptr< ASTNodeindex
 index expression
std::unique_ptr< ASTNodevalue
 value expression

Detailed Description

AST node for assigning to an array element (arr[index] := value).

Definition at line 334 of file ast.hpp.

Constructor & Destructor Documentation

◆ ArrayAssignmentNode()

pascal::ArrayAssignmentNode::ArrayAssignmentNode ( std::string arrayName,
std::unique_ptr< ASTNode > index,
std::unique_ptr< ASTNode > value )
inline

Definition at line 340 of file ast.hpp.

References arrayName, index, and value.

Member Function Documentation

◆ accept()

void pascal::ArrayAssignmentNode::accept ( ASTVisitor & visitor)
overridevirtual

Accept an ASTVisitor (double-dispatch).

Implements pascal::ASTNode.

Definition at line 342 of file ast.cpp.

References pascal::ASTVisitor::visit().

◆ toString()

std::string pascal::ArrayAssignmentNode::toString ( ) const
overridevirtual

Return a human-readable description of this node.

Implements pascal::ASTNode.

Definition at line 346 of file ast.cpp.

References arrayName, index, and value.

Member Data Documentation

◆ arrayName

std::string pascal::ArrayAssignmentNode::arrayName

array variable name

Definition at line 336 of file ast.hpp.

Referenced by ArrayAssignmentNode(), toString(), and pascal::CodeGenVisitor::visit().

◆ index

std::unique_ptr<ASTNode> pascal::ArrayAssignmentNode::index

index expression

Definition at line 337 of file ast.hpp.

Referenced by ArrayAssignmentNode(), toString(), and pascal::CodeGenVisitor::visit().

◆ value

std::unique_ptr<ASTNode> pascal::ArrayAssignmentNode::value

value expression

Definition at line 338 of file ast.hpp.

Referenced by ArrayAssignmentNode(), toString(), and pascal::CodeGenVisitor::visit().


The documentation for this class was generated from the following files: