melbourne 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (115) hide show
  1. data/HISTORY.md +9 -0
  2. data/LICENSE +0 -0
  3. data/README.md +43 -0
  4. data/Rakefile +20 -17
  5. data/ext/melbourne/bstring-license.txt +0 -0
  6. data/ext/melbourne/bstrlib.c +0 -0
  7. data/ext/melbourne/bstrlib.h +0 -0
  8. data/ext/melbourne/extconf.rb +0 -0
  9. data/ext/melbourne/grammar.cpp +0 -0
  10. data/ext/melbourne/grammar.hpp +0 -0
  11. data/ext/melbourne/grammar.y +0 -0
  12. data/ext/melbourne/internal.hpp +0 -0
  13. data/ext/melbourne/lex.c.tab +0 -0
  14. data/ext/melbourne/local_state.hpp +0 -0
  15. data/ext/melbourne/melbourne.cpp +0 -0
  16. data/ext/melbourne/node.hpp +0 -0
  17. data/ext/melbourne/node_types.cpp +0 -0
  18. data/ext/melbourne/node_types.hpp +0 -0
  19. data/ext/melbourne/node_types.rb +0 -0
  20. data/ext/melbourne/quark.cpp +0 -0
  21. data/ext/melbourne/quark.hpp +0 -0
  22. data/ext/melbourne/symbols.cpp +0 -0
  23. data/ext/melbourne/symbols.hpp +0 -0
  24. data/ext/melbourne/var_table.cpp +0 -0
  25. data/ext/melbourne/var_table.hpp +0 -0
  26. data/ext/melbourne/visitor.cpp +0 -0
  27. data/ext/melbourne/visitor.hpp +0 -0
  28. data/lib/melbourne.rb +16 -18
  29. data/lib/melbourne/ast.rb +14 -16
  30. data/lib/melbourne/ast/constants.rb +5 -5
  31. data/lib/melbourne/ast/control_flow.rb +18 -18
  32. data/lib/melbourne/ast/data.rb +1 -1
  33. data/lib/melbourne/ast/definitions.rb +37 -37
  34. data/lib/melbourne/ast/exceptions.rb +9 -9
  35. data/lib/melbourne/ast/file.rb +0 -0
  36. data/lib/melbourne/ast/grapher.rb +7 -1
  37. data/lib/melbourne/ast/literals.rb +14 -14
  38. data/lib/melbourne/ast/node.rb +1 -1
  39. data/lib/melbourne/ast/operators.rb +6 -6
  40. data/lib/melbourne/ast/self.rb +0 -0
  41. data/lib/melbourne/ast/sends.rb +23 -23
  42. data/lib/melbourne/ast/values.rb +6 -6
  43. data/lib/melbourne/ast/variables.rb +15 -15
  44. data/lib/melbourne/parser.rb +1 -1
  45. data/lib/melbourne/processor.rb +1 -1
  46. data/spec/helpers/ast/node.rb +0 -0
  47. data/spec/helpers/ast/reduced_graph.rb +0 -0
  48. data/spec/lib/parser/alias_spec.rb +0 -0
  49. data/spec/lib/parser/and_spec.rb +0 -0
  50. data/spec/lib/parser/array_spec.rb +0 -0
  51. data/spec/lib/parser/attrasgn_spec.rb +0 -0
  52. data/spec/lib/parser/back_ref_spec.rb +0 -0
  53. data/spec/lib/parser/call_spec.rb +0 -0
  54. data/spec/lib/parser/case_spec.rb +0 -0
  55. data/spec/lib/parser/cdecl_spec.rb +0 -0
  56. data/spec/lib/parser/class_spec.rb +0 -0
  57. data/spec/lib/parser/colon2_spec.rb +0 -0
  58. data/spec/lib/parser/colon3_spec.rb +0 -0
  59. data/spec/lib/parser/const_spec.rb +0 -0
  60. data/spec/lib/parser/cvar_spec.rb +0 -0
  61. data/spec/lib/parser/cvasgn_spec.rb +0 -0
  62. data/spec/lib/parser/cvdecl_spec.rb +0 -0
  63. data/spec/lib/parser/defined_spec.rb +0 -0
  64. data/spec/lib/parser/defn_spec.rb +0 -0
  65. data/spec/lib/parser/defs_spec.rb +0 -0
  66. data/spec/lib/parser/dot2_spec.rb +0 -0
  67. data/spec/lib/parser/dot3_spec.rb +0 -0
  68. data/spec/lib/parser/dregx_spec.rb +0 -0
  69. data/spec/lib/parser/dstr_spec.rb +0 -0
  70. data/spec/lib/parser/dsym_spec.rb +0 -0
  71. data/spec/lib/parser/dxstr_spec.rb +0 -0
  72. data/spec/lib/parser/ensure_spec.rb +0 -0
  73. data/spec/lib/parser/false_spec.rb +0 -0
  74. data/spec/lib/parser/flip2_spec.rb +0 -0
  75. data/spec/lib/parser/flip3_spec.rb +0 -0
  76. data/spec/lib/parser/for_spec.rb +0 -0
  77. data/spec/lib/parser/gasgn_spec.rb +0 -0
  78. data/spec/lib/parser/gvar_spec.rb +0 -0
  79. data/spec/lib/parser/hash_spec.rb +0 -0
  80. data/spec/lib/parser/iasgn_spec.rb +0 -0
  81. data/spec/lib/parser/if_spec.rb +0 -0
  82. data/spec/lib/parser/iter_spec.rb +0 -0
  83. data/spec/lib/parser/lasgn_spec.rb +0 -0
  84. data/spec/lib/parser/lit_spec.rb +0 -0
  85. data/spec/lib/parser/masgn_spec.rb +0 -0
  86. data/spec/lib/parser/match2_spec.rb +0 -0
  87. data/spec/lib/parser/match3_spec.rb +0 -0
  88. data/spec/lib/parser/match_spec.rb +0 -0
  89. data/spec/lib/parser/module_spec.rb +0 -0
  90. data/spec/lib/parser/nil_spec.rb +0 -0
  91. data/spec/lib/parser/not_spec.rb +0 -0
  92. data/spec/lib/parser/nth_ref_spec.rb +0 -0
  93. data/spec/lib/parser/op_asgn_spec.rb +0 -0
  94. data/spec/lib/parser/or_spec.rb +0 -0
  95. data/spec/lib/parser/postexe_spec.rb +0 -0
  96. data/spec/lib/parser/regex_spec.rb +0 -0
  97. data/spec/lib/parser/rescue_spec.rb +0 -0
  98. data/spec/lib/parser/return_spec.rb +0 -0
  99. data/spec/lib/parser/sclass_spec.rb +0 -0
  100. data/spec/lib/parser/str_spec.rb +0 -0
  101. data/spec/lib/parser/super_spec.rb +0 -0
  102. data/spec/lib/parser/true_spec.rb +0 -0
  103. data/spec/lib/parser/undef_spec.rb +0 -0
  104. data/spec/lib/parser/until_spec.rb +0 -0
  105. data/spec/lib/parser/valias_spec.rb +0 -0
  106. data/spec/lib/parser/while_spec.rb +0 -0
  107. data/spec/lib/parser/xstr_spec.rb +0 -0
  108. data/spec/lib/parser/yield_spec.rb +0 -0
  109. data/spec/lib/parser/zsuper_spec.rb +0 -0
  110. data/spec/matchers/parse_as.rb +0 -0
  111. data/spec/spec_helper.rb +0 -0
  112. metadata +19 -8
  113. data/HISTORY +0 -3
  114. data/README.rdoc +0 -38
  115. data/VERSION.yml +0 -4
