equal
deleted
inserted
replaced
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) |