Skip to content
This repository
Browse code

Copy entire javamateview project in here

  • Loading branch information...
commit 0fbb0dbc4fd6fe95f64af505fff6c94c905bfd9c 1 parent 29150d6
Dan Lucraft authored March 29, 2012

Showing 130 changed files with 24,131 additions and 104 deletions. Show diff stats Hide diff stats

  1. 22  javamateview/.classpath
  2. 13  javamateview/.gitignore
  3. 17  javamateview/.project
  4. 270  javamateview/.settings/org.eclipse.jdt.core.prefs
  5. 4  javamateview/.settings/org.eclipse.jdt.ui.prefs
  6. 21  javamateview/Rakefile
  7. 18  javamateview/Run All Unit Tests Linux (java-mateview).launch
  8. 19  javamateview/Run All Unit Tests OSX (java-mateview).launch
  9. 16  javamateview/Run GrammarBenchmark (java-mateview).launch
  10. 19  javamateview/bench/ch/mollusca/benchmarking/After.java
  11. 21  javamateview/bench/ch/mollusca/benchmarking/AfterClass.java
  12. 19  javamateview/bench/ch/mollusca/benchmarking/Before.java
  13. 23  javamateview/bench/ch/mollusca/benchmarking/BeforeClass.java
  14. 50  javamateview/bench/ch/mollusca/benchmarking/Benchmark.java
  15. 12  javamateview/bench/ch/mollusca/benchmarking/BenchmarkFormat.java
  16. 144  javamateview/bench/ch/mollusca/benchmarking/BenchmarkHarness.java
  17. 24  javamateview/bench/ch/mollusca/benchmarking/BenchmarkRun.java
  18. 62  javamateview/bench/ch/mollusca/benchmarking/BenchmarkRunner.java
  19. 131  javamateview/bench/ch/mollusca/benchmarking/BenchmarkStatistics.java
  20. 10  javamateview/bench/ch/mollusca/benchmarking/BenchmarkType.java
  21. 34  javamateview/bench/ch/mollusca/benchmarking/LinkedIterator.java
  22. 114  javamateview/bench/ch/mollusca/benchmarking/LinkedList.java
  23. 27  javamateview/bench/ch/mollusca/benchmarking/LinkedNode.java
  24. 85  javamateview/bench/com/redcareditor/mate/GrammarBenchmark.java
  25. 849  javamateview/bench/test_big_ruby_file.rb
  26. 128  javamateview/build.xml
  27. 544  javamateview/input/Bundles/Apache.tmbundle/Syntaxes/Apache.plist
  28. 1,084  javamateview/input/Bundles/C.tmbundle/Syntaxes/C.plist
  29. 543  javamateview/input/Bundles/CSS.tmbundle/Syntaxes/CSS.plist
  30. 962  javamateview/input/Bundles/HTML.tmbundle/Syntaxes/HTML.plist
  31. 22  javamateview/input/Bundles/Java.tmbundle/Commands/Compile & Run (with args).tmCommand
  32. 22  javamateview/input/Bundles/Java.tmbundle/Commands/Compile & Run.tmCommand
  33. 51  javamateview/input/Bundles/Java.tmbundle/Commands/Documentation For Word.plist
  34. 36  javamateview/input/Bundles/Java.tmbundle/Preferences/Comments.tmPreferences
  35. 21  javamateview/input/Bundles/Java.tmbundle/Preferences/Indentation Rules.tmPreferences
  36. 17  javamateview/input/Bundles/Java.tmbundle/Preferences/Symbol List: Classes.tmPreferences
  37. 19  javamateview/input/Bundles/Java.tmbundle/Preferences/Symbol List: Inner Class Methods.tmPreferences
  38. 19  javamateview/input/Bundles/Java.tmbundle/Preferences/Symbol List: Inner Classes.tmPreferences
  39. 19  javamateview/input/Bundles/Java.tmbundle/Preferences/Symbol List: Inner Inner Class Methods.tmPreferences
  40. 19  javamateview/input/Bundles/Java.tmbundle/Preferences/Symbol List: Inner Inner Classes.tmPreferences
  41. 19  javamateview/input/Bundles/Java.tmbundle/Preferences/Symbol List: Method.plist
  42. 16  javamateview/input/Bundles/Java.tmbundle/Snippets/abstract.tmSnippet
  43. 16  javamateview/input/Bundles/Java.tmbundle/Snippets/assert.tmSnippet
  44. 17  javamateview/input/Bundles/Java.tmbundle/Snippets/break.tmSnippet
  45. 18  javamateview/input/Bundles/Java.tmbundle/Snippets/case.tmSnippet
  46. 16  javamateview/input/Bundles/Java.tmbundle/Snippets/catch.tmSnippet
  47. 16  javamateview/input/Bundles/Java.tmbundle/Snippets/class.tmSnippet
  48. 16  javamateview/input/Bundles/Java.tmbundle/Snippets/constant.tmSnippet
  49. 16  javamateview/input/Bundles/Java.tmbundle/Snippets/constant_string.tmSnippet
  50. 17  javamateview/input/Bundles/Java.tmbundle/Snippets/default.tmSnippet
  51. 16  javamateview/input/Bundles/Java.tmbundle/Snippets/else.tmSnippet
  52. 16  javamateview/input/Bundles/Java.tmbundle/Snippets/else_if.tmSnippet
  53. 16  javamateview/input/Bundles/Java.tmbundle/Snippets/final.tmSnippet
  54. 16  javamateview/input/Bundles/Java.tmbundle/Snippets/for.tmSnippet
  55. 16  javamateview/input/Bundles/Java.tmbundle/Snippets/for___each__.tmSnippet
  56. 16  javamateview/input/Bundles/Java.tmbundle/Snippets/if.tmSnippet
  57. 16  javamateview/input/Bundles/Java.tmbundle/Snippets/import.tmSnippet
  58. 17  javamateview/input/Bundles/Java.tmbundle/Snippets/import_junit_framework_TestCase__.tmSnippet
  59. 16  javamateview/input/Bundles/Java.tmbundle/Snippets/interface.tmSnippet
  60. 16  javamateview/input/Bundles/Java.tmbundle/Snippets/java_beans_.tmSnippet
  61. 16  javamateview/input/Bundles/Java.tmbundle/Snippets/java_io.tmSnippet
  62. 16  javamateview/input/Bundles/Java.tmbundle/Snippets/java_math.tmSnippet
  63. 16  javamateview/input/Bundles/Java.tmbundle/Snippets/java_net_.tmSnippet
  64. 16  javamateview/input/Bundles/Java.tmbundle/Snippets/java_util_.tmSnippet
  65. 17  javamateview/input/Bundles/Java.tmbundle/Snippets/method.tmSnippet
  66. 19  javamateview/input/Bundles/Java.tmbundle/Snippets/next_line___.tmSnippet
  67. 16  javamateview/input/Bundles/Java.tmbundle/Snippets/private.tmSnippet
  68. 16  javamateview/input/Bundles/Java.tmbundle/Snippets/protected.tmSnippet
  69. 16  javamateview/input/Bundles/Java.tmbundle/Snippets/public.tmSnippet
  70. 16  javamateview/input/Bundles/Java.tmbundle/Snippets/return.tmSnippet
  71. 18  javamateview/input/Bundles/Java.tmbundle/Snippets/same_line___.tmSnippet
  72. 16  javamateview/input/Bundles/Java.tmbundle/Snippets/static.tmSnippet
  73. 16  javamateview/input/Bundles/Java.tmbundle/Snippets/switch.tmSnippet
  74. 16  javamateview/input/Bundles/Java.tmbundle/Snippets/synchronized.tmSnippet
  75. 16  javamateview/input/Bundles/Java.tmbundle/Snippets/test.tmSnippet
  76. 16  javamateview/input/Bundles/Java.tmbundle/Snippets/test_case.tmSnippet
  77. 16  javamateview/input/Bundles/Java.tmbundle/Snippets/throw.tmSnippet
  78. 16  javamateview/input/Bundles/Java.tmbundle/Snippets/variable.tmSnippet
  79. 16  javamateview/input/Bundles/Java.tmbundle/Snippets/while.tmSnippet
  80. 82  javamateview/input/Bundles/Java.tmbundle/SyntaxTests/Test.java
  81. 1,153  javamateview/input/Bundles/Java.tmbundle/Syntaxes/Java.plist
  82. 70  javamateview/input/Bundles/Java.tmbundle/Syntaxes/JavaProperties.plist
  83. 187  javamateview/input/Bundles/Java.tmbundle/info.plist
  84. 54  javamateview/input/Bundles/JavaScript.tmbundle/Commands/Copy as Bookmarklet to Clipboard.tmCommand
  85. 30  javamateview/input/Bundles/JavaScript.tmbundle/Commands/Documentation for Word.plist
  86. 28  javamateview/input/Bundles/JavaScript.tmbundle/Commands/New Function.tmCommand
  87. 28  javamateview/input/Bundles/JavaScript.tmbundle/Commands/New Method.tmCommand
  88. 50  javamateview/input/Bundles/JavaScript.tmbundle/Commands/Reformat Document : Selection.tmCommand
  89. 36  javamateview/input/Bundles/JavaScript.tmbundle/Preferences/Comments.tmPreferences
  90. 19  javamateview/input/Bundles/JavaScript.tmbundle/Preferences/JavaScript Indent.tmPreferences
  91. 17  javamateview/input/Bundles/JavaScript.tmbundle/Preferences/Symbol List Banned.tmPreferences
  92. 21  javamateview/input/Bundles/JavaScript.tmbundle/Preferences/Symbol List Class.tmPreferences
  93. 21  javamateview/input/Bundles/JavaScript.tmbundle/Preferences/Symbol List Instance.tmPreferences
  94. 21  javamateview/input/Bundles/JavaScript.tmbundle/Preferences/Symbol List Sub 1.tmPreferences
  95. 21  javamateview/input/Bundles/JavaScript.tmbundle/Preferences/Symbol List Sub 2.tmPreferences
  96. 16  javamateview/input/Bundles/JavaScript.tmbundle/Snippets/Get Elements.tmSnippet
  97. 18  javamateview/input/Bundles/JavaScript.tmbundle/Snippets/Object Method String.tmSnippet
  98. 18  javamateview/input/Bundles/JavaScript.tmbundle/Snippets/Object Method.tmSnippet
  99. 16  javamateview/input/Bundles/JavaScript.tmbundle/Snippets/Object Value JS.tmSnippet
  100. 18  javamateview/input/Bundles/JavaScript.tmbundle/Snippets/Object key — key: "value".tmSnippet
  101. 19  javamateview/input/Bundles/JavaScript.tmbundle/Snippets/Prototype (proto).plist
  102. 18  javamateview/input/Bundles/JavaScript.tmbundle/Snippets/for (…) {…} (faster).tmSnippet
  103. 18  javamateview/input/Bundles/JavaScript.tmbundle/Snippets/for (…) {…}.tmSnippet
  104. 18  javamateview/input/Bundles/JavaScript.tmbundle/Snippets/function (fun).plist
  105. 16  javamateview/input/Bundles/JavaScript.tmbundle/Snippets/function.tmSnippet
  106. 16  javamateview/input/Bundles/JavaScript.tmbundle/Snippets/if ___ else.tmSnippet
  107. 16  javamateview/input/Bundles/JavaScript.tmbundle/Snippets/if.tmSnippet
  108. 16  javamateview/input/Bundles/JavaScript.tmbundle/Snippets/setTimeout function.tmSnippet
  109. BIN  javamateview/input/Bundles/JavaScript.tmbundle/Support/dev_guru_index.gz
  110. 557  javamateview/input/Bundles/JavaScript.tmbundle/Support/lib/beautify.php
  111. 712  javamateview/input/Bundles/JavaScript.tmbundle/Syntaxes/JavaScript.plist
  112. 136  javamateview/input/Bundles/JavaScript.tmbundle/info.plist
  113. 3,426  javamateview/input/Bundles/PHP.tmbundle/Syntaxes/PHP.plist
  114. 3,209  javamateview/input/Bundles/Perl.tmbundle/Syntaxes/Perl.plist
  115. 3,016  javamateview/input/Bundles/Python.tmbundle/Syntaxes/Python.tmLanguage
  116. 2,763  javamateview/input/Bundles/Ruby.tmbundle/Syntaxes/Ruby.plist
  117. 436  javamateview/input/Bundles/YAML.tmbundle/Syntaxes/YAML.plist
  118. 450  javamateview/input/Themes/Mac Classic.tmTheme
  119. 278  javamateview/input/Themes/Railscasts.tmTheme
  120. 514  javamateview/input/Themes/Twilight.tmTheme
  121. 73  javamateview/input/autocompleter.rb
  122. 154  javamateview/lib/example/jquery-142min.js
  123. BIN  javamateview/lib/example/little-smiley.png
  124. BIN  javamateview/lib/example/little-star.png
  125. BIN  javamateview/lib/javamateview/jar/java-mateview.jar
  126. 61  javamateview/projection_attempt.diff
  127. 18  javamateview/redcar-javamateview.gemspec
  128. 19  javamateview/resources/PropertyList-1.0.dtd
  129. 18  javamateview/src/com/redcareditor/mate/MateText.java
  130. 166  javamateview/src/com/redcareditor/mate/colouring/swt/SwtColourer.java
