MysoreScript
Public Member Functions | List of all members
AST::CmpEq Struct Reference

Equality comparison. More...

#include <ast.hh>

Inheritance diagram for AST::CmpEq:
Inheritance graph
[legend]
Collaboration diagram for AST::CmpEq:
Collaboration graph
[legend]

Public Member Functions

llvm::Value * compileBinOp (Compiler::Context &c, llvm::Value *LHS, llvm::Value *RHS) override
 Compile this binary operation with the two sides already already compiled. More...
 
- Public Member Functions inherited from AST::Comparison< std::equal_to< intptr_t > >
bool isComparison () override
 All comparisons are (obviously) comparisons. More...
 
const char * methodName () override
 Comparisons don't map to any method name. More...
 
- Public Member Functions inherited from AST::BinOp< std::equal_to< 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
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< Expressionlhs
 The left-hand side of the operation. More...
 
ASTPtr< Expressionrhs
 The right-hand side of the operation. More...
 
- Protected Attributes inherited from AST::Expression
Interpreter::Value cache
 Cached result for constant expression. More...
 

Detailed Description

Equality comparison.

Definition at line 395 of file ast.hh.

Member Function Documentation

§ compileBinOp()

Value * CmpEq::compileBinOp ( Compiler::Context c,
llvm::Value *  LHS,
llvm::Value *  RHS 
)
overridevirtual

Compile this binary operation with the two sides already already compiled.

Implements AST::BinOpBase.

Definition at line 731 of file compiler.cc.

Here is the call graph for this function:

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