keyword_search 1.3.1 → 1.4.1

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/History.txt CHANGED
@@ -1,3 +1,7 @@
1
+ = HEAD
2
+
3
+ * codahale: Added support for ()-based grouping: name:(frank "mr. buttons" jim) #=> ["frank", "mr. buttons", "jim"]
4
+
1
5
  = 1.3.1 / 2007-10-09
2
6
 
3
7
  * Tests/README update for case sensitivity change
@@ -1,8 +1,8 @@
1
1
  History.txt
2
- Manifest.txt
3
- README.txt
4
- Rakefile
2
+ lib/keyword_search/definition.rb
5
3
  lib/keyword_search.rb
6
4
  lib/keyword_search.rl
7
- lib/keyword_search/definition.rb
8
- test/test_keyword_search.rb
5
+ Manifest
6
+ Rakefile
7
+ README.rdoc
8
+ test/test_keyword_search.rb
data/README.markdown ADDED
@@ -0,0 +1,125 @@
1
+ # Keyword Search
2
+
3
+ ## Description
4
+
5
+ Generic library to parse GMail-style search strings for keyword/value pairs;
6
+ supports definition of valid keywords and handling of quoted values.
7
+
8
+ ## Requirements
9
+
10
+ None.
11
+
12
+ ## Features
13
+
14
+ The library features a very simple, easy-to-use API.
15
+
16
+ * Define handlers for supported keywords with blocks
17
+ * Define the default keyword (values not part of a keyword/value pair)
18
+ * Handle negation
19
+
20
+ Please see the example provided below.
21
+
22
+ ## Synopsis
23
+
24
+ Here's an example using ActiveRecord (though the library is generic, and can
25
+ be used for any Ruby project). The library isn't limited to search terms, as
26
+ shown in this example; how you use it is up to you.
27
+
28
+ First, let's build up some variables we'll be populating for a SQL query.
29
+
30
+ clauses = []
31
+ arguments = []
32
+
33
+ Now let's set an example string to parse. Presumably you'd get this from
34
+ a form (ie, `params[:terms]`) or some other form of input.
35
+
36
+ terms = 'account has:attachment since:2006-12-03 -description:crazy'
37
+
38
+ Now let's do the search, defining the handlers to deal with each keyword.
39
+
40
+ KeywordSearch.search(terms) do |with|
41
+
42
+ # This sets the keyword handler for bare words in the string,
43
+ # ie "account" in our example search terms
44
+ with.default_keyword :title
45
+
46
+ # Here's what we do when we encounter a "title" keyword
47
+ with.keyword :title do |values|
48
+ clauses << "title like ?"
49
+ arguments << "%#{values.join(' ')}%"
50
+ end
51
+
52
+ # For "has," we check the value provided (and only support "attachment")
53
+ with.keyword :has do |values|
54
+ clauses << 'has_attachment = true' if values.include?('attachment')
55
+ end
56
+
57
+ # Here we do some date parsing
58
+ with.keyword :since do |values|
59
+ date = Date.parse(values.first) # only support one
60
+ clauses << 'created_on >= ?'
61
+ arguments << date.to_s
62
+ end
63
+
64
+ # If a second parameter is defined for a block, you can handle negation.
65
+ # In this example, we don't want results whose description includes
66
+ # the word "crazy"
67
+ with.keyword :description do |values, positive|
68
+ clauses << "description #{'not' unless positive} like ?"
69
+ arguments << "%#{values.join(' ')}%"
70
+ end
71
+
72
+ end
73
+
74
+ Immediately after the block is defined, the string is parsed and handlers
75
+ fire. Due to the magic of closures, we now have populated variables we can
76
+ use to build a real SQL query.
77
+
78
+ query = clauses.map { |c| "(#{c})" }.join(' AND ')
79
+ conditions = [query, *arguments]
80
+ results = Message.all(:conditions => conditions)
81
+
82
+ ## Installation
83
+
84
+ keyword_search is only released on gemcutter. To install, you can setup gemcutter as your default gem source.
85
+
86
+ $ gem install gemcutter
87
+ $ gem tumble
88
+
89
+ Then you can install it:
90
+
91
+ $ gem install keyword_search
92
+
93
+ You can also just get it in one line:
94
+
95
+ $ gem install keyword_search -s http://gemcutter.org
96
+
97
+
98
+ ## License
99
+
100
+ (The MIT License)
101
+
102
+ Copyright (c) 2007 Bruce Williams
103
+
104
+ Permission is hereby granted, free of charge, to any person obtaining
105
+ a copy of this software and associated documentation files (the
106
+ 'Software'), to deal in the Software without restriction, including
107
+ without limitation the rights to use, copy, modify, merge, publish,
108
+ distribute, sublicense, and/or sell copies of the Software, and to
109
+ permit persons to whom the Software is furnished to do so, subject to
110
+ the following conditions:
111
+
112
+ The above copyright notice and this permission notice shall be
113
+ included in all copies or substantial portions of the Software.
114
+
115
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
116
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
117
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
118
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
119
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
120
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
121
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
122
+
123
+ ## Legal Notes
124
+
125
+ GMail is copyright Google, Inc.
data/Rakefile CHANGED
@@ -1,20 +1,35 @@
1
1
  # -*- ruby -*-
2
2
 
3
- require 'rubygems'
4
- require 'hoe'
3
+ require 'rake/testtask'
5
4
 
6
- Hoe.new('keyword_search', '1.3.1') do |p|
7
- p.rubyforge_name = 'codefluency'
8
- p.summary = 'Generic support for extracting GMail-style search keywords/values from strings'
9
- p.description = p.paragraphs_of('README.txt', 2..5).join("\n\n")
10
- p.url = p.paragraphs_of('README.txt', 0).first.split(/\n/)[1..-1]
11
- p.author = 'Bruce Williams'
12
- p.email = 'bruce@codefluency.com'
13
- p.changes = p.paragraphs_of('History.txt', 0..1).join("\n\n")
5
+ begin
6
+ require 'rubygems'
7
+ require 'jeweler'
8
+ Jeweler::Tasks.new do |gemspec|
9
+ gemspec.name = "keyword_search"
10
+ gemspec.summary = "Generic library to parse GMail-style search strings for keyword/value pairs; supports definition of valid keywords and handling of quoted values."
11
+ gemspec.homepage = "http://github.com/bruce/keyword_search"
12
+ gemspec.email = [ 'bruce@codefluency.com', 'eric@sevenscale.com' ]
13
+ gemspec.authors = [ "Bruce Williams", "Eric Lindvall" ]
14
+ gemspec.rubyforge_project = 'codefluency'
15
+ end
16
+ Jeweler::GemcutterTasks.new
17
+ rescue LoadError
18
+ puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
14
19
  end
15
20
 
16
21
  rule '.rb' => '.rl' do |t|
17
- sh "ragel -R #{t.source} | rlgen-ruby -o #{t.name}"
22
+ sh "ragel -R #{t.source}"
18
23
  end
19
24
 