22  javamateview/.classpath
... ...
@@ -0,0 +1,22 @@
  1
+<?xml version="1.0" encoding="UTF-8"?>
  2
+<classpath>
  3
+	<classpathentry kind="src" path="src"/>
  4
+	<classpathentry kind="src" path="test"/>
  5
+	<classpathentry kind="src" path="bench"/>
  6
+	<classpathentry kind="lib" path="lib/jdom.jar" />
  7
+	<classpathentry kind="lib" path="lib/jcodings.jar"/>
  8
+	<classpathentry kind="lib" path="lib/joni.jar"/>
  9
+	<classpathentry kind="lib" path="lib/junit-4.7.jar"/>
  10
+	<classpathentry kind="lib" path="lib/org.eclipse.core.commands.jar"/>
  11
+	<classpathentry kind="lib" path="lib/org.eclipse.core.runtime_3.5.0.v20090525.jar"/>
  12
+	<classpathentry kind="lib" path="lib/org.eclipse.equinox.common.jar"/>
  13
+	<classpathentry kind="lib" path="lib/org.eclipse.jface.databinding_1.3.0.I20090525-2000.jar"/>
  14
+	<classpathentry kind="lib" path="lib/org.eclipse.jface.jar"/>
  15
+	<classpathentry kind="lib" path="lib/org.eclipse.jface.text_3.5.0.jar"/>
  16
