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

Unified Diff: mojo/public/tools/bindings/pylib/mojom/generate/module.py

Issue 2855263002: Mojo bindings: support generating identifers using different style rules for different target langu…
Patch Set: . Created 3 years, 8 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
Index: mojo/public/tools/bindings/pylib/mojom/generate/module.py
diff --git a/mojo/public/tools/bindings/pylib/mojom/generate/module.py b/mojo/public/tools/bindings/pylib/mojom/generate/module.py
index 8fa4e442690436dc6b04a426de2c5dc045e0a932..046095ee1c7b2052088f3f1e57f1fe32e895537b 100644
--- a/mojo/public/tools/bindings/pylib/mojom/generate/module.py
+++ b/mojo/public/tools/bindings/pylib/mojom/generate/module.py
@@ -264,6 +264,9 @@ class Constant(object):
self.value = value
self.parent_kind = parent_kind
+ def Stylize(self, stylizer):
+ self.stylized_name = stylizer.StylizeConstant(self.name)
+
class Field(object):
def __init__(self, name=None, kind=None, ordinal=None, default=None,
@@ -286,6 +289,9 @@ class Field(object):
return self.attributes.get(ATTRIBUTE_MIN_VERSION) \
if self.attributes else None
+ def Stylize(self, stylizer):
+ self.stylized_name = stylizer.StylizeField(self.name)
+
class StructField(Field): pass
@@ -309,6 +315,7 @@ class Struct(ReferenceKind):
"""
ReferenceKind.AddSharedProperty('name')
+ ReferenceKind.AddSharedProperty('stylized_name')
ReferenceKind.AddSharedProperty('native_only')
ReferenceKind.AddSharedProperty('module')
ReferenceKind.AddSharedProperty('imported_from')
@@ -326,6 +333,8 @@ class Struct(ReferenceKind):
self.module = module
self.imported_from = None
self.fields = []
+ self.enums = []
+ self.constants = []
self.attributes = attributes
def Repr(self, as_ref=True):
@@ -342,6 +351,15 @@ class Struct(ReferenceKind):
self.fields.append(field)
return field
+ def Stylize(self, stylizer):
+ self.stylized_name = stylizer.StylizeStruct(self.name)
+ for field in self.fields:
+ field.Stylize(stylizer)
+ for enum in self.enums:
+ enum.Stylize(stylizer)
+ for constant in self.constants:
+ constant.Stylize(stylizer)
+
class Union(ReferenceKind):
"""A union of several kinds.
@@ -357,6 +375,7 @@ class Union(ReferenceKind):
bindings.
"""
ReferenceKind.AddSharedProperty('name')
+ ReferenceKind.AddSharedProperty('stylized_name')
ReferenceKind.AddSharedProperty('module')
ReferenceKind.AddSharedProperty('imported_from')
ReferenceKind.AddSharedProperty('fields')
@@ -387,6 +406,11 @@ class Union(ReferenceKind):
self.fields.append(field)
return field
+ def Stylize(self, stylizer):
+ self.stylized_name = stylizer.StylizeUnion(self.name)
+ for field in self.fields:
+ field.Stylize(stylizer)
+
class Array(ReferenceKind):
"""An array.
@@ -508,6 +532,9 @@ class Parameter(object):
return self.attributes.get(ATTRIBUTE_MIN_VERSION) \
if self.attributes else None
+ def Stylize(self, stylizer):
+ self.stylized_name = stylizer.StylizeParameter(self.name)
+
class Method(object):
def __init__(self, interface, name, ordinal=None, attributes=None):
@@ -549,10 +576,19 @@ class Method(object):
return self.attributes.get(ATTRIBUTE_SYNC) \
if self.attributes else None
+ def Stylize(self, stylizer):
+ self.stylized_name = stylizer.StylizeMethod(self.name)
+ for param in self.parameters:
+ param.Stylize(stylizer)
+ if self.response_parameters:
+ for param in self.response_parameters:
+ param.Stylize(stylizer)
+
class Interface(ReferenceKind):
ReferenceKind.AddSharedProperty('module')
ReferenceKind.AddSharedProperty('name')
+ ReferenceKind.AddSharedProperty('stylized_name')
ReferenceKind.AddSharedProperty('imported_from')
ReferenceKind.AddSharedProperty('methods')
ReferenceKind.AddSharedProperty('attributes')
@@ -567,6 +603,8 @@ class Interface(ReferenceKind):
self.name = name
self.imported_from = None
self.methods = []
+ self.enums = []
+ self.constants = []
self.attributes = attributes
def Repr(self, as_ref=True):
@@ -586,6 +624,15 @@ class Interface(ReferenceKind):
def client(self):
return None
+ def Stylize(self, stylizer):
+ self.stylized_name = stylizer.StylizeInterface(self.name)
+ for method in self.methods:
+ method.Stylize(stylizer)
+ for enum in self.enums:
+ enum.Stylize(stylizer)
+ for constant in self.constants:
+ constant.Stylize(stylizer)
+
class AssociatedInterface(ReferenceKind):
ReferenceKind.AddSharedProperty('kind')
@@ -615,6 +662,9 @@ class EnumField(object):
return self.attributes.get(ATTRIBUTE_MIN_VERSION) \
if self.attributes else None
+ def Stylize(self, stylizer):
+ self.stylized_name = stylizer.StylizeEnumField(self.name)
+
class Enum(Kind):
def __init__(self, name=None, module=None, attributes=None):
@@ -641,6 +691,11 @@ class Enum(Kind):
return self.attributes.get(ATTRIBUTE_EXTENSIBLE, False) \
if self.attributes else False
+ def Stylize(self, stylizer):
+ self.stylized_name = stylizer.StylizeEnum(self.name)
+ for field in self.fields:
+ field.Stylize(stylizer)
+
class Module(object):
def __init__(self, name=None, namespace=None, attributes=None):
@@ -650,8 +705,11 @@ class Module(object):
self.structs = []
self.unions = []
self.interfaces = []
+ self.enums = []
+ self.constants = []
self.kinds = {}
self.attributes = attributes
+ self.imports = []
def __repr__(self):
# Gives us a decent __repr__ for modules.
@@ -681,6 +739,21 @@ class Module(object):
self.unions.append(union)
return union
+ def Stylize(self, stylizer):
+ self.stylized_namespace = stylizer.StylizeModule(self.namespace)
+ for struct in self.structs:
+ struct.Stylize(stylizer)
+ for union in self.unions:
+ union.Stylize(stylizer)
+ for interface in self.interfaces:
+ interface.Stylize(stylizer)
+ for enum in self.enums:
+ enum.Stylize(stylizer)
+ for constant in self.constants:
+ constant.Stylize(stylizer)
+ for imported_module in self.imports:
+ imported_module['module'].Stylize(stylizer)
+
def IsBoolKind(kind):
return kind.spec == BOOL.spec

Powered by Google App Engine
This is Rietveld 408576698