mercurial/parser.py
changeset 11412 51ceb1571805
parent 11319 9d1cf337a78d
child 11449 05af334bac05
equal deleted inserted replaced
11411:5834e79b24f7 11412:51ceb1571805
    60             if len(e) == 4 and not self._elements[self.current[0]][1]:
    60             if len(e) == 4 and not self._elements[self.current[0]][1]:
    61                 suffix = e[3]
    61                 suffix = e[3]
    62                 expr = (suffix[0], expr)
    62                 expr = (suffix[0], expr)
    63             else:
    63             else:
    64                 # handle infix rules
    64                 # handle infix rules
    65                 infix = self._elements[token][2]
    65                 if len(e) < 3 or not e[2]:
       
    66                     raise error.ParseError("not an infix: %s" % token, pos)
       
    67                 infix = e[2]
    66                 if len(infix) == 3 and infix[2] == self.current[0]:
    68                 if len(infix) == 3 and infix[2] == self.current[0]:
    67                     self._match(infix[2], pos)
    69                     self._match(infix[2], pos)
    68                     expr = (infix[0], expr, (None))
    70                     expr = (infix[0], expr, (None))
    69                 else:
    71                 else:
    70                     if not infix[0]:
       
    71                         raise error.ParseError("not an infix: %s" % token, pos)
       
    72                     expr = (infix[0], expr, self._parse(infix[1]))
    72                     expr = (infix[0], expr, self._parse(infix[1]))
    73                     if len(infix) == 3:
    73                     if len(infix) == 3:
    74                         self._match(infix[2], pos)
    74                         self._match(infix[2], pos)
    75         return expr
    75         return expr
    76     def parse(self, message):
    76     def parse(self, message):