MysoreScript
|
A call expression. More...
#include <ast.hh>
Public Attributes | |
ASTPtr< Expression > | callee |
The callee, if this is calling a closure, or the object that is having a method invoked on it if it is a method invocation. More... | |
ASTPtr< Identifier, true > | method |
The name of the method, if this is a method invocation. More... | |
ASTPtr< ArgList > | arguments |
The arguments to this call. More... | |
Protected Member Functions | |
Obj | evaluateExpr (Interpreter::Context &c) override |
Call the relevant method or closure. More... | |
llvm::Value * | compileExpression (Compiler::Context &c) override |
Generate code to call the relevant object. More... | |
void | collectVarUses (std::unordered_set< std::string > &decls, std::unordered_set< std::string > &uses) override |
Collect the variables referenced by this call. More... | |
Additional Inherited Members | |
Public Member Functions inherited from AST::Expression | |
virtual bool | isConstantExpression () |
Returns true if the expression is constant and therefore doesn't need interpreting every time. More... | |
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... | |
Protected Attributes inherited from AST::Expression | |
Interpreter::Value | cache |
Cached result for constant expression. More... | |
A call expression.
This either invokes a closure or a method.
|
inlineoverrideprotectedvirtual |
Collect the variables referenced by this call.
Implements AST::Statement.
|
overrideprotectedvirtual |
Generate code to call the relevant object.
Implements AST::Expression.
Definition at line 436 of file compiler.cc.
|
overrideprotectedvirtual |
Call the relevant method or closure.
Implements AST::Expression.
Definition at line 416 of file interpreter.cc.
ASTPtr<ArgList> AST::Call::arguments |
ASTPtr<Expression> AST::Call::callee |
ASTPtr<Identifier, true> AST::Call::method |