@@ -2,7 +2,7 @@ module Melbourne
2
2
 
3
3
  module AST
4
4
 
5
- class Node #:nodoc:
5
+ class Node
6
6
 
7
7
  attr_accessor :line
8
8
 
@@ -16,7 +16,7 @@ module Melbourne
16
16
  #
17
17
  attr_accessor :right
18
18
 
19
- def initialize(line, left, right) #:nodoc:
19
+ def initialize(line, left, right)
20
20
  @line = line
21
21
  @left = left
22
22
  @right = right
@@ -42,7 +42,7 @@ module Melbourne
42
42
  #
43
43
  attr_accessor :value
44
44
 
45
- def initialize(line, value) #:nodoc:
45
+ def initialize(line, value)
46
46
  @line = line
47
47
  @value = value
48
48
  end
@@ -50,7 +50,7 @@ module Melbourne
50
50
  end
51
51
 
52
52
  # TODO: document!
53
- class OpAssign1 < Node #:nodoc:
53
+ class OpAssign1 < Node
54
54
 
55
55
  attr_accessor :receiver
56
56
 
@@ -71,7 +71,7 @@ module Melbourne
71
71
  end
72
72
 
73
73
  # TODO: document!
74
- class OpAssign2 < Node #:nodoc:
74
+ class OpAssign2 < Node
75
75
 
