Get a token from the input stream (or from stack if it's nonempty)
(self)
| 99 | self.state = ' ' |
| 100 | |
| 101 | def get_token(self): |
| 102 | "Get a token from the input stream (or from stack if it's nonempty)" |
| 103 | if self.pushback: |
| 104 | tok = self.pushback.popleft() |
| 105 | if self.debug >= 1: |
| 106 | print("shlex: popping token " + repr(tok)) |
| 107 | return tok |
| 108 | # No pushback. Get a token. |
| 109 | raw = self.read_token() |
| 110 | # Handle inclusions |
| 111 | if self.source is not None: |
| 112 | while raw == self.source: |
| 113 | spec = self.sourcehook(self.read_token()) |
| 114 | if spec: |
| 115 | (newfile, newstream) = spec |
| 116 | self.push_source(newstream, newfile) |
| 117 | raw = self.get_token() |
| 118 | # Maybe we got EOF instead? |
| 119 | while raw == self.eof: |
| 120 | if not self.filestack: |
| 121 | return self.eof |
| 122 | else: |
| 123 | self.pop_source() |
| 124 | raw = self.get_token() |
| 125 | # Neither inclusion nor EOF |
| 126 | if self.debug >= 1: |
| 127 | if raw != self.eof: |
| 128 | print("shlex: token=" + repr(raw)) |
| 129 | else: |
| 130 | print("shlex: token=EOF") |
| 131 | return raw |
| 132 | |
| 133 | def read_token(self): |
| 134 | quoted = False |
no test coverage detected