Index: mojo/public/bindings/generators/mojom_cpp_generator.py |
diff --git a/mojo/public/bindings/generators/mojom_cpp_generator.py b/mojo/public/bindings/generators/mojom_cpp_generator.py |
index b0592a8271e0271b47c081e1432e31cc73ba2264..4420aafd88f7f01f34e01cd1b14f2afb818fff4d 100644 |
--- a/mojo/public/bindings/generators/mojom_cpp_generator.py |
+++ b/mojo/public/bindings/generators/mojom_cpp_generator.py |
@@ -102,11 +102,17 @@ def IsStructWithHandles(struct): |
return True |
return False |
-def SubstituteNamespace(value, imports): |
- for import_item in imports: |
- value = value.replace(import_item['namespace'] + ".", |
- import_item['namespace'] + "::") |
- return value |
+def SubstituteNamespace(token, module): |
+ for import_item in module.imports: |
+ token = token.replace(import_item["namespace"] + ".", |
+ import_item["namespace"] + "::") |
+ return token |
+ |
+def ExpressionToText(value, module): |
+ if value[0] != "EXPRESSION": |
+ raise Exception("Expected EXPRESSION, got" + value) |
+ return "".join(mojom_generator.ExpressionMapper(value, |
+ lambda token: SubstituteNamespace(token, module))) |
_HEADER_SIZE = 8 |
@@ -118,6 +124,7 @@ class Generator(mojom_generator.Generator): |
"cpp_field_type": GetCppFieldType, |
"cpp_type": GetCppType, |
"cpp_wrapper_type": GetCppWrapperType, |
+ "expression_to_text": ExpressionToText, |
"get_pad": mojom_pack.GetPad, |
"is_handle_kind": mojom_generator.IsHandleKind, |
"is_object_kind": mojom_generator.IsObjectKind, |
@@ -127,12 +134,12 @@ class Generator(mojom_generator.Generator): |
"struct_size": lambda ps: ps.GetTotalSize() + _HEADER_SIZE, |
"struct_from_method": mojom_generator.GetStructFromMethod, |
"stylize_method": mojom_generator.StudlyCapsToCamel, |
- "substitute_namespace": SubstituteNamespace, |
"verify_token_type": mojom_generator.VerifyTokenType, |
} |
def GetJinjaExports(self): |
return { |
+ "module": self.module, |
"module_name": self.module.name, |
"namespace": self.module.namespace, |
"imports": self.module.imports, |