raabro 1.0.1 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/CHANGELOG.txt CHANGED
@@ -2,6 +2,13 @@
2
2
  = raabro CHANGELOG.txt
3
3
 
4
4
 
5
+ == raabro 1.0.2 released 2015-09-23
6
+
7
+ - don't let parse() shrink tree when prune: false
8
+ - let parse() return tree anyway when prune: false
9
+ - add parse(s, rewrite: false) option
10
+
11
+
5
12
  == raabro 1.0.1 released 2015-09-23
6
13
 
7
14
  - take last parser as default :root
data/lib/raabro.rb CHANGED
@@ -26,7 +26,7 @@
26
26
 
27
27
  module Raabro
28
28
 
29
- VERSION = '1.0.1'
29
+ VERSION = '1.0.2'
30
30
 
31
31
  class Input
32
32
 
@@ -410,12 +410,12 @@ module Raabro
410
410
  all(nil, Raabro::Input.new(input, opts), root)
411
411
  end
412
412
 
413
- return nil if t.result != 1
413
+ return nil if opts[:prune] != false && t.result != 1
414
414
 
415
415
  t = t.children.first if t.parter == :all
416
- t = opts[:shrink] == false ? t : t.shrink!
416
+ t = (opts[:prune] == false) || (opts[:shrink] == false) ? t : t.shrink!
417
417
 
418
- return rewrite(t) if respond_to?(:rewrite)
418
+ return rewrite(t) if opts[:rewrite] != false && respond_to?(:rewrite)
419
419
 
420
420
  t
421
421
  end
@@ -91,6 +91,22 @@ describe Raabro do
91
91
  )
92
92
  end
93
93
 
94
+ it 'parses (rewrite: false, success)' do
95
+
96
+ expect(
97
+ Sample::Xel.parse('MUL(7,-3)', rewrite: false).to_s
98
+ ).to eq(%{
99
+ 1 :exp 0,9
100
+ 1 :fun 0,9
101
+ 1 :funame 0,3 "MUL"
102
+ 1 :args 3,6
103
+ 1 :exp 4,1
104
+ 1 :num 4,1 "7"
105
+ 1 :exp 6,2
106
+ 1 :num 6,2 "-3"
107
+ }.strip)
108
+ end
109
+
94
110
  it 'parses (miss)' do
95
111
 
96
112
  expect(Sample::Xel.parse('MUL(7,3) ')).to eq(nil)
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.1
4
+ version: 1.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: