|
Yume
|
A construction of a struct or cast of a primitive. More...
#include <ast.hpp>


Public Member Functions | |
| CtorExpr (span< Token > tok, AnyType type, 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 -> CtorExpr *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 | |
| AnyType | type |
| vector< AnyExpr > | args |
| Fn * | selected_overload {} |
During semantic analysis, the TypeWalker performs overload selection and saves the constructor declaration 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) | |
|
overridevirtual |
Deep copy, except for the type and attachments.
Implements yume::ast::Expr.
Definition at line 119 of file ast.cpp.
References args, CtorExpr(), yume::ast::AST::tok(), and type.
|
inlineoverridevirtual |
A short, string representation for debugging.
Reimplemented from yume::ast::AST.
|
overridevirtual |
| vector<AnyExpr> yume::ast::CtorExpr::args |
Definition at line 600 of file ast.hpp.
Referenced by clone(), yume::semantic::TypeWalker::expression(), and visit().
| Fn* yume::ast::CtorExpr::selected_overload {} |
During semantic analysis, the TypeWalker performs overload selection and saves the constructor declaration that this call refers to directly in the AST node, in this field.
Definition at line 603 of file ast.hpp.
Referenced by yume::semantic::TypeWalker::expression().
| AnyType yume::ast::CtorExpr::type |
Definition at line 599 of file ast.hpp.
Referenced by clone(), yume::semantic::TypeWalker::expression(), and visit().