mirah 0.0.7-java → 0.0.8-java

Sign up to get free protection for your applications and to get access to all the features.
Files changed (182) hide show
  1. data/History.txt +181 -0
  2. data/README.txt +6 -10
  3. data/Rakefile +86 -9
  4. data/bin/mirah +2 -0
  5. data/bin/mirahc +2 -0
  6. data/bin/mirahp +2 -0
  7. data/{bin/dubyp → examples/interfaces.mirah} +16 -9
  8. data/examples/macros/square.mirah +12 -0
  9. data/examples/macros/square_int.mirah +12 -0
  10. data/examples/macros/string-each-char.mirah +14 -0
  11. data/examples/maven/README.txt +2 -0
  12. data/examples/maven/pom.xml +23 -0
  13. data/examples/maven/src/main/mirah/hello_mirah.mirah +9 -0
  14. data/examples/rosettacode/100-doors.mirah +44 -0
  15. data/examples/rosettacode/99-bottles-of-beer.mirah +13 -0
  16. data/examples/rosettacode/README.txt +9 -0
  17. data/examples/rosettacode/boolean-values.mirah +29 -0
  18. data/examples/rosettacode/comments.mirah +2 -0
  19. data/examples/rosettacode/copy-a-string.mirah +10 -0
  20. data/examples/rosettacode/count-occurrences-of-a-substring.mirah +40 -0
  21. data/examples/rosettacode/create-a-file.mirah +6 -0
  22. data/examples/rosettacode/empty-string.mirah +9 -0
  23. data/examples/rosettacode/factorial.mirah +10 -0
  24. data/examples/rosettacode/fibonacci.mirah +21 -0
  25. data/examples/rosettacode/file-size.mirah +5 -0
  26. data/examples/rosettacode/fizz-buzz.mirah +21 -0
  27. data/examples/rosettacode/flatten-a-list.mirah +24 -0
  28. data/examples/rosettacode/guess-the-number.mirah +21 -0
  29. data/examples/rosettacode/is-string-numeric.mirah +127 -0
  30. data/examples/rosettacode/palindrome.mirah +14 -0
  31. data/examples/rosettacode/repeat-a-string.mirah +9 -0
  32. data/examples/rosettacode/reverse-a-string.mirah +6 -0
  33. data/examples/rosettacode/rot-13.mirah +20 -0
  34. data/examples/rosettacode/user-input.mirah +4 -0
  35. data/examples/sort_closure.mirah +1 -1
  36. data/javalib/dynalink-0.2.jar +0 -0
  37. data/javalib/mirah-bootstrap.jar +0 -0
  38. data/lib/mirah.rb +7 -16
  39. data/lib/mirah/ast.rb +22 -92
  40. data/lib/mirah/ast/call.rb +41 -9
  41. data/lib/mirah/ast/class.rb +34 -6
  42. data/lib/mirah/ast/flow.rb +17 -5
  43. data/lib/mirah/ast/intrinsics.rb +50 -8
  44. data/lib/mirah/ast/literal.rb +7 -0
  45. data/lib/mirah/ast/local.rb +9 -1
  46. data/lib/mirah/ast/method.rb +21 -8
  47. data/lib/mirah/ast/scope.rb +1 -1
  48. data/lib/mirah/ast/structure.rb +81 -15
  49. data/lib/mirah/ast/type.rb +4 -0
  50. data/{bin/dubyc → lib/mirah/commands.rb} +4 -11
  51. data/lib/mirah/commands/base.rb +54 -0
  52. data/lib/mirah/commands/compile.rb +39 -0
  53. data/{examples/wiki/Rakefile → lib/mirah/commands/parse.rb} +18 -17
  54. data/lib/mirah/commands/run.rb +73 -0
  55. data/lib/mirah/compiler.rb +37 -417
  56. data/lib/mirah/compiler/call.rb +45 -0
  57. data/lib/mirah/compiler/class.rb +81 -0
  58. data/lib/mirah/compiler/flow.rb +109 -0
  59. data/lib/mirah/compiler/literal.rb +130 -0
  60. data/lib/mirah/compiler/local.rb +59 -0
  61. data/lib/mirah/compiler/method.rb +44 -0
  62. data/lib/mirah/compiler/structure.rb +65 -0
  63. data/lib/mirah/compiler/type.rb +27 -0
  64. data/lib/mirah/env.rb +4 -6
  65. data/lib/mirah/generator.rb +61 -0
  66. data/lib/mirah/jvm/compiler.rb +8 -867
  67. data/lib/mirah/jvm/compiler/base.rb +270 -0
  68. data/lib/mirah/jvm/compiler/java_source.rb +779 -0
  69. data/lib/mirah/jvm/compiler/jvm_bytecode.rb +851 -0
  70. data/lib/mirah/jvm/method_lookup.rb +21 -2
  71. data/lib/mirah/jvm/source_generator/builder.rb +10 -13
  72. data/lib/mirah/jvm/source_generator/loops.rb +99 -93
  73. data/lib/mirah/jvm/source_generator/precompile.rb +3 -2
  74. data/lib/mirah/jvm/typer.rb +3 -3
  75. data/lib/mirah/jvm/types.rb +10 -426
  76. data/lib/mirah/jvm/types/array_type.rb +62 -0
  77. data/lib/mirah/jvm/types/basic_types.rb +1 -0
  78. data/lib/mirah/jvm/types/dynamic_type.rb +46 -0
  79. data/lib/mirah/jvm/types/factory.rb +23 -5
  80. data/lib/mirah/jvm/types/interface_definition.rb +20 -0
  81. data/lib/mirah/jvm/types/intrinsics.rb +15 -3
  82. data/lib/mirah/jvm/types/meta_type.rb +45 -0
  83. data/lib/mirah/jvm/types/methods.rb +12 -5
  84. data/lib/mirah/jvm/types/null_type.rb +27 -0
  85. data/lib/mirah/jvm/types/primitive_type.rb +38 -0
  86. data/lib/mirah/jvm/types/source_mirror.rb +266 -0
  87. data/lib/mirah/jvm/types/type.rb +173 -0
  88. data/lib/mirah/jvm/types/type_definition.rb +55 -0
  89. data/lib/mirah/jvm/types/unreachable_type.rb +27 -0
  90. data/lib/mirah/jvm/types/void_type.rb +19 -0
  91. data/lib/mirah/parser.rb +90 -0
  92. data/lib/mirah/plugin/gwt.rb +5 -5
  93. data/lib/mirah/plugin/java.rb +1 -1
  94. data/lib/mirah/transform.rb +4 -321
  95. data/lib/mirah/transform/ast_ext.rb +63 -0
  96. data/lib/mirah/transform/error.rb +13 -0
  97. data/lib/mirah/transform/helper.rb +761 -0
  98. data/lib/mirah/transform/transformer.rb +255 -0
  99. data/lib/mirah/typer.rb +2 -383
  100. data/{bin/duby → lib/mirah/typer/base.rb} +12 -10
  101. data/lib/mirah/typer/simple.rb +377 -0
  102. data/lib/mirah/util/argument_processor.rb +114 -0
  103. data/lib/mirah/util/class_loader.rb +37 -0
  104. data/lib/mirah/util/compilation_state.rb +51 -0
  105. data/lib/mirah/util/process_errors.rb +33 -0
  106. data/lib/mirah/version.rb +1 -1
  107. data/lib/mirah_task.rb +3 -2
  108. data/test/{test_ast.rb → core/test_ast.rb} +6 -0
  109. data/test/{test_compilation.rb → core/test_compilation.rb} +0 -0
  110. data/test/{test_env.rb → core/test_env.rb} +24 -25
  111. data/test/{test_macros.rb → core/test_macros.rb} +2 -4
  112. data/test/{test_typer.rb → core/test_typer.rb} +0 -3
  113. data/test/jvm/bytecode_test_helper.rb +181 -0
  114. data/test/{test_javac_compiler.rb → jvm/javac_test_helper.rb} +38 -22
  115. data/test/jvm/test_enumerable.rb +304 -0
  116. data/test/{test_java_typer.rb → jvm/test_java_typer.rb} +2 -4
  117. data/test/{test_jvm_compiler.rb → jvm/test_jvm_compiler.rb} +146 -443
  118. data/test/jvm/test_macros.rb +147 -0
  119. data/test/jvm/test_main_method.rb +15 -0
  120. data/test/{test_gwt.rb → plugins/test_gwt.rb} +0 -2
  121. metadata +103 -91
  122. data/bin/jrubyp +0 -52
  123. data/examples/wiki/src/org/mirah/wiki/MirahWiki.duby +0 -339
  124. data/examples/wiki/src/org/mirah/wiki/edit.eduby.html +0 -42
  125. data/examples/wiki/src/org/mirah/wiki/error.eduby.html +0 -2
  126. data/examples/wiki/src/org/mirah/wiki/layout.eduby.html +0 -69
  127. data/examples/wiki/src/org/mirah/wiki/parser.eduby.html +0 -7
  128. data/examples/wiki/src/org/mirah/wiki/view.eduby.html +0 -15
  129. data/examples/wiki/war/WEB-INF/classes/test/HeredocContext.class +0 -0
  130. data/examples/wiki/war/WEB-INF/classes/test/MirahParser.class +0 -0
  131. data/examples/wiki/war/WEB-INF/lib/appengine-api.jar +0 -0
  132. data/examples/wiki/war/WEB-INF/lib/dubydatastore.jar +0 -0
  133. data/examples/wiki/war/WEB-INF/lib/jmeta-runtime.jar +0 -0
  134. data/examples/wiki/war/WEB-INF/lib/pegdown-stubs.jar +0 -0
  135. data/examples/wiki/war/WEB-INF/pegdown.jar +0 -0
  136. data/examples/wiki/war/app.yaml +0 -21
  137. data/examples/wiki/war/public/favicon.ico +0 -0
  138. data/examples/wiki/war/public/images/appengine_duby.png +0 -0
  139. data/examples/wiki/war/public/images/back.gif +0 -0
  140. data/examples/wiki/war/public/images/dir.gif +0 -0
  141. data/examples/wiki/war/public/images/file.gif +0 -0
  142. data/examples/wiki/war/public/javascripts/prettify.js +0 -61
  143. data/examples/wiki/war/public/robots.txt +0 -0
  144. data/examples/wiki/war/public/stylesheets/main.css +0 -156
  145. data/examples/wiki/war/public/stylesheets/prettify.css +0 -1
  146. data/examples/wiki/war/public/stylesheets/sh_style.css +0 -66
  147. data/examples/wiki/war/public/stylesheets/source.css +0 -21
  148. data/examples/wiki/war/public/wmd/images/bg-fill.png +0 -0
  149. data/examples/wiki/war/public/wmd/images/bg.png +0 -0
  150. data/examples/wiki/war/public/wmd/images/blockquote.png +0 -0
  151. data/examples/wiki/war/public/wmd/images/bold.png +0 -0
  152. data/examples/wiki/war/public/wmd/images/code.png +0 -0
  153. data/examples/wiki/war/public/wmd/images/h1.png +0 -0
  154. data/examples/wiki/war/public/wmd/images/hr.png +0 -0
  155. data/examples/wiki/war/public/wmd/images/img.png +0 -0
  156. data/examples/wiki/war/public/wmd/images/italic.png +0 -0
  157. data/examples/wiki/war/public/wmd/images/link.png +0 -0
  158. data/examples/wiki/war/public/wmd/images/ol.png +0 -0
  159. data/examples/wiki/war/public/wmd/images/redo.png +0 -0
  160. data/examples/wiki/war/public/wmd/images/separator.png +0 -0
  161. data/examples/wiki/war/public/wmd/images/ul.png +0 -0
  162. data/examples/wiki/war/public/wmd/images/undo.png +0 -0
  163. data/examples/wiki/war/public/wmd/images/wmd-on.png +0 -0
  164. data/examples/wiki/war/public/wmd/images/wmd.png +0 -0
  165. data/examples/wiki/war/public/wmd/showdown.js +0 -421
  166. data/examples/wiki/war/public/wmd/wmd-base.js +0 -1799
  167. data/examples/wiki/war/public/wmd/wmd-plus.js +0 -311
  168. data/examples/wiki/war/public/wmd/wmd.js +0 -73
  169. data/examples/wiki/war/src/org/mirah/wiki/MirahWiki.duby +0 -339
  170. data/examples/wiki/war/src/org/mirah/wiki/edit.eduby.html +0 -42
  171. data/examples/wiki/war/src/org/mirah/wiki/error.eduby.html +0 -2
  172. data/examples/wiki/war/src/org/mirah/wiki/layout.eduby.html +0 -69
  173. data/examples/wiki/war/src/org/mirah/wiki/parser.eduby.html +0 -7
  174. data/examples/wiki/war/src/org/mirah/wiki/view.eduby.html +0 -15
  175. data/javalib/dynalink-0.1.jar +0 -0
  176. data/javalib/jsr292-mock.jar +0 -0
  177. data/lib/mirah/class_loader.rb +0 -35
  178. data/lib/mirah/compilation_state.rb +0 -28
  179. data/lib/mirah/impl.rb +0 -273
  180. data/lib/mirah/jvm/base.rb +0 -267
  181. data/lib/mirah/jvm/source_compiler.rb +0 -760
  182. data/lib/mirah/transform2.rb +0 -752
