| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- from collections import deque
- import TestScripts.Parser
- # When deprecation is forced on some nodes
- # we ensure that a parent of a valid node is also valid
- def correctDeprecation(node):
- current = node.data["deprecated"]
- for c in node.children:
- if not correctDeprecation(c):
- current = False
- node.data["deprecated"] = current
- return(current)
- def inheritDeprecation(node,deprecated):
- current = node.data["deprecated"] or deprecated
- node.data["deprecated"] = current
- if node.kind != TestScripts.Parser.TreeElem.TEST:
- for c in node.children:
- inheritDeprecation(c,current)
-
- def deprecateRec(root,others,deprecated):
- if others:
- newOthers=others.copy()
- newOthers.popleft()
- if root.kind == TestScripts.Parser.TreeElem.TEST:
- if others[0].isdigit() and int(root.id) == int(others[0]):
- root.data["deprecated"]=False
- for c in root.children:
- deprecateRec(c,newOthers,False)
- else:
- root.data["deprecated"]=True
- for c in root.children:
- deprecateRec(c,others,deprecated)
- else:
- if root.data["class"] == others[0]:
- root.data["deprecated"]=False
- for c in root.children:
- deprecateRec(c,newOthers,False)
- else:
- root.data["deprecated"]=deprecated
- for c in root.children:
- deprecateRec(c,others,deprecated)
- def deprecate(root,others):
- inheritDeprecation(root,False)
- if others:
- deprecateRec(root,deque(others),True)
- correctDeprecation(root)
|