Families of Tok::Tag as reusable case labels; include this in *.cpp files only. More...
Go to the source code of this file.
Macros | |
| #define | C_PRIMARY |
| #define | C_ID M_id |
| #define | C_LIT |
| #define | C_LIT_NUM |
| Numeric literals that a leading sign may be applied to. | |
| #define | C_SIGN |
| Leading sign of a numeric literal. | |
| #define | C_LIT_TYPED |
| Literals that already determine their type and hence must not be ascribed one. | |
| #define | C_LAM |
| #define | C_RULE |
| #define | C_IMPORT |
| #define | C_DECL |
| #define | C_DS |
| Direct-style binders; all other binders are CPS. | |
| #define | C_CN |
| Binders whose domain binds as tight as a Cn, i.e. no codomain follows. | |
| #define | C_FN |
| Binders that receive an implicit ret continuation. | |
| #define | C_SEQ |
| #define | C_PI |
| #define | C_LM |
| #define | C_EXPR |
| #define | C_CURRIED_B |
| #define | C_CURRIED_P |
| #define | ISA(tag, family) |
| Turns such a family into a predicate - a case label is of no use outside of a switch. | |
Families of Tok::Tag as reusable case labels; include this in *.cpp files only.
A family expands to first: case Tag::second: ... and hence must be used as case Tag::C_FAMILY:. Families compose: a family may name another one. The including file must provide using Tag = Tok::Tag;.
Definition in file family.h.
| #define C_CN |
Binders whose domain binds as tight as a Cn, i.e. no codomain follows.
Definition at line 89 of file family.h.
Referenced by mim::ast::PiExpr::bind(), and mim::ast::LamDecl::bind_decl().
| #define C_CURRIED_B |
| #define C_CURRIED_P |
| #define C_DECL |
| #define C_DS |
Direct-style binders; all other binders are CPS.
Definition at line 84 of file family.h.
Referenced by mim::ast::LamDecl::bind_decl(), and mim::ast::LamDecl::emit_decl().
| #define C_EXPR |
| #define C_FN |
| #define C_LAM |
| #define C_LIT |
| #define C_LIT_NUM |
| #define C_LIT_TYPED |
Literals that already determine their type and hence must not be ascribed one.
Definition at line 55 of file family.h.
Referenced by mim::ast::LitExpr::bind().
| #define C_LM |
| #define C_PI |
| #define C_PRIMARY |
| #define C_SIGN |
| #define ISA | ( | tag, | |
| family ) |
Turns such a family into a predicate - a case label is of no use outside of a switch.
Definition at line 142 of file family.h.
Referenced by mim::ast::LitExpr::bind(), mim::ast::PiExpr::bind(), mim::ast::LamDecl::bind_decl(), and mim::ast::LamDecl::emit_decl().