+	<classpathentry kind="lib" path="lib/org.eclipse.osgi.jar"/>
  17
+	<classpathentry kind="lib" path="lib/org.eclipse.text_3.5.0.v20090513-2000.jar"/>
  18
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
  19
+	<classpathentry kind="var" path="SWT_JAR"/>
  20
+	<classpathentry kind="src" path="resources"/>
  21
+	<classpathentry kind="output" path="bin"/>
  22
+</classpath>
13  javamateview/.gitignore
... ...
@@ -0,0 +1,13 @@
  1
+bin/com
  2
+bin/test
  3
+bin/test-reports
  4
+bin/PropertyList-1.0.dtd
  5
+release
  6
+.DS_Store
  7
+lib/*.jar
  8
+release/
  9
+tmp/
  10
+lib/swt_jars
  11
+lib/jface_jars
  12
+.redcar
  13
+*.gem
17  javamateview/.project
... ...
@@ -0,0 +1,17 @@
  1
+<?xml version="1.0" encoding="UTF-8"?>
  2
+<projectDescription>
  3
+	<name>java-mateview</name>
  4
+	<comment></comment>
  5
+	<projects>
  6
+	</projects>
  7
+	<buildSpec>
  8
+		<buildCommand>
  9
+			<name>org.eclipse.jdt.core.javabuilder</name>
  10
+			<arguments>
  11
+			</arguments>
  12
+		</buildCommand>
  13
+	</buildSpec>
  14
+	<natures>
  15
+		<nature>org.eclipse.jdt.core.javanature</nature>
  16
+	</natures>
  17
+</projectDescription>
270  javamateview/.settings/org.eclipse.jdt.core.prefs
... ...
@@ -0,0 +1,270 @@
  1
+#Thu Sep 10 08:40:16 CEST 2009
  2
+eclipse.preferences.version=1
  3
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
  4
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
  5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
  6
+org.eclipse.jdt.core.compiler.compliance=1.6
  7
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
  8
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
  9
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
  10
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
  11
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
  12
+org.eclipse.jdt.core.compiler.source=1.6
  13
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
  14
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
  15
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
  16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
  17
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
  18
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
  19
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
  20
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
  21
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
  22
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
  23
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
  24
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
  25
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
  26
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
  27
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
  28
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
  29
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
  30
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
  31
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
  32
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
  33
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
  34
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
  35
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
  36
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
  37
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
  38
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
  39
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
  40
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
  41
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
  42
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
  43
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
  44
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
  45
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
  46
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
  47
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
  48
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
  49
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
  50
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
  51
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
  52
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
  53
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
  54
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
  55
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
  56
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
  57
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
  58
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
  59
+org.eclipse.jdt.core.formatter.comment.format_header=false
  60
+org.eclipse.jdt.core.formatter.comment.format_html=true
  61
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
  62
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
  63
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
  64
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
  65
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
  66
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
  67
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
  68
+org.eclipse.jdt.core.formatter.comment.line_length=80
  69
+org.eclipse.jdt.core.formatter.compact_else_if=true
  70
+org.eclipse.jdt.core.formatter.continuation_indentation=2
  71
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
  72
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
  73
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
  74
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
  75
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
  76
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
  77
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
  78
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
  79
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
  80
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
  81
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
  82
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
  83
+org.eclipse.jdt.core.formatter.indentation.size=4
  84
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
  85
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
  86
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
  87
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
  88
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
  89
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
  90
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
  91
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
  92
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
  93
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
  94
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
  95
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
  96
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
  97
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
  98
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
  99
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
  100
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
  101
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
  102
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
  103
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
  104
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
  105
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
  106
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
  107
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
  108
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
  109
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
  110
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
  111
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
  112
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
  113
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
  114
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
  115
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
  116
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
  117
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
  118
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
  119
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
  120
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
  121
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
  122
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
  123
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
  124
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
  125
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
  126
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
  127
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
  128
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
  129
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
  130
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
  131
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
  132
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
  133
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
  134
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
  135
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
  136
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
  137
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
  138
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
  139
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
  140
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
  141
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
  142
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
  143
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
  144
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
  145
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
  146
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
  147
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
  148
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
  149
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
  150
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
  151
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
  152
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
  153
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
  154
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
  155
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
  156
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
  157
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
  158
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
  159
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
  160
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
  161
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
  162
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
  163
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
  164
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
  165
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
  166
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
  167
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
  168
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
  169
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
  170
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
  171
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
  172
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
  173
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
  174
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
  175
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
  176
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
  177
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
  178
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
  179
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
  180
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
  181
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
  182
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
  183
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
  184
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
  185
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
  186
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
  187
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
  188
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
  189
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
  190
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
  191
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
  192
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
  193
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
  194
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
  195
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
  196
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
  197
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
  198
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
  199
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
  200
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
  201
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
  202
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
  203
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
  204
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
  205
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
  206
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
  207
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
  208
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
  209
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
  210
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
  211
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
  212
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
  213
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
  214
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
  215
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
  216
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
  217
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
  218
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
  219
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
  220
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
  221
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
  222
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
  223
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
  224
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
  225
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
  226
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
  227
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
  228
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
  229
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
  230
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
  231
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
  232
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
  233
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
  234
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
  235
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
  236
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
  237
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
  238
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
  239
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
  240
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
  241
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
  242
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
  243
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
  244
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
  245
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
  246
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
  247
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
  248
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
  249
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
  250
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
  251
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
  252
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
  253
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
  254
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
  255
+org.eclipse.jdt.core.formatter.join_lines_in_comments=true
  256
+org.eclipse.jdt.core.formatter.join_wrapped_lines=true
  257
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
  258
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
  259
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
  260
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
  261
+org.eclipse.jdt.core.formatter.lineSplit=140
  262
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
  263
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
  264
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
  265
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
  266
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
  267
+org.eclipse.jdt.core.formatter.tabulation.char=tab
  268
+org.eclipse.jdt.core.formatter.tabulation.size=4
  269
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
  270
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
4  javamateview/.settings/org.eclipse.jdt.ui.prefs
... ...
@@ -0,0 +1,4 @@
  1
+#Sat Sep 05 09:34:00 CEST 2009
  2
+eclipse.preferences.version=1
  3
+formatter_profile=_java-mateview-formatting
  4
+formatter_settings_version=11
21  javamateview/Rakefile
@@ -51,22 +51,23 @@ namespace :build do
51 51
     require 'rubygems'
52 52
     require 'java'
53 53
     gem 'swt'
54  
-    require 'swt/jar'
  54
+    require 'swt/jar_loader'
55 55
     swt_jar_dir = File.dirname(Swt.jar_path)
56 56
     
57  
-    
58 57
     mkdir_p File.expand_path("../lib/swt_jars", __FILE__)
59  
-    %w(linux linux64 osx osx64 win32).each do |platform|
  58
+    %w(linux32 linux64 osx32 osx64 win32 win64).each do |platform|
60 59
       dir = File.expand_path("../lib/swt_jars/#{platform}", __FILE__)
61 60
       mkdir_p dir
62  
-      from = swt_jar_dir + "/swt_#{platform}.jar"
  61
+      from = swt_jar_dir + "/swt-#{platform}.jar"
63 62
       to   = dir + "/swt.jar"
64 63
       cp from, to
65 64
     end
66 65
   
67 66
     mkdir_p File.expand_path("../lib/jface_jars", __FILE__)
68 67
     
69  
-    Dir[swt_jar_dir + "/jface/org.ecl*.jar"].each do |from, to|
  68
+    p swt_jar_dir
  69
+    p Dir[swt_jar_dir + "/../jface/org.ecl*.jar"]
  70
+    Dir[swt_jar_dir + "/../jface/org.ecl*.jar"].each do |from, to|
70 71
       to = File.expand_path("../lib/jface_jars/#{File.basename(from)}", __FILE__)
71 72
       cp from, to
72 73
     end
@@ -86,9 +87,9 @@ namespace :build do
86 87
     end
87 88
   end
88 89
   
89  
-  desc "Build the release *.jar"
90  
-  task :release => [:get_jruby] do
91  
-    puts "Building release *.jar"
92  
-    
93  
-  end
  90
+  # desc "Build the release *.jar"
  91
+  # task :release => [:get_jruby] do
  92
+  #   puts "Building release *.jar"
  93
+  #   
  94
+  # end
94 95
 end
18  javamateview/Run All Unit Tests Linux (java-mateview).launch
... ...
@@ -0,0 +1,18 @@
  1
+<?xml version="1.0" encoding="UTF-8"?>
  2
+<launchConfiguration type="org.eclipse.jdt.junit.launchconfig">
  3
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
  4
+<listEntry value="/java-mateview/test"/>
  5
+</listAttribute>
  6
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
  7
+<listEntry value="2"/>
  8
+</listAttribute>
  9
+<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
  10
+<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
  11
+</listAttribute>
  12
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value="=java-mateview/test"/>
  13
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
  14
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
  15
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
  16
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value=""/>
  17
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="java-mateview"/>
  18
+</launchConfiguration>
19  javamateview/Run All Unit Tests OSX (java-mateview).launch
... ...
@@ -0,0 +1,19 @@
  1
+<?xml version="1.0" encoding="UTF-8"?>
  2
+<launchConfiguration type="org.eclipse.jdt.junit.launchconfig">
  3
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
  4
+<listEntry value="/java-mateview/test"/>
  5
+</listAttribute>
  6
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
  7
+<listEntry value="2"/>
  8
+</listAttribute>
  9
+<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
  10
+<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
  11
+</listAttribute>
  12
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value="=java-mateview/test"/>
  13
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
  14
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
  15
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
  16
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value=""/>
  17
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="java-mateview"/>
  18
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-XstartOnFirstThread"/>
  19
+</launchConfiguration>
16  javamateview/Run GrammarBenchmark (java-mateview).launch
... ...
@@ -0,0 +1,16 @@
  1
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  2
+<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
  3
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
  4
+<listEntry value="/java-mateview/bench/ch/mollusca/benchmarking/BenchmarkRunner.java"/>
  5
+</listAttribute>
  6
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
  7
+<listEntry value="1"/>
  8
+</listAttribute>
  9
+<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
  10
+<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
  11
+</listAttribute>
  12
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="ch.mollusca.benchmarking.BenchmarkRunner"/>
  13
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="com.redcareditor.mate.GrammarBenchmark"/>
  14
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="java-mateview"/>
  15
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-server"/>
  16
+</launchConfiguration>
19  javamateview/bench/ch/mollusca/benchmarking/After.java
... ...
@@ -0,0 +1,19 @@
  1
+package ch.mollusca.benchmarking;
  2
+
  3
+import java.lang.annotation.ElementType;
  4
+import java.lang.annotation.Retention;
  5
+import java.lang.annotation.RetentionPolicy;
  6
+import java.lang.annotation.Target;
  7
+
  8
+/**
  9
+ * This annotation marks methods that will be executed after any benchmark run.<br>
  10
+ * Use this for setup methods that need to be run after each test.
  11
+ * 
  12
+ * @author kungfoo
  13
+ * 
  14
+ */
  15
