Преобразование Java в Python класса StringTokenizer - PullRequest
0 голосов
/ 27 мая 2019

Я пытаюсь преобразовать Java-код в Python для токенизации. Вы можете найти реализацию Java здесь .

Я получаю некоторую синтаксическую ошибку в реализации моего кода, написанного следующим образом:

class StringTokenizer:
    def __init__(self, text, delim=" \t\n\r\f", returnDelims=False):
        self.text = text
        self.delim = delim
        self.retDelims = returnDelims
        self.length = len(text)
        self.pos = 0

    def hasMoreTokens(self):
        if not self.retDelims:
            while (self.pos < self.length)  and (self.delim.find(self.text[self.pos])>=0):
                self.pos+=1
        return self.pos < self.length

    def nextToken(self,delim=" \t\n\r\f"):
        self.delim = delim
        if (self.pos < self.length) and (self.delim.find(self.text[self.pos])>=0):
            if self.retDelims:
                return self.text[self.pos : self.pos+=1]
            while (self.pos+=1 < self.length) and (self.delim.find(self.text[self.pos])>=0):
                pass
        if (self.pos < self.length):
            start = self.pos
            while (self.pos+=1 < self.length) and (self.delim.find(self.text[self.pos])<0):
                pass
            return self.text[start:self.pos]

Ошибка является синтаксической ошибкой, которая не позволяет мне использовать pos + = 1 в 19-й строке.

Трассировка стека:

 File "<ipython-input-4-f942f63e931b>", line 19
    return self.text[self.pos : self.pos+=1]
                                         ^
SyntaxError: invalid syntax

Thnaks

...