Parsing, semantic analysis, and lowering for and, or, not. (#2897)

Lowering for `and` and `or` is not yet complete because `Branch` lowering isn't done yet.
This commit is contained in:
Richard Smith
2023-06-14 13:03:13 -07:00
committed by GitHub
parent 8b1e820848
commit 06ce3b0161
28 changed files with 470 additions and 55 deletions
@@ -44,6 +44,13 @@ class SemanticsNodeBlockStack {
// SemanticsNodeBlockId::Empty is returned if one wasn't allocated.
auto Pop() -> SemanticsNodeBlockId;
// Pops the top node block, ensuring that it is lazily allocated if it's
// empty. For use when more nodes will be added to the block later.
auto PopForAdd() -> SemanticsNodeBlockId {
PeekForAdd();
return Pop();
}
// Prints the stack for a stack dump.
auto PrintForStackDump(llvm::raw_ostream& output) const -> void;