+@Retention(RetentionPolicy.RUNTIME)
  16
+@Target(ElementType.METHOD)
  17
+public @interface After {
  18
+
  19
+}
21  javamateview/bench/ch/mollusca/benchmarking/AfterClass.java
... ...
@@ -0,0 +1,21 @@
  1
+package ch.mollusca.benchmarking;
  2
+
  3
+import java.lang.annotation.ElementType;
  4
+import java.lang.annotation.Retention;
  5
+import java.lang.annotation.RetentionPolicy;
  6
+import java.lang.annotation.Target;
  7
+
  8
+/**
  9
+ * Annotation marking methods that will be executed once for each class that
  10
+ * contains Benchmark annotations.<br>
  11
+ * Use for methods that only need to be run once and that are quite costly, i.e.
  12
+ * setting up a huge array, connecting to a database
  13
+ * 
  14
+ * @author kungfoo
  15
+ * 
  16
+ */
  17
+@Retention(RetentionPolicy.RUNTIME)
  18
+@Target(ElementType.METHOD)
  19
+public @interface AfterClass {
  20
+
  21
+}
19  javamateview/bench/ch/mollusca/benchmarking/Before.java
... ...
@@ -0,0 +1,19 @@
  1
+package ch.mollusca.benchmarking;
  2
