GSC Interpreter
A Turing-complete interpreter developed for a compiler course
Loading...
Searching...
No Matches
Var Class Reference

Represents a variable declaration statement. More...

#include <stmt.hpp>

Inheritance diagram for Var:
Collaboration diagram for Var:

Public Member Functions

 Var (const Token &name, const std::shared_ptr< Expr > &initializer)
 
std::any accept (StmtVisitor &visitor) override
 
Token getName () const
 
std::shared_ptr< ExprgetInitializer () const
 

Private Attributes

const Token name
 
std::shared_ptr< Exprinitializer
 

Detailed Description

Represents a variable declaration statement.

Note
This class holds the variable name and its initializer expression, allowing visiting it.

Definition at line 112 of file stmt.hpp.

Constructor & Destructor Documentation

◆ Var()

Var::Var ( const Token name,
const std::shared_ptr< Expr > &  initializer 
)
inline

Definition at line 118 of file stmt.hpp.

119 : name(std::move(name)), initializer(std::move(initializer)) {}
std::shared_ptr< Expr > initializer
Definition stmt.hpp:115
const Token name
Definition stmt.hpp:114

Member Function Documentation

◆ accept()

std::any Var::accept ( StmtVisitor visitor)
inlineoverridevirtual

Implements Stmt.

Definition at line 121 of file stmt.hpp.

121 {
122 return visitor.visitVarStmt(shared_from_this());
123 }
virtual std::any visitVarStmt(std::shared_ptr< Var > stmt)=0

◆ getInitializer()

std::shared_ptr< Expr > Var::getInitializer ( ) const
inline

Definition at line 127 of file stmt.hpp.

127{ return initializer; }

◆ getName()

Token Var::getName ( ) const
inline

Definition at line 125 of file stmt.hpp.

125{ return name; }

Member Data Documentation

◆ initializer

std::shared_ptr<Expr> Var::initializer
private

Definition at line 115 of file stmt.hpp.

◆ name

const Token Var::name
private

Definition at line 114 of file stmt.hpp.


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