@@ -0,0 +1,147 @@
1
+ # Copyright (c) 2010 The Mirah project authors. All Rights Reserved.
2
+ # All contributing project authors may be found in the NOTICE file.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ class TestMacros < Test::Unit::TestCase
17
+ def test_defmacro
18
+ cls, = compile(<<-EOF)
19
+ defmacro bar(x) do
20
+ x
21
+ end
22
+
23
+ def foo
24
+ bar("bar")
25
+ end
26
+ EOF
27
+
28
+ assert_equal("bar", cls.foo)
29
+ assert(!cls.respond_to?(:bar))
30
+ end
31
+
32
+
33
+ def test_instance_macro
34
+ # TODO fix annotation output and create a duby.anno.Extensions annotation.
35
+ script, cls = compile(<<-EOF)
36
+ class InstanceMacros
37
+ def foobar
38
+ "foobar"
39
+ end
40
+
41
+ macro def macro_foobar
42
+ quote {foobar}
43
+ end
44
+
45
+ def call_foobar
46
+ macro_foobar
47
+ end
48
+ end
49
+
50
+ def macro
51
+ InstanceMacros.new.macro_foobar
52
+ end
53
+
54
+ def function
55
+ InstanceMacros.new.call_foobar
56
+ end
57
+ EOF
58
+
59
+ assert_equal("foobar", script.function)
60
+ assert_equal("foobar", script.macro)
61
+ end
62
+
63
+ def test_unquote
64
+ # TODO fix annotation output and create a duby.anno.Extensions annotation.
65
+
66
+ script, cls = compile(<<-'EOF')
67
+ class UnquoteMacros
68
+ macro def make_attr(name_node, type)
69
+ name = name_node.string_value
70
+ quote do
71
+ def `name`
72
+ @`name`
73
+ end
74
+ def `"#{name}_set"`(`name`:`type`)
75
+ @`name` = `name`
76
+ end
77
+ end
78
+ end
79
+
80
+ make_attr :foo, :int
81
+ end
82
+
83
+ x = UnquoteMacros.new
84
+ puts x.foo
85
+ x.foo = 3
86
+ puts x.foo
87
+ EOF
88
+ assert_output("0\n3\n") {script.main(nil)}
89
+ end
90
+
91
+ def test_macro_hygene
92
+ cls, = compile(<<-EOF)
93
+ macro def doubleIt(arg)
94
+ quote do
95
+ x = `arg`
96
+ x = x + x
97
+ x
98
+ end
99
+ end
100
+
101
+ def foo
102
+ x = "1"
103
+ puts doubleIt(x)
104
+ puts x
105
+ end
106
+ EOF
107
+
108
+ assert_output("11\n1\n") {cls.foo}
109
+ end
110
+
111
+
112
+ def test_add_args_in_macro
113
+ cls, = compile(<<-EOF)
114
+ macro def foo(a)
115
+ import duby.lang.compiler.Node
116
+ quote { bar "1", `Node(a.child_nodes.get(0)).child_nodes`, "2"}
117
+ end
118
+
119
+ def bar(a:String, b:String, c:String, d:String)
120
+ puts "\#{a} \#{b} \#{c} \#{d}"
121
+ end
122
+
123
+ foo(["a", "b"])
124
+ EOF
125
+
126
+ assert_output("1 a b 2\n") do
127
+ cls.main(nil)
128
+ end
129
+ end
130
+
131
+ def test_block_parameter_uses_outer_scope
132
+ cls, = compile(<<-EOF)
133
+ macro def foo(&block)
134
+ quote { z = `block.body`; puts z }
135
+ end
136
+ apple = 1
137
+ foo do
138
+ apple + 2
139
+ end
140
+ EOF
141
+
142
+ assert_output("3\n") do
143
+ cls.main(nil)
144
+ end
145
+ end
146
+
147
+ end
@@ -0,0 +1,15 @@
1
+ class TestMainMethod < Test::Unit::TestCase
2
+ def test_main_generation_for_file_with_class_of_same_name
3
+ code = <<-EOC
4
+ class WithMain
5
+ end
6
+ puts 'bar'
7
+ EOC
8
+
9
+ main_class, = compile code, 'with_main'
10
+
11
+ assert_output "bar\n" do
12
+ main_class.main(nil)
13
+ end
14
+ end
15
+ end
@@ -13,8 +13,6 @@
13
13
  # See the License for the specific language governing permissions and
