Python Forum
Completeing the Class
Thread Rating:
  • 1 Vote(s) - 1 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Completeing the Class
#1
Can someone please help me finish this code. I am a college student learning python for the first time and I am stuck at the def getNextToken part

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
"""
File: scanner.py
A scanner for processing languages.
"""
 
from tokens import Token
 
class Scanner(object):
 
    EOE = ';'        # end-of-expression
    TAB = '\t'       # tab
 
    def __init__(self, sourceStr):
        self._tokens = sourceStr
        self.currentChar = self._tokens[1]
        self.index = 1
 
    def hasNext(self):
        if self.index <= len(self._tokens):
            return True
        else:
            return False
     
 
    def next(self):
        print("NEXT, index:", self.index, "tokens:", self._tokens)
             
        item=self._tokens[self.index-1]
        if self.index < len(self._tokens):
            self.currentChar = self._tokens[self.index]
        self.index = self.index + 1
        return item
 
    def getFirstToken(self):
        return self._tokens[0]
     
    def getNextToken(self):
        pass
     
    def nextChar(self):
        pass
     
    def skipWhiteSpace(self):
        pass
     
    def getInteger(self):
        pass
 
def main():
    # A simple tester program
    while True:
        sourceStr = input("Enter an expression: ")
        if sourceStr == "": break
        scanner = Scanner(sourceStr)
        while scanner.hasNext():
            print(scanner.next())
 
if __name__ == '__main__':
    main()
Reply
#2
-tokens[] is your token list. When you process a token, suggest removing it from the list. Then getFirstToken() and getNextToken() are interchangeable.
Reply


Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020