Wrap self.tokens accesses with a function so abrupt ends can be detected and thrown