14
14
  # limitations under the License.
15
15
 
16
- $:.unshift File.join(File.dirname(__FILE__),'..','lib')
17
-
18
16
  require 'test/unit'
19
17
  require 'mirah'
20
18
  require 'jruby'
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: mirah
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.7
5
+ version: 0.0.8
6
6
  platform: java
7
7
  authors:
8
8
  - Charles Oliver Nutter
@@ -11,20 +11,20 @@ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
13
 
14
- date: 2011-03-20 17:08:55.863000 -05:00
14
+ date: 2011-08-31 00:00:00 -06:00
15
15
  default_executable:
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: bitescript
19
- prerelease: false
20
- requirement: &id001 !ruby/object:Gem::Requirement
19
+ version_requirements: &id001 !ruby/object:Gem::Requirement
21
20
  none: false
22
21
  requirements:
23
22
  - - ">="
24
23
  - !ruby/object:Gem::Version
25
24
  version: 0.0.8
25
+ requirement: *id001
26
+ prerelease: false
26
27
  type: :runtime
27
- version_requirements: *id001
28
28
  description: |-
29
29
  Mirah is a customizable programming language featuring static types,
30
30
  local type inference and a heavily Ruby-inspired syntax. Mirah
@@ -37,19 +37,12 @@ executables:
37
37
  - mirah
