HEX
Server: Apache
System: Linux p102.lithium.hosting 4.18.0-553.141.1.el8_10.x86_64 #1 SMP Fri Jul 10 17:48:02 UTC 2026 x86_64
User: bvzmoamr (9955)
PHP: 8.1.34
Disabled: syslog
Upload Files
File: //proc/self/root/proc/thread-self/root/usr/lib64/python2.7/site-packages/mercurial/parser.pyc
�
1�3\c@@sddlmZmZddlmZddlmZmZmZddl	m
Z
defd��YZd�Z
d	�Zd
�Zd�Zd�Zd
�Zd�Zd�Zd�Zddd�Zd�Zdefd��YZdefd��YZdS(i(tabsolute_importtprint_functioni(t_(terrortpycompattutil(t
stringutiltparsercB@sbeZd
d�Zd�Zd�Zd�Zd
d�Zdd�Zd�Z	d�Z
d	�ZRS(cC@s||_||_d|_dS(N(t	_elementst_methodstNonetcurrent(tselftelementstmethods((s6/usr/lib64/python2.7/site-packages/mercurial/parser.pyt__init__ s		cC@s"|j}t|jd�|_|S(sadvance the tokenizerN(Rtnextt_iterR
(Rtt((s6/usr/lib64/python2.7/site-packages/mercurial/parser.pyt_advance$s	cC@st|j|jddd!�S(s%True if next token may start new termiii(tanyRR(R((s6/usr/lib64/python2.7/site-packages/mercurial/parser.pyt_hasnewterm)scC@sN|jd|kr@tjtd�|jd|jd��n|j�dS(s0make sure the tokenizer matches an end conditionisunexpected token: %siN(RRt
ParseErrorRR(Rtm((s6/usr/lib64/python2.7/site-packages/mercurial/parser.pyt_match,scC@sK|r"|jd|kr"d}n|j|�}|rG|j|�n|S(sDgather right-hand-side operand until an end condition or binding metiN(RR
t_parseR(RtbindRtexpr((s6/usr/lib64/python2.7/site-packages/mercurial/parser.pyt
_parseoperand2s	ic
C@s[|j�\}}}|j|dd!\}}|rW|oD|j�rW||f}nB|r}|d|j|d�f}ntjtd�||��x�||j|jddkrV|j�\}}}|j|d\}}	|	r|o�|j�r|	|f}q�|r7|d||j|d�f}q�tjtd�||��q�W|S(Niiisnot a prefix: %ssnot an infix: %s(RRRRRRRR(
RRttokentvaluetpostprimarytprefixRtinfixtsuffix((s6/usr/lib64/python2.7/site-packages/mercurial/parser.pyR;s  !# cC@s;||_|j�|j�}|j\}}}||fS(s!generate a parse tree from tokens(RRRR(Rt	tokenitertresRRR((s6/usr/lib64/python2.7/site-packages/mercurial/parser.pytparseQs
	
cC@sHt|t�s|S|j|dg|dD]}|j|�^q,�S(s4recursively evaluate a parse tree using node methodsii(t
isinstancettupleR	teval(RttreeR((s6/usr/lib64/python2.7/site-packages/mercurial/parser.pyR)XscC@s)|j|�}|jr%|j|�S|S(s<parse tokens into a parse tree and evaluate if methods given(R&R	R)(RR$R((s6/usr/lib64/python2.7/site-packages/mercurial/parser.pyt__call__]s	
N(t__name__t
__module__R
RRRRRRR&R)R+(((s6/usr/lib64/python2.7/site-packages/mercurial/parser.pyRs						cC@s�d}|jd�\}}}|ry|j�}|sHtjd��nt|�dkrltjd��n|d}n|jd�\}}}|j�}|j�}|r�|s�tjd��n||d|d|fSgd||fS(	s�Parse spec of function arguments into (poskeys, varkey, keys, optkey)

    >>> splitargspec(b'')
    ([], None, [], None)
    >>> splitargspec(b'foo bar')
    ([], None, ['foo', 'bar'], None)
    >>> splitargspec(b'foo *bar baz **qux')
    (['foo'], 'bar', ['baz'], 'qux')
    >>> splitargspec(b'*foo')
    ([], 'foo', [], None)
    >>> splitargspec(b'**foo')
    ([], None, [], 'foo')
    s**sno **optkey name providedis!excessive **optkey names providedit*sno *varkey name providedN(R
t	partitiontsplitRtProgrammingErrortlen(tspectoptkeytpretseptposttpoststpres((s6/usr/lib64/python2.7/site-packages/mercurial/parser.pytsplitargspecds"
c@s�|\}}}}t�fd�t|�D�t|��}	|	t|�krtjtd�i|d6t|�d6��n|r�|	t|�t|�kr�tjtd�i|d6t|�t|�d6��ntj�}
x+t|||	 �D]\}}||
|<q�W|r6|t|
�|	!|
|<n7x4t||t|
�|	!�D]\}}||
|<qSW|r�tj�|
|<nx�||	D]�}|d�ks�|dd|kr�tjtd�i|d6��n|dd}||kr|
}
n:|s1tjtd	�i|d6|d
6��n
|
|}
||
krqtjtd�i|d6|d
6��n|d|
|<q�W|
S(
s�Build dict from list containing positional and keyword arguments

    Arguments are specified by a tuple of ``(poskeys, varkey, keys, optkey)``
    where

    - ``poskeys``: list of names of positional arguments
    - ``varkey``: optional argument name that takes up remainder
    - ``keys``: list of names that can be either positional or keyword arguments
    - ``optkey``: optional argument name that takes up excess keyword arguments

    If ``varkey`` specified, all ``keys`` must be given as keyword arguments.

    Invalid keywords, too few positional arguments, or too many positional
    arguments are rejected, but missing keyword arguments are just omitted.
    c3@s+|]!\}}|d�kr|VqdS(iN((t.0titx(tkeyvaluenode(s6/usr/lib64/python2.7/site-packages/mercurial/parser.pys	<genexpr>�ss6%(func)s takes at least %(nargs)d positional argumentstfunctnargss5%(func)s takes at most %(nargs)d positional argumentsiis %(func)s got an invalid arguments5%(func)s got an unexpected keyword argument '%(key)s'tkeys;%(func)s got multiple values for keyword argument '%(key)s'i(	Rt	enumerateR2RRRRtsortdicttzip(ttreestfuncnametargspecR>tkeynodetposkeystvarkeytkeysR4tkwstarttargstkR=td((R>s6/usr/lib64/python2.7/site-packages/mercurial/parser.pyt
buildargsdict�sF!#
! )$	
cC@sIytj|�SWn1tk
rD}tjtj|�j���nXdS(N(Rtunescapestrt
ValueErrorRRRtbytestrtlower(tste((s6/usr/lib64/python2.7/site-packages/mercurial/parser.pyRQ�scC@s�t|t�s.|j|tj|�f�n�|d|kr�ttj|d�}|j|d|ddj|�ff�nn|j|d|df�x)|dD]}t|||d|�q�W|dd|dddfg|d)dS(Niis(%s %s)t s(%si����t)(R'R(tappendRtpprinttmaptjoint
_prettyformat(R*t	leafnodestleveltlinestrsRU((s6/usr/lib64/python2.7/site-packages/mercurial/parser.pyR]�s-cC@s6g}t||d|�djd�|D��}|S(Nis
cs@s#|]\}}d||VqdS(s  N((R;tlRU((s6/usr/lib64/python2.7/site-packages/mercurial/parser.pys	<genexpr>�s(R]R\(R*R^R`toutput((s6/usr/lib64/python2.7/site-packages/mercurial/parser.pytprettyformat�sc@s�t|t�s|S|d}|�krN|ft�fd�|dD��Sg}|}x@|d|kr�|d\}}|jt|���|}q]W|jt|���|j|�tt|��S(s_Flatten chained infix operations to reduce usage of Python stack

    >>> from . import pycompat
    >>> def f(tree):
    ...     s = prettyformat(simplifyinfixops(tree, (b'or',)), (b'symbol',))
    ...     print(pycompat.sysstr(s))
    >>> f((b'or',
    ...     (b'or',
    ...       (b'symbol', b'1'),
    ...       (b'symbol', b'2')),
    ...     (b'symbol', b'3')))
    (or
      (symbol '1')
      (symbol '2')
      (symbol '3'))
    >>> f((b'func',
    ...     (b'symbol', b'p1'),
    ...     (b'or',
    ...       (b'or',
    ...         (b'func',
    ...           (b'symbol', b'sort'),
    ...           (b'list',
    ...             (b'or',
    ...               (b'or',
    ...                 (b'symbol', b'1'),
    ...                 (b'symbol', b'2')),
    ...               (b'symbol', b'3')),
    ...             (b'negate',
    ...               (b'symbol', b'rev')))),
    ...         (b'and',
    ...           (b'symbol', b'4'),
    ...           (b'group',
    ...             (b'or',
    ...               (b'or',
    ...                 (b'symbol', b'5'),
    ...                 (b'symbol', b'6')),
    ...               (b'symbol', b'7'))))),
    ...       (b'symbol', b'8'))))
    (func
      (symbol 'p1')
      (or
        (func
          (symbol 'sort')
          (list
            (or
              (symbol '1')
              (symbol '2')
              (symbol '3'))
            (negate
              (symbol 'rev'))))
        (and
          (symbol '4')
          (group
            (or
              (symbol '5')
              (symbol '6')
              (symbol '7'))))
        (symbol '8')))
    ic3@s|]}t|��VqdS(N(tsimplifyinfixops(R;R=(ttargetnodes(s6/usr/lib64/python2.7/site-packages/mercurial/parser.pys	<genexpr>si(R'R(RYRetreversed(R*Rftopt
simplifiedR=Rbtr((Rfs6/usr/lib64/python2.7/site-packages/mercurial/parser.pyRe�s<
%

c@sF|�kr�j�St|t�s)|St��fd�|D��S(Nc3@s!|]}t|���VqdS(N(t
_buildtree(R;R=(tplaceholdert	replstack(s6/usr/lib64/python2.7/site-packages/mercurial/parser.pys	<genexpr>.s(tpopR'R((ttemplateRlRm((RlRms6/usr/lib64/python2.7/site-packages/mercurial/parser.pyRk)s

cG@sat|t�s!tjd��ntt|��}t|||�}|r]tjd��n|S(s�Create new tree by substituting placeholders by replacements

    >>> _ = (b'symbol', b'_')
    >>> def f(template, *repls):
    ...     return buildtree(template, _, *repls)
    >>> f((b'func', (b'symbol', b'only'), (b'list', _, _)),
    ...   ('symbol', '1'), ('symbol', '2'))
    ('func', ('symbol', 'only'), ('list', ('symbol', '1'), ('symbol', '2')))
    >>> f((b'and', _, (b'not', _)), (b'symbol', b'1'), (b'symbol', b'2'))
    ('and', ('symbol', '1'), ('not', ('symbol', '2')))
    s placeholder must be a node tuplestoo many replacements(R'R(RR1tlistRgRk(RoRltreplsRmRj((s6/usr/lib64/python2.7/site-packages/mercurial/parser.pyt	buildtree0sc@s�||krtSt|t�s0t|t�r4tS|�kra|d�kra�j|�tSt|�t|�kr}tSt���fd�t||�D��S(Nic3@s-|]#\}}t||����VqdS(N(t
_matchtree(R;tpR=(tincompletenodestmatchesRl(s6/usr/lib64/python2.7/site-packages/mercurial/parser.pys	<genexpr>Ns(tTrueR'R(tFalseRYR2tallRD(tpatternR*RlRuRv((RuRvRls6/usr/lib64/python2.7/site-packages/mercurial/parser.pyRsDs 
cC@sW|dk	r.t|t�r.tjd��n|g}t|||||�rS|SdS(s	If a tree matches the pattern, return a list of the tree and nodes
    matched with the placeholder; Otherwise None

    >>> def f(pattern, tree):
    ...     m = matchtree(pattern, tree, _, {b'keyvalue', b'list'})
    ...     if m:
    ...         return m[1:]

    >>> _ = (b'symbol', b'_')
    >>> f((b'func', (b'symbol', b'ancestors'), _),
    ...   (b'func', (b'symbol', b'ancestors'), (b'symbol', b'1')))
    [('symbol', '1')]
    >>> f((b'func', (b'symbol', b'ancestors'), _),
    ...   (b'func', (b'symbol', b'ancestors'), None))
    >>> f((b'range', (b'dagrange', _, _), _),
    ...   (b'range',
    ...     (b'dagrange', (b'symbol', b'1'), (b'symbol', b'2')),
    ...     (b'symbol', b'3')))
    [('symbol', '1'), ('symbol', '2'), ('symbol', '3')]

    The placeholder does not match the specified incomplete nodes because
    an incomplete node (e.g. argument list) cannot construct an expression.

    >>> f((b'func', (b'symbol', b'ancestors'), _),
    ...   (b'func', (b'symbol', b'ancestors'),
    ...     (b'list', (b'symbol', b'1'), (b'symbol', b'2'))))

    The placeholder may be omitted, but which shouldn't match a None node.

    >>> _ = None
    >>> f((b'func', (b'symbol', b'ancestors'), None),
    ...   (b'func', (b'symbol', b'ancestors'), (b'symbol', b'0')))
    s placeholder must be a node tupleN(R
R'R(RR1Rs(RzR*RlRuRv((s6/usr/lib64/python2.7/site-packages/mercurial/parser.pyt	matchtreeQs
"	cC@sFt|j�dkr7td�|jd|jdfS|jdSdS(s;Compose error message from specified ParseError object
    is	at %d: %siN(R2RMR(tinst((s6/usr/lib64/python2.7/site-packages/mercurial/parser.pytparseerrordetailys"taliascB@seZdZd�ZRS(sParsed result of aliascC@s1||_||_||_||_t|_dS(N(tnameRMRtreplacementRxtwarned(RRRMterrR�((s6/usr/lib64/python2.7/site-packages/mercurial/parser.pyR�s
				(R,R-t__doc__R(((s6/usr/lib64/python2.7/site-packages/mercurial/parser.pyR~�stbasealiasrulescB@s�eZdZdZdZd�Zed��Zed��Z	e
d��Ze
d��Ze
d��Z
e
d��Ze
d	��Ze
d
��Ze
d��Ze
d��Ze
d
��ZRS(swParsing and expansion rule set of aliases

    This is a helper for fileset/revset/template aliases. A concrete rule set
    should be made by sub-classing this and implementing class/static methods.

    It supports alias expansion of symbol and function-call styles::

        # decl = defn
        h = heads(default)
        b($1) = ancestors($1) - ancestors(default)
    tsymbolcC@std|j��dS(Ns'%s' is not instantiatable(t	TypeErrorR,(tcls((s6/usr/lib64/python2.7/site-packages/mercurial/parser.pyt__new__�scC@s
t�dS(s-Parse an alias name, arguments and definitionN(tNotImplementedError(R3((s6/usr/lib64/python2.7/site-packages/mercurial/parser.pyR�scC@s
t�dS(s9Return (name, args) if tree is a function; otherwise NoneN(R�(R*((s6/usr/lib64/python2.7/site-packages/mercurial/parser.pyt_trygetfunc�sc@sjy�j|�}Wn&tjk
r;}|d
t|�fSX|d�jkr�|d}|jd�r|d
td�|fS|d
d
fS�j|�}|rW|\}}|jd�r�|d
td�|fSt	�fd�|D��r|d
td�fSt
|�t
t|��kr3|d
td�fS|g|D]}|d^q=d
fS|d
td	�fS(s�
Parse an alias declaration into ``(name, args, errorstr)``

        This function analyzes the parsed tree. The parsing rule is provided
        by ``_parse()``.

        - ``name``: of declared alias (may be ``decl`` itself at error)
        - ``args``: list of argument names (or None for symbol declaration)
        - ``errorstr``: detail about detected error (or None)

        >>> sym = lambda x: (b'symbol', x)
        >>> symlist = lambda *xs: (b'list',) + tuple(sym(x) for x in xs)
        >>> func = lambda n, a: (b'func', sym(n), a)
        >>> parsemap = {
        ...     b'foo': sym(b'foo'),
        ...     b'$foo': sym(b'$foo'),
        ...     b'foo::bar': (b'dagrange', sym(b'foo'), sym(b'bar')),
        ...     b'foo()': func(b'foo', None),
        ...     b'$foo()': func(b'$foo', None),
        ...     b'foo($1, $2)': func(b'foo', symlist(b'$1', b'$2')),
        ...     b'foo(bar_bar, baz.baz)':
        ...         func(b'foo', symlist(b'bar_bar', b'baz.baz')),
        ...     b'foo(bar($1, $2))':
        ...         func(b'foo', func(b'bar', symlist(b'$1', b'$2'))),
        ...     b'foo($1, $2, nested($1, $2))':
        ...         func(b'foo', (symlist(b'$1', b'$2') +
        ...                      (func(b'nested', symlist(b'$1', b'$2')),))),
        ...     b'foo("bar")': func(b'foo', (b'string', b'bar')),
        ...     b'foo($1, $2': error.ParseError(b'unexpected token: end', 10),
        ...     b'foo("bar': error.ParseError(b'unterminated string', 5),
        ...     b'foo($1, $2, $1)': func(b'foo', symlist(b'$1', b'$2', b'$1')),
        ... }
        >>> def parse(expr):
        ...     x = parsemap[expr]
        ...     if isinstance(x, Exception):
        ...         raise x
        ...     return x
        >>> def trygetfunc(tree):
        ...     if not tree or tree[0] != b'func' or tree[1][0] != b'symbol':
        ...         return None
        ...     if not tree[2]:
        ...         return tree[1][1], []
        ...     if tree[2][0] == b'list':
        ...         return tree[1][1], list(tree[2][1:])
        ...     return tree[1][1], [tree[2]]
        >>> class aliasrules(basealiasrules):
        ...     _parse = staticmethod(parse)
        ...     _trygetfunc = staticmethod(trygetfunc)
        >>> builddecl = aliasrules._builddecl
        >>> builddecl(b'foo')
        ('foo', None, None)
        >>> builddecl(b'$foo')
        ('$foo', None, "invalid symbol '$foo'")
        >>> builddecl(b'foo::bar')
        ('foo::bar', None, 'invalid format')
        >>> builddecl(b'foo()')
        ('foo', [], None)
        >>> builddecl(b'$foo()')
        ('$foo()', None, "invalid function '$foo'")
        >>> builddecl(b'foo($1, $2)')
        ('foo', ['$1', '$2'], None)
        >>> builddecl(b'foo(bar_bar, baz.baz)')
        ('foo', ['bar_bar', 'baz.baz'], None)
        >>> builddecl(b'foo($1, $2, nested($1, $2))')
        ('foo($1, $2, nested($1, $2))', None, 'invalid argument list')
        >>> builddecl(b'foo(bar($1, $2))')
        ('foo(bar($1, $2))', None, 'invalid argument list')
        >>> builddecl(b'foo("bar")')
        ('foo("bar")', None, 'invalid argument list')
        >>> builddecl(b'foo($1, $2')
        ('foo($1, $2', None, 'at 10: unexpected token: end')
        >>> builddecl(b'foo("bar')
        ('foo("bar', None, 'at 5: unterminated string')
        >>> builddecl(b'foo($1, $2, $1)')
        ('foo', None, 'argument names collide with each other')
        iit$sinvalid symbol '%s'sinvalid function '%s'c3@s"|]}|d�jkVqdS(iN(t_symbolnode(R;R(R�(s6/usr/lib64/python2.7/site-packages/mercurial/parser.pys	<genexpr>ssinvalid argument lists&argument names collide with each othersinvalid formatN(RRRR
R}R�t
startswithRR�RR2tset(R�tdeclR*R|RR?RMR((R�s6/usr/lib64/python2.7/site-packages/mercurial/parser.pyt
_builddecl�s(M

$c@s�t|t�s|S|d}|�jkrT|ft��fd�|dD��St|�dkslt�|d}|�kr�d}n+|jd�r�tjtd�|��n||fS(s%Mark alias arguments as ``_aliasarg``ic3@s!|]}�j|��VqdS(N(t_relabelargs(R;R=(RMR�(s6/usr/lib64/python2.7/site-packages/mercurial/parser.pys	<genexpr>siit	_aliasargR�sinvalid symbol '%s'(	R'R(R�R2tAssertionErrorR�RRR(R�R*RMRhtsym((RMR�s6/usr/lib64/python2.7/site-packages/mercurial/parser.pyR�s
(
	cC@s=|j|�}|r$t|�}n	t�}|j||�S(s�Parse an alias definition into a tree and marks substitutions

        This function marks alias argument references as ``_aliasarg``. The
        parsing rule is provided by ``_parse()``.

        ``args`` is a list of alias argument names, or None if the alias
        is declared as a symbol.

        >>> from . import pycompat
        >>> parsemap = {
        ...     b'$1 or foo': (b'or', (b'symbol', b'$1'), (b'symbol', b'foo')),
        ...     b'$1 or $bar':
        ...         (b'or', (b'symbol', b'$1'), (b'symbol', b'$bar')),
        ...     b'$10 or baz':
        ...         (b'or', (b'symbol', b'$10'), (b'symbol', b'baz')),
        ...     b'"$1" or "foo"':
        ...         (b'or', (b'string', b'$1'), (b'string', b'foo')),
        ... }
        >>> class aliasrules(basealiasrules):
        ...     _parse = staticmethod(parsemap.__getitem__)
        ...     _trygetfunc = staticmethod(lambda x: None)
        >>> builddefn = aliasrules._builddefn
        >>> def pprint(tree):
        ...     s = prettyformat(tree, (b'_aliasarg', b'string', b'symbol'))
        ...     print(pycompat.sysstr(s))
        >>> args = [b'$1', b'$2', b'foo']
        >>> pprint(builddefn(b'$1 or foo', args))
        (or
          (_aliasarg '$1')
          (_aliasarg 'foo'))
        >>> try:
        ...     builddefn(b'$1 or $bar', args)
        ... except error.ParseError as inst:
        ...     print(pycompat.sysstr(parseerrordetail(inst)))
        invalid symbol '$bar'
        >>> args = [b'$1', b'$10', b'foo']
        >>> pprint(builddefn(b'$10 or baz', args))
        (or
          (_aliasarg '$10')
          (symbol 'baz'))
        >>> pprint(builddefn(b'"$1" or "foo"', args))
        (or
          (string '$1')
          (string 'foo'))
        (RR�R�(R�tdefnRMR*((s6/usr/lib64/python2.7/site-packages/mercurial/parser.pyt
_builddefn$s
/	c	C@s�d}}|j|�\}}}|r7td�}nGy|j||�}Wn.tjk
r}}t|�}td�}nX|r�|i|jd6|d6|d6}nt||||�S(s>Parse an alias declaration and definition into an alias objects4bad declaration of %(section)s "%(name)s": %(error)ss3bad definition of %(section)s "%(name)s": %(error)stsectionRRN(	R
R�RR�RRR}t_sectionR~(	R�R�R�trepltefmtRRMR�R|((s6/usr/lib64/python2.7/site-packages/mercurial/parser.pytbuildZs
%cC@s@i}x3|D]+\}}|j||�}|||j<q
W|S(sTParse a list of alias (name, replacement) pairs into a dict of
        alias objects(R�R(R�titemstaliasesR�R�ta((s6/usr/lib64/python2.7/site-packages/mercurial/parser.pytbuildmapks
cC@s�t|t�sdS|d|jkra|d}|j|�}|ra|jdkra|dfSn|j|�}|r�|\}}|j|�}|r�|jdk	r�||fSndS(srIf tree looks like an unexpanded alias, return (alias, pattern-args)
        pair. Return None otherwise.
        iiN(R'R(R
R�tgetRMR�(R�R�R*RR�R?RM((s6/usr/lib64/python2.7/site-packages/mercurial/parser.pyt	_getaliasus


c@sRt|t�s|S|ddkr5|d}�|St��fd�|D��S(soReplace _aliasarg instances with the substitution value of the
        same name in args, recursively.
        iR�ic3@s!|]}�j|��VqdS(N(t_expandargs(R;R(RMR�(s6/usr/lib64/python2.7/site-packages/mercurial/parser.pys	<genexpr>�s(R'R((R�R*RMR�((RMR�s6/usr/lib64/python2.7/site-packages/mercurial/parser.pyR��s
c
@s�t|t�s|S�j�|�}|dkrTt����fd�|D��S|\}}|jr~tj|j��n|�kr�tjtd�i�jd6|j	d6��n�j
|�|j	�kr��j�|j����|j	<n�|j	}�j
�|jdkr%|St|�t|j�krbtjtd�t|���ng|D]}	�j�|	g��^qi}�j|tt|j|���S(Nc3@s'|]}�j�|���VqdS(N(t_expand(R;R(R�tcacheR�t	expanding(s6/usr/lib64/python2.7/site-packages/mercurial/parser.pys	<genexpr>�ss5infinite expansion of %(section)s "%(name)s" detectedR�Rsinvalid number of arguments: %d(R'R(R�R
RtAbortRRR�RRYR�R�RnRMR2R�tdictRD(
R�R�R*R�R�RjR�RbtresultR((R�R�R�R�s6/usr/lib64/python2.7/site-packages/mercurial/parser.pyR��s2	!


+cC@s|j||gi�S(sExpand aliases in tree, recursively.

        'aliases' is a dictionary mapping user defined aliases to alias objects.
        (R�(R�R�R*((s6/usr/lib64/python2.7/site-packages/mercurial/parser.pytexpand�sN(R,R-R�R
R�R�R�tstaticmethodRR�tclassmethodR�R�R�R�R�R�R�R�R�(((s6/usr/lib64/python2.7/site-packages/mercurial/parser.pyR��s	g6
N((t
__future__RRti18nRtRRRtutilsRtobjectRR:RPRQR]RdReRkRrRsR
R{R}R~R�(((s6/usr/lib64/python2.7/site-packages/mercurial/parser.pyt<module>s"E	!	<				O			
(