76
76
  attr_accessor :receiver
77
77
 
@@ -95,7 +95,7 @@ module Melbourne
95
95
  end
96
96
 
97
97
  # TODO: document!
98
- class OpAssignAnd < Node #:nodoc:
98
+ class OpAssignAnd < Node
99
99
 
100
100
  attr_accessor :left, :right
101
101
 
@@ -108,7 +108,7 @@ module Melbourne
108
108
  end
109
109
 
110
110
  # TODO: document!
111
- class OpAssignOr < OpAssignAnd #:nodoc:
111
+ class OpAssignOr < OpAssignAnd
112
112
 
113
113
  end
114
114
 
File without changes
@@ -16,17 +16,17 @@ module Melbourne
16
16
  #
17
17
  attr_accessor :name
18
18
 
19
- attr_accessor :privately #:nodoc:
19
+ attr_accessor :privately
20
20
 
21
21
  # The block that is passed to the invocation if one is passed
22
22
  #
23
23
  attr_accessor :block
24
24
 
25
- attr_accessor :variable #:nodoc:
25
+ attr_accessor :variable
26
26
 
27
- attr_accessor :check_for_local #:nodoc:
27
+ attr_accessor :check_for_local
28
28
 
29
- def initialize(line, receiver, name, privately=false) #:nodoc:
29
+ def initialize(line, receiver, name, privately=false)
30
30
  @line = line
31
31
  @receiver = receiver
32
32
  @name = name
@@ -47,7 +47,7 @@ module Melbourne
47
47
  #
48
48
  attr_accessor :arguments
49
49
 
50
- def initialize(line, receiver, name, arguments, privately=false) #:nodoc:
50
+ def initialize(line, receiver, name, arguments, privately=false)
51
51
  super line, receiver, name, privately
52
52
  @block = nil
53
53
  @arguments = ActualArguments.new line, arguments
@@ -61,7 +61,7 @@ module Melbourne
61
61
  #
62
62
  class AttributeAssignment < SendWithArguments
63
63
 
64
- def initialize(line, receiver, name, arguments) #:nodoc:
64
+ def initialize(line, receiver, name, arguments)
65
65
  @line = line
66
66
 
67
67
  @receiver = receiver
@@ -80,7 +80,7 @@ module Melbourne
80
80
  #
81
81
  class ElementAssignment < SendWithArguments
82
82
 
83
- def initialize(line, receiver, arguments) #:nodoc:
83
+ def initialize(line, receiver, arguments)
84
84
  @line = line
85
85
 
86
86
  @receiver = receiver
@@ -112,7 +112,7 @@ module Melbourne
112
112
  #
113
113
  attr_accessor :arguments
114
114
 
115
- def initialize(line, arguments, value) #:nodoc:
115
+ def initialize(line, arguments, value)
116
116
  @line = line
117
117
  @arguments = arguments
118
118
  @value = value
@@ -128,7 +128,7 @@ module Melbourne
128
128
  splat? ? 1 : @arguments.size + 1
129
129
  end
130
130
 
131
- # Gets whether the push arguments are a splat (<tt>*some</tt>)
131
+ # Gets whether the push arguments are a splat (+*some+)
132
132
  #
133
133
  # === Example:
134
134
  #
@@ -150,7 +150,7 @@ module Melbourne
150
150
  #
151
151
  attr_accessor :body
152
152
 
153
- def initialize(line, body) #:nodoc:
153
+ def initialize(line, body)
154
154
  @line = line
155
155
  @body = body
156
156
  end
@@ -167,11 +167,11 @@ module Melbourne
167
167
  #
168
168
  attr_accessor :array
169
169
 
170
- # A splat (<tt>*some</tt>) if the actual arguments contain one
170
+ # A splat (+*some+) if the actual arguments contain one
171
171
  #
172
172
  attr_accessor :splat
173
173
 
174
- def initialize(line, arguments=nil) #:nodoc:
174
+ def initialize(line, arguments=nil)
175
175
  @line = line
176
176
  @splat = nil
177
177
 
@@ -231,7 +231,7 @@ module Melbourne
231
231
  #
232
232
  attr_accessor :body
233
233
 
234
- def initialize(line, arguments, body) #:nodoc:
234
+ def initialize(line, arguments, body)
235
235
  @line = line
