equal
deleted
inserted
replaced
60 # gather tokens until we meet a lower binding strength |
60 # gather tokens until we meet a lower binding strength |
61 while bind < self._elements[self.current[0]][0]: |
61 while bind < self._elements[self.current[0]][0]: |
62 token, value, pos = self._advance() |
62 token, value, pos = self._advance() |
63 # handle infix rules, take as suffix if unambiguous |
63 # handle infix rules, take as suffix if unambiguous |
64 infix, suffix = self._elements[token][3:] |
64 infix, suffix = self._elements[token][3:] |
65 if suffix and not self._hasnewterm(): |
65 if suffix and not (infix and self._hasnewterm()): |
66 expr = (suffix[0], expr) |
66 expr = (suffix[0], expr) |
67 elif infix: |
67 elif infix: |
68 expr = (infix[0], expr, self._parseoperand(*infix[1:])) |
68 expr = (infix[0], expr, self._parseoperand(*infix[1:])) |
69 else: |
69 else: |
70 raise error.ParseError(_("not an infix: %s") % token, pos) |
70 raise error.ParseError(_("not an infix: %s") % token, pos) |