Chromium Code Reviews| Index: ppapi/generators/idl_ast.py |
| =================================================================== |
| --- ppapi/generators/idl_ast.py (revision 102516) |
| +++ ppapi/generators/idl_ast.py (working copy) |
| @@ -6,10 +6,11 @@ |
| """Nodes for PPAPI IDL AST.""" |
| -from idl_namespace import IDLNamespace, IDLVersionMap |
| +from idl_namespace import IDLNamespace |
| from idl_node import IDLAttribute, IDLFile, IDLNode |
| from idl_option import GetOption |
| from idl_visitor import IDLVisitor |
| +from idl_release import IDLReleaseList, IDLReleaseMap |
| # |
| # IDL Predefined types |
| @@ -32,10 +33,10 @@ |
| # node is named, then place it in the appropriate namespace. |
| # |
| def Arrive(self, node, parent_namespace): |
| - # Set version min and max based on properties |
| - vmin = node.GetProperty('version') |
| - vmax = node.GetProperty('deprecate') |
| - node.SetVersionRange(vmin, vmax) |
| + # If we are entering a parent, clear the local Label\ |
| + tab = ' ' * self.depth |
| + #print '%s%s' % (tab, node) |
|
brettw
2011/09/25 06:06:07
Did you mean to leave this in?
noelallen1
2011/09/26 17:01:06
Done.
|
| + if node.IsA('File'): self.release_map = None |
| # If this object is not a namespace aware object, use the parent's one |
| if node.cls not in self.NamespaceSet: |
| @@ -47,6 +48,13 @@ |
| # If this node is named, place it in its parent's namespace |
| if parent_namespace and node.cls in IDLNode.NamedSet: |
| + # Set version min and max based on properties |
|
brettw
2011/09/25 06:06:07
Seems like this comment should be indented.
noelallen1
2011/09/26 17:01:06
Done.
|
| + if self.release_map: |
| + vmin = node.GetProperty('version') |
| + vmax = node.GetProperty('deprecate') |
| + rmin = self.release_map.GetRelease(vmin) |
| + rmax = self.release_map.GetRelease(vmax) |
| + node.SetReleaseRange(rmin, rmax) |
| parent_namespace.AddNode(node) |
| # Pass this namespace to each child in case they inherit it |
| @@ -62,10 +70,11 @@ |
| if node.IsA('LabelItem'): |
| return (node.GetName(), node.GetProperty('VALUE')) |
| if node.IsA('Label') and node.GetName() == GetOption('label'): |
| - vmap = IDLVersionMap() |
| - for release, version in childdata: |
| - vmap.AddReleaseVersionMapping(release, float(version)) |
| - node.parent.SetProperty("LABEL", vmap) |
| + try: |
| + self.release_map = IDLReleaseMap(childdata) |
| + node.parent.release_map = self.release_map |
| + except Exception as err: |
| + node.Error('Unable to build release map: %s' % str(err)) |
| return None |
| @@ -89,22 +98,6 @@ |
| return filenode |
| -class IDLReleaseResolver(IDLVisitor): |
| - def VisitFilter(self, node, data): |
| - return node.IsA('AST','File', 'Label') |
| - |
| - def Depart(self, node, data, childdata): |
| - if node.IsA('Label'): |
| - return set([child.name for child in GetListOf('LabelItem')]) |
| - return childdata |
| - |
| -class IDLVersionMapDefault(IDLVersionMap): |
| - def GetRelease(self, version): |
| - return 'M13' |
| - |
| - def GetVersion(self, release): |
| - return float(0.0) |
| - |
| # |
| # IDLAst |
| # |
| @@ -124,7 +117,6 @@ |
| break |
| IDLNode.__init__(self, 'AST', 'BuiltIn', 1, 0, extranodes + children) |
| - self.SetProperty('LABEL', IDLVersionMapDefault()) |
| self.Resolve() |
| def Resolve(self): |
| @@ -136,8 +128,7 @@ |
| # Build an ordered list of all releases |
| self.releases = set() |
| for filenode in self.GetListOf('File'): |
| - vmap = filenode.GetProperty('LABEL') |
| - self.releases |= set(vmap.releases) |
| + self.releases |= set(filenode.release_map.GetReleases()) |
| self.releases = sorted(self.releases) |
| def SetTypeInfo(self, name, properties): |