|
Yume
|
A function call or operator. More...
#include <ast.hpp>


Public Member Functions | |
| CallExpr (span< Token > tok, string name, OptionalType receiver, vector< AnyExpr > args) | |
| void | visit (Visitor &visitor) const override |
| Recursively visit this ast node and all its constituents. More... | |
| auto | describe () const -> string override |
| A short, string representation for debugging. More... | |
| auto | clone () const -> CallExpr *override |
| Deep copy, except for the type and attachments. More... | |
| auto | clone () const -> Expr *override=0 |
| Deep copy, except for the type and attachments. More... | |
| auto | clone () const -> Stmt *override=0 |
| Deep copy, except for the type and attachments. More... | |
Public Member Functions inherited from yume::ast::AST | |
| AST (const AST &)=delete | |
| AST (AST &&)=default | |
| auto | operator= (const AST &) -> AST &=delete |
| auto | operator= (AST &&) -> AST &=delete |
| virtual | ~AST ()=default |
| virtual void | visit (Visitor &visitor) const =0 |
| Recursively visit this ast node and all its constituents. More... | |
| auto | val_ty () const noexcept -> optional< ty::Type > |
| auto | ensure_ty () const -> ty::Type |
| void | val_ty (optional< ty::Type > type) |
| void | attach_to (nonnull< AST * > other) |
Make the type of this node depend on the type of other. More... | |
| auto | kind () const -> Kind |
| auto | kind_name () const -> string |
Human-readable string representation of the Kind of this node. More... | |
| auto | token_range () const -> const span< Token > & |
| auto | equals_by_hash (ast::AST &other) const -> bool |
| auto | location () const -> Loc |
The union of the locations of the Tokens making up this node. More... | |
| virtual auto | describe () const -> string |
| A short, string representation for debugging. More... | |
| virtual auto | clone () const -> AST *=0 |
| Deep copy, except for the type and attachments. More... | |
Public Attributes | |
| string | name |
| OptionalType | receiver |
| vector< AnyExpr > | args |
| Fn * | selected_overload {} |
During semantic analysis, the TypeWalker performs overload selection and saves the function declaration or instantiation that this call refers to directly in the AST node, in this field. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from yume::ast::Stmt | |
| AST (Kind kind, span< Token > tok) | |
| AST (const AST &)=delete | |
| AST (AST &&)=default | |
Protected Member Functions inherited from yume::ast::AST | |
| void | unify_val_ty () |
| Verify the type compatibility of the depends of this node, and merge the types if possible. This is called every time the node's type is updated. More... | |
| auto | tok () const noexcept -> span< Token > |
| AST (Kind kind, span< Token > tok) | |
|
inline |
|
overridevirtual |
Deep copy, except for the type and attachments.
Implements yume::ast::Expr.
Definition at line 115 of file ast.cpp.
References args, CallExpr(), name, receiver, and yume::ast::AST::tok().
|
inlineoverridevirtual |
A short, string representation for debugging.
Reimplemented from yume::ast::AST.
|
overridevirtual |
| vector<AnyExpr> yume::ast::CallExpr::args |
Definition at line 566 of file ast.hpp.
Referenced by clone(), yume::semantic::TypeWalker::expression(), and visit().
| string yume::ast::CallExpr::name |
Definition at line 564 of file ast.hpp.
Referenced by clone(), yume::semantic::TypeWalker::expression(), and visit().
| OptionalType yume::ast::CallExpr::receiver |
Definition at line 565 of file ast.hpp.
Referenced by clone(), yume::semantic::TypeWalker::expression(), and visit().
| Fn* yume::ast::CallExpr::selected_overload {} |
During semantic analysis, the TypeWalker performs overload selection and saves the function declaration or instantiation that this call refers to directly in the AST node, in this field.
Definition at line 569 of file ast.hpp.
Referenced by yume::semantic::TypeWalker::expression().