MysoreScript
|
#include <ast.hh>
Public Member Functions | |
intptr_t | evaluateWithIntegers (intptr_t lhs, intptr_t rhs) override |
Evaluate on integer values by subtracting the right side from the left. More... | |
const char * | methodName () override |
Subtract operations become sub() method invocations on non-integer objects. More... | |
llvm::Value * | compileBinOp (Compiler::Context &c, llvm::Value *LHS, llvm::Value *RHS) override |
Compile the subtract expression. More... | |
Public Member Functions inherited from AST::BinOp< std::minus< intptr_t > > | |
intptr_t | evaluateWithIntegers (intptr_t lhs, intptr_t rhs) override |
Evaluate (interpret) this expression, having already determined that the two sides are integer values. More... | |
Public Member Functions inherited from AST::BinOpBase | |
virtual bool | isComparison () |
Returns whether this operation is a comparison. More... | |
bool | isConstantExpression () override |
A binary operation is a constant expression if both of its operands are binary expressions. More... | |
Obj | evaluateExpr (Interpreter::Context &c) override |
Evaluates the expression, either invoking a subclass evaluateWithIntegers method or by calling the relevant method on the left-hand side. More... | |
llvm::Value * | compileExpression (Compiler::Context &c) override |
Compile the expression by compiling the two sides and then calling compileBinOp (implemented in subclasses) to compile the operation. More... | |
void | collectVarUses (std::unordered_set< std::string > &decls, std::unordered_set< std::string > &uses) override |
Collect the uses and declarations in this expression. More... | |
Public Member Functions inherited from AST::Expression | |
Obj | evaluate (Interpreter::Context &c) |
Evaluate the expression, caching the result if it's a constant expression. More... | |
void | interpret (Interpreter::Context &c) override final |
Interpret this expression as if it were a statement. More... | |
void | compile (Compiler::Context &c) override final |
Compile this expression as if it were a statement. More... | |
Additional Inherited Members | |
Public Attributes inherited from AST::BinOpBase | |
ASTPtr< Expression > | lhs |
The left-hand side of the operation. More... | |
ASTPtr< Expression > | rhs |
The right-hand side of the operation. More... | |
Protected Attributes inherited from AST::Expression | |
Interpreter::Value | cache |
Cached result for constant expression. More... | |
|
overridevirtual |
Compile the subtract expression.
Implements AST::BinOpBase.
Definition at line 751 of file compiler.cc.
|
inlineoverridevirtual |
Evaluate on integer values by subtracting the right side from the left.
Implements AST::BinOpBase.
|
inlineoverridevirtual |
Subtract operations become sub()
method invocations on non-integer objects.
Implements AST::BinOpBase.