38
38
  - mirahc
39
39
  - mirahp
40
- - duby
41
- - dubyc
42
- - dubyp
43
40
  extensions: []
44
41
 
45
42
  extra_rdoc_files:
46
43
  - History.txt
47
44
  - README.txt
48
45
  files:
49
- - bin/duby
50
- - bin/dubyc
51
- - bin/dubyp
52
- - bin/jrubyp
53
46
  - bin/mirah
54
47
  - bin/mirah.cmd
55
48
  - bin/mirahc
@@ -61,14 +54,13 @@ files:
61
54
  - lib/mirah_task.rb
62
55
  - lib/mirah/appengine_tasks.rb
63
56
  - lib/mirah/ast.rb
64
- - lib/mirah/class_loader.rb
65
- - lib/mirah/compilation_state.rb
57
+ - lib/mirah/commands.rb
66
58
  - lib/mirah/compiler.rb
67
59
  - lib/mirah/env.rb
68
60
  - lib/mirah/errors.rb
69
- - lib/mirah/impl.rb
61
+ - lib/mirah/generator.rb
62
+ - lib/mirah/parser.rb
70
63
  - lib/mirah/transform.rb
71
- - lib/mirah/transform2.rb
72
64
  - lib/mirah/typer.rb
73
65
  - lib/mirah/version.rb
