Joos1W Compiler Framework
|
The code generator expression evaluator. This class is responsible for evaluating expressions and returning the corresponding tir::Value*. More...
#include <CGExpr.h>
Public Types | |
using | T = details::ValueWrapper |
Public Member Functions | |
CGExprEvaluator (CodeGenerator &cg) | |
![]() | |
details::ValueWrapper | Evaluate (Expr *expr) |
Evaluates the given expression. More... | |
virtual details::ValueWrapper | EvaluateList (ExprNodeList subexpr) |
Evaluates the given subexpression. More... | |
Additional Inherited Members | |
![]() | |
using | op_array = std::pmr::vector< details::ValueWrapper > |
![]() | |
virtual details::ValueWrapper | evalBinaryOp (exprnode::BinaryOp &op, const details::ValueWrapper lhs, const details::ValueWrapper rhs) const=0 |
virtual details::ValueWrapper | evalUnaryOp (exprnode::UnaryOp &op, const details::ValueWrapper rhs) const=0 |
virtual details::ValueWrapper | evalMemberAccess (exprnode::MemberAccess &op, const details::ValueWrapper lhs, const details::ValueWrapper field) const=0 |
virtual details::ValueWrapper | evalMethodCall (exprnode::MethodInvocation &op, const details::ValueWrapper method, const op_array &args) const=0 |
virtual details::ValueWrapper | evalNewObject (exprnode::ClassInstanceCreation &op, const details::ValueWrapper object, const op_array &args) const=0 |
virtual details::ValueWrapper | evalNewArray (exprnode::ArrayInstanceCreation &op, const details::ValueWrapper type, const details::ValueWrapper size) const=0 |
virtual details::ValueWrapper | evalArrayAccess (exprnode::ArrayAccess &op, const details::ValueWrapper array, const details::ValueWrapper index) const=0 |
virtual details::ValueWrapper | evalCast (exprnode::Cast &op, const details::ValueWrapper type, const details::ValueWrapper value) const=0 |
SourceRange | argLocation (int arg_index) |
Gets the location of the argument at the given index. More... | |
SourceRange | argLocation (int argno) const |
Gets the location of the argument at the given index. Note the 0th argument is the first argument, not the operator. More... | |
virtual bool | validate (details::ValueWrapper const &) const |
virtual bool | validatePop (details::ValueWrapper const &) const |
int | opStackSize () const |
The code generator expression evaluator. This class is responsible for evaluating expressions and returning the corresponding tir::Value*.