##// END OF EJS Templates
revset: inline isvalidsymbol() and getsymbol() into _parsealiasdecl()...
Yuya Nishihara -
r28706:b33ca687 default
parent child Browse files
Show More
@@ -332,29 +332,17 b' def getargsdict(x, funcname, keys):'
332 return parser.buildargsdict(getlist(x), funcname, keys.split(),
332 return parser.buildargsdict(getlist(x), funcname, keys.split(),
333 keyvaluenode='keyvalue', keynode='symbol')
333 keyvaluenode='keyvalue', keynode='symbol')
334
334
335 def isvalidsymbol(tree):
336 """Examine whether specified ``tree`` is valid ``symbol`` or not
337 """
338 return tree[0] == 'symbol'
339
340 def getsymbol(tree):
341 """Get symbol name from valid ``symbol`` in ``tree``
342
343 This assumes that ``tree`` is already examined by ``isvalidsymbol``.
344 """
345 return tree[1]
346
347 def isvalidfunc(tree):
335 def isvalidfunc(tree):
348 """Examine whether specified ``tree`` is valid ``func`` or not
336 """Examine whether specified ``tree`` is valid ``func`` or not
349 """
337 """
350 return tree[0] == 'func' and isvalidsymbol(tree[1])
338 return tree[0] == 'func' and tree[1][0] == 'symbol'
351
339
352 def getfuncname(tree):
340 def getfuncname(tree):
353 """Get function name from valid ``func`` in ``tree``
341 """Get function name from valid ``func`` in ``tree``
354
342
355 This assumes that ``tree`` is already examined by ``isvalidfunc``.
343 This assumes that ``tree`` is already examined by ``isvalidfunc``.
356 """
344 """
357 return getsymbol(tree[1])
345 return tree[1][1]
358
346
359 def getfuncargs(tree):
347 def getfuncargs(tree):
360 """Get list of function arguments from valid ``func`` in ``tree``
348 """Get list of function arguments from valid ``func`` in ``tree``
@@ -2319,9 +2307,9 b' def _parsealiasdecl(decl):'
2319 raise error.ParseError(_('invalid token'), pos)
2307 raise error.ParseError(_('invalid token'), pos)
2320 tree = parser.simplifyinfixops(tree, ('list',))
2308 tree = parser.simplifyinfixops(tree, ('list',))
2321
2309
2322 if isvalidsymbol(tree):
2310 if tree[0] == 'symbol':
2323 # "name = ...." style
2311 # "name = ...." style
2324 name = getsymbol(tree)
2312 name = tree[1]
2325 if name.startswith('$'):
2313 if name.startswith('$'):
2326 return (decl, None, None, _("'$' not for alias arguments"))
2314 return (decl, None, None, _("'$' not for alias arguments"))
2327 return (name, ('symbol', name), None, None)
2315 return (name, ('symbol', name), None, None)
@@ -2333,9 +2321,9 b' def _parsealiasdecl(decl):'
2333 return (decl, None, None, _("'$' not for alias arguments"))
2321 return (decl, None, None, _("'$' not for alias arguments"))
2334 args = []
2322 args = []
2335 for arg in getfuncargs(tree):
2323 for arg in getfuncargs(tree):
2336 if not isvalidsymbol(arg):
2324 if arg[0] != 'symbol':
2337 return (decl, None, None, _("invalid argument list"))
2325 return (decl, None, None, _("invalid argument list"))
2338 args.append(getsymbol(arg))
2326 args.append(arg[1])
2339 if len(args) != len(set(args)):
2327 if len(args) != len(set(args)):
2340 return (name, None, None,
2328 return (name, None, None,
2341 _("argument names collide with each other"))
2329 _("argument names collide with each other"))
General Comments 0
You need to be logged in to leave comments. Login now