74
66
  - lib/mirah/ast/call.rb
@@ -81,39 +73,77 @@ files:
81
73
  - lib/mirah/ast/scope.rb
82
74
  - lib/mirah/ast/structure.rb
83
75
  - lib/mirah/ast/type.rb
84
- - lib/mirah/jvm/base.rb
76
+ - lib/mirah/commands/base.rb
77
+ - lib/mirah/commands/compile.rb
78
+ - lib/mirah/commands/parse.rb
79
+ - lib/mirah/commands/run.rb
80
+ - lib/mirah/compiler/call.rb
81
+ - lib/mirah/compiler/class.rb
82
+ - lib/mirah/compiler/flow.rb
83
+ - lib/mirah/compiler/literal.rb
84
+ - lib/mirah/compiler/local.rb
85
+ - lib/mirah/compiler/method.rb
86
+ - lib/mirah/compiler/structure.rb
87
+ - lib/mirah/compiler/type.rb
85
88
  - lib/mirah/jvm/compiler.rb
86
89
  - lib/mirah/jvm/method_lookup.rb
87
- - lib/mirah/jvm/source_compiler.rb
88
90
  - lib/mirah/jvm/typer.rb
89
91
  - lib/mirah/jvm/types.rb
92
+ - lib/mirah/jvm/compiler/base.rb
93
+ - lib/mirah/jvm/compiler/java_source.rb
94
+ - lib/mirah/jvm/compiler/jvm_bytecode.rb
90
95
  - lib/mirah/jvm/source_generator/builder.rb
