kaiseki 1.2.1 → 1.2.2

Sign up to get free protection for your applications and to get access to all the features.
data/lib/kaiseki.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module Kaiseki
2
- VERSION = '1.2.1'
2
+ VERSION = '1.2.2'
3
3
  file_path = File.dirname __FILE__
4
4
 
5
5
  #load basic kaiseki classes
data/lib/parseable.rb CHANGED
@@ -5,7 +5,7 @@ module Kaiseki
5
5
  end
6
6
 
7
7
  def parse stream, options = {}
8
- stream = stream.to_parseable
8
+ stream = stream.to_stream
9
9
  stream.lock do
10
10
  self.to_parseable.parse! stream, options
11
11
  end
data/lib/parseable.rb~ ADDED
@@ -0,0 +1,100 @@
1
+ module Kaiseki
2
+ module Parseable
3
+ def to_parseable
4
+ self
5
+ end
6
+
7
+ def parse stream, options = {}
8
+ stream = stream.to_parseable
9
+ stream.lock do
10
+ self.to_parseable.parse! stream, options
11
+ end
12
+ end
13
+
14
+ def predicate?
15
+ false
16
+ end
17
+
18
+ def protect &block
19
+ catch :ParseSuccess do
20
+ catch :SkipSuccess do
21
+ block.call
22
+ throw :ParseSuccess
23
+ end
24
+ raise RuntimeError, "#{self.to_s} must not catch a SkipSuccess"
25
+ end
26
+ end
27
+
28
+ def & other
29
+ SequenceParser.new self, other
30
+ end
31
+
32
+ def | other
33
+ ChoiceParser.new self, other
34
+ end
35
+
36
+ def repeat min, max = nil
37
+ RepeatParser.new self, min, max
38
+ end
39
+
40
+ def optional
41
+ repeat 0, 1
42
+ end
43
+
44
+ def zero_or_more
45
+ repeat 0
46
+ end
47
+
48
+ def one_or_more
49
+ repeat 1
50
+ end
51
+
52
+ def and?
53
+ AndPredicate.new self
54
+ end
55
+
56
+ def not!
57
+ NotPredicate.new self
58
+ end
59
+
60
+ def skip
61
+ SkipPredicate.new self
62
+ end
63
+
64
+ def override options
65
+ OverrideResult.new self, options
66
+ end
67
+
68
+ def merge
69
+ MergeResult.new self
70
+ end
71
+
72
+ def cast to_class
73
+ CastResult.new self, to_class
74
+ end
75
+
76
+ def filter node = Node.default, &block
77
+ FilterResult.new self, node, &block
78
+ end
79
+
80
+ def action node = Node.default, &block
81
+ ActionResult.new self, node, &block
82
+ end
83
+
84
+ def validate validators
85
+ ValidateResult.new self, validators
86
+ end
87
+
88
+ def set *vars
89
+ SetVar.new self, *vars
90
+ end
91
+
92
+ def tag_result name
93
+ ResultTag.new self, name
94
+ end
95
+
96
+ def tag_error name
97
+ ErrorTag.new self, name
98
+ end
99
+ end
100
+ end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: kaiseki
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 1.2.1
5
+ version: 1.2.2
6
6
  platform: ruby
7
7
  authors:
8
8
  - William Hamilton-Levi
@@ -26,6 +26,7 @@ extra_rdoc_files: []
26
26
  files:
27
27
  - lib/result_merge.rb
28
28
  - lib/var_get.rb
29
+ - lib/parseable.rb~
29
30
  - lib/parser_package.rb
30
31
  - lib/var_set.rb
31
32
  - lib/mod_object.rb