236
236
  @arguments = IterArguments.new line, arguments
237
237
  @body = body || Nil.new(line)
@@ -246,7 +246,7 @@ module Melbourne
246
246
  class IterArguments < Node
247
247
 
248
248
  # TODO: document!
249
- attr_accessor :prelude #:nodoc:
249
+ attr_accessor :prelude
250
250
 
251
251
  # The number of arguments
252
252
  #
@@ -261,13 +261,13 @@ module Melbourne
261
261
  attr_accessor :arguments
262
262
 
263
263
  # TODO: document!
264
- attr_accessor :splat_index #:nodoc:
264
+ attr_accessor :splat_index
265
265
 
266
266
  # The required arguments
267
267
  #
268
268
  attr_accessor :required_args
269
269
 
270
- def initialize(line, arguments) #:nodoc:
270
+ def initialize(line, arguments)
271
271
  @line = line
272
272
  @optional = 0
273
273
 
@@ -328,7 +328,7 @@ module Melbourne
328
328
  alias_method :total_args, :required_args
329
329
 
330
330
  # TODO: document!
331
- def names #:nodoc:
331
+ def names
332
332
  case @arguments
333
333
  when MAsgn
334
334
  if arguments = @arguments.left.body
@@ -371,7 +371,7 @@ module Melbourne
371
371
  #
372
372
  attr_accessor :value
373
373
 
374
- def initialize(line, value) #:nodoc:
374
+ def initialize(line, value)
375
375
  @line = line
376
376
  @value = value
377
377
  end
@@ -390,11 +390,11 @@ module Melbourne
390
390
  #
391
391
  attr_accessor :name
392
392
 
393
- # A block that is passed to <tt>super()</tt> if one is passed
393
+ # A block that is passed to +super()+ if one is passed
394
394
  #
395
395
  attr_accessor :block
396
396
 
397
- def initialize(line, arguments) #:nodoc:
397
+ def initialize(line, arguments)
398
398
  @line = line
399
399
  @block = nil
400
400
  @arguments = ActualArguments.new line, arguments
@@ -411,9 +411,9 @@ module Melbourne
411
411
  class Yield < SendWithArguments
412
412
 
413
413
  # TODO: document!
414
- attr_accessor :flags #:nodoc:
414
+ attr_accessor :flags
415
415
 
416
- def initialize(line, arguments, unwrap) #:nodoc:
416
+ def initialize(line, arguments, unwrap)
417
417
  @line = line
418
418
 
419
419
  if arguments.kind_of? ArrayLiteral and not unwrap
@@ -437,7 +437,7 @@ module Melbourne
437
437
  end
438
438
 
439
439
  # TODO: document!
440
- class ZSuper < Super #:nodoc:
440
+ class ZSuper < Super
441
441
 
442
442
  def initialize(line)
443
443
  @line = line
@@ -2,7 +2,7 @@ module Melbourne
2
2
 
3
3
  module AST
4
4
 
5
- # A value of a splat (<tt>*some</tt>) as in:
5
+ # A value of a splat (+*some+) as in:
6
6
  #
7
7
  # *1 # the value of the splat is 1
8
8
  #
@@ -12,7 +12,7 @@ module Melbourne
12
12
  #
13
13
  attr_accessor :value
14
14
 
15
- def initialize(line, value) #:nodoc:
15
+ def initialize(line, value)
16
16
  @line = line
17
17
  @value = value
18
18
  end
@@ -20,7 +20,7 @@ module Melbourne
20
20
  end
21
21
 
22
22
  # TODO: document!
23
- class ConcatArgs < Node #:nodoc:
23
+ class ConcatArgs < Node
24
24
 
25
25
  attr_accessor :array, :rest, :size
26
26
 
@@ -34,7 +34,7 @@ module Melbourne
34
34
  end
35
35
 
36
36
  # TODO: document!
37
- class SValue < Node #:nodoc:
37
+ class SValue < Node
38
38
 
39
39
  attr_accessor :value
40
40
 
@@ -46,7 +46,7 @@ module Melbourne
46
46
  end
47
47
 
48
48
  # TODO: document!
49
- class ToArray < Node #:nodoc:
49
+ class ToArray < Node
50
50
 
51
51
  attr_accessor :value
52
52
 
@@ -58,7 +58,7 @@ module Melbourne
58
58
  end
59
59
 
60
60
  # TODO: document!
61
- class ToString < Node #:nodoc:
61
+ class ToString < Node
62
62
 