91
96
  - lib/mirah/jvm/source_generator/loops.rb
92
97
  - lib/mirah/jvm/source_generator/precompile.rb
93
98
  - lib/mirah/jvm/source_generator/typer.rb
99
+ - lib/mirah/jvm/types/array_type.rb
94
100
  - lib/mirah/jvm/types/basic_types.rb
95
101
  - lib/mirah/jvm/types/boolean.rb
102
+ - lib/mirah/jvm/types/dynamic_type.rb
96
103
  - lib/mirah/jvm/types/enumerable.rb
97
104
  - lib/mirah/jvm/types/extensions.rb
98
105
  - lib/mirah/jvm/types/factory.rb
99
106
  - lib/mirah/jvm/types/floats.rb
100
107
  - lib/mirah/jvm/types/integers.rb
108
+ - lib/mirah/jvm/types/interface_definition.rb
101
109
  - lib/mirah/jvm/types/intrinsics.rb
102
110
  - lib/mirah/jvm/types/literals.rb
111
+ - lib/mirah/jvm/types/meta_type.rb
103
112
  - lib/mirah/jvm/types/methods.rb
113
+ - lib/mirah/jvm/types/null_type.rb
104
114
  - lib/mirah/jvm/types/number.rb
115
+ - lib/mirah/jvm/types/primitive_type.rb
116
+ - lib/mirah/jvm/types/source_mirror.rb
117
+ - lib/mirah/jvm/types/type.rb
118
+ - lib/mirah/jvm/types/type_definition.rb
119
+ - lib/mirah/jvm/types/unreachable_type.rb
120
+ - lib/mirah/jvm/types/void_type.rb
105
121
  - lib/mirah/plugin/edb.rb
106
122
  - lib/mirah/plugin/gwt.rb
107
123
  - lib/mirah/plugin/java.rb
108
- - test/test_ast.rb
109
- - test/test_compilation.rb
110
- - test/test_env.rb
111
- - test/test_gwt.rb
112
- - test/test_java_typer.rb
113
- - test/test_javac_compiler.rb
114
- - test/test_jvm_compiler.rb
115
- - test/test_macros.rb
116
- - test/test_typer.rb
124
+ - lib/mirah/transform/ast_ext.rb
125
+ - lib/mirah/transform/error.rb
126
+ - lib/mirah/transform/helper.rb
127
+ - lib/mirah/transform/transformer.rb
128
+ - lib/mirah/typer/base.rb
129
+ - lib/mirah/typer/simple.rb
130
+ - lib/mirah/util/argument_processor.rb
131
+ - lib/mirah/util/class_loader.rb
132
+ - lib/mirah/util/compilation_state.rb
133
+ - lib/mirah/util/process_errors.rb
134
+ - test/core/test_ast.rb
135
+ - test/core/test_compilation.rb
136
+ - test/core/test_env.rb
137
+ - test/core/test_macros.rb
138
+ - test/core/test_typer.rb
139
+ - test/jvm/bytecode_test_helper.rb
140
+ - test/jvm/javac_test_helper.rb
141
+ - test/jvm/test_enumerable.rb
142
+ - test/jvm/test_java_typer.rb
143
+ - test/jvm/test_jvm_compiler.rb
144
+ - test/jvm/test_macros.rb
145
+ - test/jvm/test_main_method.rb
146
+ - test/plugins/test_gwt.rb
117
147
  - examples/bintrees.mirah
