| QAST Node | Description |
|---|---|
| QAST::Block | A lexical scope |
| QAST::Stmts | A sequence of things to execute |
| QAST::Stmt | As above, but also a temporaries boundary |
| QAST::Op | An operation of some kind |
| QAST::Var | A variable or parameter usage/declaration |
| QAST::IVal | Integer literal |
| QAST::NVal | Floating point literal |
| QAST::SVal | String literal |
| QAST::BVal | Block Value, refer to other block in the tree (dynamic) |
| QAST::WVal | Refer to a var in the World Serialization Context |
| QAST::Want | Permit to choose boxing accoring to type (context of identifyer) |
| QAST::VM | Virtual Machine specific operation (discriminator) |
The NQP iterator types for hashes that enable .key and .value methods are not yet set up, so this code uses nqp::iterkey s and nqp::iterval.