raabro 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,6 +2,11 @@
2
2
  = raabro CHANGELOG.txt
3
3
 
4
4
 
5
+ == raabro 1.0.3 released 2015-09-23
6
+
7
+ - drop the shrink! concept
8
+
9
+
5
10
  == raabro 1.0.2 released 2015-09-23
6
11
 
7
12
  - don't let parse() shrink tree when prune: false
@@ -26,7 +26,7 @@
26
26
 
27
27
  module Raabro
28
28
 
29
- VERSION = '1.0.2'
29
+ VERSION = '1.0.3'
30
30
 
31
31
  class Input
32
32
 
@@ -81,17 +81,6 @@ module Raabro
81
81
  @children = successful_children
82
82
  end
83
83
 
84
- def shrink!
85
-
86
- @children =
87
- @children.inject([]) do |a, c|
88
- a << c.shrink! if c.result == 1 && c.name
89
- a
90
- end
91
-
92
- self
93
- end
94
-
95
84
  def string
96
85
 
97
86
  @input.string[@offset, @length]
@@ -401,6 +390,8 @@ module Raabro
401
390
 
402
391
  def parse(input, opts={})
403
392
 
393
+ opts[:prune] = true unless opts.has_key?(:prune)
394
+
404
395
  root = self.respond_to?(:root) ? :root : @last
405
396
 
406
397
  t =
@@ -413,7 +404,6 @@ module Raabro
413
404
  return nil if opts[:prune] != false && t.result != 1
414
405
 
415
406
  t = t.children.first if t.parter == :all
416
- t = (opts[:prune] == false) || (opts[:shrink] == false) ? t : t.shrink!
417
407
 
418
408
  return rewrite(t) if opts[:rewrite] != false && respond_to?(:rewrite)
419
409
 
@@ -36,7 +36,7 @@ module Sample::Xel include Raabro
36
36
  tree.string.to_i
37
37
  when :fun
38
38
  [ tree.children[0].string ] +
39
- tree.children[1].children.collect { |e| rewrite(e) }
39
+ tree.children[1].children.select(&:name).collect { |e| rewrite(e) }
40
40
  else
41
41
  fail ArgumentError.new("cannot rewrite #{tree.to_a.inspect}")
42
42
  end
@@ -73,7 +73,7 @@ describe Raabro do
73
73
  expect(t.result).to eq(1)
74
74
 
75
75
  expect(
76
- Sample::Xel.rewrite(t.shrink!)
76
+ Sample::Xel.rewrite(t)
77
77
  ).to eq(
78
78
  [ 'SUM', 1, [ 'MUL', 4, 5 ] ]
79
79
  )
@@ -100,10 +100,13 @@ describe Raabro do
100
100
  1 :fun 0,9
101
101
  1 :funame 0,3 "MUL"
102
102
  1 :args 3,6
103
+ 1 nil 3,1 "("
103
104
  1 :exp 4,1
104
105
  1 :num 4,1 "7"
106
+ 1 nil 5,1 ","
105
107
  1 :exp 6,2
106
108
  1 :num 6,2 "-3"
109
+ 1 nil 8,1 ")"
107
110
  }.strip)
108
111
  end
109
112
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: raabro
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: