| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # Copyright (c) 2011 Google Inc. All rights reserved. | 2 # Copyright (c) 2011 Google Inc. All rights reserved. |
| 3 # Copyright (c) 2012 Intel Corporation. All rights reserved. | 3 # Copyright (c) 2012 Intel Corporation. All rights reserved. |
| 4 # | 4 # |
| 5 # Redistribution and use in source and binary forms, with or without | 5 # Redistribution and use in source and binary forms, with or without |
| 6 # modification, are permitted provided that the following conditions are | 6 # modification, are permitted provided that the following conditions are |
| 7 # met: | 7 # met: |
| 8 # | 8 # |
| 9 # * Redistributions of source code must retain the above copyright | 9 # * Redistributions of source code must retain the above copyright |
| 10 # notice, this list of conditions and the following disclaimer. | 10 # notice, this list of conditions and the following disclaimer. |
| (...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 153 array_pos = array_pos_end - 1 | 153 array_pos = array_pos_end - 1 |
| 154 array_pos += 1 | 154 array_pos += 1 |
| 155 return output | 155 return output |
| 156 | 156 |
| 157 ABBREVIATION = frozenset(["XHR", "DOM", "CSS"]) | 157 ABBREVIATION = frozenset(["XHR", "DOM", "CSS"]) |
| 158 | 158 |
| 159 VALIDATOR_IFDEF_NAME = "ENABLE(ASSERT)" | 159 VALIDATOR_IFDEF_NAME = "ENABLE(ASSERT)" |
| 160 | 160 |
| 161 | 161 |
| 162 class DomainNameFixes: | 162 class DomainNameFixes: |
| 163 @classmethod | 163 @staticmethod |
| 164 def get_fixed_data(cls, domain_name): | 164 def get_fixed_data(domain_name): |
| 165 field_name_res = Capitalizer.upper_camel_case_to_lower(domain_name) + "A
gent" | 165 return Capitalizer.upper_camel_case_to_lower(domain_name) + "Agent" |
| 166 | |
| 167 class Res(object): | |
| 168 agent_field_name = field_name_res | |
| 169 | |
| 170 return Res | |
| 171 | |
| 172 | 166 |
| 173 class RawTypes(object): | 167 class RawTypes(object): |
| 174 @staticmethod | 168 @staticmethod |
| 175 def get(json_type): | 169 def get(json_type): |
| 176 if json_type == "boolean": | 170 if json_type == "boolean": |
| 177 return RawTypes.Bool | 171 return RawTypes.Bool |
| 178 elif json_type == "string": | 172 elif json_type == "string": |
| 179 return RawTypes.String | 173 return RawTypes.String |
| 180 elif json_type == "array": | 174 elif json_type == "array": |
| 181 return RawTypes.Array | 175 return RawTypes.Array |
| (...skipping 22 matching lines...) Expand all Loading... |
| 204 class ByReference: | 198 class ByReference: |
| 205 @staticmethod | 199 @staticmethod |
| 206 def get_argument_prefix(): | 200 def get_argument_prefix(): |
| 207 return "" | 201 return "" |
| 208 | 202 |
| 209 @staticmethod | 203 @staticmethod |
| 210 def get_parameter_type_suffix(): | 204 def get_parameter_type_suffix(): |
| 211 return "&" | 205 return "&" |
| 212 | 206 |
| 213 class BaseType(object): | 207 class BaseType(object): |
| 214 need_internal_runtime_cast_ = False | |
| 215 | |
| 216 @classmethod | |
| 217 def request_raw_internal_runtime_cast(cls): | |
| 218 if not cls.need_internal_runtime_cast_: | |
| 219 cls.need_internal_runtime_cast_ = True | |
| 220 | |
| 221 @classmethod | 208 @classmethod |
| 222 def get_raw_validator_call_text(cls): | 209 def get_raw_validator_call_text(cls): |
| 223 return "RuntimeCastHelper::assertType<JSONValue::Type%s>" % cls.get_
validate_method_params().template_type | 210 return "RuntimeCastHelper::assertType<JSONValue::Type%s>" % cls.get_
getter_name() |
| 224 | 211 |
| 225 @staticmethod | 212 @staticmethod |
| 226 def get_validate_method_params(): | 213 def get_getter_name(): |
| 227 raise Exception("Abstract method") | 214 raise Exception("Unsupported") |
| 228 | 215 |
| 229 class String(BaseType): | 216 class String(BaseType): |
| 230 @staticmethod | 217 @staticmethod |
| 231 def get_getter_name(): | 218 def get_getter_name(): |
| 232 return "String" | 219 return "String" |
| 233 | 220 |
| 234 get_setter_name = get_getter_name | 221 get_setter_name = get_getter_name |
| 235 | 222 |
| 236 @staticmethod | 223 @staticmethod |
| 237 def get_constructor_pattern(): | 224 def get_constructor_pattern(): |
| 238 return "InspectorString::create(%s)" | 225 return "InspectorString::create(%s)" |
| 239 | 226 |
| 240 @staticmethod | 227 @staticmethod |
| 241 def get_c_initializer(): | |
| 242 return "\"\"" | |
| 243 | |
| 244 @staticmethod | |
| 245 def get_validate_method_params(): | |
| 246 class ValidateMethodParams: | |
| 247 template_type = "String" | |
| 248 return ValidateMethodParams | |
| 249 | |
| 250 @staticmethod | |
| 251 def get_output_pass_model(): | 228 def get_output_pass_model(): |
| 252 return RawTypes.OutputPassModel.ByPointer | 229 return RawTypes.OutputPassModel.ByPointer |
| 253 | 230 |
| 254 @staticmethod | 231 @staticmethod |
| 255 def is_heavy_value(): | 232 def is_heavy_value(): |
| 256 return True | 233 return True |
| 257 | 234 |
| 258 @staticmethod | 235 @staticmethod |
| 259 def get_array_item_raw_c_type_text(): | 236 def get_array_item_raw_c_type_text(): |
| 260 return "String" | 237 return "String" |
| 261 | 238 |
| 262 @staticmethod | 239 @staticmethod |
| 263 def get_raw_type_model(): | 240 def get_raw_type_model(): |
| 264 return TypeModel.String | 241 return TypeModel.String |
| 265 | 242 |
| 266 class Int(BaseType): | 243 class Int(BaseType): |
| 267 @staticmethod | 244 @staticmethod |
| 268 def get_getter_name(): | 245 def get_getter_name(): |
| 269 return "Int" | 246 return "Int" |
| 270 | 247 |
| 271 @staticmethod | 248 @staticmethod |
| 272 def get_setter_name(): | 249 def get_setter_name(): |
| 273 return "Number" | 250 return "Number" |
| 274 | 251 |
| 275 @staticmethod | 252 @staticmethod |
| 276 def get_constructor_pattern(): | 253 def get_constructor_pattern(): |
| 277 return "InspectorBasicValue::create(%s)" | 254 return "InspectorBasicValue::create(%s)" |
| 278 | 255 |
| 279 @staticmethod | |
| 280 def get_c_initializer(): | |
| 281 return "0" | |
| 282 | |
| 283 @classmethod | 256 @classmethod |
| 284 def get_raw_validator_call_text(cls): | 257 def get_raw_validator_call_text(cls): |
| 285 return "RuntimeCastHelper::assertInt" | 258 return "RuntimeCastHelper::assertInt" |
| 286 | 259 |
| 287 @staticmethod | 260 @staticmethod |
| 288 def get_output_pass_model(): | 261 def get_output_pass_model(): |
| 289 return RawTypes.OutputPassModel.ByPointer | 262 return RawTypes.OutputPassModel.ByPointer |
| 290 | 263 |
| 291 @staticmethod | 264 @staticmethod |
| 292 def is_heavy_value(): | 265 def is_heavy_value(): |
| (...skipping 14 matching lines...) Expand all Loading... |
| 307 | 280 |
| 308 @staticmethod | 281 @staticmethod |
| 309 def get_setter_name(): | 282 def get_setter_name(): |
| 310 return "Number" | 283 return "Number" |
| 311 | 284 |
| 312 @staticmethod | 285 @staticmethod |
| 313 def get_constructor_pattern(): | 286 def get_constructor_pattern(): |
| 314 return "InspectorBasicValue::create(%s)" | 287 return "InspectorBasicValue::create(%s)" |
| 315 | 288 |
| 316 @staticmethod | 289 @staticmethod |
| 317 def get_c_initializer(): | 290 def get_raw_validator_call_text(): |
| 318 return "0" | 291 return "RuntimeCastHelper::assertType<JSONValue::TypeNumber>" |
| 319 | |
| 320 @staticmethod | |
| 321 def get_validate_method_params(): | |
| 322 class ValidateMethodParams: | |
| 323 template_type = "Number" | |
| 324 return ValidateMethodParams | |
| 325 | 292 |
| 326 @staticmethod | 293 @staticmethod |
| 327 def get_output_pass_model(): | 294 def get_output_pass_model(): |
| 328 return RawTypes.OutputPassModel.ByPointer | 295 return RawTypes.OutputPassModel.ByPointer |
| 329 | 296 |
| 330 @staticmethod | 297 @staticmethod |
| 331 def is_heavy_value(): | 298 def is_heavy_value(): |
| 332 return False | 299 return False |
| 333 | 300 |
| 334 @staticmethod | 301 @staticmethod |
| 335 def get_array_item_raw_c_type_text(): | 302 def get_array_item_raw_c_type_text(): |
| 336 return "double" | 303 return "double" |
| 337 | 304 |
| 338 @staticmethod | 305 @staticmethod |
| 339 def get_raw_type_model(): | 306 def get_raw_type_model(): |
| 340 return TypeModel.Number | 307 return TypeModel.Number |
| 341 | 308 |
| 342 class Bool(BaseType): | 309 class Bool(BaseType): |
| 343 @staticmethod | 310 @staticmethod |
| 344 def get_getter_name(): | 311 def get_getter_name(): |
| 345 return "Boolean" | 312 return "Boolean" |
| 346 | 313 |
| 347 get_setter_name = get_getter_name | 314 get_setter_name = get_getter_name |
| 348 | 315 |
| 349 @staticmethod | 316 @staticmethod |
| 350 def get_constructor_pattern(): | 317 def get_constructor_pattern(): |
| 351 return "InspectorBasicValue::create(%s)" | 318 return "InspectorBasicValue::create(%s)" |
| 352 | 319 |
| 353 @staticmethod | 320 @staticmethod |
| 354 def get_c_initializer(): | |
| 355 return "false" | |
| 356 | |
| 357 @staticmethod | |
| 358 def get_validate_method_params(): | |
| 359 class ValidateMethodParams: | |
| 360 template_type = "Boolean" | |
| 361 return ValidateMethodParams | |
| 362 | |
| 363 @staticmethod | |
| 364 def get_output_pass_model(): | 321 def get_output_pass_model(): |
| 365 return RawTypes.OutputPassModel.ByPointer | 322 return RawTypes.OutputPassModel.ByPointer |
| 366 | 323 |
| 367 @staticmethod | 324 @staticmethod |
| 368 def is_heavy_value(): | 325 def is_heavy_value(): |
| 369 return False | 326 return False |
| 370 | 327 |
| 371 @staticmethod | 328 @staticmethod |
| 372 def get_array_item_raw_c_type_text(): | 329 def get_array_item_raw_c_type_text(): |
| 373 return "bool" | 330 return "bool" |
| 374 | 331 |
| 375 @staticmethod | 332 @staticmethod |
| 376 def get_raw_type_model(): | 333 def get_raw_type_model(): |
| 377 return TypeModel.Bool | 334 return TypeModel.Bool |
| 378 | 335 |
| 379 class Object(BaseType): | 336 class Object(BaseType): |
| 380 @staticmethod | 337 @staticmethod |
| 381 def get_getter_name(): | 338 def get_getter_name(): |
| 382 return "Object" | 339 return "Object" |
| 383 | 340 |
| 384 @staticmethod | 341 @staticmethod |
| 385 def get_setter_name(): | 342 def get_setter_name(): |
| 386 return "Value" | 343 return "Value" |
| 387 | 344 |
| 388 @staticmethod | 345 @staticmethod |
| 389 def get_constructor_pattern(): | 346 def get_constructor_pattern(): |
| 390 return "%s" | 347 return "%s" |
| 391 | 348 |
| 392 @staticmethod | 349 @staticmethod |
| 393 def get_c_initializer(): | |
| 394 return "JSONObject::create()" | |
| 395 | |
| 396 @staticmethod | |
| 397 def get_output_argument_prefix(): | 350 def get_output_argument_prefix(): |
| 398 return "" | 351 return "" |
| 399 | 352 |
| 400 @staticmethod | 353 @staticmethod |
| 401 def get_validate_method_params(): | |
| 402 class ValidateMethodParams: | |
| 403 template_type = "Object" | |
| 404 return ValidateMethodParams | |
| 405 | |
| 406 @staticmethod | |
| 407 def get_output_pass_model(): | 354 def get_output_pass_model(): |
| 408 return RawTypes.OutputPassModel.ByReference | 355 return RawTypes.OutputPassModel.ByReference |
| 409 | 356 |
| 410 @staticmethod | 357 @staticmethod |
| 411 def is_heavy_value(): | 358 def is_heavy_value(): |
| 412 return True | 359 return True |
| 413 | 360 |
| 414 @staticmethod | 361 @staticmethod |
| 415 def get_array_item_raw_c_type_text(): | 362 def get_array_item_raw_c_type_text(): |
| 416 return "JSONObject" | 363 return "JSONObject" |
| 417 | 364 |
| 418 @staticmethod | 365 @staticmethod |
| 419 def get_raw_type_model(): | 366 def get_raw_type_model(): |
| 420 return TypeModel.Object | 367 return TypeModel.Object |
| 421 | 368 |
| 422 class Any(BaseType): | 369 class Any(BaseType): |
| 423 @staticmethod | 370 @staticmethod |
| 424 def get_getter_name(): | 371 def get_getter_name(): |
| 425 return "Value" | 372 return "Value" |
| 426 | 373 |
| 427 get_setter_name = get_getter_name | 374 get_setter_name = get_getter_name |
| 428 | 375 |
| 429 @staticmethod | 376 @staticmethod |
| 430 def get_c_initializer(): | |
| 431 raise Exception("Unsupported") | |
| 432 | |
| 433 @staticmethod | |
| 434 def get_constructor_pattern(): | 377 def get_constructor_pattern(): |
| 435 raise Exception("Unsupported") | 378 raise Exception("Unsupported") |
| 436 | 379 |
| 437 @staticmethod | 380 @staticmethod |
| 438 def get_raw_validator_call_text(): | 381 def get_raw_validator_call_text(): |
| 439 return "RuntimeCastHelper::assertAny" | 382 return "RuntimeCastHelper::assertAny" |
| 440 | 383 |
| 441 @staticmethod | 384 @staticmethod |
| 442 def get_output_pass_model(): | 385 def get_output_pass_model(): |
| 443 return RawTypes.OutputPassModel.ByReference | 386 return RawTypes.OutputPassModel.ByReference |
| (...skipping 17 matching lines...) Expand all Loading... |
| 461 | 404 |
| 462 @staticmethod | 405 @staticmethod |
| 463 def get_setter_name(): | 406 def get_setter_name(): |
| 464 return "Value" | 407 return "Value" |
| 465 | 408 |
| 466 @staticmethod | 409 @staticmethod |
| 467 def get_constructor_pattern(): | 410 def get_constructor_pattern(): |
| 468 return "%s" | 411 return "%s" |
| 469 | 412 |
| 470 @staticmethod | 413 @staticmethod |
| 471 def get_c_initializer(): | |
| 472 return "JSONArray::create()" | |
| 473 | |
| 474 @staticmethod | |
| 475 def get_output_argument_prefix(): | 414 def get_output_argument_prefix(): |
| 476 return "" | 415 return "" |
| 477 | 416 |
| 478 @staticmethod | 417 @staticmethod |
| 479 def get_validate_method_params(): | |
| 480 class ValidateMethodParams: | |
| 481 template_type = "Array" | |
| 482 return ValidateMethodParams | |
| 483 | |
| 484 @staticmethod | |
| 485 def get_output_pass_model(): | 418 def get_output_pass_model(): |
| 486 return RawTypes.OutputPassModel.ByReference | 419 return RawTypes.OutputPassModel.ByReference |
| 487 | 420 |
| 488 @staticmethod | 421 @staticmethod |
| 489 def is_heavy_value(): | 422 def is_heavy_value(): |
| 490 return True | 423 return True |
| 491 | 424 |
| 492 @staticmethod | 425 @staticmethod |
| 493 def get_array_item_raw_c_type_text(): | 426 def get_array_item_raw_c_type_text(): |
| 494 return "JSONArray" | 427 return "JSONArray" |
| (...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 747 parts = str.split('\n') | 680 parts = str.split('\n') |
| 748 self.append(parts[0]) | 681 self.append(parts[0]) |
| 749 for p in parts[1:]: | 682 for p in parts[1:]: |
| 750 self.output.append('\n') | 683 self.output.append('\n') |
| 751 if p: | 684 if p: |
| 752 self.newline(p) | 685 self.newline(p) |
| 753 | 686 |
| 754 def get_indent(self): | 687 def get_indent(self): |
| 755 return self.indent | 688 return self.indent |
| 756 | 689 |
| 757 def get_indented(self, additional_indent): | |
| 758 return Writer(self.output, self.indent + additional_indent) | |
| 759 | |
| 760 def insert_writer(self, additional_indent): | 690 def insert_writer(self, additional_indent): |
| 761 new_output = [] | 691 new_output = [] |
| 762 self.output.append(new_output) | 692 self.output.append(new_output) |
| 763 return Writer(new_output, self.indent + additional_indent) | 693 return Writer(new_output, self.indent + additional_indent) |
| 764 | 694 |
| 765 | 695 |
| 766 class EnumConstants: | 696 class EnumConstants: |
| 767 map_ = {} | 697 map_ = {} |
| 768 constants_ = [] | 698 constants_ = [] |
| 769 | 699 |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 852 if request: | 782 if request: |
| 853 cls.need_user_runtime_cast_ = True | 783 cls.need_user_runtime_cast_ = True |
| 854 request.acknowledge() | 784 request.acknowledge() |
| 855 | 785 |
| 856 @classmethod | 786 @classmethod |
| 857 def request_internal_runtime_cast(cls): | 787 def request_internal_runtime_cast(cls): |
| 858 cls.need_internal_runtime_cast_ = True | 788 cls.need_internal_runtime_cast_ = True |
| 859 | 789 |
| 860 @classmethod | 790 @classmethod |
| 861 def get_code_generator(enum_binding_cls): | 791 def get_code_generator(enum_binding_cls): |
| 862 #FIXME: generate ad-hoc enums too once we figure out how
to better implement them in C++. | |
| 863 comment_out = helper.is_ad_hoc | |
| 864 | 792 |
| 865 class CodeGenerator: | 793 class CodeGenerator: |
| 866 @staticmethod | 794 @staticmethod |
| 867 def generate_type_builder(writer, generate_context): | 795 def generate_type_builder(writer, generate_context): |
| 868 enum = json_typable["enum"] | 796 enum = json_typable["enum"] |
| 869 helper.write_doc(writer) | 797 helper.write_doc(writer) |
| 870 enum_name = fixed_type_name.class_name | 798 enum_name = fixed_type_name.class_name |
| 871 fixed_type_name.output_comment(writer) | 799 fixed_type_name.output_comment(writer) |
| 872 writer.newline("struct ") | 800 writer.newline("struct ") |
| 873 writer.append(enum_name) | 801 writer.append(enum_name) |
| (...skipping 15 matching lines...) Expand all Loading... |
| 889 if enum_binding_cls.need_user_runtime_cast_: | 817 if enum_binding_cls.need_user_runtime_cast_: |
| 890 raise Exception("Not yet implemented") | 818 raise Exception("Not yet implemented") |
| 891 | 819 |
| 892 if enum_binding_cls.need_internal_runtime_cast_: | 820 if enum_binding_cls.need_internal_runtime_cast_: |
| 893 writer.append("#if %s\n" % VALIDATOR_IFDEF_N
AME) | 821 writer.append("#if %s\n" % VALIDATOR_IFDEF_N
AME) |
| 894 writer.newline(" static void assertCorrec
tValue(JSONValue* value);\n") | 822 writer.newline(" static void assertCorrec
tValue(JSONValue* value);\n") |
| 895 writer.append("#endif // %s\n" % VALIDATOR_
IFDEF_NAME) | 823 writer.append("#endif // %s\n" % VALIDATOR_
IFDEF_NAME) |
| 896 | 824 |
| 897 validator_writer = generate_context.validato
r_writer | 825 validator_writer = generate_context.validato
r_writer |
| 898 | 826 |
| 899 domain_fixes = DomainNameFixes.get_fixed_dat
a(context_domain_name) | |
| 900 | |
| 901 validator_writer.newline("void %s%s::assertC
orrectValue(JSONValue* value)\n" % (helper.full_name_prefix_for_impl, enum_name)
) | 827 validator_writer.newline("void %s%s::assertC
orrectValue(JSONValue* value)\n" % (helper.full_name_prefix_for_impl, enum_name)
) |
| 902 validator_writer.newline("{\n") | 828 validator_writer.newline("{\n") |
| 903 validator_writer.newline(" WTF::String s;
\n") | 829 validator_writer.newline(" WTF::String s;
\n") |
| 904 validator_writer.newline(" bool cast_res
= value->asString(&s);\n") | 830 validator_writer.newline(" bool cast_res
= value->asString(&s);\n") |
| 905 validator_writer.newline(" ASSERT(cast_re
s);\n") | 831 validator_writer.newline(" ASSERT(cast_re
s);\n") |
| 906 if len(enum) > 0: | 832 if len(enum) > 0: |
| 907 condition_list = [] | 833 condition_list = [] |
| 908 for enum_item in enum: | 834 for enum_item in enum: |
| 909 enum_pos = EnumConstants.add_constan
t(enum_item) | 835 enum_pos = EnumConstants.add_constan
t(enum_item) |
| 910 condition_list.append("s == \"%s\""
% enum_item) | 836 condition_list.append("s == \"%s\""
% enum_item) |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 996 @classmethod | 922 @classmethod |
| 997 def resolve_inner(cls, resolve_context): | 923 def resolve_inner(cls, resolve_context): |
| 998 pass | 924 pass |
| 999 | 925 |
| 1000 @staticmethod | 926 @staticmethod |
| 1001 def request_user_runtime_cast(request): | 927 def request_user_runtime_cast(request): |
| 1002 raise Exception("Unsupported") | 928 raise Exception("Unsupported") |
| 1003 | 929 |
| 1004 @staticmethod | 930 @staticmethod |
| 1005 def request_internal_runtime_cast(): | 931 def request_internal_runtime_cast(): |
| 1006 RawTypes.String.request_raw_internal_runtime_cast() | 932 pass |
| 1007 | 933 |
| 1008 @staticmethod | 934 @staticmethod |
| 1009 def get_code_generator(): | 935 def get_code_generator(): |
| 1010 class CodeGenerator: | 936 class CodeGenerator: |
| 1011 @staticmethod | 937 @staticmethod |
| 1012 def generate_type_builder(writer, generate_conte
xt): | 938 def generate_type_builder(writer, generate_conte
xt): |
| 1013 helper.write_doc(writer) | 939 helper.write_doc(writer) |
| 1014 fixed_type_name.output_comment(writer) | 940 fixed_type_name.output_comment(writer) |
| 1015 writer.newline("typedef String ") | 941 writer.newline("typedef String ") |
| 1016 writer.append(fixed_type_name.class_name) | 942 writer.append(fixed_type_name.class_name) |
| (...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1189 writer.append_multiline("\n * .set%s
(...)" % Capitalizer.lower_camel_case_to_upper(prop_data.p["name"])) | 1115 writer.append_multiline("\n * .set%s
(...)" % Capitalizer.lower_camel_case_to_upper(prop_data.p["name"])) |
| 1190 writer.append_multiline(";\n */\n") | 1116 writer.append_multiline(";\n */\n") |
| 1191 | 1117 |
| 1192 writer.newline_multiline(CodeGeneratorInspectorS
trings.class_binding_builder_part_4) | 1118 writer.newline_multiline(CodeGeneratorInspectorS
trings.class_binding_builder_part_4) |
| 1193 | 1119 |
| 1194 writer.newline(" typedef TypeBuilder::StructI
temTraits ItemTraits;\n") | 1120 writer.newline(" typedef TypeBuilder::StructI
temTraits ItemTraits;\n") |
| 1195 | 1121 |
| 1196 for prop_data in resolve_data.main_properties: | 1122 for prop_data in resolve_data.main_properties: |
| 1197 prop_name = prop_data.p["name"] | 1123 prop_name = prop_data.p["name"] |
| 1198 param_type_binding = prop_data.param_type_bi
nding | 1124 param_type_binding = prop_data.param_type_bi
nding |
| 1199 raw_type = param_type_binding.reduce_to_raw_
type() | |
| 1200 if isinstance(param_type_binding.get_type_mo
del(), TypeModel.ValueType): | 1125 if isinstance(param_type_binding.get_type_mo
del(), TypeModel.ValueType): |
| 1201 writer.append_multiline("\n void %s"
% prop_name) | 1126 writer.append_multiline("\n void %s"
% prop_name) |
| 1202 writer.append("(%s value)\n" % param_typ
e_binding.get_type_model().get_command_return_pass_model().get_output_parameter_
type()) | 1127 writer.append("(%s value)\n" % param_typ
e_binding.get_type_model().get_command_return_pass_model().get_output_parameter_
type()) |
| 1203 writer.newline(" {\n") | 1128 writer.newline(" {\n") |
| 1204 writer.newline(" JSONObjectBase::
get%s(\"%s\", value);\n" | 1129 writer.newline(" JSONObjectBase::
get%s(\"%s\", value);\n" |
| 1205 % (param_type_binding.reduce_to_raw_
type().get_setter_name(), prop_data.p["name"])) | 1130 % (param_type_binding.reduce_to_raw_
type().get_setter_name(), prop_data.p["name"])) |
| 1206 writer.newline(" }\n") | 1131 writer.newline(" }\n") |
| 1207 | 1132 |
| 1208 for prop_data in resolve_data.optional_propertie
s: | 1133 for prop_data in resolve_data.optional_propertie
s: |
| 1209 prop_name = prop_data.p["name"] | 1134 prop_name = prop_data.p["name"] |
| (...skipping 27 matching lines...) Expand all Loading... |
| 1237 | 1162 |
| 1238 if class_binding_cls.need_internal_runtime_cast_
: | 1163 if class_binding_cls.need_internal_runtime_cast_
: |
| 1239 writer.append("#if %s\n" % VALIDATOR_IFDEF_N
AME) | 1164 writer.append("#if %s\n" % VALIDATOR_IFDEF_N
AME) |
| 1240 writer.newline(" static void assertCorrec
tValue(JSONValue* value);\n") | 1165 writer.newline(" static void assertCorrec
tValue(JSONValue* value);\n") |
| 1241 writer.append("#endif // %s\n" % VALIDATOR_
IFDEF_NAME) | 1166 writer.append("#endif // %s\n" % VALIDATOR_
IFDEF_NAME) |
| 1242 | 1167 |
| 1243 closed_field_set = (context_domain_name + ".
" + class_name) not in TYPES_WITH_OPEN_FIELD_LIST_SET | 1168 closed_field_set = (context_domain_name + ".
" + class_name) not in TYPES_WITH_OPEN_FIELD_LIST_SET |
| 1244 | 1169 |
| 1245 validator_writer = generate_context.validato
r_writer | 1170 validator_writer = generate_context.validato
r_writer |
| 1246 | 1171 |
| 1247 domain_fixes = DomainNameFixes.get_fixed_dat
a(context_domain_name) | |
| 1248 | |
| 1249 validator_writer.newline("void %s%s::assertC
orrectValue(JSONValue* value)\n" % (helper.full_name_prefix_for_impl, class_name
)) | 1172 validator_writer.newline("void %s%s::assertC
orrectValue(JSONValue* value)\n" % (helper.full_name_prefix_for_impl, class_name
)) |
| 1250 validator_writer.newline("{\n") | 1173 validator_writer.newline("{\n") |
| 1251 validator_writer.newline(" RefPtr<JSONObj
ect> object;\n") | 1174 validator_writer.newline(" RefPtr<JSONObj
ect> object;\n") |
| 1252 validator_writer.newline(" bool castRes =
value->asObject(&object);\n") | 1175 validator_writer.newline(" bool castRes =
value->asObject(&object);\n") |
| 1253 validator_writer.newline(" ASSERT_UNUSED(
castRes, castRes);\n") | 1176 validator_writer.newline(" ASSERT_UNUSED(
castRes, castRes);\n") |
| 1254 for prop_data in resolve_data.main_propertie
s: | 1177 for prop_data in resolve_data.main_propertie
s: |
| 1255 validator_writer.newline(" {\n") | 1178 validator_writer.newline(" {\n") |
| 1256 it_name = "%sPos" % prop_data.p["name"] | 1179 it_name = "%sPos" % prop_data.p["name"] |
| 1257 validator_writer.newline(" JSONOb
ject::iterator %s;\n" % it_name) | 1180 validator_writer.newline(" JSONOb
ject::iterator %s;\n" % it_name) |
| 1258 validator_writer.newline(" %s = o
bject->find(\"%s\");\n" % (it_name, prop_data.p["name"])) | 1181 validator_writer.newline(" %s = o
bject->find(\"%s\");\n" % (it_name, prop_data.p["name"])) |
| (...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1362 @classmethod | 1285 @classmethod |
| 1363 def resolve_inner(cls, resolve_context): | 1286 def resolve_inner(cls, resolve_context): |
| 1364 pass | 1287 pass |
| 1365 | 1288 |
| 1366 @staticmethod | 1289 @staticmethod |
| 1367 def request_user_runtime_cast(request): | 1290 def request_user_runtime_cast(request): |
| 1368 pass | 1291 pass |
| 1369 | 1292 |
| 1370 @staticmethod | 1293 @staticmethod |
| 1371 def request_internal_runtime_cast(): | 1294 def request_internal_runtime_cast(): |
| 1372 RawTypes.Object.request_raw_internal_runtime_cast() | 1295 pass |
| 1373 | 1296 |
| 1374 @staticmethod | 1297 @staticmethod |
| 1375 def get_code_generator(): | 1298 def get_code_generator(): |
| 1376 pass | 1299 pass |
| 1377 | 1300 |
| 1378 @staticmethod | 1301 @staticmethod |
| 1379 def get_validator_call_text(): | 1302 def get_validator_call_text(): |
| 1380 return "RuntimeCastHelper::assertType<JSONValue::TypeObj
ect>" | 1303 return "RuntimeCastHelper::assertType<JSONValue::TypeObj
ect>" |
| 1381 | 1304 |
| 1382 @classmethod | 1305 @classmethod |
| (...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1509 def __init__(self, raw_type): | 1432 def __init__(self, raw_type): |
| 1510 self.raw_type_ = raw_type | 1433 self.raw_type_ = raw_type |
| 1511 | 1434 |
| 1512 def resolve_inner(self, resolve_context): | 1435 def resolve_inner(self, resolve_context): |
| 1513 pass | 1436 pass |
| 1514 | 1437 |
| 1515 def request_user_runtime_cast(self, request): | 1438 def request_user_runtime_cast(self, request): |
| 1516 raise Exception("Unsupported") | 1439 raise Exception("Unsupported") |
| 1517 | 1440 |
| 1518 def request_internal_runtime_cast(self): | 1441 def request_internal_runtime_cast(self): |
| 1519 self.raw_type_.request_raw_internal_runtime_cast() | 1442 pass |
| 1520 | 1443 |
| 1521 def get_code_generator(self): | 1444 def get_code_generator(self): |
| 1522 return None | 1445 return None |
| 1523 | 1446 |
| 1524 def get_validator_call_text(self): | 1447 def get_validator_call_text(self): |
| 1525 return self.raw_type_.get_raw_validator_call_text() | 1448 return self.raw_type_.get_raw_validator_call_text() |
| 1526 | 1449 |
| 1527 def get_array_item_c_type_text(self): | 1450 def get_array_item_c_type_text(self): |
| 1528 return self.raw_type_.get_array_item_raw_c_type_text() | 1451 return self.raw_type_.get_array_item_raw_c_type_text() |
| 1529 | 1452 |
| (...skipping 266 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1796 type_builder_fragments = [] | 1719 type_builder_fragments = [] |
| 1797 type_builder_forwards = [] | 1720 type_builder_forwards = [] |
| 1798 validator_impl_list = [] | 1721 validator_impl_list = [] |
| 1799 type_builder_impl_list = [] | 1722 type_builder_impl_list = [] |
| 1800 | 1723 |
| 1801 | 1724 |
| 1802 @staticmethod | 1725 @staticmethod |
| 1803 def go(): | 1726 def go(): |
| 1804 Generator.process_types(type_map) | 1727 Generator.process_types(type_map) |
| 1805 | 1728 |
| 1806 first_cycle_guardable_list_list = [ | |
| 1807 Generator.backend_method_declaration_list, | |
| 1808 Generator.backend_method_implementation_list, | |
| 1809 Generator.backend_method_name_declaration_list, | |
| 1810 Generator.backend_method_name_declaration_index_list, | |
| 1811 Generator.backend_agent_interface_list, | |
| 1812 Generator.frontend_class_field_lines, | |
| 1813 Generator.frontend_constructor_init_list, | |
| 1814 Generator.frontend_domain_class_lines, | |
| 1815 Generator.frontend_method_list, | |
| 1816 Generator.method_handler_list, | |
| 1817 Generator.method_name_enum_list, | |
| 1818 Generator.backend_constructor_init_list, | |
| 1819 Generator.backend_virtual_setters_list, | |
| 1820 Generator.backend_setters_list, | |
| 1821 Generator.backend_field_list] | |
| 1822 | |
| 1823 for json_domain in json_api["domains"]: | 1729 for json_domain in json_api["domains"]: |
| 1824 domain_name = json_domain["domain"] | 1730 domain_name = json_domain["domain"] |
| 1825 domain_name_lower = domain_name.lower() | 1731 domain_name_lower = domain_name.lower() |
| 1826 | 1732 |
| 1827 domain_fixes = DomainNameFixes.get_fixed_data(domain_name) | 1733 agent_field_name = DomainNameFixes.get_fixed_data(domain_name) |
| 1828 | |
| 1829 agent_field_name = domain_fixes.agent_field_name | |
| 1830 | 1734 |
| 1831 frontend_method_declaration_lines = [] | 1735 frontend_method_declaration_lines = [] |
| 1832 | 1736 |
| 1833 if "events" in json_domain: | 1737 if "events" in json_domain: |
| 1834 for json_event in json_domain["events"]: | 1738 for json_event in json_domain["events"]: |
| 1835 Generator.process_event(json_event, domain_name, frontend_me
thod_declaration_lines) | 1739 Generator.process_event(json_event, domain_name, frontend_me
thod_declaration_lines) |
| 1836 | 1740 |
| 1837 Generator.frontend_class_field_lines.append(" %s m_%s;\n" % (doma
in_name, domain_name_lower)) | 1741 Generator.frontend_class_field_lines.append(" %s m_%s;\n" % (doma
in_name, domain_name_lower)) |
| 1838 if Generator.frontend_constructor_init_list: | 1742 if Generator.frontend_constructor_init_list: |
| 1839 Generator.frontend_constructor_init_list.append(" , ") | 1743 Generator.frontend_constructor_init_list.append(" , ") |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1907 backend_agent_interface_list = [] if "redirect" in json_command else Gen
erator.backend_agent_interface_list | 1811 backend_agent_interface_list = [] if "redirect" in json_command else Gen
erator.backend_agent_interface_list |
| 1908 | 1812 |
| 1909 ad_hoc_type_output = [] | 1813 ad_hoc_type_output = [] |
| 1910 backend_agent_interface_list.append(ad_hoc_type_output) | 1814 backend_agent_interface_list.append(ad_hoc_type_output) |
| 1911 ad_hoc_type_writer = Writer(ad_hoc_type_output, " ") | 1815 ad_hoc_type_writer = Writer(ad_hoc_type_output, " ") |
| 1912 | 1816 |
| 1913 backend_agent_interface_list.append(" virtual void %s(ErrorString
*" % json_command_name) | 1817 backend_agent_interface_list.append(" virtual void %s(ErrorString
*" % json_command_name) |
| 1914 | 1818 |
| 1915 method_in_code = "" | 1819 method_in_code = "" |
| 1916 method_out_code = "" | 1820 method_out_code = "" |
| 1917 result_object_declaration = "" | |
| 1918 agent_call_param_list = ["&error"] | 1821 agent_call_param_list = ["&error"] |
| 1919 agent_call_params_declaration_list = [" ErrorString error;"] | 1822 agent_call_params_declaration_list = [" ErrorString error;"] |
| 1920 send_response_call_params_list = ["error"] | 1823 send_response_call_params_list = ["error"] |
| 1921 request_message_param = "" | 1824 request_message_param = "" |
| 1922 normal_response_cook_text = "" | 1825 normal_response_cook_text = "" |
| 1923 error_type_binding = None | 1826 error_type_binding = None |
| 1924 if "error" in json_command: | 1827 if "error" in json_command: |
| 1925 json_error = json_command["error"] | 1828 json_error = json_command["error"] |
| 1926 error_type_binding = Generator.resolve_type_and_generate_ad_hoc(json
_error, json_command_name + "Error", json_command_name, domain_name, ad_hoc_type
_writer, agent_interface_name + "::") | 1829 error_type_binding = Generator.resolve_type_and_generate_ad_hoc(json
_error, json_command_name + "Error", json_command_name, domain_name, ad_hoc_type
_writer, agent_interface_name + "::") |
| 1927 error_type_model = error_type_binding.get_type_model().get_optional(
) | 1830 error_type_model = error_type_binding.get_type_model().get_optional(
) |
| (...skipping 12 matching lines...) Expand all Loading... |
| 1940 | 1843 |
| 1941 for json_parameter in json_params: | 1844 for json_parameter in json_params: |
| 1942 json_param_name = json_parameter["name"] | 1845 json_param_name = json_parameter["name"] |
| 1943 param_raw_type = resolve_param_raw_type(json_parameter, domain_n
ame) | 1846 param_raw_type = resolve_param_raw_type(json_parameter, domain_n
ame) |
| 1944 | 1847 |
| 1945 getter_name = param_raw_type.get_getter_name() | 1848 getter_name = param_raw_type.get_getter_name() |
| 1946 | 1849 |
| 1947 optional = json_parameter.get("optional") | 1850 optional = json_parameter.get("optional") |
| 1948 | 1851 |
| 1949 non_optional_type_model = param_raw_type.get_raw_type_model() | 1852 non_optional_type_model = param_raw_type.get_raw_type_model() |
| 1950 if optional: | |
| 1951 type_model = non_optional_type_model.get_optional() | |
| 1952 else: | |
| 1953 type_model = non_optional_type_model | |
| 1954 | 1853 |
| 1955 if optional: | 1854 if optional: |
| 1956 code = (" bool %s_valueFound = false;\n" | 1855 code = (" bool %s_valueFound = false;\n" |
| 1957 " %s in_%s = get%s(paramsContainerPtr, \"%s\", &%
s_valueFound, protocolErrors);\n" % | 1856 " %s in_%s = get%s(paramsContainerPtr, \"%s\", &%
s_valueFound, protocolErrors);\n" % |
| 1958 (json_param_name, non_optional_type_model.get_command
_return_pass_model().get_return_var_type(), json_param_name, getter_name, json_p
aram_name, json_param_name)) | 1857 (json_param_name, non_optional_type_model.get_command
_return_pass_model().get_return_var_type(), json_param_name, getter_name, json_p
aram_name, json_param_name)) |
| 1959 param = "%s_valueFound ? &in_%s : 0" % (json_param_name, jso
n_param_name) | 1858 param = "%s_valueFound ? &in_%s : 0" % (json_param_name, jso
n_param_name) |
| 1960 # FIXME: pass optional refptr-values as PassRefPtr | 1859 # FIXME: pass optional refptr-values as PassRefPtr |
| 1961 formal_param_type_pattern = "const %s*" | 1860 formal_param_type_pattern = "const %s*" |
| 1962 else: | 1861 else: |
| 1963 code = (" %s in_%s = get%s(paramsContainerPtr, \"%s\", 0,
protocolErrors);\n" % | 1862 code = (" %s in_%s = get%s(paramsContainerPtr, \"%s\", 0,
protocolErrors);\n" % |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2024 for json_return in json_command["returns"]: | 1923 for json_return in json_command["returns"]: |
| 2025 | 1924 |
| 2026 json_return_name = json_return["name"] | 1925 json_return_name = json_return["name"] |
| 2027 | 1926 |
| 2028 optional = bool(json_return.get("optional")) | 1927 optional = bool(json_return.get("optional")) |
| 2029 | 1928 |
| 2030 return_type_binding = Generator.resolve_param_type_and_gener
ate_ad_hoc(json_return, json_command_name, domain_name, ad_hoc_type_writer, agen
t_interface_name + "::") | 1929 return_type_binding = Generator.resolve_param_type_and_gener
ate_ad_hoc(json_return, json_command_name, domain_name, ad_hoc_type_writer, agen
t_interface_name + "::") |
| 2031 | 1930 |
| 2032 raw_type = return_type_binding.reduce_to_raw_type() | 1931 raw_type = return_type_binding.reduce_to_raw_type() |
| 2033 setter_type = raw_type.get_setter_name() | 1932 setter_type = raw_type.get_setter_name() |
| 2034 initializer = raw_type.get_c_initializer() | |
| 2035 | 1933 |
| 2036 type_model = return_type_binding.get_type_model() | 1934 type_model = return_type_binding.get_type_model() |
| 2037 if optional: | 1935 if optional: |
| 2038 type_model = type_model.get_optional() | 1936 type_model = type_model.get_optional() |
| 2039 | 1937 |
| 2040 code = " %s out_%s;\n" % (type_model.get_command_return_p
ass_model().get_return_var_type(), json_return_name) | 1938 code = " %s out_%s;\n" % (type_model.get_command_return_p
ass_model().get_return_var_type(), json_return_name) |
| 2041 param = "%sout_%s" % (type_model.get_command_return_pass_mod
el().get_output_argument_prefix(), json_return_name) | 1939 param = "%sout_%s" % (type_model.get_command_return_pass_mod
el().get_output_argument_prefix(), json_return_name) |
| 2042 var_name = "out_%s" % json_return_name | 1940 var_name = "out_%s" % json_return_name |
| 2043 setter_argument = type_model.get_command_return_pass_model()
.get_output_to_raw_expression() % var_name | 1941 setter_argument = type_model.get_command_return_pass_model()
.get_output_to_raw_expression() % var_name |
| 2044 if return_type_binding.get_setter_value_expression_pattern()
: | 1942 if return_type_binding.get_setter_value_expression_pattern()
: |
| (...skipping 18 matching lines...) Expand all Loading... |
| 2063 agent_call_param_list.append(param) | 1961 agent_call_param_list.append(param) |
| 2064 | 1962 |
| 2065 normal_response_cook_text += "".join(response_cook_list) | 1963 normal_response_cook_text += "".join(response_cook_list) |
| 2066 | 1964 |
| 2067 if len(normal_response_cook_text) != 0: | 1965 if len(normal_response_cook_text) != 0: |
| 2068 normal_response_cook_text = " if (!error.length()) {\n" +
normal_response_cook_text + " }" | 1966 normal_response_cook_text = " if (!error.length()) {\n" +
normal_response_cook_text + " }" |
| 2069 | 1967 |
| 2070 # Redirect to another agent's implementation. | 1968 # Redirect to another agent's implementation. |
| 2071 agent_field = "m_" + agent_field_name | 1969 agent_field = "m_" + agent_field_name |
| 2072 if "redirect" in json_command: | 1970 if "redirect" in json_command: |
| 2073 domain_fixes = DomainNameFixes.get_fixed_data(json_command.get("redi
rect")) | 1971 agent_field = "m_" + DomainNameFixes.get_fixed_data(json_command.get
("redirect")) |
| 2074 agent_field = "m_" + domain_fixes.agent_field_name | |
| 2075 | 1972 |
| 2076 Generator.backend_method_implementation_list.append(Templates.backend_me
thod.substitute(None, | 1973 Generator.backend_method_implementation_list.append(Templates.backend_me
thod.substitute(None, |
| 2077 domainName=domain_name, methodName=json_command_name, | 1974 domainName=domain_name, methodName=json_command_name, |
| 2078 agentField=agent_field, | 1975 agentField=agent_field, |
| 2079 methodCode="".join([method_in_code, method_out_code]), | 1976 methodCode="".join([method_in_code, method_out_code]), |
| 2080 agentCallParamsDeclaration="\n".join(agent_call_params_declaration_l
ist), | 1977 agentCallParamsDeclaration="\n".join(agent_call_params_declaration_l
ist), |
| 2081 agentCallParams=", ".join(agent_call_param_list), | 1978 agentCallParams=", ".join(agent_call_param_list), |
| 2082 requestMessageObject=request_message_param, | 1979 requestMessageObject=request_message_param, |
| 2083 responseCook=normal_response_cook_text, | 1980 responseCook=normal_response_cook_text, |
| 2084 sendResponseCallParams=", ".join(send_response_call_params_list), | 1981 sendResponseCallParams=", ".join(send_response_call_params_list), |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2204 def process_types(type_map): | 2101 def process_types(type_map): |
| 2205 output = Generator.type_builder_fragments | 2102 output = Generator.type_builder_fragments |
| 2206 | 2103 |
| 2207 class GenerateContext: | 2104 class GenerateContext: |
| 2208 validator_writer = Writer(Generator.validator_impl_list, "") | 2105 validator_writer = Writer(Generator.validator_impl_list, "") |
| 2209 cpp_writer = Writer(Generator.type_builder_impl_list, "") | 2106 cpp_writer = Writer(Generator.type_builder_impl_list, "") |
| 2210 | 2107 |
| 2211 def generate_all_domains_code(out, type_data_callback): | 2108 def generate_all_domains_code(out, type_data_callback): |
| 2212 writer = Writer(out, "") | 2109 writer = Writer(out, "") |
| 2213 for domain_data in type_map.domains(): | 2110 for domain_data in type_map.domains(): |
| 2214 domain_fixes = DomainNameFixes.get_fixed_data(domain_data.name()
) | |
| 2215 | |
| 2216 namespace_declared = [] | 2111 namespace_declared = [] |
| 2217 | 2112 |
| 2218 def namespace_lazy_generator(): | 2113 def namespace_lazy_generator(): |
| 2219 if not namespace_declared: | 2114 if not namespace_declared: |
| 2220 writer.newline("namespace ") | 2115 writer.newline("namespace ") |
| 2221 writer.append(domain_data.name()) | 2116 writer.append(domain_data.name()) |
| 2222 writer.append(" {\n") | 2117 writer.append(" {\n") |
| 2223 # What is a better way to change value from outer scope? | 2118 # What is a better way to change value from outer scope? |
| 2224 namespace_declared.append(True) | 2119 namespace_declared.append(True) |
| 2225 return writer | 2120 return writer |
| (...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2355 validatorIfdefName=VALIDATOR_IFDEF_NAME)) | 2250 validatorIfdefName=VALIDATOR_IFDEF_NAME)) |
| 2356 | 2251 |
| 2357 backend_h_file.close() | 2252 backend_h_file.close() |
| 2358 backend_cpp_file.close() | 2253 backend_cpp_file.close() |
| 2359 | 2254 |
| 2360 frontend_h_file.close() | 2255 frontend_h_file.close() |
| 2361 frontend_cpp_file.close() | 2256 frontend_cpp_file.close() |
| 2362 | 2257 |
| 2363 typebuilder_h_file.close() | 2258 typebuilder_h_file.close() |
| 2364 typebuilder_cpp_file.close() | 2259 typebuilder_cpp_file.close() |
| OLD | NEW |