Example #1
0
 def get(self):
     s = self.s
     pos = self.pos
     if self.ignore_space:
         while True:
             if pos >= len(s):
                 return u""
             elif is_space(ord(s[pos])):
                 pos += 1
             elif s[pos] == u"#":
                 pos = s.find(u"\n", pos)
                 if pos < 0:
                     pos = len(s)
             else:
                 break
     try:
         ch = s[pos]
         self.pos = pos + 1
         return ch
     except IndexError:
         self.pos = pos
         return u""
     except ValueError:
         self.pos = len(s)
         return u""
Example #2
0
    def match(self, substr):
        s = self.s
        pos = self.pos

        if self.ignore_space:
            for c in substr:
                while True:
                    if pos >= len(s):
                        return False
                    elif is_space(ord(s[pos])):
                        pos += 1
                    elif s[pos] == u"#":
                        pos = s.find(u"\n", pos)
                        if pos < 0:
                            pos = len(s)
                    else:
                        break

                if s[pos] != c:
                    return False
                pos += 1
            self.pos = pos
            return True
        else:
            if pos + len(substr) <= len(s):
                matches = True
                for i in xrange(len(substr)):
                    if s[pos + i] != substr[i]:
                        matches = False
            else:
                matches = False
            if not matches:
                return False
            self.pos = pos + len(substr)
            return True
Example #3
0
    def match(self, substr):
        s = self.s
        pos = self.pos

        if self.ignore_space:
            for c in substr:
                while True:
                    if pos >= len(s):
                        return False
                    elif is_space(ord(s[pos])):
                        pos += 1
                    elif s[pos] == u"#":
                        pos = s.find(u"\n", pos)
                        if pos < 0:
                            pos = len(s)
                    else:
                        break

                if s[pos] != c:
                    return False
                pos += 1
            self.pos = pos
            return True
        else:
            if pos + len(substr) <= len(s):
                matches = True
                for i in xrange(len(substr)):
                    if s[pos + i] != substr[i]:
                        matches = False
            else:
                matches = False
            if not matches:
                return False
            self.pos = pos + len(substr)
            return True
Example #4
0
 def get(self):
     s = self.s
     pos = self.pos
     if self.ignore_space:
         while True:
             if pos >= len(s):
                 return u""
             elif is_space(ord(s[pos])):
                 pos += 1
             elif s[pos] == u"#":
                 pos = s.find(u"\n", pos)
                 if pos < 0:
                     pos = len(s)
             else:
                 break
     try:
         ch = s[pos]
         self.pos = pos + 1
         return ch
     except IndexError:
         self.pos = pos
         return u""
     except ValueError:
         self.pos = len(s)
         return u""
Example #5
0
    def at_end(self):
        s = self.s
        pos = self.pos

        if self.ignore_space:
            while True:
                if pos >= len(s):
                    break
                elif is_space(ord(s[pos])):
                    pos += 1
                elif s[pos] == u"#":
                    pos = s.find(u"\n", pos)
                    if pos < 0:
                        pos = len(s)
                else:
                    break
        return pos >= len(s)
Example #6
0
    def at_end(self):
        s = self.s
        pos = self.pos

        if self.ignore_space:
            while True:
                if pos >= len(s):
                    break
                elif is_space(ord(s[pos])):
                    pos += 1
                elif s[pos] == u"#":
                    pos = s.find(u"\n", pos)
                    if pos < 0:
                        pos = len(s)
                else:
                    break
        return pos >= len(s)