118
148
  - examples/construction.mirah
119
149
  - examples/dynamic.mirah
@@ -121,6 +151,7 @@ files:
121
151
  - examples/fib.mirah
122
152
  - examples/fields.mirah
123
153
  - examples/fractal.mirah
154
+ - examples/interfaces.mirah
124
155
  - examples/java_thing.mirah
125
156
  - examples/simple_class.mirah
126
157
  - examples/sort_closure.mirah
@@ -133,65 +164,38 @@ files:
133
164
  - examples/appengine/src/org/mirah/list.dhtml
134
165
  - examples/appengine/src/org/mirah/MirahApp.mirah
135
166
  - examples/appengine/war/WEB-INF/lib/dubydatastore.jar
167
+ - examples/macros/square.mirah
168
+ - examples/macros/square_int.mirah
169
+ - examples/macros/string-each-char.mirah
170
+ - examples/maven/pom.xml
171
+ - examples/maven/README.txt
172
+ - examples/maven/src/main/mirah/hello_mirah.mirah
136
173
  - examples/plugins/appengine/Rakefile
137
174
  - examples/plugins/appengine/src/com/google/appengine/ext/duby/db/MetaModel.mirah
138
175
  - examples/plugins/appengine/src/com/google/appengine/ext/duby/db/Model.duby
139
176
  - examples/plugins/appengine/test/com/google/appengine/ext/duby/db/ModelTest.duby
140
- - examples/wiki/Rakefile
141
- - examples/wiki/src/org/mirah/wiki/edit.eduby.html
142
- - examples/wiki/src/org/mirah/wiki/error.eduby.html
143
- - examples/wiki/src/org/mirah/wiki/layout.eduby.html
144
- - examples/wiki/src/org/mirah/wiki/MirahWiki.duby
145
- - examples/wiki/src/org/mirah/wiki/parser.eduby.html
146
- - examples/wiki/src/org/mirah/wiki/view.eduby.html
147
- - examples/wiki/war/app.yaml
148
- - examples/wiki/war/public/favicon.ico
149
- - examples/wiki/war/public/robots.txt
150
- - examples/wiki/war/public/images/appengine_duby.png
151
- - examples/wiki/war/public/images/back.gif
152
- - examples/wiki/war/public/images/dir.gif
153
- - examples/wiki/war/public/images/file.gif
154
- - examples/wiki/war/public/javascripts/prettify.js
155
- - examples/wiki/war/public/stylesheets/main.css
156
- - examples/wiki/war/public/stylesheets/prettify.css
157
- - examples/wiki/war/public/stylesheets/sh_style.css
158
- - examples/wiki/war/public/stylesheets/source.css
159
- - examples/wiki/war/public/wmd/showdown.js
160
- - examples/wiki/war/public/wmd/wmd-base.js
161
- - examples/wiki/war/public/wmd/wmd-plus.js
162
- - examples/wiki/war/public/wmd/wmd.js
163
- - examples/wiki/war/public/wmd/images/bg-fill.png
164
- - examples/wiki/war/public/wmd/images/bg.png
165
- - examples/wiki/war/public/wmd/images/blockquote.png
166
- - examples/wiki/war/public/wmd/images/bold.png
167
- - examples/wiki/war/public/wmd/images/code.png
168
- - examples/wiki/war/public/wmd/images/h1.png
169
- - examples/wiki/war/public/wmd/images/hr.png
170
- - examples/wiki/war/public/wmd/images/img.png
171
- - examples/wiki/war/public/wmd/images/italic.png
172
- - examples/wiki/war/public/wmd/images/link.png
173
- - examples/wiki/war/public/wmd/images/ol.png
174
- - examples/wiki/war/public/wmd/images/redo.png
175
- - examples/wiki/war/public/wmd/images/separator.png
176
- - examples/wiki/war/public/wmd/images/ul.png
177
- - examples/wiki/war/public/wmd/images/undo.png
178
- - examples/wiki/war/public/wmd/images/wmd-on.png
179
- - examples/wiki/war/public/wmd/images/wmd.png
180
- - examples/wiki/war/src/org/mirah/wiki/edit.eduby.html
181
- - examples/wiki/war/src/org/mirah/wiki/error.eduby.html
182
- - examples/wiki/war/src/org/mirah/wiki/layout.eduby.html
183
- - examples/wiki/war/src/org/mirah/wiki/MirahWiki.duby
184
- - examples/wiki/war/src/org/mirah/wiki/parser.eduby.html
185
- - examples/wiki/war/src/org/mirah/wiki/view.eduby.html
186
- - examples/wiki/war/WEB-INF/pegdown.jar
187
- - examples/wiki/war/WEB-INF/classes/test/HeredocContext.class
188
- - examples/wiki/war/WEB-INF/classes/test/MirahParser.class
189
- - examples/wiki/war/WEB-INF/lib/appengine-api.jar
190
- - examples/wiki/war/WEB-INF/lib/dubydatastore.jar
191
- - examples/wiki/war/WEB-INF/lib/jmeta-runtime.jar
192
- - examples/wiki/war/WEB-INF/lib/pegdown-stubs.jar
193
- - javalib/dynalink-0.1.jar
194
- - javalib/jsr292-mock.jar
177
+ - examples/rosettacode/100-doors.mirah
178
+ - examples/rosettacode/99-bottles-of-beer.mirah
179
+ - examples/rosettacode/boolean-values.mirah
180
+ - examples/rosettacode/comments.mirah
181
+ - examples/rosettacode/copy-a-string.mirah
182
+ - examples/rosettacode/count-occurrences-of-a-substring.mirah
183
+ - examples/rosettacode/create-a-file.mirah
184
+ - examples/rosettacode/empty-string.mirah
185
+ - examples/rosettacode/factorial.mirah
186
+ - examples/rosettacode/fibonacci.mirah
187
+ - examples/rosettacode/file-size.mirah
188
+ - examples/rosettacode/fizz-buzz.mirah
189
+ - examples/rosettacode/flatten-a-list.mirah
190
+ - examples/rosettacode/guess-the-number.mirah
191
+ - examples/rosettacode/is-string-numeric.mirah
192
+ - examples/rosettacode/palindrome.mirah
193
+ - examples/rosettacode/README.txt
194
+ - examples/rosettacode/repeat-a-string.mirah
195
+ - examples/rosettacode/reverse-a-string.mirah
196
+ - examples/rosettacode/rot-13.mirah
197
+ - examples/rosettacode/user-input.mirah
198
+ - javalib/dynalink-0.2.jar
195
199
  - javalib/mirah-bootstrap.jar