+
  3
+import java.lang.annotation.ElementType;
  4
+import java.lang.annotation.Retention;
  5
+import java.lang.annotation.RetentionPolicy;
  6
+import java.lang.annotation.Target;
  7
+
  8
+/**
  9
+ * This annotation marks methods that will be executed before any benchmark run.<br>
  10
+ * Use this for setup methods that need to be run before each test.
  11
+ * 
  12
+ * @author kungfoo
  13
+ * 
  14
+ */
  15
+@Retention(RetentionPolicy.RUNTIME)
  16
+@Target(ElementType.METHOD)
  17
+public @interface Before {
  18
+	
  19
+}
23  javamateview/bench/ch/mollusca/benchmarking/BeforeClass.java
... ...
@@ -0,0 +1,23 @@
  1
+package ch.mollusca.benchmarking;
  2
+
  3
+import java.lang.annotation.ElementType;
  4
+import java.lang.annotation.Retention;
  5
+import java.lang.annotation.RetentionPolicy;
  6
+import java.lang.annotation.Target;
  7
+
  8
+/**
  9
+ * Annotation marking methods that will be executed once for each class that
  10
+ * contains Benchmark annotations.<br>
  11
+ * Use for methods that only need to be run once to clean up the dishes after
  12
+ * running the benchmark.<br>
  13
+ * The benchmarking framework will call System.gc() after running these methods,
  14
+ * so marking objects not needed anymore with null might be a good idea.
  15
+ * 
  16
+ * @author kungfoo
  17
+ * 
  18
+ */
  19
+@Retention(RetentionPolicy.RUNTIME)
  20
+@Target(ElementType.METHOD)
  21
+public @interface BeforeClass {
  22
+
  23
+}
50  javamateview/bench/ch/mollusca/benchmarking/Benchmark.java
... ...
@@ -0,0 +1,50 @@
  1
+package ch.mollusca.benchmarking;
  2
+
  3
+import java.lang.annotation.ElementType;
  4
+import java.lang.annotation.Inherited;
  5
+import java.lang.annotation.Retention;
  6
+import java.lang.annotation.RetentionPolicy;
  7
