Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(325)

Unified Diff: ppapi/generators/idl_ast.py

Issue 8045001: Update the IDL Generator to use Release instead of Version (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ppapi/generators/generator.py ('k') | ppapi/generators/idl_c_proto.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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,8 @@
# 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\
+ 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 +46,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
+ 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 +68,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 +96,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 +115,6 @@
break
IDLNode.__init__(self, 'AST', 'BuiltIn', 1, 0, extranodes + children)
- self.SetProperty('LABEL', IDLVersionMapDefault())
self.Resolve()
def Resolve(self):
@@ -136,8 +126,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):
« no previous file with comments | « ppapi/generators/generator.py ('k') | ppapi/generators/idl_c_proto.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698