mercurial/parser.py
changeset 28872 5f31d2248745
parent 28871 6d6201fc5aae
child 28873 2ca3b7c563f3
--- a/mercurial/parser.py	Mon Feb 29 17:54:03 2016 +0900
+++ b/mercurial/parser.py	Mon Feb 29 18:00:51 2016 +0900
@@ -369,3 +369,20 @@
             return (name, tree[:2], args, None)
 
         return (decl, None, None, _("invalid format"))
+
+    @classmethod
+    def _relabelargs(cls, tree, args):
+        """Mark alias arguments as ``_aliasarg``"""
+        if not isinstance(tree, tuple):
+            return tree
+        op = tree[0]
+        if op != cls._symbolnode:
+            return (op,) + tuple(cls._relabelargs(x, args) for x in tree[1:])
+
+        assert len(tree) == 2
+        sym = tree[1]
+        if sym in args:
+            op = '_aliasarg'
+        elif sym.startswith('$'):
+            raise error.ParseError(_("'$' not for alias arguments"))
+        return (op, sym)