mercurial/revset.py
changeset 25251 235f6490550c
parent 25225 57fae767c52b
child 25253 3f1a9b44b8c2
equal deleted inserted replaced
25250:f9a29dc964a3 25251:235f6490550c
  2507     else:
  2507     else:
  2508         return tuple(foldconcat(t) for t in tree)
  2508         return tuple(foldconcat(t) for t in tree)
  2509 
  2509 
  2510 def parse(spec, lookup=None):
  2510 def parse(spec, lookup=None):
  2511     p = parser.parser(tokenize, elements)
  2511     p = parser.parser(tokenize, elements)
  2512     return p.parse(spec, lookup=lookup)
  2512     tree, pos = p.parse(spec, lookup=lookup)
       
  2513     if pos != len(spec):
       
  2514         raise error.ParseError(_("invalid token"), pos)
       
  2515     return tree
  2513 
  2516 
  2514 def posttreebuilthook(tree, repo):
  2517 def posttreebuilthook(tree, repo):
  2515     # hook for extensions to execute code on the optimized tree
  2518     # hook for extensions to execute code on the optimized tree
  2516     pass
  2519     pass
  2517 
  2520 
  2519     if not spec:
  2522     if not spec:
  2520         raise error.ParseError(_("empty query"))
  2523         raise error.ParseError(_("empty query"))
  2521     lookup = None
  2524     lookup = None
  2522     if repo:
  2525     if repo:
  2523         lookup = repo.__contains__
  2526         lookup = repo.__contains__
  2524     tree, pos = parse(spec, lookup)
  2527     tree = parse(spec, lookup)
  2525     if (pos != len(spec)):
       
  2526         raise error.ParseError(_("invalid token"), pos)
       
  2527     if ui:
  2528     if ui:
  2528         tree = findaliases(ui, tree, showwarning=ui.warn)
  2529         tree = findaliases(ui, tree, showwarning=ui.warn)
  2529     tree = foldconcat(tree)
  2530     tree = foldconcat(tree)
  2530     weight, tree = optimize(tree, True)
  2531     weight, tree = optimize(tree, True)
  2531     posttreebuilthook(tree, repo)
  2532     posttreebuilthook(tree, repo)