+import java.lang.annotation.Target;
  8
+
  9
+
  10
+/**
  11
+ * Benchmark the code inside the annotated method.
  12
+ * 
  13
+ * @author kungfoo
  14
+ * 
  15
+ */
  16
+@Retention(RetentionPolicy.RUNTIME)
  17
+@Inherited
  18
+@Target(ElementType.METHOD)
  19
+public @interface Benchmark {
  20
+	/**
  21
+	 * How many times do you want the code inside the function executed?
  22
+	 * 
  23
+	 * @return
  24
+	 */
  25
+	public int times() default 10;
  26
+
  27
+	/**
  28
+	 * BRIEF: outputs a total and the average run time<br>
  29
+	 * FULL: will output the wall time for each run and a total/average
  30
+	 * 
  31
+	 * @return
  32
+	 */
  33
+	public BenchmarkFormat format() default BenchmarkFormat.BRIEF;
  34
+
  35
+	/**
  36
+	 * AUTO: will perform automatic warm-up of the VM, the code that is being
  37
+	 * benchmarked will then be executed until the measurement desirably is
  38
+	 * accurate<br>
  39
+	 * In this mode outliers will automatically be removed by fitting a normal
  40
+	 * distribution to the measured timing values.<br>
  41
+	 * MANUAL: Fully manual, no
  42
+	 * warm-up, no outlier removal<br>
  43
+	 * REMOVE_OUTLIERS: Will perform no automatic warm-up, but will remove
  44
+	 * outliers after running the number of entries in the statistics will
  45
+	 * therefore not be the number of times the code has been run
  46
+	 * 
  47
+	 * @return
  48
+	 */
  49
+	public BenchmarkType type() default BenchmarkType.AUTO;
  50
+}
12  javamateview/bench/ch/mollusca/benchmarking/BenchmarkFormat.java
... ...
@@ -0,0 +1,12 @@
  1
+package ch.mollusca.benchmarking;
  2
+
  3
+/**
  4
+ * Format for the benchmark output. Full gives all details including outliers
  5
+ * that have been removed, sample values that have been considered etc.
  6
+ * 
  7
+ * @author kungfoo
  8
+ * 
  9
+ */
  10
+public enum BenchmarkFormat {
  11
+	BRIEF, FULL
  12
+}
144  javamateview/bench/ch/mollusca/benchmarking/BenchmarkHarness.java
... ...
@@ -0,0 +1,144 @@
  1
+package ch.mollusca.benchmarking;
  2
+
  3
+import java.lang.reflect.InvocationTargetException;
  4
+import java.lang.reflect.Method;
  5
+
  6
+
  7
+/**
  8
+ * Invokes the methods needed for benchmarking.
  9
+ * @author kungfoo
  10
+ *
  11
+ */
  12
+public class BenchmarkHarness {
  13
+
  14
+	private static final int MINIMUM_WARMUP_RUNS = 2;
  15
+	public static final String FULL_LINE = "-------------------------------------------------------------";
  16
+	private LinkedList<Object> tasks;
  17
+	
  18
+	private LinkedList<Method> benchmarked_methods;
  19
+	private LinkedList<Method> before_methods;
  20
+	private LinkedList<Method> after_methods;
  21
+	private LinkedList<Method> before_class_methods;
  22
+	private LinkedList<Method> after_class_methods;
  23
+	
  24
+	/**
  25
+	 * create a new benchmark harness and assign the given tasks
  26
+	 * 
  27
+	 * @param tasks
  28
+	 */
  29
+	public BenchmarkHarness(LinkedList<Object> tasks) {
  30
+		this.tasks = tasks;
  31
+		benchmarked_methods = new LinkedList<Method>();
  32
+		before_class_methods = new LinkedList<Method>();
  33
+		before_methods = new LinkedList<Method>();
  34
+		after_class_methods = new LinkedList<Method>();
  35
+		after_methods = new LinkedList<Method>();
  36
+	}
  37
+	
  38
+
  39
+	public void start() throws IllegalArgumentException, SecurityException,
  40
+			IllegalAccessException, InvocationTargetException,
  41
+			NoSuchMethodException {
  42
+
  43
+		for (Object task : tasks) {
  44
+			for (Method m : task.getClass().getMethods()) {
  45
+				// grab all annotation types
  46
+				
  47
+				if (m.isAnnotationPresent(Benchmark.class)) {
  48
+					benchmarked_methods.add(m);
  49
+				}
  50
+				if(m.isAnnotationPresent(Before.class)){
  51
+					before_methods.add(m);
  52
+				}
  53
+				if(m.isAnnotationPresent(After.class)){
  54
+					after_methods.add(m);
  55
+				}
  56
+				if(m.isAnnotationPresent(AfterClass.class)){
  57
+					after_class_methods.add(m);
  58
+				}
  59
+				if(m.isAnnotationPresent(BeforeClass.class)){
  60
+					before_class_methods.add(m);
  61
+				}
  62
+			}
  63
+
  64
+			for (Method benchmarked_method : benchmarked_methods) {
  65
+				int passes = benchmarked_method.getAnnotation(Benchmark.class).times();
  66
+				BenchmarkStatistics stats = new BenchmarkStatistics(benchmarked_method);
  67
+				runListOfMethods(task, before_class_methods);
  68
+				
  69
+				if(autoTuneIn(benchmarked_method)){
  70
+					tuneIn(task, benchmarked_method);
  71
+				}
  72
+				
  73
+				System.out.println("Running benchmark......");
  74
+				
  75
+				for(int i = 0; i < passes; i++){
  76
+					long t1 = 0;
  77
+					long t2 = 0;
  78
+					
  79
+					runListOfMethods(task, before_methods);
  80
+					t1 = System.nanoTime();
  81
+					benchmarked_method.invoke(task);
  82
+					t2 = System.nanoTime();
  83
+					stats.add(new BenchmarkRun(t2-t1,i));
  84
+					runListOfMethods(task, after_methods);
  85
+				}
  86
+				
  87
+				runListOfMethods(task, after_class_methods);
  88
+				
  89
+				if(benchmarked_method.getAnnotation(Benchmark.class).format() == BenchmarkFormat.FULL){
  90
+					// output full stats
  91
+					stats.printFullStats();
  92
+				}
  93
+				
  94
+				stats.printShortStats();
  95
+				
  96
+				// clean up for next method
  97
+				System.gc();
  98
+			}
  99
+		}
  100
+	}
  101
+
  102
+
  103
+	private boolean autoTuneIn(Method benchmarked_method) {
  104
+		return benchmarked_method.getAnnotation(Benchmark.class).type() == BenchmarkType.AUTO;
  105
+	}
  106
+	
  107
+	private void runListOfMethods(Object task, LinkedList<Method> methods){
  108
+		if(methods == null){
  109
+			return;
  110
+		}
  111
+		for (Method method : methods) {
  112
+			try {
  113
+				
  114
+				method.invoke(task);
  115
+				
  116
+			} catch (IllegalArgumentException e) {
  117
+				e.printStackTrace();
  118
+			} catch (IllegalAccessException e) {
  119
+				e.printStackTrace();
  120
+			} catch (InvocationTargetException e) {
  121
+				e.printStackTrace();
  122
+			}
  123
+		}
  124
+	}
  125
+
  126
+	/**
  127
+	 * tune in the hotspot VM
  128
+	 * @throws InvocationTargetException 
  129
+	 * @throws IllegalAccessException 
  130
+	 * @throws IllegalArgumentException 
  131
+	 */
  132
+	private void tuneIn(Object task, Method benchmarked_method) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException{
  133
+		System.out.println("Tuning in VM for "+getFullMethodName(task, benchmarked_method)+".....");
  134
+		for(int i = 0; i < MINIMUM_WARMUP_RUNS; i++){
  135
+			runListOfMethods(task, before_methods);
  136
+			benchmarked_method.invoke(task);
  137
+			runListOfMethods(task, before_methods);
  138
+		}
  139
+	}
  140
+	
  141
+	private String getFullMethodName(Object task, Method benchmarked_method){
  142
+		return task.getClass().toString().replaceFirst("class ", "")+"."+benchmarked_method.getName()+"()";
  143
+	}
  144
+}
24  javamateview/bench/ch/mollusca/benchmarking/BenchmarkRun.java
... ...
@@ -0,0 +1,24 @@
  1
