Additional information passed along during statement binding.
Statement:: StatementContext:: tryGetBlock(Compilation& compilation,
const SyntaxNode& syntax)
Attempts to match up the head of the block list with the given statement syntax node. If they match, the block symbol is popped and returned wrapped inside a BlockStatement. Otherwise nullptr is returned.
Statement:: StatementContext:: enterLoop()
Records that we've entered a loop, and returns a guard that will revert back to the previous state on destruction.