def METHOD_NAME(self):
    if self.pos < len(self.tokens):
        return self.tokens[self.pos].METHOD_NAME
    elif self.eofToken is not None:
        return self.eofToken.METHOD_NAME
    elif len(self.tokens) > 0:
        # have to calculate the result from the line/column of the previous
        # token, along with the text of the token.
        lastToken = self.tokens[len(self.tokens) - 1]
        tokenText = lastToken.text
        if tokenText is not None:
            lastNewLine = tokenText.rfind('\n')
            if lastNewLine >= 0:
                return len(tokenText) - lastNewLine - 1
        return lastToken.METHOD_NAME + lastToken.stop - lastToken.start + 1
    # only reach this if tokens is empty, meaning EOF occurs at the first
    # position in the input
    return 0