+package ch.mollusca.benchmarking;
  2
+
  3
+/**
  4
+ * One run of a benchmarked method. Used for stats.
  5
+ * @author kungfoo
  6
+ *
  7
+ */
  8
+public class BenchmarkRun {
  9
+	private long runtime;
  10
+	private int run_number;
  11
+	
  12
+	public BenchmarkRun(long runtime, int run_number){
  13
+		this.runtime = runtime;
  14
+		this.run_number = run_number;
  15
+	}
  16
+	
  17
+	public long runtime(){
  18
+		return runtime;
  19
+	}
  20
+	
  21
+	public int runNumber(){
  22
+		return run_number;
  23
+	}
  24
+}
62  javamateview/bench/ch/mollusca/benchmarking/BenchmarkRunner.java
... ...
@@ -0,0 +1,62 @@
  1
+package ch.mollusca.benchmarking;
  2
+
  3
+import java.lang.reflect.Constructor;
  4
+import java.lang.reflect.InvocationTargetException;
  5
+import java.util.Scanner;
  6
+
  7
+/**
  8
+ * Dynamically loads a class that contains methods to be benchmarked.
  9
+ * @author kungfoo
  10
+ *
  11
+ */
  12
+public class BenchmarkRunner {
  13
+
  14
+	/**
  15
+	 * @param args
  16
+	 */
  17
+	public static void main(String[] args) {
  18
+		String clazz = null;
  19
+
  20
+		if (args.length == 0) {
  21
+			System.out
  22
+					.println("enter fully qualified classname of the class to run");
  23
+			Scanner in = new Scanner(System.in);
  24
+			clazz = in.nextLine();
  25
+		} else {
  26
+			clazz = args[0];
  27
+		}
  28
+
  29
+		runBenchmarks(clazz);
  30
+	}
  31
+
  32
+	private static void runBenchmarks(String clazz) {
  33
+		try {
  34
+			Class<?> task = Class.forName(clazz);
  35
+			Constructor<?> ctor = task.getConstructor();
  36
+			System.out.println("Benchmarking " + task.getClass());
  37
+
  38
+			Object o = ctor.newInstance();
  39
+
  40
+			LinkedList<Object> foo = new LinkedList<Object>();
  41
+			foo.add(o);
  42
+
  43
+			new BenchmarkHarness(foo).start();
  44
+
  45
+		} catch (ClassNotFoundException e) {
  46
+			e.printStackTrace();
  47
+		} catch (SecurityException e) {
  48
+			e.printStackTrace();
  49
+		} catch (NoSuchMethodException e) {
  50
+			System.out.println("class does not have an empty ctor");
  51
+			e.printStackTrace();
  52
+		} catch (IllegalArgumentException e) {
  53
+			e.printStackTrace();
  54
+		} catch (IllegalAccessException e) {
  55
+			e.printStackTrace();
  56
+		} catch (InvocationTargetException e) {
  57
+			e.printStackTrace();
  58
+		} catch (InstantiationException e) {
  59
+			e.printStackTrace();
  60
+		}
  61
+	}
  62
+}
131  javamateview/bench/ch/mollusca/benchmarking/BenchmarkStatistics.java
... ...
@@ -0,0 +1,131 @@
  1
+package ch.mollusca.benchmarking;
  2
+
  3
+import java.lang.reflect.Method;
  4
+
  5
+
  6
+
  7
+/**
  8
+ * Performs house-keeping and statistics on the various runs of a benchmark.
  9
+ * @author kungfoo
  10
+ *
  11
+ */
  12
