raabro 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
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: