OLD | NEW |
1 # Copyright 2013 The Chromium Authors. All rights reserved. | 1 # Copyright 2013 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 """Generates JavaScript source files from a mojom.Module.""" | 5 """Generates JavaScript source files from a mojom.Module.""" |
6 | 6 |
7 import mojom.generate.generator as generator | 7 import mojom.generate.generator as generator |
8 import mojom.generate.module as mojom | 8 import mojom.generate.module as mojom |
9 import mojom.generate.pack as pack | 9 import mojom.generate.pack as pack |
10 import os | |
11 from mojom.generate.template_expander import UseJinja | 10 from mojom.generate.template_expander import UseJinja |
12 | 11 |
13 _kind_to_javascript_default_value = { | 12 _kind_to_javascript_default_value = { |
14 mojom.BOOL: "false", | 13 mojom.BOOL: "false", |
15 mojom.INT8: "0", | 14 mojom.INT8: "0", |
16 mojom.UINT8: "0", | 15 mojom.UINT8: "0", |
17 mojom.INT16: "0", | 16 mojom.INT16: "0", |
18 mojom.UINT16: "0", | 17 mojom.UINT16: "0", |
19 mojom.INT32: "0", | 18 mojom.INT32: "0", |
20 mojom.UINT32: "0", | 19 mojom.UINT32: "0", |
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
318 | 317 |
319 def IsObjectField(field): | 318 def IsObjectField(field): |
320 return mojom.IsObjectKind(field.kind) | 319 return mojom.IsObjectKind(field.kind) |
321 | 320 |
322 def IsAnyHandleOrInterfaceField(field): | 321 def IsAnyHandleOrInterfaceField(field): |
323 return mojom.IsAnyHandleOrInterfaceKind(field.kind) | 322 return mojom.IsAnyHandleOrInterfaceKind(field.kind) |
324 | 323 |
325 def IsEnumField(field): | 324 def IsEnumField(field): |
326 return mojom.IsEnumKind(field.kind) | 325 return mojom.IsEnumKind(field.kind) |
327 | 326 |
328 def GetRelativePath(module, base_module): | |
329 return os.path.relpath(module.path, os.path.dirname(base_module.path)) | |
330 | |
331 | 327 |
332 class Generator(generator.Generator): | 328 class Generator(generator.Generator): |
333 | 329 |
334 js_filters = { | 330 js_filters = { |
335 "decode_snippet": JavaScriptDecodeSnippet, | 331 "decode_snippet": JavaScriptDecodeSnippet, |
336 "default_value": JavaScriptDefaultValue, | 332 "default_value": JavaScriptDefaultValue, |
337 "encode_snippet": JavaScriptEncodeSnippet, | 333 "encode_snippet": JavaScriptEncodeSnippet, |
338 "expression_to_text": ExpressionToText, | 334 "expression_to_text": ExpressionToText, |
339 "field_offset": JavaScriptFieldOffset, | 335 "field_offset": JavaScriptFieldOffset, |
340 "has_callbacks": mojom.HasCallbacks, | 336 "has_callbacks": mojom.HasCallbacks, |
341 "is_any_handle_or_interface_field": IsAnyHandleOrInterfaceField, | 337 "is_any_handle_or_interface_field": IsAnyHandleOrInterfaceField, |
342 "is_array_pointer_field": IsArrayPointerField, | 338 "is_array_pointer_field": IsArrayPointerField, |
343 "is_bool_field": IsBoolField, | 339 "is_bool_field": IsBoolField, |
344 "is_enum_field": IsEnumField, | 340 "is_enum_field": IsEnumField, |
345 "is_handle_field": IsHandleField, | 341 "is_handle_field": IsHandleField, |
346 "is_interface_field": IsInterfaceField, | 342 "is_interface_field": IsInterfaceField, |
347 "is_interface_request_field": IsInterfaceRequestField, | 343 "is_interface_request_field": IsInterfaceRequestField, |
348 "is_map_pointer_field": IsMapPointerField, | 344 "is_map_pointer_field": IsMapPointerField, |
349 "is_object_field": IsObjectField, | 345 "is_object_field": IsObjectField, |
350 "is_string_pointer_field": IsStringPointerField, | 346 "is_string_pointer_field": IsStringPointerField, |
351 "is_struct_pointer_field": IsStructPointerField, | 347 "is_struct_pointer_field": IsStructPointerField, |
352 "is_union_field": IsUnionField, | 348 "is_union_field": IsUnionField, |
353 "js_type": JavaScriptType, | 349 "js_type": JavaScriptType, |
354 "payload_size": JavaScriptPayloadSize, | 350 "payload_size": JavaScriptPayloadSize, |
355 "get_relative_path": GetRelativePath, | |
356 "stylize_method": generator.StudlyCapsToCamel, | 351 "stylize_method": generator.StudlyCapsToCamel, |
357 "union_decode_snippet": JavaScriptUnionDecodeSnippet, | 352 "union_decode_snippet": JavaScriptUnionDecodeSnippet, |
358 "union_encode_snippet": JavaScriptUnionEncodeSnippet, | 353 "union_encode_snippet": JavaScriptUnionEncodeSnippet, |
359 "validate_array_params": JavaScriptValidateArrayParams, | 354 "validate_array_params": JavaScriptValidateArrayParams, |
360 "validate_enum_params": JavaScriptValidateEnumParams, | 355 "validate_enum_params": JavaScriptValidateEnumParams, |
361 "validate_map_params": JavaScriptValidateMapParams, | 356 "validate_map_params": JavaScriptValidateMapParams, |
362 "validate_nullable_params": JavaScriptNullableParam, | 357 "validate_nullable_params": JavaScriptNullableParam, |
363 "validate_struct_params": JavaScriptValidateStructParams, | 358 "validate_struct_params": JavaScriptValidateStructParams, |
364 "validate_union_params": JavaScriptValidateUnionParams, | 359 "validate_union_params": JavaScriptValidateUnionParams, |
365 } | 360 } |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
416 return self.module.imports | 411 return self.module.imports |
417 | 412 |
418 def GetImportedInterfaces(self): | 413 def GetImportedInterfaces(self): |
419 interface_to_import = {}; | 414 interface_to_import = {}; |
420 for each_import in self.module.imports: | 415 for each_import in self.module.imports: |
421 for each_interface in each_import["module"].interfaces: | 416 for each_interface in each_import["module"].interfaces: |
422 name = each_interface.name | 417 name = each_interface.name |
423 interface_to_import[name] = each_import["unique_name"] + "." + name | 418 interface_to_import[name] = each_import["unique_name"] + "." + name |
424 return interface_to_import; | 419 return interface_to_import; |
425 | 420 |
OLD | NEW |