196
200
  - javalib/mirah-parser.jar
197
201
  - History.txt
@@ -212,12 +216,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
212
216
  requirements:
213
217
  - - ">="
214
218
  - !ruby/object:Gem::Version
219
+ hash: 2
220
+ segments:
221
+ - 0
215
222
  version: "0"
216
223
  required_rubygems_version: !ruby/object:Gem::Requirement
217
224
  none: false
218
225
  requirements:
219
226
  - - ">="
220
227
  - !ruby/object:Gem::Version
228
+ hash: 2
229
+ segments:
230
+ - 0
221
231
  version: "0"
222
232
  requirements: []
223
233
 
@@ -227,12 +237,14 @@ signing_key:
227
237
  specification_version: 3
228
238
  summary: Mirah is a customizable programming language featuring static types, local type inference and a heavily Ruby-inspired syntax
229
239
  test_files:
230
- - test/test_ast.rb
231
- - test/test_compilation.rb
232
- - test/test_env.rb
233
- - test/test_gwt.rb
234
- - test/test_java_typer.rb
235
- - test/test_javac_compiler.rb
236
- - test/test_jvm_compiler.rb
237
- - test/test_macros.rb
238
- - test/test_typer.rb
240
+ - test/core/test_ast.rb
241
+ - test/core/test_compilation.rb
242
+ - test/core/test_env.rb
243
+ - test/core/test_macros.rb
244
+ - test/core/test_typer.rb
245
+ - test/jvm/test_enumerable.rb
246
+ - test/jvm/test_java_typer.rb
247
+ - test/jvm/test_jvm_compiler.rb
248
+ - test/jvm/test_macros.rb
249
+ - test/jvm/test_main_method.rb
250
+ - test/plugins/test_gwt.rb