merge polyglot3 branch
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4154 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
This commit is contained in:
parent
d6a7828730
commit
41daeadbb8
|
@ -1,9 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
|
||||
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
||||
<classpathentry kind="src" path="source"/>
|
||||
<classpathentry kind="lib" path="lib/polyglot.jar"/>
|
||||
<classpathentry kind="lib" path="lib/java_cup.jar"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
|
||||
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
||||
<classpathentry kind="src" path="source"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
||||
|
|
|
@ -1,275 +1,263 @@
|
|||
#Thu Feb 03 10:12:26 EST 2011
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
|
||||
org.eclipse.jdt.core.compiler.compliance=1.5
|
||||
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.source=1.5
|
||||
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_assignment=0
|
||||
org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
|
||||
org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
|
||||
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
|
||||
org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
|
||||
org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_after_package=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_field=0
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_method=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_package=0
|
||||
org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
|
||||
org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
|
||||
org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
|
||||
org.eclipse.jdt.core.formatter.comment.format_block_comments=true
|
||||
org.eclipse.jdt.core.formatter.comment.format_header=false
|
||||
org.eclipse.jdt.core.formatter.comment.format_html=true
|
||||
org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
|
||||
org.eclipse.jdt.core.formatter.comment.format_line_comments=true
|
||||
org.eclipse.jdt.core.formatter.comment.format_source_code=true
|
||||
org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
|
||||
org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
|
||||
org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
|
||||
org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
|
||||
org.eclipse.jdt.core.formatter.comment.line_length=80
|
||||
org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
|
||||
org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
|
||||
org.eclipse.jdt.core.formatter.compact_else_if=true
|
||||
org.eclipse.jdt.core.formatter.continuation_indentation=2
|
||||
org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
|
||||
org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
|
||||
org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
|
||||
org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
|
||||
org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
|
||||
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
|
||||
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
|
||||
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
|
||||
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
|
||||
org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
|
||||
org.eclipse.jdt.core.formatter.indent_empty_lines=false
|
||||
org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
|
||||
org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
|
||||
org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
|
||||
org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
|
||||
org.eclipse.jdt.core.formatter.indentation.size=2
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
|
||||
org.eclipse.jdt.core.formatter.join_lines_in_comments=true
|
||||
org.eclipse.jdt.core.formatter.join_wrapped_lines=true
|
||||
org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
|
||||
org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
|
||||
org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
|
||||
org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
|
||||
org.eclipse.jdt.core.formatter.lineSplit=132
|
||||
org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
|
||||
org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
|
||||
org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
|
||||
org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
|
||||
org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
|
||||
org.eclipse.jdt.core.formatter.tabulation.char=space
|
||||
org.eclipse.jdt.core.formatter.tabulation.size=2
|
||||
org.eclipse.jdt.core.formatter.use_on_off_tags=false
|
||||
org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
|
||||
org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
|
||||
org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
|
||||
#Mon Apr 13 15:38:50 EDT 2009
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
|
||||
org.eclipse.jdt.core.compiler.compliance=1.5
|
||||
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.source=1.5
|
||||
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_assignment=0
|
||||
org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
|
||||
org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
|
||||
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
|
||||
org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_after_package=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_field=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_method=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_package=0
|
||||
org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
|
||||
org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
|
||||
org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
|
||||
org.eclipse.jdt.core.formatter.comment.format_block_comments=true
|
||||
org.eclipse.jdt.core.formatter.comment.format_header=false
|
||||
org.eclipse.jdt.core.formatter.comment.format_html=true
|
||||
org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
|
||||
org.eclipse.jdt.core.formatter.comment.format_line_comments=true
|
||||
org.eclipse.jdt.core.formatter.comment.format_source_code=true
|
||||
org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
|
||||
org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
|
||||
org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
|
||||
org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
|
||||
org.eclipse.jdt.core.formatter.comment.line_length=132
|
||||
org.eclipse.jdt.core.formatter.compact_else_if=true
|
||||
org.eclipse.jdt.core.formatter.continuation_indentation=2
|
||||
org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
|
||||
org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
|
||||
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
|
||||
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
|
||||
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
|
||||
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
|
||||
org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
|
||||
org.eclipse.jdt.core.formatter.indent_empty_lines=false
|
||||
org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
|
||||
org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
|
||||
org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
|
||||
org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
|
||||
org.eclipse.jdt.core.formatter.indentation.size=4
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
|
||||
org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
|
||||
org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
|
||||
org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
|
||||
org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
|
||||
org.eclipse.jdt.core.formatter.lineSplit=132
|
||||
org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
|
||||
org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
|
||||
org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
|
||||
org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
|
||||
org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
|
||||
org.eclipse.jdt.core.formatter.tabulation.char=space
|
||||
org.eclipse.jdt.core.formatter.tabulation.size=2
|
||||
org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
|
||||
org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
|
||||
|
|
|
@ -5,14 +5,15 @@ Bundle-SymbolicName: com.ibm.wala.cast.java.polyglot
|
|||
Bundle-Version: 1.0.0
|
||||
Bundle-Activator: com.ibm.wala.cast.java.polyglot.Activator
|
||||
Bundle-Vendor: IBM
|
||||
Require-Bundle: com.ibm.wala.cast.java;bundle-version="1.0.0",
|
||||
com.ibm.wala.cast;bundle-version="1.0.0",
|
||||
com.ibm.wala.core;bundle-version="1.1.3",
|
||||
Require-Bundle: com.ibm.wala.cast.java,
|
||||
com.ibm.wala.cast,
|
||||
com.ibm.wala.core,
|
||||
org.eclipse.core.runtime,
|
||||
com.ibm.wala.shrike;bundle-version="1.1.3",
|
||||
com.ibm.wala.ide;bundle-version="1.1.3",
|
||||
org.eclipse.jdt.core;bundle-version="3.4.2",
|
||||
org.eclipse.core.resources;bundle-version="3.4.1"
|
||||
polyglot3,
|
||||
com.ibm.wala.shrike,
|
||||
org.eclipse.jdt.core,
|
||||
org.eclipse.core.resources,
|
||||
com.ibm.wala.ide
|
||||
Bundle-RequiredExecutionEnvironment: J2SE-1.5
|
||||
Bundle-ActivationPolicy: lazy
|
||||
Export-Package: com.ibm.wala.cast.java.client.polyglot,
|
||||
|
@ -32,56 +33,4 @@ Export-Package: com.ibm.wala.cast.java.client.polyglot,
|
|||
polyglot.frontend.goals,
|
||||
com.ibm.wala.cast.tree.impl,
|
||||
com.ibm.wala.cast.java.translator,
|
||||
polyglot.frontend,
|
||||
com.ibm.wala.cast.java.types",
|
||||
java_cup;uses:="java_cup.runtime",
|
||||
java_cup.runtime,
|
||||
polyglot.ast;
|
||||
uses:="polyglot.visit,
|
||||
polyglot.types,
|
||||
polyglot.util,
|
||||
polyglot.frontend",
|
||||
polyglot.ext.param;uses:="polyglot.frontend",
|
||||
polyglot.ext.param.types;uses:="polyglot.util,polyglot.types,polyglot.frontend",
|
||||
polyglot.frontend,
|
||||
polyglot.frontend.goals;
|
||||
uses:="polyglot.visit,
|
||||
polyglot.types,
|
||||
polyglot.ast,
|
||||
polyglot.frontend",
|
||||
polyglot.frontend.passes;
|
||||
uses:="polyglot.visit,
|
||||
polyglot.types,
|
||||
polyglot.frontend.goals,
|
||||
polyglot.frontend",
|
||||
polyglot.lex;uses:="polyglot.util,java_cup.runtime",
|
||||
polyglot.main;uses:="polyglot.util,polyglot.frontend",
|
||||
polyglot.parse;
|
||||
uses:="polyglot.util,
|
||||
polyglot.types,
|
||||
polyglot.ast,
|
||||
java_cup.runtime,
|
||||
polyglot.lex,
|
||||
polyglot.frontend",
|
||||
polyglot.qq;
|
||||
uses:="polyglot.util,
|
||||
polyglot.types,
|
||||
polyglot.ast,
|
||||
polyglot.parse,
|
||||
java_cup.runtime,
|
||||
polyglot.lex,
|
||||
polyglot.frontend",
|
||||
polyglot.types;
|
||||
uses:="polyglot.util,
|
||||
polyglot.main,
|
||||
polyglot.types.reflect,
|
||||
polyglot.frontend",
|
||||
polyglot.types.reflect;uses:="polyglot.util,polyglot.types,polyglot.frontend",
|
||||
polyglot.util;uses:="polyglot.types",
|
||||
polyglot.util.typedump;uses:="polyglot.util,polyglot.types",
|
||||
polyglot.visit;
|
||||
uses:="polyglot.util,
|
||||
polyglot.types,
|
||||
polyglot.main,
|
||||
polyglot.ast,
|
||||
polyglot.frontend"
|
||||
com.ibm.wala.cast.java.types"
|
||||
|
|
|
@ -37,6 +37,7 @@ import com.ibm.wala.ipa.callgraph.impl.Util;
|
|||
import com.ibm.wala.ipa.cha.ClassHierarchy;
|
||||
import com.ibm.wala.ipa.cha.ClassHierarchyException;
|
||||
import com.ibm.wala.ipa.cha.IClassHierarchy;
|
||||
import com.ibm.wala.ssa.ConstantValue;
|
||||
import com.ibm.wala.ssa.SSAOptions;
|
||||
import com.ibm.wala.ssa.SymbolTable;
|
||||
import com.ibm.wala.types.ClassLoaderReference;
|
||||
|
|
|
@ -12,16 +12,11 @@ package com.ibm.wala.cast.java.translator.polyglot;
|
|||
|
||||
import polyglot.ast.ArrayInit;
|
||||
import polyglot.ast.Expr;
|
||||
import polyglot.frontend.CyclicDependencyException;
|
||||
import polyglot.frontend.ExtensionInfo;
|
||||
import polyglot.frontend.Job;
|
||||
import polyglot.frontend.Pass;
|
||||
import polyglot.frontend.Scheduler;
|
||||
import polyglot.frontend.VisitorPass;
|
||||
import polyglot.frontend.goals.AbstractGoal;
|
||||
import polyglot.frontend.VisitorGoal;
|
||||
import polyglot.types.SemanticException;
|
||||
import polyglot.types.Type;
|
||||
import polyglot.util.ErrorInfo;
|
||||
import polyglot.visit.AscriptionVisitor;
|
||||
|
||||
/**
|
||||
|
|
|
@ -8,24 +8,18 @@
|
|||
* Contributors:
|
||||
* IBM Corporation - initial API and implementation
|
||||
*****************************************************************************/
|
||||
/*
|
||||
* Created on Oct 6, 2005
|
||||
*/
|
||||
package com.ibm.wala.cast.java.translator.polyglot;
|
||||
|
||||
import polyglot.frontend.CyclicDependencyException;
|
||||
import polyglot.frontend.ExtensionInfo;
|
||||
import polyglot.frontend.Job;
|
||||
import polyglot.frontend.Pass;
|
||||
import polyglot.frontend.Scheduler;
|
||||
import polyglot.frontend.goals.AbstractGoal;
|
||||
import polyglot.frontend.goals.EndGoal;
|
||||
import polyglot.util.ErrorInfo;
|
||||
import polyglot.frontend.SourceGoal_c;
|
||||
|
||||
import com.ibm.wala.cast.java.loader.JavaSourceLoaderImpl;
|
||||
import com.ibm.wala.cast.java.translator.Java2IRTranslator;
|
||||
|
||||
/**
|
||||
* A kind of EndGoal that indicates that DOMO IR has been generated for the given compilation unit.
|
||||
* A kind of EndGoal that indicates that WALA IR has been generated for the given compilation unit.
|
||||
*
|
||||
* @author rfuhrer
|
||||
*/
|
||||
|
|
|
@ -13,9 +13,13 @@
|
|||
*/
|
||||
package com.ibm.wala.cast.java.translator.polyglot;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import polyglot.frontend.Goal;
|
||||
import polyglot.frontend.JLExtensionInfo;
|
||||
import polyglot.frontend.JLScheduler;
|
||||
import polyglot.frontend.Job;
|
||||
import polyglot.frontend.goals.Goal;
|
||||
import polyglot.frontend.Scheduler;
|
||||
|
||||
import com.ibm.wala.cast.tree.impl.CAstRewriterFactory;
|
||||
|
||||
|
|
|
@ -0,0 +1,60 @@
|
|||
/******************************************************************************
|
||||
* Copyright (c) 2002 - 2006 IBM Corporation.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* IBM Corporation - initial API and implementation
|
||||
*****************************************************************************/
|
||||
/*
|
||||
* Created on Oct 6, 2005
|
||||
*/
|
||||
package com.ibm.wala.cast.java.translator.polyglot;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
|
||||
import com.ibm.wala.classLoader.SourceModule;
|
||||
|
||||
import polyglot.frontend.FileSource;
|
||||
import polyglot.frontend.Resource;
|
||||
|
||||
/**
|
||||
* A Polyglot Source whose input comes from an InputStream.<br>
|
||||
* Currently extends FileSource since that's all that the Polyglot Compiler class
|
||||
* will accept.
|
||||
* @author rfuhrer
|
||||
*/
|
||||
public class ModuleSource extends FileSource {
|
||||
private final SourceModule module;
|
||||
|
||||
SourceModule getModule() {
|
||||
return module;
|
||||
}
|
||||
|
||||
public ModuleSource(final SourceModule module) throws IOException {
|
||||
super(new Resource() {
|
||||
public File file() {
|
||||
return new File(module.getURL().getFile());
|
||||
}
|
||||
|
||||
public InputStream getInputStream() throws IOException {
|
||||
return module.getInputStream();
|
||||
}
|
||||
|
||||
public String name() {
|
||||
String fullPath = module.getURL().getFile();
|
||||
int idx= fullPath.lastIndexOf(File.separatorChar);
|
||||
return (idx > 0) ? fullPath.substring(idx+1) : fullPath;
|
||||
}
|
||||
@Override
|
||||
public String toString() {
|
||||
return module.getName();
|
||||
}
|
||||
}, true);
|
||||
this.module = module;
|
||||
}
|
||||
}
|
|
@ -14,7 +14,7 @@ import polyglot.types.CodeInstance;
|
|||
import polyglot.types.ConstructorInstance;
|
||||
import polyglot.types.FieldInstance;
|
||||
import polyglot.types.InitializerInstance;
|
||||
import polyglot.types.MemberInstance;
|
||||
import polyglot.types.MemberDef;
|
||||
import polyglot.types.MethodInstance;
|
||||
import polyglot.types.PrimitiveType;
|
||||
import polyglot.types.ProcedureInstance;
|
||||
|
|
|
@ -62,6 +62,7 @@ import polyglot.ast.FieldDecl;
|
|||
import polyglot.ast.FloatLit;
|
||||
import polyglot.ast.For;
|
||||
import polyglot.ast.Formal;
|
||||
import polyglot.ast.Id;
|
||||
import polyglot.ast.If;
|
||||
import polyglot.ast.Import;
|
||||
import polyglot.ast.Initializer;
|
||||
|
@ -99,18 +100,20 @@ import polyglot.types.ArrayType;
|
|||
import polyglot.types.ClassType;
|
||||
import polyglot.types.CodeInstance;
|
||||
import polyglot.types.ConstructorInstance;
|
||||
import polyglot.types.Context;
|
||||
import polyglot.types.FieldInstance;
|
||||
import polyglot.types.Flags;
|
||||
import polyglot.types.InitializerDef;
|
||||
import polyglot.types.InitializerInstance;
|
||||
import polyglot.types.InitializerInstance_c;
|
||||
import polyglot.types.MemberInstance;
|
||||
import polyglot.types.MemberDef;
|
||||
import polyglot.types.MethodInstance;
|
||||
import polyglot.types.ParsedClassType;
|
||||
import polyglot.types.ObjectType;
|
||||
import polyglot.types.ProcedureInstance;
|
||||
import polyglot.types.ReferenceType;
|
||||
import polyglot.types.SemanticException;
|
||||
import polyglot.types.StructType;
|
||||
import polyglot.types.Type;
|
||||
import polyglot.types.TypeSystem;
|
||||
import polyglot.types.Types;
|
||||
import polyglot.util.Position;
|
||||
|
||||
import com.ibm.wala.cast.ir.translator.AstTranslator.InternalCAstSymbol;
|
||||
|
@ -290,8 +293,8 @@ public class PolyglotJava2CAstTranslator implements TranslatorToCAst {
|
|||
// and glue that code into the right place relative to the
|
||||
// constructor method body ("wherever that may turn out to be").
|
||||
List/* <FieldDecl|Initializer> */inits = mc.getInitializers();
|
||||
|
||||
Block body = cd.body();
|
||||
|
||||
if (hasSuperCall(body)) {
|
||||
// Split at call to super:
|
||||
// super();
|
||||
|
@ -314,21 +317,28 @@ public class PolyglotJava2CAstTranslator implements TranslatorToCAst {
|
|||
return walkNodes(body, mc);
|
||||
} else {
|
||||
// add explicit call to default super()
|
||||
// TODO following superClass lookup of default ctor won't work if we
|
||||
// process Object in source...
|
||||
ClassType superClass = (ClassType) cd.constructorInstance().container().superType();
|
||||
ProcedureInstance defaultSuperCtor = findDefaultCtor(superClass);
|
||||
CAstNode[] bodyNodes = new CAstNode[inits.size() + body.statements().size() + 1];
|
||||
CallSiteReference callSiteRef = CallSiteReference.make(0, fIdentityMapper.getMethodRef(defaultSuperCtor),
|
||||
IInvokeInstruction.Dispatch.SPECIAL);
|
||||
// RMF 4/17/2009- The following search for a superClass default ctor
|
||||
// won't work if we process Object in source. In particular, the
|
||||
// superClass might be null. In that case, simply omit the explicit
|
||||
// super() call.
|
||||
ClassType superClass = (ClassType) ((ObjectType) cd.constructorDef().asInstance().container()).superClass();
|
||||
CAstNode[] bodyNodes;
|
||||
int idx= 0;
|
||||
int bodyInitsSize= inits.size() + body.statements().size();
|
||||
if (superClass != null) {
|
||||
ProcedureInstance defaultSuperCtor = findDefaultCtor(superClass);
|
||||
CallSiteReference callSiteRef = CallSiteReference.make(0, fIdentityMapper.getMethodRef(defaultSuperCtor),
|
||||
IInvokeInstruction.Dispatch.SPECIAL);
|
||||
CAstNode superCall = makeNode(mc, fFactory, cd, CAstNode.CALL,
|
||||
makeNode(mc, fFactory, cd, CAstNode.SUPER),
|
||||
fFactory.makeConstant(callSiteRef));
|
||||
bodyNodes = new CAstNode[bodyInitsSize + 1];
|
||||
bodyNodes[idx++] = superCall;
|
||||
} else { // no super class, so no super call
|
||||
bodyNodes = new CAstNode[bodyInitsSize];
|
||||
}
|
||||
idx= insertInitializers(mc, bodyNodes, false, idx);
|
||||
|
||||
CAstNode superCall = makeNode(mc, fFactory, cd, CAstNode.CALL, makeNode(mc, fFactory, cd, CAstNode.SUPER), fFactory
|
||||
.makeConstant(callSiteRef));
|
||||
|
||||
bodyNodes[0] = superCall;
|
||||
insertInitializers(mc, bodyNodes, false, 1);
|
||||
|
||||
int idx = inits.size() + 1;
|
||||
for (Iterator iter = body.statements().iterator(); iter.hasNext(); idx++) {
|
||||
Stmt s = (Stmt) iter.next();
|
||||
bodyNodes[idx] = walkNodes(s, mc);
|
||||
|
@ -352,13 +362,13 @@ public class PolyglotJava2CAstTranslator implements TranslatorToCAst {
|
|||
// Generate CAST node for the initializer (init())
|
||||
// Type targetType = f.memberInstance().container();
|
||||
// Type fieldType = f.type().type();
|
||||
FieldReference fieldRef = fIdentityMapper.getFieldRef(f.fieldInstance());
|
||||
FieldReference fieldRef = fIdentityMapper.getFieldRef(f.fieldDef().asInstance());
|
||||
// We use null to indicate an OBJECT_REF to a static field, as the
|
||||
// FieldReference doesn't
|
||||
// hold enough info to determine this. In this case, (unlike field ref)
|
||||
// we don't have a
|
||||
// target expr to evaluate.
|
||||
CAstNode thisNode = f.flags().isStatic() ? makeNode(ctorContext, fFactory, null, CAstNode.VOID) : makeNode(ctorContext,
|
||||
CAstNode thisNode = f.flags().flags().isStatic() ? makeNode(ctorContext, fFactory, null, CAstNode.VOID) : makeNode(ctorContext,
|
||||
fFactory, f, CAstNode.THIS);
|
||||
CAstNode lhsNode = makeNode(ctorContext, fFactory, f, CAstNode.OBJECT_REF, thisNode, fFactory.makeConstant(fieldRef));
|
||||
|
||||
|
@ -488,6 +498,13 @@ public class PolyglotJava2CAstTranslator implements TranslatorToCAst {
|
|||
}
|
||||
}
|
||||
|
||||
private CAstNode processAssign(Assign a, WalkContext wc) {
|
||||
Expr lhs= a.left(fNodeFactory).type(a.type()); // PORT1.7 An Assign no longer has a lhs Expr per se; but you can ask it to materialize one...
|
||||
WalkContext lvc = new AssignmentContext(wc);
|
||||
|
||||
return processAssign(a, walkNodes(lhs, lvc), a.operator(), a.right(), wc);
|
||||
}
|
||||
|
||||
protected CAstOperator mapAssignOperator(Assign.Operator op) {
|
||||
if (op == Assign.ADD_ASSIGN)
|
||||
return CAstOperator.OP_ADD;
|
||||
|
@ -574,7 +591,7 @@ public class PolyglotJava2CAstTranslator implements TranslatorToCAst {
|
|||
private void handleThrowsFromCall(ProcedureInstance procedureInstance, Node callAstNode, WalkContext wc) {
|
||||
List<Type> throwTypes = procedureInstance.throwTypes();
|
||||
for (Iterator<Type> iter = IteratorPlusOne.make(throwTypes.iterator(), fREType); iter.hasNext();) {
|
||||
Type thrownType = (Type) iter.next();
|
||||
Type thrownType = iter.next();
|
||||
Collection/* <Pair<Type,Node>> */catchTargets = wc.getCatchTargets(thrownType);
|
||||
|
||||
for (Iterator targetIter = catchTargets.iterator(); targetIter.hasNext();) {
|
||||
|
@ -588,7 +605,7 @@ public class PolyglotJava2CAstTranslator implements TranslatorToCAst {
|
|||
public CAstNode visit(Call c, WalkContext wc) {
|
||||
MethodInstance methodInstance = c.methodInstance();
|
||||
boolean isStatic = methodInstance.flags().isStatic();
|
||||
ReferenceType methodOwner = methodInstance.container();
|
||||
StructType methodOwner = methodInstance.container();
|
||||
|
||||
if (methodOwner.isArray()) {
|
||||
List realOne = methodInstance.overrides();
|
||||
|
@ -879,17 +896,28 @@ public class PolyglotJava2CAstTranslator implements TranslatorToCAst {
|
|||
public CAstNode visit(ArrayAccess aa, WalkContext wc) {
|
||||
TypeReference eltTypeRef = fIdentityMapper.getTypeRef(aa.type());
|
||||
|
||||
hookUpNPETargets(aa, wc);
|
||||
|
||||
CAstNode n = makeNode(wc, fFactory, aa, CAstNode.ARRAY_REF, walkNodes(aa.array(), wc), fFactory.makeConstant(eltTypeRef),
|
||||
walkNodes(aa.index(), wc));
|
||||
|
||||
wc.cfg().map(aa, n);
|
||||
|
||||
return n;
|
||||
}
|
||||
|
||||
protected void hookUpNPETargets(Node n, WalkContext wc) {
|
||||
Collection excTargets = wc.getCatchTargets(fNPEType);
|
||||
if (!excTargets.isEmpty()) {
|
||||
// connect NPE exception edge to relevant catch targets
|
||||
// (presumably only one)
|
||||
for (Iterator iterator = excTargets.iterator(); iterator.hasNext();) {
|
||||
Pair catchPair = (Pair) iterator.next();
|
||||
wc.cfg().add(aa, catchPair.snd, fNPEType);
|
||||
wc.cfg().add(n, catchPair.snd, fNPEType);
|
||||
}
|
||||
} else {
|
||||
// connect exception edge to exit
|
||||
wc.cfg().add(aa, CAstControlFlowMap.EXCEPTION_TO_EXIT, fNPEType);
|
||||
wc.cfg().add(n, CAstControlFlowMap.EXCEPTION_TO_EXIT, fNPEType);
|
||||
}
|
||||
|
||||
CAstNode n = makeNode(wc, fFactory, aa, CAstNode.ARRAY_REF, walkNodes(aa.array(), wc), fFactory.makeConstant(eltTypeRef),
|
||||
|
@ -903,16 +931,15 @@ public class PolyglotJava2CAstTranslator implements TranslatorToCAst {
|
|||
public CAstNode visit(Field f, WalkContext wc) {
|
||||
Receiver target = f.target();
|
||||
Type targetType = target.type();
|
||||
// Type fieldType = f.type();
|
||||
|
||||
if (targetType.isArray()) {
|
||||
assert f.name().equals("length");
|
||||
|
||||
return makeNode(wc, fFactory, f, CAstNode.ARRAY_LENGTH, walkNodes(target, wc));
|
||||
}
|
||||
FieldReference fieldRef = fIdentityMapper.getFieldRef(f.fieldInstance());
|
||||
CAstNode targetNode = walkNodes(target, wc);
|
||||
FieldInstance fi = f.fieldInstance();
|
||||
FieldReference fieldRef = fIdentityMapper.getFieldRef(fi);
|
||||
CAstNode targetNode = walkNodes(target, wc);
|
||||
|
||||
if (fi.flags().isStatic()) {
|
||||
// JLS says: evaluate the target of the field ref and throw it away.
|
||||
|
@ -961,7 +988,7 @@ public class PolyglotJava2CAstTranslator implements TranslatorToCAst {
|
|||
}
|
||||
|
||||
public CAstNode visit(Local l, WalkContext wc) {
|
||||
return makeNode(wc, fFactory, l, CAstNode.VAR, fFactory.makeConstant(l.name()));
|
||||
return makeNode(wc, fFactory, l, CAstNode.VAR, fFactory.makeConstant(l.name().id().toString()));
|
||||
}
|
||||
|
||||
public CAstNode visit(ClassBody cb, WalkContext wc) {
|
||||
|
@ -986,10 +1013,12 @@ public class PolyglotJava2CAstTranslator implements TranslatorToCAst {
|
|||
|
||||
public CAstNode visit(Branch b, WalkContext wc) {
|
||||
Node target = null;
|
||||
Id labelNode = b.labelNode();
|
||||
String labelStr = labelNode != null ? labelNode.id().toString() : null;
|
||||
if (b.kind() == Branch.BREAK) {
|
||||
target = wc.getBreakFor(b.label());
|
||||
target = wc.getBreakFor(labelStr);
|
||||
} else {
|
||||
target = wc.getContinueFor(b.label());
|
||||
target = wc.getContinueFor(labelStr);
|
||||
}
|
||||
|
||||
assert target != null;
|
||||
|
@ -1028,7 +1057,7 @@ public class PolyglotJava2CAstTranslator implements TranslatorToCAst {
|
|||
Block body = c.body();
|
||||
Formal f = c.formal();
|
||||
|
||||
CAstNode excDecl = makeNode(wc, fFactory, c, CAstNode.CATCH, fFactory.makeConstant(f.name()), walkNodes(body, wc));
|
||||
CAstNode excDecl = makeNode(wc, fFactory, c, CAstNode.CATCH, fFactory.makeConstant(f.name().id().toString()), walkNodes(body, wc));
|
||||
CAstNode localScope = makeNode(wc, fFactory, c, CAstNode.LOCAL_SCOPE, excDecl);
|
||||
|
||||
wc.cfg().map(c, excDecl);
|
||||
|
@ -1049,7 +1078,7 @@ public class PolyglotJava2CAstTranslator implements TranslatorToCAst {
|
|||
stmt = (Node) ((Block) stmt).statements().iterator().next();
|
||||
}
|
||||
|
||||
wc.getLabelMap().put(stmt, l.label());
|
||||
wc.getLabelMap().put(stmt, l.labelNode().id().toString());
|
||||
|
||||
CAstNode result;
|
||||
if (!(l.statement() instanceof Empty)) {
|
||||
|
@ -1069,7 +1098,7 @@ public class PolyglotJava2CAstTranslator implements TranslatorToCAst {
|
|||
}
|
||||
|
||||
public CAstNode visit(LocalClassDecl lcd, WalkContext wc) {
|
||||
fIdentityMapper.mapLocalAnonTypeToMethod(lcd.decl().type(), wc.getEnclosingMethod());
|
||||
fIdentityMapper.mapLocalAnonTypeToMethod(lcd.decl().classDef().asType(), wc.getEnclosingMethod());
|
||||
|
||||
CAstEntity classEntity = walkEntity(lcd.decl(), wc);
|
||||
|
||||
|
@ -1080,12 +1109,14 @@ public class PolyglotJava2CAstTranslator implements TranslatorToCAst {
|
|||
}
|
||||
|
||||
protected Node makeBreakTarget(Node loop) {
|
||||
return fNodeFactory.Labeled(Position.COMPILER_GENERATED, "breakLabel" + loop.position().toString().replace('.', '_'),
|
||||
fNodeFactory.Empty(Position.COMPILER_GENERATED));
|
||||
return fNodeFactory.Labeled(Position.COMPILER_GENERATED,
|
||||
fNodeFactory.Id(Position.COMPILER_GENERATED, "breakLabel" + loop.position().toString().replace('.', '_')),
|
||||
fNodeFactory.Empty(Position.COMPILER_GENERATED));
|
||||
}
|
||||
|
||||
protected Node makeContinueTarget(Node loop) {
|
||||
return fNodeFactory.Labeled(Position.COMPILER_GENERATED, "continueLabel" + loop.position().toString().replace('.', '_'),
|
||||
return fNodeFactory.Labeled(Position.COMPILER_GENERATED,
|
||||
fNodeFactory.Id(Position.COMPILER_GENERATED, "continueLabel" + loop.position().toString().replace('.', '_')),
|
||||
fNodeFactory.Empty(Position.COMPILER_GENERATED));
|
||||
}
|
||||
|
||||
|
@ -1242,7 +1273,7 @@ public class PolyglotJava2CAstTranslator implements TranslatorToCAst {
|
|||
|
||||
// try/catch/[finally]
|
||||
} else {
|
||||
TryCatchContext tc = new TryCatchContext(wc, t);
|
||||
TryCatchContext tc = new TryCatchContext(wc, t, fTypeSystem.emptyContext());
|
||||
|
||||
CAstNode tryNode = walkNodes(tryBlock, tc);
|
||||
for (Iterator iter = catchBlocks.iterator(); iter.hasNext();) {
|
||||
|
@ -1294,9 +1325,9 @@ public class PolyglotJava2CAstTranslator implements TranslatorToCAst {
|
|||
else
|
||||
defaultValue = CAstSymbol.NULL_DEFAULT_VALUE;
|
||||
|
||||
boolean isFinal = ld.flags().isFinal();
|
||||
boolean isFinal = ld.flags().flags().isFinal();
|
||||
|
||||
return makeNode(wc, fFactory, ld, CAstNode.DECL_STMT, fFactory.makeConstant(new CAstSymbolImpl(ld.name(), isFinal,
|
||||
return makeNode(wc, fFactory, ld, CAstNode.DECL_STMT, fFactory.makeConstant(new CAstSymbolImpl(ld.name().id().toString(), isFinal,
|
||||
defaultValue)), initNode);
|
||||
}
|
||||
|
||||
|
@ -1333,7 +1364,7 @@ public class PolyglotJava2CAstTranslator implements TranslatorToCAst {
|
|||
}
|
||||
|
||||
public CAstNode visit(Formal f, WalkContext wc) {
|
||||
return makeNode(wc, fFactory, f, CAstNode.VAR, fFactory.makeConstant(f.name()));
|
||||
return makeNode(wc, fFactory, f, CAstNode.VAR, fFactory.makeConstant(f.name().id().toString()));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1343,7 +1374,7 @@ public class PolyglotJava2CAstTranslator implements TranslatorToCAst {
|
|||
private final Collection<CAstEntity> fTopLevelDecls;
|
||||
|
||||
public CompilationUnitEntity(SourceFile file, List<CAstEntity> topLevelDecls) {
|
||||
fName = (file.package_() == null) ? "" : file.package_().package_().fullName().replace('.', '/');
|
||||
fName = (file.package_() == null) ? "" : file.package_().package_().get().fullName().toString().replace('.', '/');
|
||||
fTopLevelDecls = topLevelDecls;
|
||||
}
|
||||
|
||||
|
@ -1415,12 +1446,12 @@ public class PolyglotJava2CAstTranslator implements TranslatorToCAst {
|
|||
}
|
||||
}
|
||||
|
||||
public final class PolyglotJavaType implements JavaType {
|
||||
private final CAstTypeDictionary fDict;
|
||||
public class PolyglotJavaType implements JavaType {
|
||||
protected final CAstTypeDictionary fDict;
|
||||
|
||||
private final TypeSystem fSystem;
|
||||
protected final TypeSystem fSystem;
|
||||
|
||||
private final ClassType fType;
|
||||
protected final ClassType fType;
|
||||
|
||||
private Collection<CAstType> fSuperTypes = null;
|
||||
|
||||
|
@ -1432,8 +1463,7 @@ public class PolyglotJava2CAstTranslator implements TranslatorToCAst {
|
|||
}
|
||||
|
||||
public String getName() {
|
||||
// TODO Will the IdentityMapper do the right thing for anonymous
|
||||
// classes?
|
||||
// TODO Will the IdentityMapper do the right thing for anonymous classes?
|
||||
// If so, we can delete most of the following logic...
|
||||
if (fType.isLocal() || fType.isAnonymous()) {
|
||||
return fIdentityMapper.anonLocalTypeToTypeID(fType);
|
||||
|
@ -1441,7 +1471,7 @@ public class PolyglotJava2CAstTranslator implements TranslatorToCAst {
|
|||
return fIdentityMapper.getTypeRef(fType).getName().toString();
|
||||
}
|
||||
|
||||
public Collection getSupertypes() {
|
||||
public Collection<CAstType> getSupertypes() {
|
||||
if (fSuperTypes == null) {
|
||||
buildSuperTypes();
|
||||
}
|
||||
|
@ -1452,20 +1482,27 @@ public class PolyglotJava2CAstTranslator implements TranslatorToCAst {
|
|||
// TODO this is a source entity, but it might actually be the root type
|
||||
// (Object), so assume # intfs + 1
|
||||
Type superType;
|
||||
try {
|
||||
superType = (fType.superType() == null) ? fSystem.typeForName("java.lang.Object") : fType.superType();
|
||||
} catch (SemanticException e) {
|
||||
Assertions.UNREACHABLE("Can't find java.lang.Object???");
|
||||
return;
|
||||
if (fType.superClass() == null && fType != fSystem.Object()) {
|
||||
superType = fSystem.Object(); // fSystem.Object() MUST be the root of the class hierarchy
|
||||
} else {
|
||||
superType = fType.superClass();
|
||||
}
|
||||
int N = fType.interfaces().size() + 1;
|
||||
|
||||
fSuperTypes = new ArrayList<CAstType>(N);
|
||||
// Following assumes that noone can call getSupertypes() before we have
|
||||
// Following assumes that no one can call getSupertypes() before we have
|
||||
// created CAstType's for every type in the program being analyzed.
|
||||
fSuperTypes.add(fDict.getCAstTypeFor(superType));
|
||||
for (Iterator iter = fType.interfaces().iterator(); iter.hasNext();) {
|
||||
if (superType != null) {
|
||||
fSuperTypes.add(fDict.getCAstTypeFor(superType));
|
||||
}
|
||||
for (Iterator iter = fType.interfaces().iterator(); iter.hasNext(); ) {
|
||||
Type t = (Type) iter.next();
|
||||
if (t instanceof ClassType) {
|
||||
ClassType classType = (ClassType) t;
|
||||
if (classType == fSystem.Object()) {
|
||||
continue; // Skip fSystem.Object() as a super-interface; it really MUST be a class as far as WALA is concerned
|
||||
}
|
||||
}
|
||||
fSuperTypes.add(fDict.getCAstTypeFor(t));
|
||||
}
|
||||
}
|
||||
|
@ -1475,6 +1512,9 @@ public class PolyglotJava2CAstTranslator implements TranslatorToCAst {
|
|||
}
|
||||
|
||||
public boolean isInterface() {
|
||||
if (fType == fSystem.Object()) {
|
||||
return false; // fSystem.Object() MUST be a class, as far as WALA is concerned
|
||||
}
|
||||
return fType.flags().isInterface();
|
||||
}
|
||||
}
|
||||
|
@ -1484,8 +1524,8 @@ public class PolyglotJava2CAstTranslator implements TranslatorToCAst {
|
|||
|
||||
public CodeBodyEntity(Map<CAstNode, CAstEntity> entities) {
|
||||
fEntities = new LinkedHashMap<CAstNode, Collection<CAstEntity>>();
|
||||
for (Iterator keys = entities.keySet().iterator(); keys.hasNext();) {
|
||||
CAstNode key = (CAstNode) keys.next();
|
||||
for (Iterator<CAstNode> keys = entities.keySet().iterator(); keys.hasNext();) {
|
||||
CAstNode key = keys.next();
|
||||
fEntities.put(key, Collections.singleton(entities.get(key)));
|
||||
}
|
||||
}
|
||||
|
@ -1520,7 +1560,7 @@ public class PolyglotJava2CAstTranslator implements TranslatorToCAst {
|
|||
private final CAstSourcePositionMap.Position sourcePosition;
|
||||
|
||||
private ClassEntity(ClassContext context, List<CAstEntity> entities, ClassDecl cd, Position p) {
|
||||
this(context, entities, cd.type(), cd.name(), p);
|
||||
this(context, entities, cd.classDef().asType(), cd.name().id().toString(), p);
|
||||
}
|
||||
|
||||
private ClassEntity(ClassContext context, List<CAstEntity> entities, ClassType ct, String name, Position p) {
|
||||
|
@ -1597,12 +1637,20 @@ public class PolyglotJava2CAstTranslator implements TranslatorToCAst {
|
|||
}
|
||||
|
||||
public Collection getQualifiers() {
|
||||
if (fCT == fTypeSystem.Object()) { // pretend the root of the hierarchy is always a class
|
||||
return mapFlagsToQualifiers(fCT.flags().clear(Flags.INTERFACE));
|
||||
}
|
||||
return mapFlagsToQualifiers(fCT.flags());
|
||||
}
|
||||
|
||||
public CAstType getType() {
|
||||
return new PolyglotJavaType(fCT, getTypeDict(), fTypeSystem);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return fCT.fullName().toString();
|
||||
}
|
||||
}
|
||||
|
||||
protected final class ProcedureEntity extends CodeBodyEntity implements JavaProcedureEntity {
|
||||
|
@ -1618,7 +1666,7 @@ public class PolyglotJava2CAstTranslator implements TranslatorToCAst {
|
|||
|
||||
private final String[] argumentNames;
|
||||
|
||||
private ProcedureEntity(CAstNode pdast, TypeSystem system, CodeInstance pd, Type declaringType, String[] argumentNames,
|
||||
public ProcedureEntity(CAstNode pdast, TypeSystem system, CodeInstance pd, Type declaringType, String[] argumentNames,
|
||||
Map<CAstNode, CAstEntity> entities, MethodContext mc) {
|
||||
super(entities);
|
||||
fPdast = pdast;
|
||||
|
@ -1629,9 +1677,10 @@ public class PolyglotJava2CAstTranslator implements TranslatorToCAst {
|
|||
fMc = mc;
|
||||
}
|
||||
|
||||
private ProcedureEntity(CAstNode pdast, TypeSystem system, CodeInstance pd, String[] argumentNames,
|
||||
public ProcedureEntity(CAstNode pdast, TypeSystem system, CodeInstance pd, String[] argumentNames,
|
||||
Map<CAstNode, CAstEntity> entities, MethodContext mc) {
|
||||
this(pdast, system, pd, ((MemberInstance) pd).container(), argumentNames, entities, mc);
|
||||
//PORT1.7 used to be this(pdast, system, pd, ((MemberInstance) pd).container(), argumentNames, entities, mc);
|
||||
this(pdast, system, pd, ((MemberDef) pd.def()).container().get(), argumentNames, entities, mc);
|
||||
}
|
||||
|
||||
private List formalTypes() {
|
||||
|
@ -1671,8 +1720,26 @@ public class PolyglotJava2CAstTranslator implements TranslatorToCAst {
|
|||
return new CAstNode[0];
|
||||
}
|
||||
|
||||
private Flags getFlags() {
|
||||
// PORT1.7
|
||||
if (fPd instanceof ProcedureInstance) {
|
||||
return ((MemberDef) fPd.def()).flags();
|
||||
}
|
||||
return Flags.NONE;
|
||||
}
|
||||
|
||||
private boolean isStatic() {
|
||||
// PORT1.7
|
||||
if (fPd instanceof ProcedureInstance) {
|
||||
return ((MemberDef) fPd.def()).flags().isStatic();
|
||||
} else if (fPd instanceof InitializerInstance) {
|
||||
return ((InitializerInstance) fPd).def().flags().isStatic();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public int getArgumentCount() {
|
||||
return fPd.flags().isStatic() ? formalTypes().size() : formalTypes().size() + 1;
|
||||
return isStatic() ? formalTypes().size() : formalTypes().size() + 1;
|
||||
}
|
||||
|
||||
public CAstNode getAST() {
|
||||
|
@ -1696,7 +1763,7 @@ public class PolyglotJava2CAstTranslator implements TranslatorToCAst {
|
|||
}
|
||||
|
||||
public Collection getQualifiers() {
|
||||
return mapFlagsToQualifiers(fPd.flags());
|
||||
return mapFlagsToQualifiers(getFlags());
|
||||
}
|
||||
|
||||
public CAstType getType() {
|
||||
|
@ -1710,7 +1777,7 @@ public class PolyglotJava2CAstTranslator implements TranslatorToCAst {
|
|||
(fPd instanceof MethodInstance) ? ((MethodInstance) fPd).returnType() : fSystem.Void());
|
||||
}
|
||||
|
||||
public List getArgumentTypes() {
|
||||
public List<CAstType> getArgumentTypes() {
|
||||
if (fParameterTypes == null) {
|
||||
final List formalTypes = formalTypes();
|
||||
fParameterTypes = new ArrayList<CAstType>(formalTypes.size());
|
||||
|
@ -1727,12 +1794,12 @@ public class PolyglotJava2CAstTranslator implements TranslatorToCAst {
|
|||
return "?";
|
||||
}
|
||||
|
||||
public Collection getSupertypes() {
|
||||
public Collection<CAstType> getSupertypes() {
|
||||
Assertions.UNREACHABLE("CAstType.FunctionImpl#getSupertypes() called???");
|
||||
return null;
|
||||
}
|
||||
|
||||
public Collection/* <CAstType> */getExceptionTypes() {
|
||||
public Collection/* <CAstType> */<CAstType> getExceptionTypes() {
|
||||
if (fExceptionTypes == null) {
|
||||
fExceptionTypes = new LinkedHashSet<CAstType>();
|
||||
|
||||
|
@ -1769,7 +1836,7 @@ public class PolyglotJava2CAstTranslator implements TranslatorToCAst {
|
|||
|
||||
private FieldEntity(FieldDecl fd, WalkContext context) {
|
||||
super();
|
||||
fFI = fd.fieldInstance();
|
||||
fFI = fd.fieldDef().asInstance();
|
||||
fContext = context;
|
||||
}
|
||||
|
||||
|
@ -1778,7 +1845,7 @@ public class PolyglotJava2CAstTranslator implements TranslatorToCAst {
|
|||
}
|
||||
|
||||
public String getName() {
|
||||
return fFI.name();
|
||||
return fFI.name().toString();
|
||||
}
|
||||
|
||||
public String getSignature() {
|
||||
|
@ -2070,7 +2137,7 @@ public class PolyglotJava2CAstTranslator implements TranslatorToCAst {
|
|||
fEntities.put(node, entity);
|
||||
}
|
||||
|
||||
public Map/* <CAstNode,CAstEntity> */getScopedEntities() {
|
||||
public Map/* <CAstNode,CAstEntity> */<CAstNode, CAstEntity> getScopedEntities() {
|
||||
return fEntities;
|
||||
}
|
||||
|
||||
|
@ -2105,12 +2172,15 @@ public class PolyglotJava2CAstTranslator implements TranslatorToCAst {
|
|||
private static class TryCatchContext extends DelegatingContext {
|
||||
@SuppressWarnings("unused")
|
||||
private final Try tryNode;
|
||||
|
||||
private final Context context;
|
||||
|
||||
Collection<Pair<Type, Object>> fCatchNodes = new ArrayList<Pair<Type, Object>>();
|
||||
|
||||
TryCatchContext(WalkContext parent, Try tryNode) {
|
||||
TryCatchContext(WalkContext parent, Try tryNode, final Context context) {
|
||||
super(parent);
|
||||
this.tryNode = tryNode;
|
||||
this.context = context;
|
||||
|
||||
for (Iterator catchIter = tryNode.catchBlocks().iterator(); catchIter.hasNext();) {
|
||||
Catch c = (Catch) catchIter.next();
|
||||
|
@ -2127,16 +2197,16 @@ public class PolyglotJava2CAstTranslator implements TranslatorToCAst {
|
|||
Collection<Pair<Type, Object>> catchNodes = new ArrayList<Pair<Type, Object>>();
|
||||
|
||||
for (Iterator<Pair<Type, Object>> iter = fCatchNodes.iterator(); iter.hasNext();) {
|
||||
Pair<Type, Object> p = (Pair<Type, Object>) iter.next();
|
||||
Type catchType = (Type) p.fst;
|
||||
Pair<Type, Object> p = iter.next();
|
||||
Type catchType = p.fst;
|
||||
|
||||
// _must_ be caught
|
||||
if (label.descendsFrom(catchType) || label.equals(catchType)) {
|
||||
if (label.isSubtype(catchType, this.context) || label.typeEquals(catchType, this.context)) {
|
||||
catchNodes.add(p);
|
||||
return catchNodes;
|
||||
|
||||
// _might_ get caught
|
||||
} else if (catchType.descendsFrom(label)) {
|
||||
} else if (catchType.isSubtype(label, this.context)) {
|
||||
catchNodes.add(p);
|
||||
continue;
|
||||
}
|
||||
|
@ -2284,22 +2354,19 @@ public class PolyglotJava2CAstTranslator implements TranslatorToCAst {
|
|||
}
|
||||
}
|
||||
|
||||
public PolyglotJava2CAstTranslator(ClassLoaderReference clr, NodeFactory nf, TypeSystem ts, PolyglotIdentityMapper identityMapper) {
|
||||
public PolyglotJava2CAstTranslator(ClassLoaderReference clr, NodeFactory nf, TypeSystem ts, PolyglotIdentityMapper identityMapper, boolean replicateForDoLoops) {
|
||||
fClassLoaderRef = clr;
|
||||
fTypeSystem = ts;
|
||||
fNodeFactory = nf;
|
||||
fIdentityMapper = identityMapper;
|
||||
try {
|
||||
fNPEType = fTypeSystem.typeForName("java.lang.NullPointerException");
|
||||
fCCEType = fTypeSystem.typeForName("java.lang.ClassCastException");
|
||||
fREType = fTypeSystem.typeForName("java.lang.RuntimeException");
|
||||
fDivByZeroType = fTypeSystem.typeForName("java.lang.ArithmeticException");
|
||||
} catch (SemanticException e) {
|
||||
Assertions.UNREACHABLE("Couldn't find Polyglot type for NPE/RE!");
|
||||
}
|
||||
this.replicateForDoLoops = replicateForDoLoops;
|
||||
fNPEType = fTypeSystem.NullPointerException();
|
||||
fCCEType = fTypeSystem.ClassCastException();
|
||||
fREType = fTypeSystem.RuntimeException();
|
||||
fDivByZeroType = fTypeSystem.ArithmeticException();
|
||||
}
|
||||
|
||||
protected static class PolyglotSourcePosition extends AbstractSourcePosition {
|
||||
public static class PolyglotSourcePosition extends AbstractSourcePosition {
|
||||
private final Position p;
|
||||
|
||||
public PolyglotSourcePosition(Position p) {
|
||||
|
@ -2513,13 +2580,13 @@ public class PolyglotJava2CAstTranslator implements TranslatorToCAst {
|
|||
protected void processClassMembers(Node n, ClassType classType, List<ClassMember> members, DelegatingContext classContext,
|
||||
List<CAstEntity> memberEntities) {
|
||||
// Collect all initializer-related gorp
|
||||
for (Iterator memberIter = members.iterator(); memberIter.hasNext();) {
|
||||
ClassMember member = (ClassMember) memberIter.next();
|
||||
for (Iterator<ClassMember> memberIter = members.iterator(); memberIter.hasNext();) {
|
||||
ClassMember member = memberIter.next();
|
||||
|
||||
if (member instanceof Initializer) {
|
||||
Initializer initializer = (Initializer) member;
|
||||
|
||||
if (initializer.flags().isStatic())
|
||||
if (initializer.flags().flags().isStatic())
|
||||
classContext.getStaticInitializers().add(initializer);
|
||||
else
|
||||
classContext.getInitializers().add(initializer);
|
||||
|
@ -2527,7 +2594,7 @@ public class PolyglotJava2CAstTranslator implements TranslatorToCAst {
|
|||
FieldDecl fd = (FieldDecl) member;
|
||||
|
||||
if (fd.init() != null) {
|
||||
if (fd.flags().isStatic())
|
||||
if (fd.flags().flags().isStatic())
|
||||
classContext.getStaticInitializers().add(fd);
|
||||
else
|
||||
classContext.getInitializers().add(fd);
|
||||
|
@ -2536,8 +2603,8 @@ public class PolyglotJava2CAstTranslator implements TranslatorToCAst {
|
|||
}
|
||||
|
||||
// Now process
|
||||
for (Iterator memberIter = members.iterator(); memberIter.hasNext();) {
|
||||
ClassMember member = (ClassMember) memberIter.next();
|
||||
for (Iterator<ClassMember> memberIter = members.iterator(); memberIter.hasNext();) {
|
||||
ClassMember member = memberIter.next();
|
||||
|
||||
if (!(member instanceof Initializer)) {
|
||||
CAstEntity memberEntity = walkEntity(member, classContext);
|
||||
|
@ -2548,7 +2615,8 @@ public class PolyglotJava2CAstTranslator implements TranslatorToCAst {
|
|||
|
||||
// add class initializer, if needed
|
||||
if (!classContext.getStaticInitializers().isEmpty()) {
|
||||
InitializerInstance initInstance = new InitializerInstance_c(fTypeSystem, n.position(), classType, Flags.STATIC);
|
||||
InitializerDef initDef = fTypeSystem.initializerDef(n.position(), Types.ref(classType), Flags.STATIC);
|
||||
InitializerInstance initInstance = fTypeSystem.createInitializerInstance(n.position(), Types.ref(initDef));
|
||||
|
||||
Map<CAstNode, CAstEntity> childEntities = HashMapFactory.make();
|
||||
final MethodContext mc = new MethodContext(initInstance, childEntities, classContext);
|
||||
|
@ -2564,9 +2632,9 @@ public class PolyglotJava2CAstTranslator implements TranslatorToCAst {
|
|||
}
|
||||
}
|
||||
|
||||
protected void addConstructorsToAnonymousClass(New n, ParsedClassType anonType, ClassContext classContext,
|
||||
protected void addConstructorsToAnonymousClass(New n, ClassType anonType, ClassContext classContext,
|
||||
List<CAstEntity> memberEntities) {
|
||||
List superConstructors = ((ClassType) anonType.superType()).constructors();
|
||||
List superConstructors = ((ClassType) anonType.superClass()).constructors();
|
||||
|
||||
for (Iterator iter = superConstructors.iterator(); iter.hasNext();) {
|
||||
ConstructorInstance superCtor = (ConstructorInstance) iter.next();
|
||||
|
@ -2621,15 +2689,15 @@ public class PolyglotJava2CAstTranslator implements TranslatorToCAst {
|
|||
} else if (rootNode instanceof ClassDecl) {
|
||||
final ClassDecl cd = (ClassDecl) rootNode;
|
||||
final List<CAstEntity> memberEntities = new ArrayList<CAstEntity>();
|
||||
final ClassContext classContext = new ClassContext(cd.type(), memberEntities, context);
|
||||
final ClassContext classContext = new ClassContext(cd.classDef().asType(), memberEntities, context);
|
||||
|
||||
processClassMembers(rootNode, cd.type(), cd.body().members(), classContext, memberEntities);
|
||||
processClassMembers(rootNode, cd.classDef().asType(), cd.body().members(), classContext, memberEntities);
|
||||
|
||||
return new ClassEntity(classContext, memberEntities, cd, cd.position());
|
||||
} else if (rootNode instanceof New) {
|
||||
final New n = (New) rootNode;
|
||||
final List<CAstEntity> memberEntities = new ArrayList<CAstEntity>();
|
||||
ParsedClassType anonType = n.anonType();
|
||||
ClassType anonType = (ClassType) n.anonType().asType();
|
||||
String anonTypeName = anonTypeName(anonType);
|
||||
final ClassContext classContext = new ClassContext(anonType, memberEntities, context);
|
||||
|
||||
|
@ -2640,11 +2708,11 @@ public class PolyglotJava2CAstTranslator implements TranslatorToCAst {
|
|||
} else if (rootNode instanceof ProcedureDecl) {
|
||||
final ProcedureDecl pd = (ProcedureDecl) rootNode;
|
||||
final Map<CAstNode, CAstEntity> memberEntities = new LinkedHashMap<CAstNode, CAstEntity>();
|
||||
final MethodContext mc = new MethodContext(pd.procedureInstance(), memberEntities, context);
|
||||
final MethodContext mc = new MethodContext(pd.procedureInstance().asInstance(), memberEntities, context);
|
||||
|
||||
CAstNode pdAST = null;
|
||||
|
||||
if (!pd.flags().isAbstract()) {
|
||||
if (!pd.flags().flags().isAbstract()) {
|
||||
// Presumably the MethodContext's parent is a ClassContext,
|
||||
// and he has the list of initializers. Hopefully the following
|
||||
// will glue that stuff in the right place in any constructor body.
|
||||
|
@ -2654,7 +2722,7 @@ public class PolyglotJava2CAstTranslator implements TranslatorToCAst {
|
|||
List/* <Formal> */formals = pd.formals();
|
||||
String[] argNames;
|
||||
int i = 0;
|
||||
if (!pd.flags().isStatic()) {
|
||||
if (!pd.flags().flags().isStatic()) {
|
||||
argNames = new String[formals.size() + 1];
|
||||
argNames[i++] = "this";
|
||||
} else {
|
||||
|
@ -2662,10 +2730,10 @@ public class PolyglotJava2CAstTranslator implements TranslatorToCAst {
|
|||
}
|
||||
for (Iterator iter = formals.iterator(); iter.hasNext(); i++) {
|
||||
Formal formal = (Formal) iter.next();
|
||||
argNames[i] = formal.name();
|
||||
argNames[i] = formal.name().toString();
|
||||
}
|
||||
|
||||
return new ProcedureEntity(pdAST, fTypeSystem, pd.procedureInstance(), argNames, memberEntities, mc);
|
||||
return new ProcedureEntity(pdAST, fTypeSystem, pd.procedureInstance().asInstance(), argNames, memberEntities, mc);
|
||||
} else if (rootNode instanceof FieldDecl) {
|
||||
final FieldDecl fd = (FieldDecl) rootNode;
|
||||
|
||||
|
@ -2702,10 +2770,10 @@ public class PolyglotJava2CAstTranslator implements TranslatorToCAst {
|
|||
}
|
||||
|
||||
private int insertInitializers(WalkContext wc, CAstNode[] initCode, boolean wantStatic, int offset) {
|
||||
List inits = wantStatic ? wc.getStaticInitializers() : wc.getInitializers();
|
||||
List<ClassMember> inits = wantStatic ? wc.getStaticInitializers() : wc.getInitializers();
|
||||
|
||||
for (Iterator iter = inits.iterator(); iter.hasNext(); offset++) {
|
||||
ClassMember init = (ClassMember) iter.next();
|
||||
for (Iterator<ClassMember> iter = inits.iterator(); iter.hasNext(); offset++) {
|
||||
ClassMember init = iter.next();
|
||||
CAstNode initNode = walkNodes(init, wc);
|
||||
|
||||
if (initNode != null) {
|
||||
|
|
|
@ -15,6 +15,7 @@ package com.ibm.wala.cast.java.translator.polyglot;
|
|||
|
||||
import java.io.IOException;
|
||||
|
||||
import com.ibm.wala.cast.java.ipa.callgraph.JavaSourceAnalysisScope;
|
||||
import com.ibm.wala.cast.java.loader.JavaSourceLoaderImpl;
|
||||
import com.ibm.wala.cast.java.translator.SourceModuleTranslator;
|
||||
import com.ibm.wala.classLoader.IClassLoader;
|
||||
|
|
|
@ -8,9 +8,6 @@
|
|||
* Contributors:
|
||||
* IBM Corporation - initial API and implementation
|
||||
*****************************************************************************/
|
||||
/*
|
||||
* Created on Oct 6, 2005
|
||||
*/
|
||||
package com.ibm.wala.cast.java.translator.polyglot;
|
||||
|
||||
import java.io.File;
|
||||
|
@ -23,6 +20,8 @@ import java.util.Set;
|
|||
|
||||
import polyglot.frontend.Compiler;
|
||||
import polyglot.frontend.ExtensionInfo;
|
||||
import polyglot.frontend.Globals;
|
||||
import polyglot.frontend.Source;
|
||||
import polyglot.main.Options;
|
||||
import polyglot.main.UsageError;
|
||||
import polyglot.util.ErrorInfo;
|
||||
|
@ -33,6 +32,7 @@ import com.ibm.wala.classLoader.DirectoryTreeModule;
|
|||
import com.ibm.wala.classLoader.FileModule;
|
||||
import com.ibm.wala.classLoader.JarFileModule;
|
||||
import com.ibm.wala.classLoader.Module;
|
||||
import com.ibm.wala.classLoader.ModuleEntry;
|
||||
import com.ibm.wala.classLoader.SourceFileModule;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisScope;
|
||||
import com.ibm.wala.types.ClassLoaderReference;
|
||||
|
|
|
@ -20,6 +20,7 @@ import java.util.Iterator;
|
|||
|
||||
import polyglot.types.ArrayType;
|
||||
import polyglot.types.ClassType;
|
||||
import polyglot.types.ObjectType;
|
||||
import polyglot.types.PrimitiveType;
|
||||
import polyglot.types.ReferenceType;
|
||||
import polyglot.types.Type;
|
||||
|
@ -61,18 +62,21 @@ public class PolyglotTypeDictionary extends CAstTypeDictionaryImpl {
|
|||
assert fEltPolyglotType.isReference() : "Non-primitive, non-reference array element type!";
|
||||
ReferenceType baseRefType = (ReferenceType) fEltPolyglotType;
|
||||
Collection<CAstType> supers = new ArrayList<CAstType>();
|
||||
for (Iterator superIter = baseRefType.interfaces().iterator(); superIter.hasNext();) {
|
||||
for (Iterator superIter = baseRefType.interfaces().iterator(); superIter.hasNext(); ) {
|
||||
supers.add(getCAstTypeFor(superIter.next()));
|
||||
}
|
||||
if (baseRefType.superType() != null)
|
||||
supers.add(getCAstTypeFor(baseRefType.superType()));
|
||||
if (baseRefType instanceof ClassType) {
|
||||
ClassType baseClassType = (ClassType) baseRefType;
|
||||
if (baseClassType.superClass() != null)
|
||||
supers.add(getCAstTypeFor(baseRefType.superClass()));
|
||||
}
|
||||
return supers;
|
||||
}
|
||||
}
|
||||
|
||||
protected final TypeSystem fTypeSystem;
|
||||
|
||||
private final PolyglotJava2CAstTranslator fTranslator;
|
||||
protected final PolyglotJava2CAstTranslator fTranslator;
|
||||
|
||||
public PolyglotTypeDictionary(TypeSystem typeSystem, PolyglotJava2CAstTranslator translator) {
|
||||
fTypeSystem = typeSystem;
|
||||
|
@ -91,7 +95,7 @@ public class PolyglotTypeDictionary extends CAstTypeDictionaryImpl {
|
|||
if (polyglotType.isClass())
|
||||
type = fTranslator.new PolyglotJavaType((ClassType) astType, this, fTypeSystem);
|
||||
else if (polyglotType.isPrimitive()) {
|
||||
type = JavaPrimitiveTypeMap.lookupType(((PrimitiveType) polyglotType).name());
|
||||
type = JavaPrimitiveTypeMap.lookupType(((PrimitiveType) polyglotType).name().toString());
|
||||
} else if (polyglotType.isArray()) {
|
||||
type = new PolyglotJavaArrayType((ArrayType) polyglotType);
|
||||
} else
|
||||
|
|
Loading…
Reference in New Issue