comparison mercurial/parser.py @ 13665:e798e430c5e5

revset: report a parse error if a revset is not parsed completely (issue2654)
author Bernhard Leiner <bleiner@gmail.com>
date Wed, 16 Mar 2011 23:09:14 +0100
parents 895f54a79c6e
children 4b93bd041772
comparison
equal deleted inserted replaced
13664:53db4e2026ab 13665:e798e430c5e5
76 return expr 76 return expr
77 def parse(self, message): 77 def parse(self, message):
78 'generate a parse tree from a message' 78 'generate a parse tree from a message'
79 self._iter = self._tokenizer(message) 79 self._iter = self._tokenizer(message)
80 self._advance() 80 self._advance()
81 return self._parse() 81 res = self._parse()
82 token, value, pos = self.current
83 return res, pos
82 def eval(self, tree): 84 def eval(self, tree):
83 'recursively evaluate a parse tree using node methods' 85 'recursively evaluate a parse tree using node methods'
84 if not isinstance(tree, tuple): 86 if not isinstance(tree, tuple):
85 return tree 87 return tree
86 return self._methods[tree[0]](*[self.eval(t) for t in tree[1:]]) 88 return self._methods[tree[0]](*[self.eval(t) for t in tree[1:]])