Mercurial > public > mercurial-scm > hg-stable
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:]]) |