equal
deleted
inserted
replaced
36 def readline(self): |
36 def readline(self): |
37 self.line = self.stream.readline() |
37 self.line = self.stream.readline() |
38 self.eof = len(self.line) == 0 |
38 self.eof = len(self.line) == 0 |
39 if not self.eof: |
39 if not self.eof: |
40 self.lineno += 1 |
40 self.lineno += 1 |
|
41 if self.TRAILING_SPACES_RE.search(self.line): |
|
42 raise ParseException("Traling spaces detected...\n") |
41 |
43 |
42 def parse(self, stream): |
44 def parse(self, stream): |
43 self.lineno = 0 |
45 self.lineno = 0 |
44 self.stream = stream |
46 self.stream = stream |
45 self.dom = [] |
47 self.dom = [] |
46 try: |
48 try: |
47 self.parse_prelude() |
49 self.parse_prelude() |
48 while not self.eof: |
50 while not self.eof: |
49 self.parse_article() |
51 self.parse_article() |
50 except ParseException as ex: |
52 except ParseException as ex: |
51 if self.TRAILING_SPACES_RE.match(self.line): |
|
52 raise ParseException("Traling spaces detected...\n", self.lineno, self.line) from ex |
|
53 raise ParseException(ex.msg, self.lineno, self.line) from ex |
53 raise ParseException(ex.msg, self.lineno, self.line) from ex |
54 return self.dom |
54 return self.dom |
55 |
55 |
56 def parse_prelude(self): |
56 def parse_prelude(self): |
57 """Read dictionary prelude until first "__" delimiter.""" |
57 """Read dictionary prelude until first "__" delimiter.""" |
109 continue |
109 continue |
110 m = self.HEADWORD_VAR_RE.match(self.line) |
110 m = self.HEADWORD_VAR_RE.match(self.line) |
111 if m is not None: |
111 if m is not None: |
112 attrs.add(m.group(1)) |
112 attrs.add(m.group(1)) |
113 continue |
113 continue |
114 raise ParseException("""Line is not headword or translation or headword attribute...""") |
114 raise ParseException("""Line is not a headword or translation or headword attribute...""") |
115 self.words[word] = (pron, attrs) |
115 self.words[word] = (pron, attrs) |
116 |
116 |
117 def parse_translation(self): |
117 def parse_translation(self): |
118 senses = [] |
118 senses = [] |
119 pos = None |
119 pos = None |