20
- task :ragel => 'lib/keyword_search.rb'
25
+ task :ragel => 'lib/keyword_search.rb'
26
+
27
+
28
+ task :default => [:ragel, :tests]
29
+
30
+ desc "Run basic tests"
31
+ Rake::TestTask.new("tests") { |t|
32
+ t.pattern = 'test/test_*.rb'
33
+ t.verbose = true
34
+ t.warning = true
35
+ }
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 1.4.1
@@ -0,0 +1,49 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{keyword_search}
8
+ s.version = "1.4.1"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Bruce Williams", "Eric Lindvall"]
12
+ s.date = %q{2009-10-22}
13
+ s.email = ["bruce@codefluency.com", "eric@sevenscale.com"]
14
+ s.extra_rdoc_files = [
15
+ "README.markdown"
16
+ ]
17
+ s.files = [
18
+ "History.txt",
19
+ "Manifest",
20
+ "README.markdown",
21
+ "Rakefile",
22
+ "VERSION",
23
+ "keyword_search.gemspec",
24
+ "lib/keyword_search.rb",
25
+ "lib/keyword_search.rl",
26
+ "lib/keyword_search/definition.rb",
27
+ "test/test_keyword_search.rb"
28
+ ]
29
+ s.homepage = %q{http://github.com/bruce/keyword_search}
30
+ s.rdoc_options = ["--charset=UTF-8"]
31
+ s.require_paths = ["lib"]
32
+ s.rubyforge_project = %q{codefluency}
33
+ s.rubygems_version = %q{1.3.5}
34
+ s.summary = %q{Generic library to parse GMail-style search strings for keyword/value pairs; supports definition of valid keywords and handling of quoted values.}
35
+ s.test_files = [
36
+ "test/test_keyword_search.rb"
37
+ ]
38
+
39
+ if s.respond_to? :specification_version then
40
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
41
+ s.specification_version = 3
42
+
43
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
44
+ else
45
+ end
46
+ else
47
+ end
48
+ end
49
+
@@ -7,7 +7,7 @@ module KeywordSearch
7
7
 
8
8
  class << self
9
9
 
10
- # line 48 "lib/keyword_search.rl"
10
+ # line 73 "lib/keyword_search.rl"
11
11
 
12
12
 
13
13
  def search(input_string, definition=nil, &block)
@@ -32,9 +32,14 @@ class << self
32
32
  private :_parser_actions, :_parser_actions=
33
33
  end
34
34
  self._parser_actions = [
35
- 0, 1, 3, 1, 5, 1, 6, 2,
36
- 0, 2, 2, 1, 0, 3, 0, 2,
37
- 4, 3, 1, 0, 4
35
+ 0, 1, 0, 1, 4, 1, 7, 1,
36
+ 9, 2, 3, 1, 2, 3, 4, 2,
37
+ 3, 8, 2, 4, 8, 3, 0, 3,
38
+ 4, 3, 0, 3, 8, 3, 3, 4,
39
+ 0, 3, 3, 4, 8, 3, 3, 8,
40
+ 0, 3, 5, 0, 2, 3, 5, 2,
41
+ 7, 3, 6, 0, 2, 3, 6, 2,
42
+ 7
38
43
  ]
39
44
 
40
45
  class << self
@@ -42,8 +47,45 @@ class << self
42
47
  private :_parser_key_offsets, :_parser_key_offsets=
43
48
  end
44
49
  self._parser_key_offsets = [
45
- 0, 0, 5, 8, 12, 15, 16, 17,
46
- 18
50
+ 0, 0, 8, 13, 21, 26, 31, 36,
51
+ 37, 38, 40, 41, 42, 47, 53, 60,
52
+ 66, 68, 76, 77, 78, 82, 87, 88,
53
+ 89, 96, 103, 110, 112, 114, 119, 124,
54
+ 129, 136, 142, 150, 157, 164, 171, 179,
55
+ 186, 194, 202, 204, 209, 217, 224, 232,
56
+ 240, 246, 254, 261, 268, 276, 283, 290,
57
+ 297, 304, 312, 314, 316, 321, 326, 331,
58
+ 338, 344, 352, 359, 366, 373, 381, 388,
59
+ 396, 398, 403, 411, 418, 426, 433, 441,
60
+ 449, 457, 464, 469, 475, 482, 488, 496,
61
+ 497, 498, 502, 507, 508, 509, 516, 523,
62
+ 530, 532, 534, 539, 544, 549, 556, 562,
63
+ 570, 577, 584, 591, 599, 606, 614, 616,
64
+ 621, 629, 636, 644, 652, 658, 666, 673,
65
+ 680, 688, 695, 702, 709, 716, 724, 726,
66
+ 728, 733, 738, 743, 750, 756, 764, 771,
67
+ 778, 785, 793, 800, 808, 810, 815, 823,
68
+ 830, 838, 845, 853, 861, 869, 876, 881,
69
+ 886, 891, 896, 902, 909, 915, 923, 924,
70
+ 925, 929, 934, 935, 936, 943, 950, 957,
71
+ 959, 961, 966, 971, 976, 983, 989, 997,
72
+ 1004, 1011, 1018, 1026, 1033, 1041, 1049, 1051,
73
+ 1056, 1064, 1071, 1079, 1087, 1093, 1101, 1108,
74
+ 1116, 1123, 1130, 1137, 1139, 1141, 1146, 1151,
75
+ 1156, 1163, 1169, 1177, 1184, 1191, 1198, 1203,
76
+ 1210, 1216, 1224, 1231, 1238, 1245, 1247, 1252,
77
+ 1259, 1266, 1272, 1280, 1287, 1294, 1301, 1303,
78
+ 1305, 1310, 1315, 1320, 1327, 1333, 1341, 1348,
79
+ 1355, 1362, 1370, 1377, 1385, 1393, 1395, 1400,
80
+ 1408, 1415, 1423, 1431, 1433, 1438, 1446, 1453,
81
+ 1461, 1463, 1468, 1476, 1483, 1491, 1499, 1501,
82
+ 1506, 1514, 1521, 1529, 1536, 1543, 1550, 1557,
83
+ 1565, 1572, 1574, 1576, 1581, 1586, 1591, 1598,
84
+ 1604, 1612, 1619, 1626, 1633, 1641, 1648, 1656,
85
+ 1664, 1666, 1671, 1679, 1687, 1694, 1701, 1709,
86
+ 1716, 1724, 1731, 1739, 1747, 1755, 1762, 1767,
87
+ 1773, 1781, 1788, 1795, 1803, 1810, 1818, 1826,
88
+ 1834, 1841, 1846, 1851, 1856, 1861, 1866
47
89
  ]
48
90
 
49
91
  class << self
@@ -51,9 +93,240 @@ class << self
51
93
  private :_parser_trans_keys, :_parser_trans_keys=
52
94
  end
53
95
  self._parser_trans_keys = [
54
- 0, 32, 34, 39, 58, 32, 34, 58,
55
- 32, 34, 39, 58, 32, 34, 58, 34,
56
- 32, 39, 32, 34, 58, 0
96
+ 0, 32, 34, 39, 40, 43, 45, 58,
97
+ 0, 32, 34, 41, 58, 0, 32, 34,
98
+ 39, 40, 43, 45, 58, 0, 32, 34,
99
+ 41, 58, 32, 34, 39, 40, 58, 0,
100
+ 32, 34, 41, 58, 34, 34, 0, 32,
101
+ 39, 39, 32, 34, 39, 40, 58, 32,
102
+ 34, 41, 44, 58, 124, 32, 34, 39,
103
+ 40, 44, 58, 124, 32, 34, 41, 44,
104
+ 58, 124, 0, 32, 32, 34, 39, 40,
105
+ 41, 44, 58, 124, 34, 34, 32, 41,
106
+ 44, 124, 32, 34, 39, 40, 58, 39,
107
+ 39, 32, 34, 39, 41, 44, 58, 124,
108
+ 32, 34, 39, 41, 44, 58, 124, 32,
109
+ 34, 39, 40, 44, 58, 124, 34, 39,
110
+ 34, 39, 32, 39, 41, 44, 124, 32,
111
+ 34, 39, 40, 58, 32, 34, 41, 44,
112
+ 124, 32, 34, 39, 40, 44, 58, 124,
113
+ 32, 34, 41, 44, 58, 124, 32, 34,
114
+ 39, 40, 41, 44, 58, 124, 32, 34,
115
+ 39, 41, 44, 58, 124, 32, 34, 39,
116
+ 41, 44, 58, 124, 32, 34, 39, 40,
117
+ 44, 58, 124, 32, 34, 39, 40, 41,
118
+ 44, 58, 124, 32, 34, 39, 40, 44,
119
+ 58, 124, 32, 34, 39, 40, 41, 44,
120
+ 58, 124, 32, 34, 39, 40, 41, 44,
121
+ 58, 124, 34, 39, 32, 34, 39, 40,
122
+ 58, 32, 34, 39, 40, 41, 44, 58,
123
+ 124, 32, 34, 39, 40, 44, 58, 124,
124
+ 32, 34, 39, 40, 41, 44, 58, 124,
125
+ 32, 34, 39, 40, 41, 44, 58, 124,
126
+ 32, 34, 41, 44, 58, 124, 32, 34,
127
+ 39, 40, 41, 44, 58, 124, 32, 34,
128
+ 39, 41, 44, 58, 124, 32, 34, 39,
129
+ 41, 44, 58, 124, 32, 34, 39, 40,
130
+ 41, 44, 58, 124, 32, 34, 39, 41,
131
+ 44, 58, 124, 32, 34, 39, 41, 44,
132
+ 58, 124, 32, 34, 39, 40, 44, 58,
133
+ 124, 32, 34, 39, 41, 44, 58, 124,
134
+ 32, 34, 39, 40, 41, 44, 58, 124,
135
+ 34, 39, 34, 39, 32, 39, 41, 44,
136
+ 124, 32, 34, 39, 40, 58, 32, 34,
137
+ 41, 44, 124, 32, 34, 39, 40, 44,
138
+ 58, 124, 32, 34, 41, 44, 58, 124,
139
+ 32, 34, 39, 40, 41, 44, 58, 124,
140
+ 32, 34, 39, 41, 44, 58, 124, 32,
141
+ 34, 39, 41, 44, 58, 124, 32, 34,
142
+ 39, 40, 44, 58, 124, 32, 34, 39,
143
+ 40, 41, 44, 58, 124, 32, 34, 39,
144
+ 40, 44, 58, 124, 32, 34, 39, 40,
145
+ 41, 44, 58, 124, 34, 39, 32, 34,
146
+ 39, 40, 58, 32, 34, 39, 40, 41,
147
+ 44, 58, 124, 32, 34, 39, 41, 44,
148
+ 58, 124, 32, 34, 39, 40, 41, 44,
149
+ 58, 124, 32, 34, 39, 40, 44, 58,
150
+ 124, 32, 34, 39, 40, 41, 44, 58,
151
+ 124, 32, 34, 39, 40, 41, 44, 58,
152
+ 124, 32, 34, 39, 40, 41, 44, 58,
153
+ 124, 32, 34, 39, 41, 44, 58, 124,
154
+ 32, 34, 39, 40, 58, 32, 34, 41,
155
+ 44, 58, 124, 32, 34, 39, 40, 44,
156
+ 58, 124, 32, 34, 41, 44, 58, 124,
157
+ 32, 34, 39, 40, 41, 44, 58, 124,
158
+ 34, 34, 32, 41, 44, 124, 32, 34,
159
+ 39, 40, 58, 39, 39, 32, 34, 39,
160
+ 41, 44, 58, 124, 32, 34, 39, 41,
161
+ 44, 58, 124, 32, 34, 39, 40, 44,
162
+ 58, 124, 34, 39, 34, 39, 32, 39,
163
+ 41, 44, 124, 32, 34, 39, 40, 58,
164
+ 32, 34, 41, 44, 124, 32, 34, 39,
165
+ 40, 44, 58, 124, 32, 34, 41, 44,
166
+ 58, 124, 32, 34, 39, 40, 41, 44,
167
+ 58, 124, 32, 34, 39, 41, 44, 58,
168
+ 124, 32, 34, 39, 41, 44, 58, 124,
169
+ 32, 34, 39, 40, 44, 58, 124, 32,
170
+ 34, 39, 40, 41, 44, 58, 124, 32,
171
+ 34, 39, 40, 44, 58, 124, 32, 34,
172
+ 39, 40, 41, 44, 58, 124, 34, 39,
173
+ 32, 34, 39, 40, 58, 32, 34, 39,
174
+ 40, 41, 44, 58, 124, 32, 34, 39,
175
+ 40, 44, 58, 124, 32, 34, 39, 40,
176
+ 41, 44, 58, 124, 32, 34, 39, 40,
177
+ 41, 44, 58, 124, 32, 34, 41, 44,
178
+ 58, 124, 32, 34, 39, 40, 41, 44,
179
+ 58, 124, 32, 34, 39, 41, 44, 58,
180
+ 124, 32, 34, 39, 41, 44, 58, 124,
181
+ 32, 34, 39, 40, 41, 44, 58, 124,
182
+ 32, 34, 39, 41, 44, 58, 124, 32,
183
+ 34, 39, 41, 44, 58, 124, 32, 34,
184
+ 39, 40, 44, 58, 124, 32, 34, 39,
185
+ 41, 44, 58, 124, 32, 34, 39, 40,
186
+ 41, 44, 58, 124, 34, 39, 34, 39,
187
+ 32, 39, 41, 44, 124, 32, 34, 39,
188
+ 40, 58, 32, 34, 41, 44, 124, 32,
189
+ 34, 39, 40, 44, 58, 124, 32, 34,
190
+ 41, 44, 58, 124, 32, 34, 39, 40,
191
+ 41, 44, 58, 124, 32, 34, 39, 41,
192
+ 44, 58, 124, 32, 34, 39, 41, 44,
193
+ 58, 124, 32, 34, 39, 40, 44, 58,
194
+ 124, 32, 34, 39, 40, 41, 44, 58,
195
+ 124, 32, 34, 39, 40, 44, 58, 124,
196
+ 32, 34, 39, 40, 41, 44, 58, 124,
197
+ 34, 39, 32, 34, 39, 40, 58, 32,
198
+ 34, 39, 40, 41, 44, 58, 124, 32,
199
+ 34, 39, 41, 44, 58, 124, 32, 34,
200
+ 39, 40, 41, 44, 58, 124, 32, 34,
201
+ 39, 40, 44, 58, 124, 32, 34, 39,
202
+ 40, 41, 44, 58, 124, 32, 34, 39,
203
+ 40, 41, 44, 58, 124, 32, 34, 39,
204
+ 40, 41, 44, 58, 124, 32, 34, 39,
205
+ 41, 44, 58, 124, 32, 34, 39, 40,
206
+ 58, 32, 34, 39, 40, 58, 32, 34,
207
+ 39, 40, 58, 32, 34, 39, 40, 58,
208
+ 32, 34, 41, 44, 58, 124, 32, 34,
209
+ 39, 40, 44, 58, 124, 32, 34, 41,
210
+ 44, 58, 124, 32, 34, 39, 40, 41,
211
+ 44, 58, 124, 34, 34, 32, 41, 44,
212
+ 124, 32, 34, 39, 40, 58, 39, 39,
213
+ 32, 34, 39, 41, 44, 58, 124, 32,
214
+ 34, 39, 41, 44, 58, 124, 32, 34,
215
+ 39, 40, 44, 58, 124, 34, 39, 34,
216
+ 39, 32, 39, 41, 44, 124, 32, 34,
217
+ 39, 40, 58, 32, 34, 41, 44, 124,
218
+ 32, 34, 39, 40, 44, 58, 124, 32,
219
+ 34, 41, 44, 58, 124, 32, 34, 39,
220
+ 40, 41, 44, 58, 124, 32, 34, 39,
221
+ 41, 44, 58, 124, 32, 34, 39, 41,
222
+ 44, 58, 124, 32, 34, 39, 40, 44,
223
+ 58, 124, 32, 34, 39, 40, 41, 44,
224
+ 58, 124, 32, 34, 39, 40, 44, 58,
225
+ 124, 32, 34, 39, 40, 41, 44, 58,
226
+ 124, 32, 34, 39, 40, 41, 44, 58,
227
+ 124, 34, 39, 32, 34, 39, 40, 58,
228
+ 32, 34, 39, 40, 41, 44, 58, 124,
229
+ 32, 34, 39, 40, 44, 58, 124, 32,
230
+ 34, 39, 40, 41, 44, 58, 124, 32,
231
+ 34, 39, 40, 41, 44, 58, 124, 32,
232
+ 34, 41, 44, 58, 124, 32, 34, 39,
233
+ 40, 41, 44, 58, 124, 32, 34, 39,
234
+ 40, 44, 58, 124, 32, 34, 39, 40,
235
+ 41, 44, 58, 124, 32, 34, 39, 41,
236
+ 44, 58, 124, 32, 34, 39, 41, 44,
237
+ 58, 124, 32, 34, 39, 40, 44, 58,
238
+ 124, 34, 39, 34, 39, 32, 39, 41,
239
+ 44, 124, 32, 34, 39, 40, 58, 32,
240
+ 34, 41, 44, 124, 32, 34, 39, 40,
241
+ 44, 58, 124, 32, 34, 41, 44, 58,
242
+ 124, 32, 34, 39, 40, 41, 44, 58,
243
+ 124, 32, 34, 39, 41, 44, 58, 124,
244
+ 32, 34, 39, 41, 44, 58, 124, 32,
245
+ 34, 39, 40, 44, 58, 124, 32, 34,
246
+ 41, 44, 124, 32, 34, 39, 40, 44,
247
+ 58, 124, 32, 34, 41, 44, 58, 124,
248
+ 32, 34, 39, 40, 41, 44, 58, 124,
249
+ 32, 34, 39, 41, 44, 58, 124, 32,
250
+ 34, 39, 41, 44, 58, 124, 32, 34,
251
+ 39, 40, 44, 58, 124, 34, 39, 32,
252
+ 39, 41, 44, 124, 32, 34, 39, 40,
253
+ 44, 58, 124, 32, 34, 39, 41, 44,
254
+ 58, 124, 32, 34, 41, 44, 58, 124,
255
+ 32, 34, 39, 40, 41, 44, 58, 124,
256
+ 32, 34, 39, 41, 44, 58, 124, 32,
257
+ 34, 39, 41, 44, 58, 124, 32, 34,
258
+ 39, 40, 44, 58, 124, 34, 39, 34,
259
+ 39, 32, 39, 41, 44, 124, 32, 34,
260
+ 39, 40, 58, 32, 34, 41, 44, 124,
261
+ 32, 34, 39, 40, 44, 58, 124, 32,
262
+ 34, 41, 44, 58, 124, 32, 34, 39,
263
+ 40, 41, 44, 58, 124, 32, 34, 39,
264
+ 41, 44, 58, 124, 32, 34, 39, 41,
265
+ 44, 58, 124, 32, 34, 39, 40, 44,
266
+ 58, 124, 32, 34, 39, 40, 41, 44,
267
+ 58, 124, 32, 34, 39, 40, 44, 58,
268
+ 124, 32, 34, 39, 40, 41, 44, 58,
269
+ 124, 32, 34, 39, 40, 41, 44, 58,
270
+ 124, 34, 39, 32, 34, 39, 40, 58,
271
+ 32, 34, 39, 40, 41, 44, 58, 124,
272
+ 32, 34, 39, 40, 44, 58, 124, 32,
273
+ 34, 39, 40, 41, 44, 58, 124, 32,
274
+ 34, 39, 40, 41, 44, 58, 124, 34,
275
+ 39, 32, 34, 39, 40, 58, 32, 34,
276
+ 39, 40, 41, 44, 58, 124, 32, 34,
277
+ 39, 40, 44, 58, 124, 32, 34, 39,
278
+ 40, 41, 44, 58, 124, 34, 39, 32,
279
+ 34, 39, 40, 58, 32, 34, 39, 40,
280
+ 41, 44, 58, 124, 32, 34, 39, 40,
281
+ 44, 58, 124, 32, 34, 39, 40, 41,
282
+ 44, 58, 124, 32, 34, 39, 40, 41,
283
+ 44, 58, 124, 34, 39, 32, 34, 39,
284
+ 40, 58, 32, 34, 39, 40, 41, 44,
285
+ 58, 124, 32, 34, 39, 40, 44, 58,
286
+ 124, 32, 34, 39, 40, 41, 44, 58,
287
+ 124, 32, 34, 39, 41, 44, 58, 124,
288
+ 32, 34, 39, 41, 44, 58, 124, 32,
289
+ 34, 39, 40, 44, 58, 124, 32, 34,
290
+ 39, 41, 44, 58, 124, 32, 34, 39,
291
+ 40, 41, 44, 58, 124, 32, 34, 39,
292
+ 40, 44, 58, 124, 34, 39, 34, 39,
293
+ 32, 39, 41, 44, 124, 32, 34, 39,
294
+ 40, 58, 32, 34, 41, 44, 124, 32,
295
+ 34, 39, 40, 44, 58, 124, 32, 34,
296
+ 41, 44, 58, 124, 32, 34, 39, 40,
297
+ 41, 44, 58, 124, 32, 34, 39, 41,
298
+ 44, 58, 124, 32, 34, 39, 41, 44,
299
+ 58, 124, 32, 34, 39, 40, 44, 58,
300
+ 124, 32, 34, 39, 40, 41, 44, 58,
301
+ 124, 32, 34, 39, 40, 44, 58, 124,
302
+ 32, 34, 39, 40, 41, 44, 58, 124,
303
+ 32, 34, 39, 40, 41, 44, 58, 124,
304
+ 34, 39, 32, 34, 39, 40, 58, 32,
305
+ 34, 39, 40, 41, 44, 58, 124, 32,
306
+ 34, 39, 40, 41, 44, 58, 124, 32,
307
+ 34, 39, 41, 44, 58, 124, 32, 34,
308
+ 39, 41, 44, 58, 124, 32, 34, 39,
309
+ 40, 41, 44, 58, 124, 32, 34, 39,
310
+ 41, 44, 58, 124, 32, 34, 39, 40,
311
+ 41, 44, 58, 124, 32, 34, 39, 40,
312
+ 44, 58, 124, 32, 34, 39, 40, 41,
313
+ 44, 58, 124, 32, 34, 39, 40, 41,
314
+ 44, 58, 124, 32, 34, 39, 40, 41,
315
+ 44, 58, 124, 32, 34, 39, 41, 44,
316
+ 58, 124, 32, 34, 39, 40, 58, 32,
317
+ 34, 41, 44, 58, 124, 32, 34, 39,
318
+ 40, 41, 44, 58, 124, 32, 34, 39,
319
+ 41, 44, 58, 124, 32, 34, 39, 41,
320
+ 44, 58, 124, 32, 34, 39, 40, 41,
321
+ 44, 58, 124, 32, 34, 39, 41, 44,
322
+ 58, 124, 32, 34, 39, 40, 41, 44,
323
+ 58, 124, 32, 34, 39, 40, 41, 44,
324
+ 58, 124, 32, 34, 39, 40, 41, 44,
325
+ 58, 124, 32, 34, 39, 41, 44, 58,
326
+ 124, 32, 34, 39, 40, 58, 32, 34,
327
+ 39, 40, 58, 0, 32, 34, 41, 58,
328
+ 0, 32, 34, 41, 58, 0, 32, 34,
329
+ 41, 58, 0
57
330
  ]
58
331
 
59
332
  class << self
@@ -61,8 +334,45 @@ class << self
61
334
  private :_parser_single_lengths, :_parser_single_lengths=
62
335
  end
63
336
  self._parser_single_lengths = [
64
- 0, 5, 3, 4, 3, 1, 1, 1,
65
- 3
337
+ 0, 8, 5, 8, 5, 5, 5, 1,
338
+ 1, 2, 1, 1, 5, 6, 7, 6,
339
+ 2, 8, 1, 1, 4, 5, 1, 1,
340
+ 7, 7, 7, 2, 2, 5, 5, 5,
341
+ 7, 6, 8, 7, 7, 7, 8, 7,
342
+ 8, 8, 2, 5, 8, 7, 8, 8,
343
+ 6, 8, 7, 7, 8, 7, 7, 7,
344
+ 7, 8, 2, 2, 5, 5, 5, 7,
345
+ 6, 8, 7, 7, 7, 8, 7, 8,
346
+ 2, 5, 8, 7, 8, 7, 8, 8,
347
+ 8, 7, 5, 6, 7, 6, 8, 1,
348
+ 1, 4, 5, 1, 1, 7, 7, 7,
349
+ 2, 2, 5, 5, 5, 7, 6, 8,
350
+ 7, 7, 7, 8, 7, 8, 2, 5,
351
+ 8, 7, 8, 8, 6, 8, 7, 7,
352
+ 8, 7, 7, 7, 7, 8, 2, 2,
353
+ 5, 5, 5, 7, 6, 8, 7, 7,
354
+ 7, 8, 7, 8, 2, 5, 8, 7,
355
+ 8, 7, 8, 8, 8, 7, 5, 5,
356
+ 5, 5, 6, 7, 6, 8, 1, 1,
357
+ 4, 5, 1, 1, 7, 7, 7, 2,
358
+ 2, 5, 5, 5, 7, 6, 8, 7,
359
+ 7, 7, 8, 7, 8, 8, 2, 5,
360
+ 8, 7, 8, 8, 6, 8, 7, 8,
361
+ 7, 7, 7, 2, 2, 5, 5, 5,
362
+ 7, 6, 8, 7, 7, 7, 5, 7,
363
+ 6, 8, 7, 7, 7, 2, 5, 7,
364
+ 7, 6, 8, 7, 7, 7, 2, 2,
365
+ 5, 5, 5, 7, 6, 8, 7, 7,
366
+ 7, 8, 7, 8, 8, 2, 5, 8,
367
+ 7, 8, 8, 2, 5, 8, 7, 8,
368
+ 2, 5, 8, 7, 8, 8, 2, 5,
369
+ 8, 7, 8, 7, 7, 7, 7, 8,
370
+ 7, 2, 2, 5, 5, 5, 7, 6,
371
+ 8, 7, 7, 7, 8, 7, 8, 8,
372
+ 2, 5, 8, 8, 7, 7, 8, 7,
373
+ 8, 7, 8, 8, 8, 7, 5, 6,
374
+ 8, 7, 7, 8, 7, 8, 8, 8,
375
+ 7, 5, 5, 5, 5, 5, 0
66
376
  ]
67
377
 
68
378
  class << self
@@ -71,7 +381,44 @@ class << self
71
381
  end
72
382
  self._parser_range_lengths = [
73
383
  0, 0, 0, 0, 0, 0, 0, 0,
74
- 0
384
+ 0, 0, 0, 0, 0, 0, 0, 0,
385
+ 0, 0, 0, 0, 0, 0, 0, 0,
386
+ 0, 0, 0, 0, 0, 0, 0, 0,
387
+ 0, 0, 0, 0, 0, 0, 0, 0,
388
+ 0, 0, 0, 0, 0, 0, 0, 0,
389
+ 0, 0, 0, 0, 0, 0, 0, 0,
390
+ 0, 0, 0, 0, 0, 0, 0, 0,
391
+ 0, 0, 0, 0, 0, 0, 0, 0,
392
+ 0, 0, 0, 0, 0, 0, 0, 0,
393
+ 0, 0, 0, 0, 0, 0, 0, 0,
394
+ 0, 0, 0, 0, 0, 0, 0, 0,
395
+ 0, 0, 0, 0, 0, 0, 0, 0,
396
+ 0, 0, 0, 0, 0, 0, 0, 0,
397
+ 0, 0, 0, 0, 0, 0, 0, 0,
398
+ 0, 0, 0, 0, 0, 0, 0, 0,
399
+ 0, 0, 0, 0, 0, 0, 0, 0,
400
+ 0, 0, 0, 0, 0, 0, 0, 0,
401
+ 0, 0, 0, 0, 0, 0, 0, 0,
402
+ 0, 0, 0, 0, 0, 0, 0, 0,
403
+ 0, 0, 0, 0, 0, 0, 0, 0,
404
+ 0, 0, 0, 0, 0, 0, 0, 0,
405
+ 0, 0, 0, 0, 0, 0, 0, 0,
406
+ 0, 0, 0, 0, 0, 0, 0, 0,
407
+ 0, 0, 0, 0, 0, 0, 0, 0,
408
+ 0, 0, 0, 0, 0, 0, 0, 0,
409
+ 0, 0, 0, 0, 0, 0, 0, 0,
410
+ 0, 0, 0, 0, 0, 0, 0, 0,
411
+ 0, 0, 0, 0, 0, 0, 0, 0,
412
+ 0, 0, 0, 0, 0, 0, 0, 0,
413
+ 0, 0, 0, 0, 0, 0, 0, 0,
414
+ 0, 0, 0, 0, 0, 0, 0, 0,
415
+ 0, 0, 0, 0, 0, 0, 0, 0,
416
+ 0, 0, 0, 0, 0, 0, 0, 0,
417
+ 0, 0, 0, 0, 0, 0, 0, 0,
418
+ 0, 0, 0, 0, 0, 0, 0, 0,
419
+ 0, 0, 0, 0, 0, 0, 0, 0,
420
+ 0, 0, 0, 0, 0, 0, 0, 0,
421
+ 0, 0, 0, 0, 0, 0, 0
75
422
  ]
76
423
 
77
424
  class << self
@@ -79,30 +426,651 @@ class << self
79
426
  private :_parser_index_offsets, :_parser_index_offsets=
80
427
  end
81
428
  self._parser_index_offsets = [
82
- 0, 0, 6, 10, 15, 19, 21, 23,
83
- 25
429
+ 0, 0, 9, 15, 24, 30, 36, 42,
430
+ 44, 46, 49, 51, 53, 59, 66, 74,
431
+ 81, 84, 93, 95, 97, 102, 108, 110,
432
+ 112, 120, 128, 136, 139, 142, 148, 154,
433
+ 160, 168, 175, 184, 192, 200, 208, 217,
434
+ 225, 234, 243, 246, 252, 261, 269, 278,
435
+ 287, 294, 303, 311, 319, 328, 336, 344,
436
+ 352, 360, 369, 372, 375, 381, 387, 393,
437
+ 401, 408, 417, 425, 433, 441, 450, 458,
438
+ 467, 470, 476, 485, 493, 502, 510, 519,
439
+ 528, 537, 545, 551, 558, 566, 573, 582,
440
+ 584, 586, 591, 597, 599, 601, 609, 617,
441
+ 625, 628, 631, 637, 643, 649, 657, 664,
442
+ 673, 681, 689, 697, 706, 714, 723, 726,
443
+ 732, 741, 749, 758, 767, 774, 783, 791,
444
+ 799, 808, 816, 824, 832, 840, 849, 852,
445
+ 855, 861, 867, 873, 881, 888, 897, 905,
446
+ 913, 921, 930, 938, 947, 950, 956, 965,
447
+ 973, 982, 990, 999, 1008, 1017, 1025, 1031,
448
+ 1037, 1043, 1049, 1056, 1064, 1071, 1080, 1082,
449
+ 1084, 1089, 1095, 1097, 1099, 1107, 1115, 1123,
450
+ 1126, 1129, 1135, 1141, 1147, 1155, 1162, 1171,
451
+ 1179, 1187, 1195, 1204, 1212, 1221, 1230, 1233,
452
+ 1239, 1248, 1256, 1265, 1274, 1281, 1290, 1298,
453
+ 1307, 1315, 1323, 1331, 1334, 1337, 1343, 1349,
454
+ 1355, 1363, 1370, 1379, 1387, 1395, 1403, 1409,
455
+ 1417, 1424, 1433, 1441, 1449, 1457, 1460, 1466,
456
+ 1474, 1482, 1489, 1498, 1506, 1514, 1522, 1525,
457
+ 1528, 1534, 1540, 1546, 1554, 1561, 1570, 1578,
458
+ 1586, 1594, 1603, 1611, 1620, 1629, 1632, 1638,
459
+ 1647, 1655, 1664, 1673, 1676, 1682, 1691, 1699,
460
+ 1708, 1711, 1717, 1726, 1734, 1743, 1752, 1755,
461
+ 1761, 1770, 1778, 1787, 1795, 1803, 1811, 1819,
462
+ 1828, 1836, 1839, 1842, 1848, 1854, 1860, 1868,
463
+ 1875, 1884, 1892, 1900, 1908, 1917, 1925, 1934,
464
+ 1943, 1946, 1952, 1961, 1970, 1978, 1986, 1995,
465
+ 2003, 2012, 2020, 2029, 2038, 2047, 2055, 2061,
466
+ 2068, 2077, 2085, 2093, 2102, 2110, 2119, 2128,
467
+ 2137, 2145, 2151, 2157, 2163, 2169, 2175
84
468
  ]
85
469
 
86
470
  class << self
87
- attr_accessor :_parser_trans_targs_wi
88
- private :_parser_trans_targs_wi, :_parser_trans_targs_wi=
471
+ attr_accessor :_parser_trans_targs
472
+ private :_parser_trans_targs, :_parser_trans_targs=
89
473
  end
90
- self._parser_trans_targs_wi = [
91
- 8, 0, 5, 7, 0, 2, 1, 0,
92
- 3, 2, 0, 5, 7, 0, 4, 1,
93
- 0, 0, 4, 6, 5, 1, 0, 6,
94
- 7, 1, 0, 3, 2, 0
474
+ self._parser_trans_targs = [
475
+ 307, 1, 7, 10, 294, 305, 306, 0,
476
+ 2, 307, 3, 0, 0, 152, 2, 308,
477
+ 3, 7, 10, 82, 150, 151, 0, 4,
478
+ 308, 3, 0, 0, 5, 4, 0, 7,
479
+ 10, 12, 0, 6, 309, 3, 0, 0,
480
+ 0, 6, 9, 8, 9, 8, 310, 3,
481
+ 0, 9, 11, 9, 11, 0, 18, 22,
482
+ 0, 0, 13, 14, 0, 16, 47, 0,
483
+ 47, 13, 14, 18, 22, 0, 17, 0,
484
+ 17, 15, 14, 0, 16, 17, 0, 17,
485
+ 15, 310, 3, 0, 14, 18, 24, 15,
486
+ 16, 17, 0, 17, 15, 20, 19, 20,
487
+ 19, 14, 16, 21, 21, 0, 21, 18,
488
+ 22, 0, 0, 15, 20, 23, 20, 23,
489
+ 26, 23, 15, 16, 46, 23, 46, 25,
490
+ 26, 23, 15, 16, 46, 23, 46, 25,
491
+ 26, 27, 20, 23, 44, 23, 44, 25,
492
+ 29, 31, 28, 29, 31, 28, 26, 20,
493
+ 16, 30, 30, 23, 30, 27, 20, 23,
494
+ 23, 25, 32, 20, 16, 43, 43, 19,
495
+ 32, 20, 42, 19, 34, 19, 34, 33,
496
+ 32, 20, 16, 34, 19, 34, 33, 32,
497
+ 20, 35, 33, 16, 34, 19, 34, 33,
498
+ 37, 29, 33, 16, 41, 28, 41, 36,
499
+ 37, 29, 33, 16, 41, 28, 41, 36,
500
+ 37, 29, 31, 28, 38, 28, 38, 36,
501
+ 39, 20, 31, 36, 16, 41, 28, 41,
502
+ 36, 39, 29, 31, 28, 40, 28, 40,
503
+ 36, 39, 20, 33, 36, 16, 41, 28,
504
+ 41, 36, 39, 29, 33, 36, 16, 41,
505
+ 28, 41, 36, 29, 31, 28, 43, 20,
506
+ 42, 19, 19, 33, 45, 27, 20, 25,
507
+ 16, 46, 23, 46, 25, 45, 27, 20,
508
+ 23, 46, 23, 46, 25, 45, 27, 15,
509
+ 25, 16, 46, 23, 46, 25, 14, 18,
510
+ 53, 13, 16, 80, 0, 80, 48, 14,
511
+ 0, 16, 49, 0, 49, 48, 14, 18,
512
+ 50, 48, 16, 49, 0, 49, 48, 26,
513
+ 23, 48, 16, 52, 23, 52, 51, 26,
514
+ 23, 48, 16, 52, 23, 52, 51, 45,
515
+ 27, 48, 51, 16, 52, 23, 52, 51,
516
+ 55, 23, 13, 16, 74, 23, 74, 54,
517
+ 55, 23, 13, 16, 74, 23, 74, 54,
518
+ 55, 58, 20, 23, 57, 23, 57, 56,
519
+ 55, 23, 15, 16, 57, 23, 57, 56,
520
+ 55, 58, 20, 56, 16, 57, 23, 57,
521
+ 56, 60, 62, 59, 60, 62, 59, 55,
522
+ 20, 16, 61, 61, 23, 61, 58, 20,
523
+ 23, 23, 56, 63, 20, 16, 73, 73,
524
+ 19, 63, 20, 72, 19, 65, 19, 65,
525
+ 64, 63, 20, 16, 65, 19, 65, 64,
526
+ 63, 20, 66, 64, 16, 65, 19, 65,
527
+ 64, 68, 60, 64, 16, 71, 59, 71,
528
+ 67, 68, 60, 64, 16, 71, 59, 71,
529
+ 67, 68, 20, 62, 59, 69, 59, 69,
530
+ 67, 70, 20, 62, 67, 16, 71, 59,
531
+ 71, 67, 70, 20, 62, 59, 71, 59,
532
+ 71, 67, 70, 20, 64, 67, 16, 71,
533
+ 59, 71, 67, 60, 62, 59, 73, 20,
534
+ 72, 19, 19, 64, 77, 58, 13, 54,
535
+ 16, 79, 23, 79, 75, 55, 23, 48,
536
+ 16, 76, 23, 76, 75, 55, 58, 13,
537
+ 75, 16, 76, 23, 76, 75, 77, 58,
538
+ 20, 23, 78, 23, 78, 56, 55, 58,
539
+ 15, 56, 16, 57, 23, 57, 56, 77,
540
+ 58, 48, 75, 16, 76, 23, 76, 75,
541
+ 14, 18, 81, 48, 16, 49, 0, 49,
542
+ 48, 55, 23, 48, 16, 76, 23, 76,
543
+ 75, 0, 87, 91, 0, 0, 83, 84,
544
+ 0, 16, 115, 0, 115, 83, 84, 87,
545
+ 91, 0, 86, 0, 86, 85, 84, 0,
546
+ 16, 86, 0, 86, 85, 84, 87, 93,
547
+ 85, 16, 86, 0, 86, 85, 89, 88,
548
+ 89, 88, 84, 16, 90, 90, 0, 90,
549
+ 87, 91, 0, 0, 85, 89, 92, 89,
550
+ 92, 95, 92, 85, 16, 114, 92, 114,
551
+ 94, 95, 92, 85, 16, 114, 92, 114,
552
+ 94, 95, 96, 89, 92, 112, 92, 112,
553
+ 94, 98, 100, 97, 98, 100, 97, 95,
554
+ 89, 16, 99, 99, 92, 99, 96, 89,
555
+ 92, 92, 94, 101, 89, 16, 111, 111,
556
+ 88, 101, 89, 110, 88, 103, 88, 103,
557
+ 102, 101, 89, 16, 103, 88, 103, 102,
558
+ 101, 89, 104, 102, 16, 103, 88, 103,
559
+ 102, 106, 98, 102, 16, 109, 97, 109,
560
+ 105, 106, 98, 102, 16, 109, 97, 109,
561
+ 105, 106, 98, 100, 97, 107, 97, 107,
562
+ 105, 108, 98, 100, 105, 16, 109, 97,
563
+ 109, 105, 108, 98, 100, 97, 109, 97,
564
+ 109, 105, 108, 98, 102, 105, 16, 109,
565
+ 97, 109, 105, 98, 100, 97, 111, 89,
566
+ 110, 88, 88, 102, 113, 96, 89, 94,
567
+ 16, 114, 92, 114, 94, 113, 96, 89,
568
+ 92, 114, 92, 114, 94, 113, 96, 85,
569
+ 94, 16, 114, 92, 114, 94, 84, 87,
570
+ 121, 83, 16, 148, 0, 148, 116, 84,
571
+ 0, 16, 117, 0, 117, 116, 84, 87,
572
+ 118, 116, 16, 117, 0, 117, 116, 95,
573
+ 92, 116, 16, 120, 92, 120, 119, 95,
574
+ 92, 116, 16, 120, 92, 120, 119, 113,
575
+ 96, 116, 119, 16, 120, 92, 120, 119,
576
+ 123, 92, 83, 16, 142, 92, 142, 122,
577
+ 123, 92, 83, 16, 142, 92, 142, 122,
578
+ 123, 126, 89, 92, 125, 92, 125, 124,
579
+ 123, 92, 85, 16, 125, 92, 125, 124,
580
+ 123, 126, 89, 124, 16, 125, 92, 125,
581
+ 124, 128, 130, 127, 128, 130, 127, 123,
582
+ 89, 16, 129, 129, 92, 129, 126, 89,
583
+ 92, 92, 124, 131, 89, 16, 141, 141,
584
+ 88, 131, 89, 140, 88, 133, 88, 133,
585
+ 132, 131, 89, 16, 133, 88, 133, 132,
586
+ 131, 89, 134, 132, 16, 133, 88, 133,
587
+ 132, 136, 128, 132, 16, 139, 127, 139,
588
+ 135, 136, 128, 132, 16, 139, 127, 139,
589
+ 135, 136, 89, 130, 127, 137, 127, 137,
590
+ 135, 138, 89, 130, 135, 16, 139, 127,
591
+ 139, 135, 138, 89, 130, 127, 139, 127,
592
+ 139, 135, 138, 89, 132, 135, 16, 139,
593
+ 127, 139, 135, 128, 130, 127, 141, 89,
594
+ 140, 88, 88, 132, 145, 126, 83, 122,
595
+ 16, 147, 92, 147, 143, 123, 92, 116,
596
+ 16, 144, 92, 144, 143, 123, 126, 83,
597
+ 143, 16, 144, 92, 144, 143, 145, 126,
598
+ 89, 92, 146, 92, 146, 124, 123, 126,
599
+ 85, 124, 16, 125, 92, 125, 124, 145,
600
+ 126, 116, 143, 16, 144, 92, 144, 143,
601
+ 84, 87, 149, 116, 16, 117, 0, 117,
602
+ 116, 123, 92, 116, 16, 144, 92, 144,
603
+ 143, 0, 7, 10, 82, 0, 4, 0,
604
+ 7, 10, 82, 0, 4, 0, 7, 10,
605
+ 153, 0, 6, 0, 158, 162, 0, 0,
606
+ 154, 155, 0, 16, 187, 0, 187, 154,
607
+ 155, 158, 162, 0, 157, 0, 157, 156,
608
+ 155, 0, 16, 157, 0, 157, 156, 155,
609
+ 158, 164, 156, 16, 157, 0, 157, 156,
610
+ 160, 159, 160, 159, 155, 16, 161, 161,
611
+ 0, 161, 158, 162, 0, 0, 156, 160,
612
+ 163, 160, 163, 166, 163, 156, 16, 186,
613
+ 163, 186, 165, 166, 163, 156, 16, 186,
614
+ 163, 186, 165, 166, 167, 160, 163, 184,
615
+ 163, 184, 165, 169, 171, 168, 169, 171,
616
+ 168, 166, 160, 16, 170, 170, 163, 170,
617
+ 167, 160, 163, 163, 165, 172, 160, 16,
618
+ 183, 183, 159, 172, 160, 182, 159, 174,
619
+ 159, 174, 173, 172, 160, 16, 174, 159,
620
+ 174, 173, 172, 160, 175, 173, 16, 174,
621
+ 159, 174, 173, 177, 169, 173, 16, 181,
622
+ 168, 181, 176, 177, 169, 173, 16, 181,
623
+ 168, 181, 176, 177, 169, 160, 168, 178,
624
+ 168, 178, 176, 179, 169, 171, 176, 16,
625
+ 181, 168, 181, 176, 179, 169, 160, 168,
626
+ 180, 168, 180, 176, 179, 169, 173, 176,
627
+ 16, 181, 168, 181, 176, 179, 169, 156,
628
+ 176, 16, 181, 168, 181, 176, 169, 171,
629
+ 168, 183, 160, 182, 159, 159, 173, 185,
630
+ 167, 160, 165, 16, 186, 163, 186, 165,
631
+ 185, 167, 160, 163, 186, 163, 186, 165,
632
+ 185, 167, 156, 165, 16, 186, 163, 186,
633
+ 165, 190, 158, 284, 154, 16, 292, 0,
634
+ 292, 188, 155, 0, 16, 189, 0, 189,
635
+ 188, 190, 158, 259, 188, 16, 189, 0,
636
+ 189, 188, 190, 158, 162, 0, 191, 0,
637
+ 191, 156, 155, 158, 192, 156, 16, 157,
638
+ 0, 157, 156, 194, 163, 156, 16, 258,
639
+ 163, 258, 193, 194, 163, 156, 16, 258,
640
+ 163, 258, 193, 194, 195, 160, 163, 256,
641
+ 163, 256, 193, 197, 199, 196, 197, 199,
642
+ 196, 194, 160, 16, 198, 198, 163, 198,
643
+ 195, 160, 163, 163, 193, 200, 160, 16,
644
+ 255, 255, 159, 200, 160, 254, 159, 202,
645
+ 159, 202, 201, 200, 160, 16, 202, 159,
646
+ 202, 201, 200, 160, 203, 201, 16, 202,
647
+ 159, 202, 201, 205, 197, 201, 16, 253,
648
+ 196, 253, 204, 205, 197, 201, 16, 253,
649
+ 196, 253, 204, 205, 197, 206, 196, 250,
650
+ 196, 250, 204, 207, 160, 16, 249, 249,
651
+ 159, 207, 160, 248, 159, 209, 159, 209,
652
+ 208, 207, 160, 16, 209, 159, 209, 208,
653
+ 207, 160, 210, 208, 16, 209, 159, 209,
654
+ 208, 212, 214, 208, 16, 247, 213, 247,
655
+ 211, 212, 214, 208, 16, 247, 213, 247,
656
+ 211, 212, 160, 206, 213, 245, 213, 245,
657
+ 211, 214, 206, 213, 215, 160, 16, 244,
658
+ 244, 163, 215, 243, 160, 163, 242, 163,
659
+ 242, 216, 215, 163, 217, 16, 242, 163,
660
+ 242, 216, 155, 0, 16, 218, 0, 218,
661
+ 156, 190, 158, 219, 156, 16, 191, 0,
662
+ 191, 156, 221, 163, 217, 16, 241, 163,
663
+ 241, 220, 221, 163, 217, 16, 241, 163,
664
+ 241, 220, 221, 222, 160, 163, 239, 163,
665
+ 239, 220, 224, 226, 223, 224, 226, 223,
666
+ 221, 160, 16, 225, 225, 163, 225, 222,
667
+ 160, 163, 163, 220, 227, 160, 16, 238,
668
+ 238, 159, 227, 160, 237, 159, 229, 159,
669
+ 229, 228, 227, 160, 16, 229, 159, 229,
670
+ 228, 227, 160, 230, 228, 16, 229, 159,
671
+ 229, 228, 232, 224, 228, 16, 236, 223,
672
+ 236, 231, 232, 224, 228, 16, 236, 223,
673
+ 236, 231, 232, 169, 160, 223, 233, 223,
674
+ 233, 231, 234, 169, 226, 231, 16, 236,
675
+ 223, 236, 231, 234, 169, 160, 223, 235,
676
+ 223, 235, 231, 234, 169, 228, 231, 16,
677
+ 236, 223, 236, 231, 234, 169, 156, 231,
678
+ 16, 236, 223, 236, 231, 224, 226, 223,
679
+ 238, 160, 237, 159, 159, 228, 240, 222,
680
+ 160, 220, 16, 241, 163, 241, 220, 240,
681
+ 222, 160, 163, 241, 163, 241, 220, 240,
682
+ 222, 217, 220, 16, 241, 163, 241, 220,
683
+ 215, 243, 160, 216, 16, 242, 163, 242,
684
+ 216, 214, 206, 213, 244, 243, 160, 163,
685
+ 163, 216, 246, 160, 206, 211, 16, 247,
686
+ 213, 247, 211, 246, 160, 206, 213, 247,
687
+ 213, 247, 211, 246, 160, 208, 211, 16,
688
+ 247, 213, 247, 211, 214, 206, 213, 249,
689
+ 160, 248, 159, 159, 208, 251, 197, 199,
690
+ 204, 16, 253, 196, 253, 204, 251, 197,
691
+ 206, 196, 252, 196, 252, 204, 251, 197,
692
+ 201, 204, 16, 253, 196, 253, 204, 251,
693
+ 197, 208, 204, 16, 253, 196, 253, 204,
694
+ 197, 199, 196, 255, 160, 254, 159, 159,
695
+ 201, 257, 195, 160, 193, 16, 258, 163,
696
+ 258, 193, 257, 195, 160, 163, 258, 163,
697
+ 258, 193, 257, 195, 156, 193, 16, 258,
698
+ 163, 258, 193, 261, 163, 188, 16, 283,
699
+ 163, 283, 260, 261, 163, 188, 16, 283,
700
+ 163, 283, 260, 261, 265, 160, 163, 282,
701
+ 163, 282, 262, 261, 163, 217, 16, 263,
702
+ 163, 263, 262, 264, 265, 217, 262, 16,
703
+ 263, 163, 263, 262, 264, 265, 160, 163,
704
+ 263, 163, 263, 262, 267, 269, 266, 267,
705
+ 269, 266, 261, 160, 16, 268, 268, 163,
706
+ 268, 265, 160, 163, 163, 262, 270, 160,
707
+ 16, 281, 281, 159, 270, 160, 280, 159,
708
+ 272, 159, 272, 271, 270, 160, 16, 272,
709
+ 159, 272, 271, 270, 160, 273, 271, 16,
710
+ 272, 159, 272, 271, 275, 267, 271, 16,
711
+ 279, 266, 279, 274, 275, 267, 271, 16,
712
+ 279, 266, 279, 274, 275, 197, 206, 266,
713
+ 276, 266, 276, 274, 277, 197, 269, 274,
714
+ 16, 279, 266, 279, 274, 277, 197, 206,
715
+ 266, 278, 266, 278, 274, 277, 197, 271,
716
+ 274, 16, 279, 266, 279, 274, 277, 197,
717
+ 208, 274, 16, 279, 266, 279, 274, 267,
718
+ 269, 266, 281, 160, 280, 159, 159, 271,
719
+ 264, 265, 160, 262, 16, 263, 163, 263,
720
+ 262, 264, 265, 217, 260, 16, 283, 163,
721
+ 283, 260, 215, 163, 154, 16, 286, 163,
722
+ 286, 285, 215, 163, 154, 16, 286, 163,
723
+ 286, 285, 289, 243, 160, 285, 16, 291,
724
+ 163, 291, 287, 215, 163, 188, 16, 288,
725
+ 163, 288, 287, 289, 243, 160, 287, 16,
726
+ 291, 163, 291, 287, 289, 243, 160, 163,
727
+ 290, 163, 290, 216, 215, 243, 217, 216,
728
+ 16, 242, 163, 242, 216, 289, 243, 217,
729
+ 287, 16, 291, 163, 291, 287, 190, 158,
730
+ 293, 188, 16, 189, 0, 189, 188, 215,
731
+ 163, 188, 16, 288, 163, 288, 287, 0,
732
+ 87, 91, 0, 0, 295, 84, 0, 16,
733
+ 296, 0, 296, 295, 84, 87, 297, 295,
734
+ 16, 303, 0, 303, 116, 123, 92, 295,
735
+ 16, 299, 92, 299, 298, 123, 92, 295,
736
+ 16, 299, 92, 299, 298, 145, 126, 295,
737
+ 298, 16, 302, 92, 302, 300, 123, 92,
738
+ 116, 16, 301, 92, 301, 300, 123, 126,
739
+ 89, 300, 16, 301, 92, 301, 300, 145,
740
+ 126, 116, 300, 16, 301, 92, 301, 300,
741
+ 84, 87, 304, 116, 16, 117, 0, 117,
742
+ 116, 123, 92, 116, 16, 301, 92, 301,
743
+ 300, 0, 7, 10, 294, 0, 2, 0,
744
+ 7, 10, 294, 0, 2, 307, 3, 0,
745
+ 0, 152, 2, 308, 3, 0, 0, 5,
746
+ 4, 309, 3, 0, 0, 0, 6, 0,
747
+ 0
95
748
  ]
96
749
 
97
750
  class << self
98
- attr_accessor :_parser_trans_actions_wi
99
- private :_parser_trans_actions_wi, :_parser_trans_actions_wi=
751
+ attr_accessor :_parser_trans_actions
752
+ private :_parser_trans_actions, :_parser_trans_actions=
100
753
  end
101
- self._parser_trans_actions_wi = [
102
- 7, 5, 13, 13, 5, 7, 1, 0,
103
- 0, 0, 0, 17, 17, 0, 10, 1,
104
- 0, 0, 0, 3, 0, 1, 0, 3,
105
- 0, 1, 0, 0, 0, 0
754
+ self._parser_trans_actions = [
755
+ 49, 0, 53, 53, 53, 0, 0, 7,
756
+ 49, 12, 12, 7, 7, 9, 0, 49,
757
+ 0, 53, 53, 53, 0, 0, 7, 49,
758
+ 12, 12, 7, 7, 9, 0, 0, 5,
759
+ 5, 5, 0, 1, 12, 12, 7, 7,
760
+ 7, 0, 25, 1, 15, 0, 3, 3,
761
+ 7, 25, 1, 15, 0, 0, 5, 5,
762
+ 0, 0, 1, 12, 0, 33, 12, 0,
763
+ 12, 0, 0, 5, 5, 0, 1, 0,
764
+ 1, 1, 12, 0, 33, 12, 0, 12,
765
+ 0, 0, 0, 7, 12, 5, 5, 0,
766
+ 33, 21, 0, 21, 1, 25, 1, 15,
767
+ 0, 3, 18, 3, 3, 0, 0, 5,
768
+ 5, 0, 0, 1, 25, 1, 15, 0,
769
+ 21, 1, 25, 33, 21, 1, 21, 1,
770
+ 12, 0, 15, 33, 12, 0, 12, 0,
771
+ 0, 5, 15, 0, 1, 0, 1, 1,
772
+ 25, 25, 1, 15, 15, 0, 3, 15,
773
+ 18, 3, 3, 0, 0, 5, 15, 0,
774
+ 0, 1, 3, 15, 18, 3, 3, 0,
775
+ 0, 15, 5, 0, 1, 0, 1, 1,
776
+ 12, 15, 33, 12, 0, 12, 0, 12,
777
+ 15, 5, 0, 33, 21, 0, 21, 1,
778
+ 21, 37, 25, 33, 21, 1, 21, 1,
779
+ 12, 15, 15, 33, 12, 0, 12, 0,
780
+ 0, 15, 15, 0, 1, 0, 1, 1,
781
+ 12, 15, 15, 0, 33, 21, 0, 21,
782
+ 1, 0, 15, 15, 0, 1, 0, 1,
783
+ 1, 12, 15, 15, 0, 33, 21, 0,
784
+ 21, 1, 12, 15, 15, 0, 33, 21,
785
+ 0, 21, 1, 37, 25, 1, 0, 15,
786
+ 5, 0, 0, 1, 12, 5, 15, 0,
787
+ 33, 21, 0, 21, 1, 0, 5, 15,
788
+ 0, 1, 0, 1, 1, 12, 5, 15,
789
+ 0, 33, 21, 0, 21, 1, 12, 5,
790
+ 5, 0, 33, 29, 0, 29, 1, 12,
791
+ 0, 33, 12, 0, 12, 0, 12, 5,
792
+ 5, 0, 33, 29, 0, 29, 1, 29,
793
+ 1, 25, 33, 29, 1, 29, 1, 12,
794
+ 0, 15, 33, 12, 0, 12, 0, 12,
795
+ 5, 15, 0, 33, 29, 0, 29, 1,
796
+ 29, 1, 25, 33, 29, 1, 29, 1,
797
+ 12, 0, 15, 33, 12, 0, 12, 0,
798
+ 0, 5, 15, 0, 1, 0, 1, 1,
799
+ 12, 0, 15, 33, 12, 0, 12, 0,
800
+ 12, 5, 15, 0, 33, 21, 0, 21,
801
+ 1, 25, 25, 1, 15, 15, 0, 3,
802
+ 15, 18, 3, 3, 0, 0, 5, 15,
803
+ 0, 0, 1, 3, 15, 18, 3, 3,
804
+ 0, 0, 15, 5, 0, 1, 0, 1,
805
+ 1, 12, 15, 33, 12, 0, 12, 0,
806
+ 12, 15, 5, 0, 33, 21, 0, 21,
807
+ 1, 21, 37, 25, 33, 21, 1, 21,
808
+ 1, 12, 15, 15, 33, 12, 0, 12,
809
+ 0, 0, 15, 15, 0, 1, 0, 1,
810
+ 1, 12, 15, 15, 0, 33, 21, 0,
811
+ 21, 1, 0, 15, 15, 0, 1, 0,
812
+ 1, 1, 12, 15, 15, 0, 33, 21,
813
+ 0, 21, 1, 37, 25, 1, 0, 15,
814
+ 5, 0, 0, 1, 12, 5, 15, 0,
815
+ 33, 29, 0, 29, 1, 12, 0, 15,
816
+ 33, 12, 0, 12, 0, 12, 5, 15,
817
+ 0, 33, 29, 0, 29, 1, 0, 5,
818
+ 15, 0, 1, 0, 1, 1, 12, 5,
819
+ 15, 0, 33, 21, 0, 21, 1, 12,
820
+ 5, 15, 0, 33, 29, 0, 29, 1,
821
+ 12, 5, 5, 0, 33, 29, 0, 29,
822
+ 1, 29, 1, 25, 33, 29, 1, 29,
823
+ 1, 0, 5, 5, 0, 0, 1, 12,
824
+ 0, 33, 12, 0, 12, 0, 0, 5,
825
+ 5, 0, 1, 0, 1, 1, 12, 0,
826
+ 33, 12, 0, 12, 0, 12, 5, 5,
827
+ 0, 33, 21, 0, 21, 1, 25, 1,
828
+ 15, 0, 3, 18, 3, 3, 0, 0,
829
+ 5, 5, 0, 0, 1, 25, 1, 15,
830
+ 0, 21, 1, 25, 33, 21, 1, 21,
831
+ 1, 12, 0, 15, 33, 12, 0, 12,
832
+ 0, 0, 5, 15, 0, 1, 0, 1,
833
+ 1, 25, 25, 1, 15, 15, 0, 3,
834
+ 15, 18, 3, 3, 0, 0, 5, 15,
835
+ 0, 0, 1, 3, 15, 18, 3, 3,
836
+ 0, 0, 15, 5, 0, 1, 0, 1,
837
+ 1, 12, 15, 33, 12, 0, 12, 0,
838
+ 12, 15, 5, 0, 33, 21, 0, 21,
839
+ 1, 21, 37, 25, 33, 21, 1, 21,
840
+ 1, 12, 15, 15, 33, 12, 0, 12,
841
+ 0, 0, 15, 15, 0, 1, 0, 1,
842
+ 1, 12, 15, 15, 0, 33, 21, 0,
843
+ 21, 1, 0, 15, 15, 0, 1, 0,
844
+ 1, 1, 12, 15, 15, 0, 33, 21,
845
+ 0, 21, 1, 37, 25, 1, 0, 15,
846
+ 5, 0, 0, 1, 12, 5, 15, 0,
847
+ 33, 21, 0, 21, 1, 0, 5, 15,
848
+ 0, 1, 0, 1, 1, 12, 5, 15,
849
+ 0, 33, 21, 0, 21, 1, 12, 5,
850
+ 5, 0, 33, 29, 0, 29, 1, 12,
851
+ 0, 33, 12, 0, 12, 0, 12, 5,
852
+ 5, 0, 33, 29, 0, 29, 1, 29,
853
+ 1, 25, 33, 29, 1, 29, 1, 12,
854
+ 0, 15, 33, 12, 0, 12, 0, 12,
855
+ 5, 15, 0, 33, 29, 0, 29, 1,
856
+ 29, 1, 25, 33, 29, 1, 29, 1,
857
+ 12, 0, 15, 33, 12, 0, 12, 0,
858
+ 0, 5, 15, 0, 1, 0, 1, 1,
859
+ 12, 0, 15, 33, 12, 0, 12, 0,
860
+ 12, 5, 15, 0, 33, 21, 0, 21,
861
+ 1, 25, 25, 1, 15, 15, 0, 3,
862
+ 15, 18, 3, 3, 0, 0, 5, 15,
863
+ 0, 0, 1, 3, 15, 18, 3, 3,
864
+ 0, 0, 15, 5, 0, 1, 0, 1,
865
+ 1, 12, 15, 33, 12, 0, 12, 0,
866
+ 12, 15, 5, 0, 33, 21, 0, 21,
867
+ 1, 21, 37, 25, 33, 21, 1, 21,
868
+ 1, 12, 15, 15, 33, 12, 0, 12,
869
+ 0, 0, 15, 15, 0, 1, 0, 1,
870
+ 1, 12, 15, 15, 0, 33, 21, 0,
871
+ 21, 1, 0, 15, 15, 0, 1, 0,
872
+ 1, 1, 12, 15, 15, 0, 33, 21,
873
+ 0, 21, 1, 37, 25, 1, 0, 15,
874
+ 5, 0, 0, 1, 12, 5, 15, 0,
875
+ 33, 29, 0, 29, 1, 12, 0, 15,
876
+ 33, 12, 0, 12, 0, 12, 5, 15,
877
+ 0, 33, 29, 0, 29, 1, 0, 5,
878
+ 15, 0, 1, 0, 1, 1, 12, 5,
879
+ 15, 0, 33, 21, 0, 21, 1, 12,
880
+ 5, 15, 0, 33, 29, 0, 29, 1,
881
+ 12, 5, 5, 0, 33, 29, 0, 29,
882
+ 1, 29, 1, 25, 33, 29, 1, 29,
883
+ 1, 0, 53, 53, 53, 0, 49, 0,
884
+ 45, 45, 45, 0, 41, 0, 5, 5,
885
+ 5, 0, 1, 0, 5, 5, 0, 0,
886
+ 1, 12, 0, 33, 12, 0, 12, 0,
887
+ 0, 5, 5, 0, 1, 0, 1, 1,
888
+ 12, 0, 33, 12, 0, 12, 0, 12,
889
+ 5, 5, 0, 33, 21, 0, 21, 1,
890
+ 25, 1, 15, 0, 3, 18, 3, 3,
891
+ 0, 0, 5, 5, 0, 0, 1, 25,
892
+ 1, 15, 0, 21, 1, 25, 33, 21,
893
+ 1, 21, 1, 12, 0, 15, 33, 12,
894
+ 0, 12, 0, 0, 5, 15, 0, 1,
895
+ 0, 1, 1, 25, 25, 1, 15, 15,
896
+ 0, 3, 15, 18, 3, 3, 0, 0,
897
+ 5, 15, 0, 0, 1, 3, 15, 18,
898
+ 3, 3, 0, 0, 15, 5, 0, 1,
899
+ 0, 1, 1, 12, 15, 33, 12, 0,
900
+ 12, 0, 12, 15, 5, 0, 33, 21,
901
+ 0, 21, 1, 21, 37, 25, 33, 21,
902
+ 1, 21, 1, 12, 15, 15, 33, 12,
903
+ 0, 12, 0, 0, 15, 15, 0, 1,
904
+ 0, 1, 1, 12, 15, 15, 0, 33,
905
+ 21, 0, 21, 1, 0, 15, 15, 0,
906
+ 1, 0, 1, 1, 12, 15, 15, 0,
907
+ 33, 21, 0, 21, 1, 12, 15, 15,
908
+ 0, 33, 21, 0, 21, 1, 37, 25,
909
+ 1, 0, 15, 5, 0, 0, 1, 12,
910
+ 5, 15, 0, 33, 21, 0, 21, 1,
911
+ 0, 5, 15, 0, 1, 0, 1, 1,
912
+ 12, 5, 15, 0, 33, 21, 0, 21,
913
+ 1, 12, 5, 5, 0, 33, 29, 0,
914
+ 29, 1, 12, 0, 33, 12, 0, 12,
915
+ 0, 12, 5, 5, 0, 33, 29, 0,
916
+ 29, 1, 0, 5, 5, 0, 1, 0,
917
+ 1, 1, 12, 5, 5, 0, 33, 21,
918
+ 0, 21, 1, 21, 1, 25, 33, 21,
919
+ 1, 21, 1, 12, 0, 15, 33, 12,
920
+ 0, 12, 0, 0, 5, 15, 0, 1,
921
+ 0, 1, 1, 25, 25, 1, 15, 15,
922
+ 0, 3, 15, 18, 3, 3, 0, 0,
923
+ 5, 15, 0, 0, 1, 3, 15, 18,
924
+ 3, 3, 0, 0, 15, 5, 0, 1,
925
+ 0, 1, 1, 12, 15, 33, 12, 0,
926
+ 12, 0, 12, 15, 5, 0, 33, 21,
927
+ 0, 21, 1, 21, 37, 25, 33, 21,
928
+ 1, 21, 1, 12, 15, 15, 33, 12,
929
+ 0, 12, 0, 0, 15, 15, 0, 1,
930
+ 0, 1, 1, 3, 15, 18, 3, 3,
931
+ 0, 0, 15, 5, 0, 1, 0, 1,
932
+ 1, 12, 15, 33, 12, 0, 12, 0,
933
+ 12, 15, 5, 0, 33, 21, 0, 21,
934
+ 1, 21, 37, 25, 33, 21, 1, 21,
935
+ 1, 12, 15, 15, 33, 12, 0, 12,
936
+ 0, 0, 15, 15, 0, 1, 0, 1,
937
+ 1, 15, 15, 0, 3, 15, 18, 3,
938
+ 3, 0, 0, 5, 15, 0, 1, 0,
939
+ 1, 1, 12, 0, 15, 33, 12, 0,
940
+ 12, 0, 12, 0, 33, 12, 0, 12,
941
+ 0, 12, 5, 5, 0, 33, 21, 0,
942
+ 21, 1, 21, 1, 25, 33, 21, 1,
943
+ 21, 1, 12, 0, 15, 33, 12, 0,
944
+ 12, 0, 0, 5, 15, 0, 1, 0,
945
+ 1, 1, 25, 25, 1, 15, 15, 0,
946
+ 3, 15, 18, 3, 3, 0, 0, 5,
947
+ 15, 0, 0, 1, 3, 15, 18, 3,
948
+ 3, 0, 0, 15, 5, 0, 1, 0,
949
+ 1, 1, 12, 15, 33, 12, 0, 12,
950
+ 0, 12, 15, 5, 0, 33, 21, 0,
951
+ 21, 1, 21, 37, 25, 33, 21, 1,
952
+ 21, 1, 12, 15, 15, 33, 12, 0,
953
+ 12, 0, 0, 15, 15, 0, 1, 0,
954
+ 1, 1, 12, 15, 15, 0, 33, 21,
955
+ 0, 21, 1, 0, 15, 15, 0, 1,
956
+ 0, 1, 1, 12, 15, 15, 0, 33,
957
+ 21, 0, 21, 1, 12, 15, 15, 0,
958
+ 33, 21, 0, 21, 1, 37, 25, 1,
959
+ 0, 15, 5, 0, 0, 1, 12, 5,
960
+ 15, 0, 33, 21, 0, 21, 1, 0,
961
+ 5, 15, 0, 1, 0, 1, 1, 12,
962
+ 5, 15, 0, 33, 21, 0, 21, 1,
963
+ 12, 5, 15, 0, 33, 21, 0, 21,
964
+ 1, 25, 25, 1, 0, 5, 15, 0,
965
+ 0, 1, 12, 15, 15, 0, 33, 21,
966
+ 0, 21, 1, 0, 15, 15, 0, 1,
967
+ 0, 1, 1, 12, 15, 15, 0, 33,
968
+ 21, 0, 21, 1, 37, 25, 1, 0,
969
+ 15, 5, 0, 0, 1, 12, 15, 15,
970
+ 0, 33, 21, 0, 21, 1, 0, 15,
971
+ 15, 0, 1, 0, 1, 1, 12, 15,
972
+ 15, 0, 33, 21, 0, 21, 1, 12,
973
+ 15, 15, 0, 33, 21, 0, 21, 1,
974
+ 37, 25, 1, 0, 15, 5, 0, 0,
975
+ 1, 12, 5, 15, 0, 33, 21, 0,
976
+ 21, 1, 0, 5, 15, 0, 1, 0,
977
+ 1, 1, 12, 5, 15, 0, 33, 21,
978
+ 0, 21, 1, 29, 1, 25, 33, 29,
979
+ 1, 29, 1, 12, 0, 15, 33, 12,
980
+ 0, 12, 0, 0, 5, 15, 0, 1,
981
+ 0, 1, 1, 12, 0, 15, 33, 12,
982
+ 0, 12, 0, 12, 5, 15, 0, 33,
983
+ 21, 0, 21, 1, 0, 5, 15, 0,
984
+ 1, 0, 1, 1, 25, 25, 1, 15,
985
+ 15, 0, 3, 15, 18, 3, 3, 0,
986
+ 0, 5, 15, 0, 0, 1, 3, 15,
987
+ 18, 3, 3, 0, 0, 15, 5, 0,
988
+ 1, 0, 1, 1, 12, 15, 33, 12,
989
+ 0, 12, 0, 12, 15, 5, 0, 33,
990
+ 21, 0, 21, 1, 21, 37, 25, 33,
991
+ 21, 1, 21, 1, 12, 15, 15, 33,
992
+ 12, 0, 12, 0, 0, 15, 15, 0,
993
+ 1, 0, 1, 1, 12, 15, 15, 0,
994
+ 33, 21, 0, 21, 1, 0, 15, 15,
995
+ 0, 1, 0, 1, 1, 12, 15, 15,
996
+ 0, 33, 21, 0, 21, 1, 12, 15,
997
+ 15, 0, 33, 21, 0, 21, 1, 37,
998
+ 25, 1, 0, 15, 5, 0, 0, 1,
999
+ 12, 5, 15, 0, 33, 21, 0, 21,
1000
+ 1, 12, 5, 15, 0, 33, 29, 0,
1001
+ 29, 1, 29, 1, 25, 33, 29, 1,
1002
+ 29, 1, 12, 0, 15, 33, 12, 0,
1003
+ 12, 0, 12, 5, 15, 0, 33, 29,
1004
+ 0, 29, 1, 12, 0, 15, 33, 12,
1005
+ 0, 12, 0, 12, 5, 15, 0, 33,
1006
+ 29, 0, 29, 1, 0, 5, 15, 0,
1007
+ 1, 0, 1, 1, 12, 5, 15, 0,
1008
+ 33, 21, 0, 21, 1, 12, 5, 15,
1009
+ 0, 33, 29, 0, 29, 1, 12, 5,
1010
+ 5, 0, 33, 29, 0, 29, 1, 29,
1011
+ 1, 25, 33, 29, 1, 29, 1, 0,
1012
+ 5, 5, 0, 0, 1, 12, 0, 33,
1013
+ 12, 0, 12, 0, 12, 5, 5, 0,
1014
+ 33, 29, 0, 29, 1, 29, 1, 25,
1015
+ 33, 29, 1, 29, 1, 12, 0, 15,
1016
+ 33, 12, 0, 12, 0, 12, 5, 15,
1017
+ 0, 33, 29, 0, 29, 1, 12, 0,
1018
+ 15, 33, 12, 0, 12, 0, 12, 5,
1019
+ 15, 0, 33, 29, 0, 29, 1, 12,
1020
+ 5, 15, 0, 33, 29, 0, 29, 1,
1021
+ 12, 5, 5, 0, 33, 29, 0, 29,
1022
+ 1, 29, 1, 25, 33, 29, 1, 29,
1023
+ 1, 0, 53, 53, 53, 0, 49, 0,
1024
+ 45, 45, 45, 0, 41, 12, 12, 7,
1025
+ 7, 9, 0, 12, 12, 7, 7, 9,
1026
+ 0, 12, 12, 7, 7, 7, 0, 0,
1027
+ 0
1028
+ ]
1029
+
1030
+ class << self
1031
+ attr_accessor :_parser_eof_actions
1032
+ private :_parser_eof_actions, :_parser_eof_actions=
1033
+ end
1034
+ self._parser_eof_actions = [
1035
+ 0, 7, 7, 7, 7, 0, 7, 0,
1036
+ 0, 7, 0, 0, 0, 0, 0, 0,
1037
+ 7, 0, 0, 0, 0, 0, 0, 0,
1038
+ 0, 0, 0, 0, 0, 0, 0, 0,
1039
+ 0, 0, 0, 0, 0, 0, 0, 0,
1040
+ 0, 0, 0, 0, 0, 0, 0, 0,
1041
+ 0, 0, 0, 0, 0, 0, 0, 0,
1042
+ 0, 0, 0, 0, 0, 0, 0, 0,
1043
+ 0, 0, 0, 0, 0, 0, 0, 0,
1044
+ 0, 0, 0, 0, 0, 0, 0, 0,
1045
+ 0, 0, 0, 0, 0, 0, 0, 0,
1046
+ 0, 0, 0, 0, 0, 0, 0, 0,
1047
+ 0, 0, 0, 0, 0, 0, 0, 0,
1048
+ 0, 0, 0, 0, 0, 0, 0, 0,
1049
+ 0, 0, 0, 0, 0, 0, 0, 0,
1050
+ 0, 0, 0, 0, 0, 0, 0, 0,
1051
+ 0, 0, 0, 0, 0, 0, 0, 0,
1052
+ 0, 0, 0, 0, 0, 0, 0, 0,
1053
+ 0, 0, 0, 0, 0, 0, 0, 0,
1054
+ 0, 0, 0, 0, 0, 0, 0, 0,
1055
+ 0, 0, 0, 0, 0, 0, 0, 0,
1056
+ 0, 0, 0, 0, 0, 0, 0, 0,
1057
+ 0, 0, 0, 0, 0, 0, 0, 0,
1058
+ 0, 0, 0, 0, 0, 0, 0, 0,
1059
+ 0, 0, 0, 0, 0, 0, 0, 0,
1060
+ 0, 0, 0, 0, 0, 0, 0, 0,
1061
+ 0, 0, 0, 0, 0, 0, 0, 0,
1062
+ 0, 0, 0, 0, 0, 0, 0, 0,
1063
+ 0, 0, 0, 0, 0, 0, 0, 0,
1064
+ 0, 0, 0, 0, 0, 0, 0, 0,
1065
+ 0, 0, 0, 0, 0, 0, 0, 0,
1066
+ 0, 0, 0, 0, 0, 0, 0, 0,
1067
+ 0, 0, 0, 0, 0, 0, 0, 0,
1068
+ 0, 0, 0, 0, 0, 0, 0, 0,
1069
+ 0, 0, 0, 0, 0, 0, 0, 0,
1070
+ 0, 0, 0, 0, 0, 0, 0, 0,
1071
+ 0, 0, 0, 0, 0, 0, 0, 0,
1072
+ 0, 0, 0, 0, 0, 0, 0, 0,
1073
+ 0, 0, 0, 0, 0, 0, 0
106
1074
  ]
107
1075
 
108
1076
  class << self
@@ -112,7 +1080,7 @@ self.parser_start = 1;
112
1080
  class << self
113
1081
  attr_accessor :parser_first_final
114
1082
  end
115
- self.parser_first_final = 8;
1083
+ self.parser_first_final = 307;
116
1084
  class << self
117
1085
  attr_accessor :parser_error
118
1086
  end
@@ -123,31 +1091,47 @@ class << self
123
1091
  end
124
1092
  self.parser_en_main = 1;
125
1093
 
126
- # line 66 "lib/keyword_search.rl"
1094
+ # line 91 "lib/keyword_search.rl"
127
1095
  p = 0
1096
+ eof = nil
1097
+ word = nil
128
1098
  pe = data.length
129
1099
  key = nil
1100
+ positive_match = nil
130
1101
  tokstart = nil
131
1102
  results = {}
132
1103
  quotes = 0
133
1104
 
134
- # line 135 "lib/keyword_search.rb"
1105
+ # line 1106 "lib/keyword_search.rb"
135
1106
  begin
136
1107
  p ||= 0
137
1108
  pe ||= data.length
138
1109
  cs = parser_start
139
1110
  end
140
- # line 73 "lib/keyword_search.rl"
1111
+ # line 101 "lib/keyword_search.rl"
141
1112
 
142
- # line 143 "lib/keyword_search.rb"
1113
+ # line 1114 "lib/keyword_search.rb"
143
1114
  begin
144
1115
  _klen, _trans, _keys, _acts, _nacts = nil
145
- if p != pe
146
- if cs != 0
1116
+ _goto_level = 0
1117
+ _resume = 10
1118
+ _eof_trans = 15
1119
+ _again = 20
1120
+ _test_eof = 30
1121
+ _out = 40
147
1122
  while true
148
- _break_resume = false
149
- begin
150
- _break_again = false
1123
+ _trigger_goto = false
1124
+ if _goto_level <= 0
1125
+ if p == pe
1126
+ _goto_level = _test_eof
1127
+ next
1128
+ end
1129
+ if cs == 0
1130
+ _goto_level = _out
1131
+ next
1132
+ end
1133
+ end
1134
+ if _goto_level <= _resume
151
1135
  _keys = _parser_key_offsets[cs]
152
1136
  _trans = _parser_index_offsets[cs]
153
1137
  _klen = _parser_single_lengths[cs]
@@ -197,77 +1181,127 @@ begin
197
1181
  _trans += _klen
198
1182
  end
199
1183
  end while false
200
- cs = _parser_trans_targs_wi[_trans]
201
- break if _parser_trans_actions_wi[_trans] == 0
202
- _acts = _parser_trans_actions_wi[_trans]
203
- _nacts = _parser_actions[_acts]
204
- _acts += 1
205
- while _nacts > 0
206
- _nacts -= 1
1184
+ cs = _parser_trans_targs[_trans]
1185
+ if _parser_trans_actions[_trans] != 0
1186
+ _acts = _parser_trans_actions[_trans]
1187
+ _nacts = _parser_actions[_acts]
207
1188
  _acts += 1
208
- case _parser_actions[_acts - 1]
209
- when 0:
1189
+ while _nacts > 0
1190
+ _nacts -= 1
1191
+ _acts += 1
1192
+ case _parser_actions[_acts - 1]
1193
+ when 0 then
210
1194
  # line 13 "lib/keyword_search.rl"
211
1195
  begin
212
1196
 
213
1197
  tokstart = p;
214
1198
  end
215
1199
  # line 13 "lib/keyword_search.rl"
216
- when 1:
1200
+ when 1 then
217
1201
  # line 17 "lib/keyword_search.rl"
218
1202
  begin
219
1203
 
220
- key = data[tokstart...p-1]
1204
+ key = word
221
1205
  results[key] ||= []
222
1206
  end
223
1207
  # line 17 "lib/keyword_search.rl"
224
- when 2:
1208
+ when 2 then
225
1209
  # line 22 "lib/keyword_search.rl"
226
1210
  begin
227
1211
 
228
1212
  key = nil
229
1213
  end
230
1214
  # line 22 "lib/keyword_search.rl"
231
- when 3:
1215
+ when 3 then
232
1216
  # line 26 "lib/keyword_search.rl"
233
1217
  begin
234
1218
 
235
- value = data[tokstart..p-1]
236
- value = value[1..-2] if ["'", '"'].include?(value[0,1])
237
- (results[key || :default] ||= []) << value
1219
+ word = data[tokstart..p-1]
238
1220
  end
239
1221
  # line 26 "lib/keyword_search.rl"
240
- when 4:
241
- # line 32 "lib/keyword_search.rl"
1222
+ when 4 then
1223
+ # line 30 "lib/keyword_search.rl"
242
1224
  begin
243
- quotes += 1 end
244
- # line 32 "lib/keyword_search.rl"
245
- when 5:
1225
+
1226
+ (results[key || :default] ||= []) << [ word, positive_match ]
1227
+ end
1228
+ # line 30 "lib/keyword_search.rl"
1229
+ when 5 then
246
1230
  # line 34 "lib/keyword_search.rl"
247
1231
  begin
248
- quotes -= 1 end
1232
+
1233
+ positive_match = false
1234
+ end
249
1235
  # line 34 "lib/keyword_search.rl"
250
- when 6:
251
- # line 46 "lib/keyword_search.rl"
1236
+ when 6 then
1237
+ # line 38 "lib/keyword_search.rl"
1238
+ begin
1239
+
1240
+ positive_match = true
1241
+ end
1242
+ # line 38 "lib/keyword_search.rl"
1243
+ when 7 then
1244
+ # line 42 "lib/keyword_search.rl"
1245
+ begin
1246
+ quotes += 1 end
1247
+ # line 42 "lib/keyword_search.rl"
1248
+ when 8 then
1249
+ # line 44 "lib/keyword_search.rl"
1250
+ begin
1251
+ quotes -= 1 end
1252
+ # line 44 "lib/keyword_search.rl"
1253
+ when 9 then
1254
+ # line 71 "lib/keyword_search.rl"
252
1255
  begin
253
1256
  raise ParseError, "At offset #{p}, near: '#{data[p,10]}'" end
254
- # line 46 "lib/keyword_search.rl"
255
- # line 256 "lib/keyword_search.rb"
256
- end # action switch
1257
+ # line 71 "lib/keyword_search.rl"
1258
+ # line 1259 "lib/keyword_search.rb"
1259
+ end # action switch
1260
+ end
1261
+ end
1262
+ if _trigger_goto
1263
+ next
1264
+ end
1265
+ end
1266
+ if _goto_level <= _again
1267
+ if cs == 0
1268
+ _goto_level = _out
1269
+ next
257
1270
  end
258
- end while false
259
- break if _break_resume
260
- break if cs == 0
261
1271
  p += 1
262
- break if p == pe
1272
+ if p != pe
1273
+ _goto_level = _resume
1274
+ next
1275
+ end
1276
+ end
1277
+ if _goto_level <= _test_eof
1278
+ if p == eof
1279
+ __acts = _parser_eof_actions[cs]
1280
+ __nacts = _parser_actions[__acts]
1281
+ __acts += 1
1282
+ while __nacts > 0
1283
+ __nacts -= 1
1284
+ __acts += 1
1285
+ case _parser_actions[__acts - 1]
1286
+ when 9 then
1287
+ # line 71 "lib/keyword_search.rl"
1288
+ begin
1289
+ raise ParseError, "At offset #{p}, near: '#{data[p,10]}'" end
1290
+ # line 71 "lib/keyword_search.rl"
1291
+ # line 1292 "lib/keyword_search.rb"
1292
+ end # eof action switch
1293
+ end
1294
+ if _trigger_goto
1295
+ next
1296
+ end
1297
+ end
263
1298
  end
1299
+ if _goto_level <= _out
1300
+ break
264
1301
  end
265
1302
  end
266
1303
  end
267
- # line 74 "lib/keyword_search.rl"
268
-
269
- # line 270 "lib/keyword_search.rb"
270
- # line 75 "lib/keyword_search.rl"
1304
+ # line 102 "lib/keyword_search.rl"
271
1305
  unless quotes.zero?
272
1306
  raise ParseError, "Unclosed quotes"
273
1307
  end