+public class BenchmarkStatistics {
  13
+	private Method benchmarked_method;
  14
+	private LinkedList<BenchmarkRun> runs;
  15
+	
  16
+	private LinkedList<BenchmarkRun> inliers;
  17
+	private LinkedList<BenchmarkRun> outliers;
  18
+	
  19
+	private boolean has_been_filtered = false;
  20
+	
  21
+	public BenchmarkStatistics(Method m){
  22
+		benchmarked_method = m;
  23
+		runs = new LinkedList<BenchmarkRun>();
  24
+		inliers = new LinkedList<BenchmarkRun>();
  25
+		outliers = new LinkedList<BenchmarkRun>();
  26
+	}
  27
+	
  28
+	public void add(BenchmarkRun run){
  29
+		runs.add(run);
  30
+		// as soon as we add to the set, we need to recalculate the stats
  31
+		has_been_filtered = false;
  32
+	}
  33
+	
  34
+	/**
  35
+	 * filter the data set that this statistic has collected
  36
+	 */
  37
+	private void filter(){
  38
+		if(!has_been_filtered){
  39
+			// calculate mean and standard deviation
  40
+			long sum = 0;
  41
+			for(BenchmarkRun run : runs){
  42
+				sum += run.runtime();
  43
+			}
  44
+			long mean = sum / runs.size();
  45
+			
  46
+			double std_dev = 0;
  47
+			for(BenchmarkRun run : runs){
  48
+				std_dev += (mean-run.runtime())*(mean-run.runtime());
  49
+			}
  50
+			std_dev *= 1d/(runs.size()-1);
  51
+			std_dev = Math.sqrt(std_dev);
  52
+			
  53
+			// remove outliers from the data set
  54
+			for(BenchmarkRun run : runs){
  55
+				if(run.runtime() < mean + std_dev && run.runtime() > mean - std_dev){
  56
+					inliers.add(run);
  57
+				}
  58
+				else{
  59
+					outliers.add(run);
  60
+				}
  61
+			}
  62
+			
  63
+			has_been_filtered = true;
  64
+		}
  65
+		else{
  66
+			// do nothing
  67
+		}
  68
+	}
  69
+	
  70
+	public LinkedList<BenchmarkRun> getInliers(){
  71
+		filter();
  72
+		return inliers;
  73
+	}
  74
+	
  75
+	public LinkedList<BenchmarkRun> getOutLiers(){
  76
+		filter();
  77
+		return outliers;
  78
+	}
  79
+	
  80
+	
  81
+	public void printFullStats(){
  82
+		filter();
  83
+		System.out.println(BenchmarkHarness.FULL_LINE);
  84
+		System.out.println("Full stats for "+benchmarked_method.getName()+"()");
  85
+		System.out.println();
  86
+		System.out.println("Outliers: ");
  87
+		System.out.println("run\t runtime");
  88
+		System.out.println(BenchmarkHarness.FULL_LINE);
  89
+		for(BenchmarkRun run : outliers){
  90
+			System.out.println(run.runNumber() +"\t"+toMilliseconds(run.runtime())+"ms");
  91
+		}
  92
+		System.out.println();
  93
+		System.out.println("Inliers: ");
  94
+		System.out.println("run\t runtime");
  95
+		System.out.println(BenchmarkHarness.FULL_LINE);
  96
+		for(BenchmarkRun run : inliers){
  97
+			System.out.println(run.runNumber() +"\t"+toMilliseconds(run.runtime())+"ms");
  98
+		}
  99
+		System.out.println(BenchmarkHarness.FULL_LINE);
  100
+	}
  101
+	
  102
+	public void printShortStats(){
  103
+		filter();
  104
+		double runtime = getInlierTime();
  105
+		System.out.println(inliers.size()+"x "+benchmarked_method.getName()+"() took: "+runtime+"ms");
  106
+		System.out.println("average runtime: " + runtime/inliers.size()+"ms");
  107
+		System.out.println(BenchmarkHarness.FULL_LINE);
  108
+	}
  109
+	
  110
+	private double toMilliseconds(long total_time) {
  111
+		return total_time*1e-6;
  112
+	}
  113
+	
  114
+	public double getOutlierTime(){
  115
+		filter();
  116
+		long total = 0;
  117
+		for(BenchmarkRun run : outliers){
  118
+			total += run.runtime();
  119
+		}
  120
+		return toMilliseconds(total);
  121
+	}
  122
+	
  123
+	public double getInlierTime(){
  124
+		filter();
  125
+		long total = 0;
  126
+		for(BenchmarkRun run : inliers){
  127
+			total += run.runtime();
  128
+		}
  129
+		return toMilliseconds(total);
  130
+	}
  131
+}
10  javamateview/bench/ch/mollusca/benchmarking/BenchmarkType.java
... ...
@@ -0,0 +1,10 @@
  1
+package ch.mollusca.benchmarking;
  2
+
  3
+/**
  4
+ * Type of benchmark to perform.
  5
+ * @author kungfoo
  6
+ *
  7
+ */
  8
+public enum BenchmarkType {
  9
+	AUTO, MANUAL, REMOVE_OUTLIERS
  10
+}
34  javamateview/bench/ch/mollusca/benchmarking/LinkedIterator.java
... ...
@@ -0,0 +1,34 @@
  1
+package ch.mollusca.benchmarking;
  2
+
  3
+import java.util.Iterator;
  4
+
  5
+public class LinkedIterator<T> implements Iterator<T>{
  6
+	private LinkedList<T> list;
  7
+	private LinkedNode<T> current;
  8
+	
  9
+	public LinkedIterator(LinkedList<T> list){
  10
+		this.list = list;
  11
+		this.current = list.getRoot();
  12
+	}
  13
+	
  14
+	public boolean hasNext() {
  15
+		if(list.size() == 0){
  16
+			return false;
  17