63
63
  attr_accessor :value
64
64
 
@@ -16,7 +16,7 @@ module Melbourne
16
16
  #
17
17
  attr_accessor :kind
18
18
 
19
- def initialize(line, ref) #:nodoc:
19
+ def initialize(line, ref)
20
20
  @line = line
21
21
  @kind = ref
22
22
  end
@@ -33,14 +33,14 @@ module Melbourne
33
33
  #
34
34
  attr_accessor :which
35
35
 
36
- def initialize(line, ref) #:nodoc:
36
+ def initialize(line, ref)
37
37
  @line = line
38
38
  @which = ref
39
39
  end
40
40
 
41
41
  end
42
42
 
43
- class VariableAccess < Node #:nodoc:
43
+ class VariableAccess < Node
44
44
 
45
45
  attr_accessor :name
46
46
 
@@ -51,7 +51,7 @@ module Melbourne
51
51
 
52
52
  end
53
53
 
54
- class VariableAssignment < Node #:nodoc:
54
+ class VariableAssignment < Node
55
55
 
56
56
  attr_accessor :name, :value
57
57
 
@@ -79,7 +79,7 @@ module Melbourne
79
79
 
80
80
  end
81
81
 
82
- class CVarDeclare < ClassVariableAssignment #:nodoc:
82
+ class CVarDeclare < ClassVariableAssignment
83
83
 
84
84
  end
85
85
 
@@ -99,7 +99,7 @@ module Melbourne
99
99
 
100
100
  end
101
101
 
102
- # Assignment to a splat (<tt>*some</tt>) as in:
102
+ # Assignment to a splat (+*some+) as in:
103
103
  #
104
104
  # *c = *[1, 2]
105
105
  #
@@ -109,14 +109,14 @@ module Melbourne
109
109
  #
110
110
  attr_accessor :value
111
111
 
112
- def initialize(line, value) #:nodoc:
112
+ def initialize(line, value)
113
113
  @line = line
114
114
  @value = value
115
115
  end
116
116
 
117
117
  end
118
118
 
119
- class SplatArray < SplatAssignment #:nodoc:
119
+ class SplatArray < SplatAssignment
120
120
 
121
121
  def initialize(line, value, size)
122
122
  @line = line
@@ -126,7 +126,7 @@ module Melbourne
126
126
 
127
127
  end
128
128
 
129
- class SplatWrapped < SplatAssignment #:nodoc:
129
+ class SplatWrapped < SplatAssignment
130
130
 
131
131
  end
132
132
 
@@ -136,7 +136,7 @@ module Melbourne
136
136
  #
137
137
  class EmptySplat < Node
138
138
 
139
- def initialize(line, size) #:nodoc:
139
+ def initialize(line, size)
140
140
  @line = line
141
141
  @size = size
142
142
  end
@@ -167,7 +167,7 @@ module Melbourne
167
167
 
168
168
  include LocalVariable
169
169
 
170
- def initialize(line, name) #:nodoc:
170
+ def initialize(line, name)
171
171
  @line = line
172
172
  @name = name
173
173
  @variable = nil
@@ -183,7 +183,7 @@ module Melbourne
183
183
 
184
184
  include LocalVariable
185
185
 
186
- def initialize(line, name, value) #:nodoc:
186
+ def initialize(line, name, value)
187
187
  @line = line
188
188
  @name = name
189
189
  @value = value
@@ -207,12 +207,12 @@ module Melbourne
207
207
  attr_accessor :right
208
208
 
209
209
  # TODO: document!
210
- attr_accessor :splat #:nodoc:
210
+ attr_accessor :splat
211
211
 
212
212
  # TODO: document!
213
- attr_accessor :block #:nodoc:
213
+ attr_accessor :block
214
214
 
215
- def initialize(line, left, right, splat) #:nodoc:
215
+ def initialize(line, left, right, splat)
216
216
  @line = line
217
217
  @left = left
218
218
  @right = right
@@ -1,6 +1,6 @@
1
1
  module Melbourne
2
2
 
3
- class Parser #:nodoc:
3
+ class Parser
4
4
 
5
5
  def self.parse_string(string, name = '(eval)', line = 1)
6
6
  new(name, line).parse_string(string)
@@ -1,4 +1,4 @@
1
- require File.join(File.dirname(__FILE__), 'ast')
1
+ require 'melbourne/ast'
2
2
 
3
3
  module Melbourne
4
4
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes