8 std::shared_ptr<ASTExpr> RECORD;
12 std::vector<std::shared_ptr<ASTNode>>
getChildren()
override;
13 ASTAccessExpr(std::shared_ptr<ASTExpr> RECORD,
const std::string &FIELD)
14 : RECORD(RECORD), FIELD(FIELD) {}
18 llvm::Value *
codegen()
override;
21 std::ostream &
print(std::ostream &out)
const override;
Class for a record field access.
Definition: ASTAccessExpr.h:7
ASTExpr * getRecord() const
Definition: ASTAccessExpr.h:16
std::string getField() const
Definition: ASTAccessExpr.h:15
void accept(ASTVisitor *visitor) override
Visit the children of this node and apply the visitor.
Definition: ASTAccessExpr.cpp:4
ASTAccessExpr(std::shared_ptr< ASTExpr > RECORD, const std::string &FIELD)
Definition: ASTAccessExpr.h:13
std::ostream & print(std::ostream &out) const override
Definition: ASTAccessExpr.cpp:11
llvm::Value * codegen() override
Perform code generation and return an LLVM value the code.
Definition: CodeGenFunctions.cpp:735
std::vector< std::shared_ptr< ASTNode > > getChildren() override
Return all of the children for the node.
Definition: ASTAccessExpr.cpp:16
Abstract class for all expression subtypes.
Definition: ASTExpr.h:7
Base class for AST visitors.
Definition: ASTVisitor.h:23