comparison mercurial/fileset.py @ 38843:4dc498d61d86

fileset: flatten arguments list Just prepares for flattening 'or' nodes. This change would have no impact on performance.
author Yuya Nishihara <yuya@tcha.org>
date Sat, 21 Jul 2018 15:14:38 +0900
parents af5c0c933af8
children d82c4d42b615
comparison
equal deleted inserted replaced
38842:f0a574dbfae9 38843:4dc498d61d86
101 def parse(expr): 101 def parse(expr):
102 p = parser.parser(elements) 102 p = parser.parser(elements)
103 tree, pos = p.parse(tokenize(expr)) 103 tree, pos = p.parse(tokenize(expr))
104 if pos != len(expr): 104 if pos != len(expr):
105 raise error.ParseError(_("invalid token"), pos) 105 raise error.ParseError(_("invalid token"), pos)
106 return tree 106 return parser.simplifyinfixops(tree, {'list'})
107 107
108 def getsymbol(x): 108 def getsymbol(x):
109 if x and x[0] == 'symbol': 109 if x and x[0] == 'symbol':
110 return x[1] 110 return x[1]
111 raise error.ParseError(_('not a symbol')) 111 raise error.ParseError(_('not a symbol'))
129 129
130 def getlist(x): 130 def getlist(x):
131 if not x: 131 if not x:
132 return [] 132 return []
133 if x[0] == 'list': 133 if x[0] == 'list':
134 return getlist(x[1]) + [x[2]] 134 return list(x[1:])
135 return [x] 135 return [x]
136 136
137 def getargs(x, min, max, err): 137 def getargs(x, min, max, err):
138 l = getlist(x) 138 l = getlist(x)
139 if len(l) < min or len(l) > max: 139 if len(l) < min or len(l) > max:
172 return matchmod.differencematcher(xm, ym) 172 return matchmod.differencematcher(xm, ym)
173 173
174 def negatematch(mctx, x): 174 def negatematch(mctx, x):
175 raise error.ParseError(_("can't use negate operator in this context")) 175 raise error.ParseError(_("can't use negate operator in this context"))
176 176
177 def listmatch(mctx, x, y): 177 def listmatch(mctx, *xs):
178 raise error.ParseError(_("can't use a list in this context"), 178 raise error.ParseError(_("can't use a list in this context"),
179 hint=_('see hg help "filesets.x or y"')) 179 hint=_('see hg help "filesets.x or y"'))
180 180
181 def func(mctx, a, b): 181 def func(mctx, a, b):
182 funcname = getsymbol(a) 182 funcname = getsymbol(a)