ruby_protobuf 0.3.0 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. data/History.txt +3 -1
  2. data/bin/mk_parser +2 -0
  3. data/bin/rprotoc +1 -1
  4. data/lib/protobuf/compiler/compiler.rb +12 -12
  5. data/lib/protobuf/compiler/nodes.rb +140 -35
  6. data/lib/protobuf/compiler/proto.y +7 -4
  7. data/lib/protobuf/compiler/proto_parser.rb +170 -167
  8. data/lib/protobuf/compiler/template/rpc_bin.erb +1 -1
  9. data/lib/protobuf/compiler/template/rpc_client.erb +1 -1
  10. data/lib/protobuf/compiler/visitors.rb +168 -16
  11. data/lib/protobuf/message/enum.rb +3 -0
  12. data/lib/protobuf/message/field.rb +52 -37
  13. data/lib/protobuf/message/message.rb +37 -14
  14. data/lib/protobuf/message/protoable.rb +37 -0
  15. data/lib/ruby_protobuf.rb +1 -1
  16. data/test/addressbook.rb +36 -0
  17. data/test/check_unbuild.rb +1 -1
  18. data/test/collision.rb +18 -0
  19. data/test/data/types.bin +0 -0
  20. data/test/data/unk.png +0 -0
  21. data/test/ext_collision.rb +25 -0
  22. data/test/ext_range.rb +23 -0
  23. data/test/merge.rb +40 -0
  24. data/test/nested.rb +25 -0
  25. data/test/proto/addressbook.pb.rb +69 -0
  26. data/test/{addressbook.proto → proto/addressbook.proto} +1 -0
  27. data/test/proto/addressbook.rb +69 -0
  28. data/test/{addressbook_base.proto → proto/addressbook_base.proto} +0 -0
  29. data/test/{addressbook_ext.proto → proto/addressbook_ext.proto} +0 -0
  30. data/test/proto/bool_default.pb.rb +16 -0
  31. data/test/proto/bool_default.proto +3 -0
  32. data/test/proto/collision.proto +5 -0
  33. data/test/proto/ext_collision.proto +8 -0
  34. data/test/proto/ext_range.proto +7 -0
  35. data/test/proto/float_default.proto +2 -0
  36. data/test/proto/merge.proto +15 -0
  37. data/test/proto/nested.proto +7 -0
  38. data/test/{rpc.proto → proto/rpc.proto} +0 -0
  39. data/test/{types.proto → proto/types.proto} +0 -0
  40. data/test/test_compiler.rb +191 -12
  41. data/test/test_message.rb +86 -0
  42. data/test/test_standard_message.rb +8 -5
  43. data/test/test_types.rb +9 -8
  44. metadata +26 -13
  45. data/Manifest.txt +0 -62
  46. data/examples/addressbook.proto +0 -24
  47. data/examples/addressbook.rb +0 -30
  48. data/examples/reading_a_message.rb +0 -32
  49. data/examples/writing_a_message.rb +0 -46
@@ -1,5 +1,7 @@
1
- === 0.3.0 / 2008-08-19
1
+ === 0.3.2 / 2008-10-01
2
2
 
3
+ * 0.3.2 fixed a lot of bugs. Thanks code.monkey.steve. (rev.177)
4
+ * 0.3.1 fixed bugs concerning RPC (rev.146)
3
5
  * 0.3.0 RPC is available (rev.124)
4
6
  * RPC is available
5
7
  * New compiler using racc (ruby version of yacc)
@@ -0,0 +1,2 @@
1
+ #!/bin/sh
2
+ racc -E lib/protobuf/compiler/proto.y -o lib/protobuf/compiler/proto_parser.rb
@@ -1,4 +1,4 @@
1
- #!/usr/bin/ruby
1
+ #!/usr/bin/env ruby
2
2
  $: << "#{File.dirname(__FILE__)}/../lib"
3
3
  require 'optparse'
4
4
  require 'ruby_protobuf'
@@ -15,31 +15,31 @@ module Protobuf
15
15
  end
16
16
 
17
17
  def create_message(proto_file, proto_dir='.', out_dir='.', file_create=true)
18
- rb_file = "#{out_dir}/#{proto_file.sub(/\.proto$/, '.rb')}"
18
+ out_dir.sub! %r{/$}, ''
19
+ proto_dir.sub! %r{/$}, ''
20
+ rb_file =
21
+ if proto_file =~ %r{^/}
22
+ then "#{out_dir}/#{proto_file.split('/').last.sub(/\.proto$/, '.pb.rb')}"
23
+ else "#{out_dir}/#{proto_file.sub(/\.proto$/, '.pb.rb')}" end
19
24
  proto_path = validate_existence proto_file, proto_dir
20
25
 
21
- message_visitor = Protobuf::Visitor::CreateMessageVisitor.new proto_dir, out_dir
26
+ message_visitor = Protobuf::Visitor::CreateMessageVisitor.new proto_file, proto_dir, out_dir
22
27
  File.open proto_path, 'r' do |file|
23
28
  message_visitor.visit Protobuf::ProtoParser.new.parse(file)
24
29
  end
25
- if file_create
26
- puts "#{rb_file} writing..."
27
- FileUtils.mkpath File.dirname(rb_file)
28
- File.open(rb_file, 'w') {|f| f.write message_visitor.to_s}
29
- else
30
- message_visitor.to_s
31
- end
30
+ message_visitor.create_files rb_file, out_dir, file_create
32
31
  end
33
32
 
34
33
  def create_rpc(proto_file, proto_dir='.', out_dir='.', file_create=true)
35
- rb_file = "#{out_dir}/#{proto_file.sub(/\.proto$/, '.rb')}"
34
+ message_file = "#{out_dir}/#{proto_file.sub(/\.proto$/, '.pb.rb')}"
35
+ out_dir = "#{out_dir}/#{File.dirname proto_file}"
36
36
  proto_path = validate_existence proto_file, proto_dir
37
37
 
38
- rpc_visitor = Protobuf::Visitor::CreateRpcVisitor.new# proto_dir, out_dir
38
+ rpc_visitor = Protobuf::Visitor::CreateRpcVisitor.new
39
39
  File.open proto_path, 'r' do |file|
40
40
  rpc_visitor.visit Protobuf::ProtoParser.new.parse(file)
41
41
  end
42
- rpc_visitor.create_files rb_file, out_dir, file_create
42
+ rpc_visitor.create_files message_file, out_dir, file_create
43
43
  end
44
44
 
45
45
  def validate_existence(path, base_dir)
@@ -1,7 +1,19 @@
1
+ require 'protobuf/descriptor/descriptor_proto'
2
+
1
3
  module Protobuf
2
4
  module Node
3
5
  class Base
4
- def accept_rpc_creator(vistor)
6
+ def define_in_the_file(visitor)
7
+ visitor.write "defined_in __FILE__" if visitor.attach_proto?
8
+ end
9
+
10
+ def accept_message_visitor(visitor)
11
+ end
12
+
13
+ def accept_rpc_visitor(vistor)
14
+ end
15
+
16
+ def accept_descriptor_visitor(visitor)
5
17
  end
6
18
  end
7
19
 
@@ -12,19 +24,30 @@ module Protobuf
12
24
  @children = children
13
25
  end
14
26
 
15
- def accept_message_creator(visitor)
27
+ def accept_message_visitor(visitor)
28
+ visitor.write '### Generated by rprotoc. DO NOT EDIT!'
29
+ visitor.write "### <proto file: #{visitor.proto_file}>" if visitor.attach_proto?
30
+ visitor.write visitor.commented_proto_contents if visitor.attach_proto?
16
31
  visitor.write <<-eos
17
32
  require 'protobuf/message/message'
18
33
  require 'protobuf/message/enum'
19
34
  require 'protobuf/message/service'
20
35
  require 'protobuf/message/extend'
21
36
  eos
22
- @children.map{|child| child.accept_message_creator visitor}
37
+ @children.map{|child| child.accept_message_visitor visitor}
23
38
  visitor.close_ruby
24
39
  end
25
40
 
26
- def accept_rpc_creator(visitor)
27
- @children.map{|child| child.accept_rpc_creator visitor}
41
+ def accept_rpc_visitor(visitor)
42
+ @children.map{|child| child.accept_rpc_visitor visitor}
43
+ end
44
+
45
+ def accept_descriptor_visitor(visitor)
46
+ descriptor = Google::Protobuf::FileDescriptorProto.new :name => visitor.filename
47
+ visitor.file_descriptor = descriptor
48
+ visitor.in_context descriptor do
49
+ @children.map{|child| child.accept_descriptor_visitor visitor}
50
+ end
28
51
  end
29
52
  end
30
53
 
@@ -33,9 +56,13 @@ require 'protobuf/message/extend'
33
56
  @path = path
34
57
  end
35
58
 
36
- def accept_message_creator(visitor)
59
+ def accept_message_visitor(visitor)
37
60
  visitor.write "require '#{visitor.required_message_from_proto @path}'"
38
61
  end
62
+
63
+ def accept_descriptor_visitor(visitor)
64
+ visitor.current_descriptor.dependency << @path
65
+ end
39
66
  end
40
67
 
41
68
  class PackageNode < Base
@@ -43,16 +70,20 @@ require 'protobuf/message/extend'
43
70
  @path_list = path_list
44
71
  end
45
72
 
46
- def accept_message_creator(visitor)
73
+ def accept_message_visitor(visitor)
47
74
  @path_list.each do |path|
48
75
  visitor.write "module #{path.to_s.capitalize}"
49
76
  visitor.increment
50
77
  end
51
78
  end
52
79
 
53
- def accept_rpc_creator(visitor)
80
+ def accept_rpc_visitor(visitor)
54
81
  visitor.package = @path_list.dup
55
82
  end
83
+
84
+ def accept_descriptor_visitor(visitor)
85
+ visitor.current_descriptor.package = @path_list.join '.'
86
+ end
56
87
  end
57
88
 
58
89
  class OptionNode < Base
@@ -60,9 +91,13 @@ require 'protobuf/message/extend'
60
91
  @name_list, @value = name_list, value
61
92
  end
62
93
 
63
- def accept_message_creator(visitor)
94
+ def accept_message_visitor(visitor)
64
95
  visitor.write "::Protobuf::OPTIONS[:#{@name_list.join('.').inspect}] = #{@value.inspect}"
65
96
  end
97
+
98
+ def accept_descriptor_visitor(visitor)
99
+ visitor.add_option @name_list.join('.'), @value
100
+ end
66
101
  end
67
102
 
68
103
  class MessageNode < Base
@@ -70,13 +105,22 @@ require 'protobuf/message/extend'
70
105
  @name, @children = name, children
71
106
  end
72
107
 
73
- def accept_message_creator(visitor)
108
+ def accept_message_visitor(visitor)
74
109
  visitor.write "class #{@name} < ::Protobuf::Message"
75
110
  visitor.in_context self.class do
76
- @children.each {|child| child.accept_message_creator visitor}
111
+ define_in_the_file visitor
112
+ @children.each {|child| child.accept_message_visitor visitor}
77
113
  end
78
114
  visitor.write "end"
79
115
  end
116
+
117
+ def accept_descriptor_visitor(visitor)
118
+ descriptor = Google::Protobuf::DescriptorProto.new :name => @name.to_s
119
+ visitor.descriptor = descriptor
120
+ visitor.in_context descriptor do
121
+ @children.each {|child| child.accept_descriptor_visitor visitor}
122
+ end
123
+ end
80
124
  end
81
125
 
82
126
  class ExtendNode < Base
@@ -84,13 +128,18 @@ require 'protobuf/message/extend'
84
128
  @name, @children = name, children
85
129
  end
86
130
 
87
- def accept_message_creator(visitor)
131
+ def accept_message_visitor(visitor)
88
132
  visitor.write "class #{@name} < ::Protobuf::Message"
89
133
  visitor.in_context self.class do
90
- @children.each {|child| child.accept_message_creator visitor}
134
+ define_in_the_file visitor
135
+ @children.each {|child| child.accept_message_visitor visitor}
91
136
  end
92
137
  visitor.write "end"
93
138
  end
139
+
140
+ def accept_descriptor_visitor(visitor)
141
+ # TODO: how should i handle this?
142
+ end
94
143
  end
95
144
 
96
145
  class EnumNode < Base
@@ -98,13 +147,22 @@ require 'protobuf/message/extend'
98
147
  @name, @children = name, children
99
148
  end
100
149
 
101
- def accept_message_creator(visitor)
150
+ def accept_message_visitor(visitor)
102
151
  visitor.write "class #{@name} < ::Protobuf::Enum"
103
152
  visitor.in_context self.class do
104
- @children.each {|child| child.accept_message_creator visitor}
153
+ define_in_the_file visitor
154
+ @children.each {|child| child.accept_message_visitor visitor}
105
155
  end
106
156
  visitor.write "end"
107
157
  end
158
+
159
+ def accept_descriptor_visitor(visitor)
160
+ descriptor = Google::Protobuf::EnumDescriptorProto.new :name => @name.to_s
161
+ visitor.enum_descriptor = descriptor
162
+ visitor.in_context descriptor do
163
+ @children.each {|child| child.accept_descriptor_visitor visitor}
164
+ end
165
+ end
108
166
  end
109
167
 
110
168
  class EnumFieldNode < Base
@@ -112,9 +170,14 @@ require 'protobuf/message/extend'
112
170
  @name, @value = name, value
113
171
  end
114
172
 
115
- def accept_message_creator(visitor)
173
+ def accept_message_visitor(visitor)
116
174
  visitor.write "#{@name} = #{@value}"
117
175
  end
176
+
177
+ def accept_descriptor_visitor(visitor)
178
+ descriptor = Google::Protobuf::EnumValueDescriptorProto.new :name => @name.to_s, :number => @value
179
+ visitor.enum_value_descriptor = descriptor
180
+ end
118
181
  end
119
182
 
120
183
  class ServiceNode < Base
@@ -122,18 +185,21 @@ require 'protobuf/message/extend'
122
185
  @name, @children = name, children
123
186
  end
124
187
 
125
- def accept_message_creator(visitor)
188
+ def accept_message_visitor(visitor)
126
189
  # do nothing
127
- #visitor.write "class #{@name} < ::Protobuf::Service"
128
- #visitor.in_context self.class do
129
- # @children.each {|child| child.accept_message_creator visitor}
130
- #end
131
- #visitor.write "end"
132
190
  end
133
191
 
134
- def accept_rpc_creator(visitor)
192
+ def accept_rpc_visitor(visitor)
135
193
  visitor.current_service = @name
136
- @children.each {|child| child.accept_rpc_creator visitor}
194
+ @children.each {|child| child.accept_rpc_visitor visitor}
195
+ end
196
+
197
+ def accept_descriptor_visitor(visitor)
198
+ descriptor = Google::Protobuf::ServiceDescriptorProto.new :name => @name.to_s
199
+ visitor.service_descriptor = descriptor
200
+ visitor.in_context descriptor do
201
+ @children.each {|child| child.accept_descriptor_visitor visitor}
202
+ end
137
203
  end
138
204
  end
139
205
 
@@ -142,14 +208,18 @@ require 'protobuf/message/extend'
142
208
  @name, @request, @response = name, request, response
143
209
  end
144
210
 
145
- def accept_message_creator(visitor)
211
+ def accept_message_visitor(visitor)
146
212
  # do nothing
147
- #visitor.write "rpc :#{@name}, :request => :#{@request}, :response => :#{@response}"
148
213
  end
149
214
 
150
- def accept_rpc_creator(visitor)
215
+ def accept_rpc_visitor(visitor)
151
216
  visitor.add_rpc @name, @request, @response
152
217
  end
218
+
219
+ def accept_descriptor_visitor(visitor)
220
+ descriptor = Google::Protobuf::MethodDescriptorProto.new :name => @name.to_s, :input_type => @request.to_s, :output_type => @response.to_s
221
+ visitor.method_descriptor = descriptor
222
+ end
153
223
  end
154
224
 
155
225
  class GroupNode < Base
@@ -157,22 +227,45 @@ require 'protobuf/message/extend'
157
227
  @label, @name, @value, @children = label, name, value, children
158
228
  end
159
229
 
160
- def accept_message_creator(visitor)
161
- raise ArgumentError.new('have not implement')
230
+ def accept_message_visitor(visitor)
231
+ raise NotImplementedError.new
232
+ end
233
+
234
+ def accept_descriptor_visitor(visitor)
235
+ raise NotImplementedError.new
162
236
  end
163
237
  end
164
238
 
165
239
  class FieldNode < Base
166
- def initialize(label, type, name, value, opts=[])
240
+ def initialize(label, type, name, value, opts={})
167
241
  @label, @type, @name, @value, @opts = label, type, name, value, opts
168
242
  end
169
243
 
170
- def accept_message_creator(visitor)
171
- opts = @opts.empty? ? '' : ", #{@opts.map{|k, v| ":#{k} => :#{v}"}.join(', ')}"
244
+ def accept_message_visitor(visitor)
245
+ opts = @opts.empty? ? '' : ", #{@opts.map{|k, v| ":#{k} => #{v.inspect}" }.join(', ')}"
172
246
  if visitor.context.first == Protobuf::Node::ExtendNode
173
247
  opts += ', :extension => true'
174
248
  end
175
- visitor.write "#{@label} :#{@type}, :#{@name}, #{@value}#{opts}"
249
+ type = (Array === @type and 1 < @type.size) ? "'#{@type.join '::'}'" : @type
250
+ visitor.write "#{@label} :#{type}, :#{@name}, #{@value}#{opts}"
251
+ end
252
+
253
+ def accept_descriptor_visitor(visitor)
254
+ descriptor = Google::Protobuf::FieldDescriptorProto.new :name => @name.to_s, :number => @value
255
+ descriptor.label = Google::Protobuf::FieldDescriptorProto::Label.const_get "LABEL_#{@label.to_s.upcase}"
256
+ descriptor.type = Google::Protobuf::FieldDescriptorProto::Type.const_get "TYPE_#{@type.to_s.upcase}" if predefined_type?
257
+ descriptor.type_name = @type.to_s
258
+ @opts.each do |key, val|
259
+ case key.to_sym
260
+ when :default
261
+ descriptor.default_value = val.to_s
262
+ end
263
+ end
264
+ visitor.field_descriptor = descriptor
265
+ end
266
+
267
+ def predefined_type?
268
+ %w{double float int64 uint64 int32 fixed64 fixed32 bool string group message bytes uint32 enum sfixed32 sfixed64 sint32 sint64}.include? @type.to_s
176
269
  end
177
270
  end
178
271
 
@@ -181,17 +274,29 @@ require 'protobuf/message/extend'
181
274
  @range = range
182
275
  end
183
276
 
184
- def accept_message_creator(visitor)
277
+ def accept_message_visitor(visitor)
185
278
  visitor.write "extensions #{@range.to_s}"
186
279
  end
280
+
281
+ def accept_descriptor_visitor(visitor)
282
+ descriptor = Google::Protobuf::DescriptorProto::ExtensionRange.new :start => @range.first.low
283
+ case @range.first.high
284
+ when NilClass; # ignore
285
+ when :max; descriptor.end = 1
286
+ else; descriptor.end = @range.first.high
287
+ end
288
+ visitor.extension_range_descriptor = descriptor
289
+ end
187
290
  end
188
291
 
189
292
  class ExtensionRangeNode < Base
293
+ attr_reader :low, :high
294
+
190
295
  def initialize(low, high=nil)
191
296
  @low, @high = low, high
192
297
  end
193
298
 
194
- #def accept_message_creator(visitor)
299
+ #def accept_message_visitor(visitor)
195
300
  #end
196
301
 
197
302
  def to_s
@@ -28,7 +28,7 @@ rule
28
28
  { result << val[2] }
29
29
 
30
30
  option : 'option' option_body ';'
31
- { result = Protobuf::Node::OptionNode.new *val[1] }
31
+ { result = Protobuf::Node::OptionNode.new(*val[1]) }
32
32
 
33
33
  option_body : IDENT dot_ident_list '=' constant
34
34
  { result = [val[1].unshift(val[0]), val[3]] }
@@ -78,9 +78,12 @@ rule
78
78
  | ';'
79
79
  { }
80
80
 
81
- rpc : 'rpc' IDENT '(' user_type ')' 'returns' '(' user_type ')' ';'
81
+ rpc : 'rpc' IDENT '(' rpc_arg ')' 'returns' '(' rpc_arg ')' ';'
82
82
  { result = Protobuf::Node::RpcNode.new val[1], val[3], val[7] }
83
83
 
84
+ rpc_arg :
85
+ | user_type
86
+
84
87
  message_body : '{' message_body_body_list '}'
85
88
  { result = val[1] }
86
89
 
@@ -164,9 +167,9 @@ end
164
167
  case line
165
168
  when /\A\s+/, /\A\/\/.*/
166
169
  ;
167
- when /\A(required|optional|repeated|import|package|option|message|extend|enum|service|rpc|returns|group|default|extensions|to|max|double|float|int32|int64|uint32|uint64|sint32|sint64|fixed32|fixed64|sfixed32|sfixed64|bool|string|bytes)/
170
+ when /\A(required|optional|repeated|import|package|option|message|extend|enum|service|rpc|returns|group|default|extensions|to|max|double|float|int32|int64|uint32|uint64|sint32|sint64|fixed32|fixed64|sfixed32|sfixed64|bool|string|bytes)\b/
168
171
  @q.push [$&, $&.to_sym]
169
- when /\A[1-9]\d*/, /\A0(?![.xX0-9])/
172
+ when /\A[1-9]\d*(?!\.)/, /\A0(?![.xX0-9])/
170
173
  @q.push [:DEC_INTEGER, $&.to_i]
171
174
  when /\A0[xX]([A-Fa-f0-9])+/
172
175
  @q.push [:HEX_INTEGER, $&.to_i(0)]
@@ -10,7 +10,7 @@
10
10
  unless $".index 'racc/parser.rb'
11
11
  $".push 'racc/parser.rb'
12
12
 
13
- self.class.module_eval <<'..end racc/parser.rb modeval..id6f3c71ebec', 'racc/parser.rb', 1
13
+ self.class.module_eval <<'..end racc/parser.rb modeval..id99e3ee3ee1', 'racc/parser.rb', 1
14
14
  #
15
15
  # $Id: parser.rb,v 1.7 2005/11/20 17:31:32 aamine Exp $
16
16
  #
@@ -453,7 +453,7 @@ module Racc
453
453
  end
454
454
 
455
455
  end
456
- ..end racc/parser.rb modeval..id6f3c71ebec
456
+ ..end racc/parser.rb modeval..id99e3ee3ee1
457
457
  end
458
458
  ###### racc/parser.rb end
459
459
 
@@ -462,7 +462,7 @@ module Protobuf
462
462
 
463
463
  class ProtoParser < Racc::Parser
464
464
 
465
- module_eval <<'..end lib/protobuf/compiler/proto.y modeval..idaefa6bf7e1', 'lib/protobuf/compiler/proto.y', 159
465
+ module_eval <<'..end lib/protobuf/compiler/proto.y modeval..id6c9ee64762', 'lib/protobuf/compiler/proto.y', 162
466
466
 
467
467
  def parse(f)
468
468
  @q = []
@@ -471,9 +471,9 @@ module_eval <<'..end lib/protobuf/compiler/proto.y modeval..idaefa6bf7e1', 'lib/
471
471
  case line
472
472
  when /\A\s+/, /\A\/\/.*/
473
473
  ;
474
- when /\A(required|optional|repeated|import|package|option|message|extend|enum|service|rpc|returns|group|default|extensions|to|max|double|float|int32|int64|uint32|uint64|sint32|sint64|fixed32|fixed64|sfixed32|sfixed64|bool|string|bytes)/
474
+ when /\A(required|optional|repeated|import|package|option|message|extend|enum|service|rpc|returns|group|default|extensions|to|max|double|float|int32|int64|uint32|uint64|sint32|sint64|fixed32|fixed64|sfixed32|sfixed64|bool|string|bytes)\b/
475
475
  @q.push [$&, $&.to_sym]
476
- when /\A[1-9]\d*/, /\A0(?![.xX0-9])/
476
+ when /\A[1-9]\d*(?!\.)/, /\A0(?![.xX0-9])/
477
477
  @q.push [:DEC_INTEGER, $&.to_i]
478
478
  when /\A0[xX]([A-Fa-f0-9])+/
479
479
  @q.push [:HEX_INTEGER, $&.to_i(0)]
@@ -503,7 +503,7 @@ module_eval <<'..end lib/protobuf/compiler/proto.y modeval..idaefa6bf7e1', 'lib/
503
503
  def next_token
504
504
  @q.shift
505
505
  end
506
- ..end lib/protobuf/compiler/proto.y modeval..idaefa6bf7e1
506
+ ..end lib/protobuf/compiler/proto.y modeval..id6c9ee64762
507
507
 
508
508
  ##### racc 1.4.5 generates ###
509
509
 
@@ -546,51 +546,53 @@ racc_reduce_table = [
546
546
  1, 76, :_reduce_none,
547
547
  1, 76, :_reduce_none,
548
548
  10, 77, :_reduce_37,
549
- 3, 65, :_reduce_38,
550
- 0, 78, :_reduce_39,
551
- 2, 78, :_reduce_40,
552
- 1, 79, :_reduce_none,
553
- 1, 79, :_reduce_none,
554
- 1, 79, :_reduce_none,
555
- 1, 79, :_reduce_none,
556
- 1, 79, :_reduce_none,
557
- 1, 79, :_reduce_none,
558
- 1, 79, :_reduce_none,
559
- 1, 79, :_reduce_none,
560
- 6, 70, :_reduce_49,
561
- 6, 69, :_reduce_50,
562
- 9, 69, :_reduce_51,
563
- 1, 83, :_reduce_52,
564
- 3, 83, :_reduce_53,
565
- 1, 84, :_reduce_none,
549
+ 0, 78, :_reduce_none,
550
+ 1, 78, :_reduce_none,
551
+ 3, 65, :_reduce_40,
552
+ 0, 79, :_reduce_41,
553
+ 2, 79, :_reduce_42,
554
+ 1, 80, :_reduce_none,
555
+ 1, 80, :_reduce_none,
556
+ 1, 80, :_reduce_none,
557
+ 1, 80, :_reduce_none,
558
+ 1, 80, :_reduce_none,
559
+ 1, 80, :_reduce_none,
560
+ 1, 80, :_reduce_none,
561
+ 1, 80, :_reduce_none,
562
+ 6, 70, :_reduce_51,
563
+ 6, 69, :_reduce_52,
564
+ 9, 69, :_reduce_53,
565
+ 1, 84, :_reduce_54,
566
566
  3, 84, :_reduce_55,
567
- 4, 80, :_reduce_56,
568
- 0, 86, :_reduce_57,
569
- 2, 86, :_reduce_58,
570
- 1, 85, :_reduce_59,
571
- 3, 85, :_reduce_60,
572
- 3, 85, :_reduce_61,
573
- 1, 81, :_reduce_none,
574
- 1, 81, :_reduce_none,
575
- 1, 81, :_reduce_none,
567
+ 1, 85, :_reduce_none,
568
+ 3, 85, :_reduce_57,
569
+ 4, 81, :_reduce_58,
570
+ 0, 87, :_reduce_59,
571
+ 2, 87, :_reduce_60,
572
+ 1, 86, :_reduce_61,
573
+ 3, 86, :_reduce_62,
574
+ 3, 86, :_reduce_63,
576
575
  1, 82, :_reduce_none,
577
576
  1, 82, :_reduce_none,
578
577
  1, 82, :_reduce_none,
579
- 1, 82, :_reduce_none,
580
- 1, 82, :_reduce_none,
581
- 1, 82, :_reduce_none,
582
- 1, 82, :_reduce_none,
583
- 1, 82, :_reduce_none,
584
- 1, 82, :_reduce_none,
585
- 1, 82, :_reduce_none,
586
- 1, 82, :_reduce_none,
587
- 1, 82, :_reduce_none,
588
- 1, 82, :_reduce_none,
589
- 1, 82, :_reduce_none,
590
- 1, 82, :_reduce_none,
591
- 1, 82, :_reduce_none,
592
- 2, 66, :_reduce_81,
593
- 3, 66, :_reduce_82,
578
+ 1, 83, :_reduce_none,
579
+ 1, 83, :_reduce_none,
580
+ 1, 83, :_reduce_none,
581
+ 1, 83, :_reduce_none,
582
+ 1, 83, :_reduce_none,
583
+ 1, 83, :_reduce_none,
584
+ 1, 83, :_reduce_none,
585
+ 1, 83, :_reduce_none,
586
+ 1, 83, :_reduce_none,
587
+ 1, 83, :_reduce_none,
588
+ 1, 83, :_reduce_none,
589
+ 1, 83, :_reduce_none,
590
+ 1, 83, :_reduce_none,
591
+ 1, 83, :_reduce_none,
592
+ 1, 83, :_reduce_none,
593
+ 1, 83, :_reduce_none,
594
+ 2, 66, :_reduce_83,
595
+ 3, 66, :_reduce_84,
594
596
  1, 64, :_reduce_none,
595
597
  1, 64, :_reduce_none,
596
598
  1, 64, :_reduce_none,
@@ -600,43 +602,43 @@ racc_reduce_table = [
600
602
  1, 74, :_reduce_none,
601
603
  1, 74, :_reduce_none ]
602
604
 
603
- racc_reduce_n = 91
605
+ racc_reduce_n = 93
604
606
 
605
- racc_shift_n = 150
607
+ racc_shift_n = 151
606
608
 
607
609
  racc_action_table = [
608
- 74, 125, 77, 47, 43, 74, 83, 77, 43, 50,
609
- 25, 133, 14, 25, 16, 1, 38, 86, 6, 43,
610
- 52, 48, 75, 76, 78, 19, 20, 19, 20, 136,
611
- 89, 132, 136, 56, 57, 58, 56, 57, 58, 19,
610
+ 74, 126, 77, 47, 43, 74, 83, 77, 43, 50,
611
+ 25, 134, 14, 25, 16, 1, 38, 85, 6, 43,
612
+ 52, 48, 75, 76, 78, 19, 20, 19, 20, 137,
613
+ 88, 133, 137, 56, 57, 58, 56, 57, 58, 19,
612
614
  20, 107, 35, 72, 73, 75, 76, 78, 72, 73,
613
615
  75, 76, 78, 109, 94, 96, 98, 99, 100, 101,
614
- 103, 104, 105, 106, 108, 93, 95, 97, 27, 34,
616
+ 102, 104, 105, 106, 108, 93, 95, 97, 27, 34,
615
617
  4, 7, 110, 11, 67, 111, 14, 33, 16, 1,
616
618
  14, 114, 6, 9, 115, 68, 4, 7, 69, 11,
617
619
  19, 20, 14, 32, 16, 1, 60, 117, 6, 9,
618
620
  63, 118, 14, 75, 76, 78, 119, 61, 75, 76,
619
621
  78, 75, 76, 78, 75, 76, 78, 75, 76, 78,
620
- 142, 143, 121, 122, 123, 39, 30, 29, 128, 25,
621
- 24, 131, 23, 40, 135, 22, 140, 141, 40, 43,
622
- 21, 146, 59, 148, 149 ]
622
+ 143, 144, 121, 122, 123, 39, 30, 29, 129, 25,
623
+ 24, 132, 23, 40, 136, 22, 141, 142, 40, 43,
624
+ 21, 147, 59, 149, 150 ]
623
625
 
624
626
  racc_action_check = [
625
- 48, 118, 48, 36, 31, 141, 49, 141, 36, 42,
626
- 132, 129, 49, 143, 49, 49, 26, 49, 49, 37,
627
- 42, 37, 118, 118, 118, 117, 117, 54, 54, 132,
628
- 49, 129, 143, 49, 49, 49, 42, 42, 42, 1,
629
- 1, 54, 23, 48, 48, 48, 48, 48, 141, 141,
630
- 141, 141, 141, 54, 54, 54, 54, 54, 54, 54,
631
- 54, 54, 54, 54, 54, 54, 54, 54, 15, 22,
627
+ 48, 118, 48, 36, 31, 142, 49, 142, 36, 42,
628
+ 133, 130, 49, 144, 49, 49, 26, 49, 49, 37,
629
+ 42, 37, 118, 118, 118, 117, 117, 55, 55, 133,
630
+ 49, 130, 144, 49, 49, 49, 42, 42, 42, 1,
631
+ 1, 55, 23, 48, 48, 48, 48, 48, 142, 142,
632
+ 142, 142, 142, 55, 55, 55, 55, 55, 55, 55,
633
+ 55, 55, 55, 55, 55, 55, 55, 55, 15, 22,
632
634
  15, 15, 63, 15, 46, 69, 15, 21, 15, 15,
633
- 46, 102, 15, 15, 107, 46, 0, 0, 46, 0,
634
- 140, 140, 0, 20, 0, 0, 45, 111, 0, 0,
635
+ 46, 103, 15, 15, 107, 46, 0, 0, 46, 0,
636
+ 141, 141, 0, 20, 0, 0, 45, 111, 0, 0,
635
637
  45, 112, 45, 121, 121, 121, 113, 45, 119, 119,
636
- 119, 89, 89, 89, 110, 110, 110, 122, 122, 122,
637
- 137, 137, 114, 115, 116, 27, 18, 16, 120, 14,
638
- 11, 124, 9, 130, 131, 7, 135, 136, 29, 44,
639
- 6, 142, 43, 144, 148 ]
638
+ 119, 88, 88, 88, 110, 110, 110, 122, 122, 122,
639
+ 138, 138, 114, 115, 116, 27, 18, 16, 120, 14,
640
+ 11, 125, 9, 131, 132, 7, 136, 137, 29, 44,
641
+ 6, 143, 43, 145, 149 ]
640
642
 
641
643
  racc_action_pointer = [
642
644
  84, 33, nil, nil, nil, nil, 134, 131, nil, 126,
@@ -644,77 +646,73 @@ racc_action_pointer = [
644
646
  87, 65, 67, 30, nil, nil, 14, 125, nil, 126,
645
647
  nil, -3, nil, nil, nil, nil, 1, 12, nil, nil,
646
648
  nil, nil, 7, 136, 132, 94, 72, nil, -4, 4,
647
- nil, nil, nil, nil, 21, nil, nil, nil, nil, nil,
649
+ nil, nil, nil, nil, nil, 21, nil, nil, nil, nil,
648
650
  nil, nil, nil, 63, nil, nil, nil, nil, nil, 69,
649
651
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
650
- nil, nil, nil, nil, nil, nil, nil, nil, nil, 62,
652
+ nil, nil, nil, nil, nil, nil, nil, nil, 62, nil,
651
653
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
652
- nil, nil, 75, nil, nil, nil, nil, 63, nil, nil,
654
+ nil, nil, nil, 75, nil, nil, nil, 63, nil, nil,
653
655
  65, 80, 74, 82, 113, 114, 122, 19, -27, 59,
654
- 126, 54, 68, nil, 113, nil, nil, nil, nil, 9,
655
- 121, 115, 4, nil, nil, 119, 128, 97, nil, nil,
656
- 84, 1, 139, 7, 125, nil, nil, nil, 142, nil ]
656
+ 126, 54, 68, nil, nil, 113, nil, nil, nil, nil,
657
+ 9, 121, 115, 4, nil, nil, 119, 128, 97, nil,
658
+ nil, 84, 1, 139, 7, 125, nil, nil, nil, 142,
659
+ nil ]
657
660
 
658
661
  racc_action_default = [
659
- -91, -91, -3, -4, -10, -5, -91, -91, -6, -91,
660
- -7, -91, -8, -9, -91, -91, -91, -1, -91, -13,
661
- -91, -91, -91, -91, -13, -13, -91, -91, -2, -91,
662
- -19, -81, -13, -25, -11, -32, -91, -91, -15, 150,
663
- -39, -17, -91, -91, -82, -91, -91, -12, -91, -91,
664
- -23, -20, -18, -21, -91, -22, -62, -63, -64, -14,
665
- -29, -24, -27, -91, -26, -28, -35, -36, -31, -91,
666
- -34, -33, -85, -87, -86, -88, -89, -83, -90, -84,
667
- -16, -43, -44, -48, -42, -40, -38, -45, -41, -91,
668
- -46, -47, -80, -77, -66, -78, -67, -79, -68, -69,
669
- -70, -71, -91, -72, -73, -74, -75, -91, -76, -65,
670
- -91, -91, -59, -57, -91, -91, -91, -91, -91, -91,
671
- -91, -91, -91, -30, -91, -61, -60, -58, -56, -91,
672
- -91, -91, -91, -50, -49, -91, -91, -91, -52, -54,
673
- -91, -91, -91, -91, -91, -55, -51, -53, -91, -37 ]
662
+ -93, -93, -3, -4, -10, -5, -93, -93, -6, -93,
663
+ -7, -93, -8, -9, -93, -93, -93, -1, -93, -13,
664
+ -93, -93, -93, -93, -13, -13, -93, -93, -2, -93,
665
+ -19, -83, -13, -25, -11, -32, -93, -93, -15, 151,
666
+ -41, -17, -93, -93, -84, -93, -93, -12, -93, -93,
667
+ -23, -20, -18, -21, -22, -93, -64, -65, -66, -14,
668
+ -29, -24, -27, -93, -26, -28, -35, -36, -31, -93,
669
+ -34, -33, -87, -89, -88, -90, -91, -85, -92, -86,
670
+ -16, -45, -46, -50, -44, -40, -43, -42, -93, -48,
671
+ -47, -49, -82, -79, -68, -80, -69, -81, -70, -71,
672
+ -72, -73, -74, -93, -75, -76, -77, -93, -78, -67,
673
+ -93, -93, -61, -59, -93, -93, -93, -38, -93, -93,
674
+ -93, -93, -93, -30, -39, -93, -63, -62, -60, -58,
675
+ -93, -93, -93, -93, -52, -51, -93, -93, -93, -56,
676
+ -54, -38, -93, -93, -93, -93, -57, -53, -55, -93,
677
+ -37 ]
674
678
 
675
679
  racc_goto_table = [
676
- 18, 41, 80, 112, 113, 17, 31, 138, 53, 55,
677
- 45, 36, 37, 62, 70, 88, 90, 91, 147, 44,
678
- 28, 51, 26, 84, 116, 42, 64, 65, 82, 46,
679
- 71, 66, 126, 112, 127, 129, 130, 49, 85, 87,
680
- 102, 137, 81, 15, 120, nil, nil, nil, nil, nil,
681
- nil, nil, nil, 92, nil, nil, nil, nil, nil, nil,
682
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
680
+ 41, 80, 18, 112, 113, 125, 17, 31, 140, 54,
681
+ 53, 45, 36, 37, 62, 70, 89, 86, 91, 148,
682
+ 44, 28, 42, 26, 51, 116, 64, 65, 84, 145,
683
+ 46, 71, 66, 127, 112, 128, 130, 131, 82, 49,
684
+ 87, 90, 103, 138, 81, 15, 120, nil, nil, nil,
685
+ nil, nil, nil, nil, nil, nil, 92, nil, nil, nil,
683
686
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
684
687
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
685
- nil, nil, nil, nil, nil, 145, nil, nil, nil, nil,
686
- nil, nil, 134, nil, nil, nil, nil, nil, nil, nil,
687
- nil, nil, nil, nil, nil, nil, 124, nil, nil, nil,
688
688
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
689
- nil, nil, nil, nil, nil, nil, nil, nil, nil, 144 ]
689
+ nil, nil, nil, nil, nil, 146, nil, nil, nil, nil,
690
+ nil, nil, 135 ]
690
691
 
691
692
  racc_goto_check = [
692
- 14, 13, 12, 22, 33, 2, 10, 32, 17, 18,
693
- 19, 10, 10, 8, 8, 17, 18, 8, 32, 10,
694
- 2, 16, 11, 5, 22, 15, 20, 21, 4, 23,
695
- 24, 25, 22, 22, 33, 22, 22, 26, 27, 28,
696
- 30, 31, 3, 1, 34, nil, nil, nil, nil, nil,
697
- nil, nil, nil, 14, nil, nil, nil, nil, nil, nil,
693
+ 13, 12, 14, 22, 34, 26, 2, 10, 33, 18,
694
+ 17, 19, 10, 10, 8, 8, 18, 17, 8, 33,
695
+ 10, 2, 15, 11, 16, 22, 20, 21, 5, 26,
696
+ 23, 24, 25, 22, 22, 34, 22, 22, 4, 27,
697
+ 28, 29, 31, 32, 3, 1, 35, nil, nil, nil,
698
+ nil, nil, nil, nil, nil, nil, 14, nil, nil, nil,
698
699
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
699
700
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
700
701
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
701
702
  nil, nil, nil, nil, nil, 12, nil, nil, nil, nil,
702
- nil, nil, 13, nil, nil, nil, nil, nil, nil, nil,
703
- nil, nil, nil, nil, nil, nil, 14, nil, nil, nil,
704
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
705
- nil, nil, nil, nil, nil, nil, nil, nil, nil, 14 ]
703
+ nil, nil, 13 ]
706
704
 
707
705
  racc_goto_pointer = [
708
- nil, 43, 5, -7, -21, -26, nil, nil, -32, nil,
709
- -13, 8, -46, -28, -1, -5, -21, -34, -33, -23,
710
- -19, -18, -86, -6, -16, -15, -3, -11, -10, nil,
711
- -14, -91, -125, -85, -69 ]
706
+ nil, 45, 6, -5, -11, -21, nil, nil, -31, nil,
707
+ -12, 9, -47, -29, 1, -8, -18, -32, -33, -22,
708
+ -19, -18, -85, -5, -15, -14, -112, -1, -9, -8,
709
+ nil, -13, -90, -125, -84, -67 ]
712
710
 
713
711
  racc_goto_default = [
714
712
  nil, nil, nil, 2, 3, 5, 8, 10, 12, 13,
715
- nil, 139, nil, nil, nil, nil, nil, nil, nil, nil,
716
- nil, nil, 79, nil, nil, nil, nil, nil, nil, 54,
717
- nil, nil, nil, nil, nil ]
713
+ nil, 139, nil, nil, 124, nil, nil, nil, nil, nil,
714
+ nil, nil, 79, nil, nil, nil, nil, nil, nil, nil,
715
+ 55, nil, nil, nil, nil, nil ]
718
716
 
719
717
  racc_token_table = {
720
718
  false => 0,
@@ -869,6 +867,7 @@ Racc_token_to_s_table = [
869
867
  'service_body_list',
870
868
  'service_body',
871
869
  'rpc',
870
+ 'rpc_arg',
872
871
  'message_body_body_list',
873
872
  'message_body_body',
874
873
  'extensions',
@@ -945,7 +944,7 @@ module_eval <<'.,.,', 'lib/protobuf/compiler/proto.y', 27
945
944
 
946
945
  module_eval <<'.,.,', 'lib/protobuf/compiler/proto.y', 30
947
946
  def _reduce_15( val, _values, result )
948
- result = Protobuf::Node::OptionNode.new *val[1]
947
+ result = Protobuf::Node::OptionNode.new(*val[1])
949
948
  result
950
949
  end
951
950
  .,.,
@@ -1059,31 +1058,31 @@ module_eval <<'.,.,', 'lib/protobuf/compiler/proto.y', 81
1059
1058
  end
1060
1059
  .,.,
1061
1060
 
1062
- module_eval <<'.,.,', 'lib/protobuf/compiler/proto.y', 84
1063
- def _reduce_38( val, _values, result )
1061
+ # reduce 38 omitted
1062
+
1063
+ # reduce 39 omitted
1064
+
1065
+ module_eval <<'.,.,', 'lib/protobuf/compiler/proto.y', 87
1066
+ def _reduce_40( val, _values, result )
1064
1067
  result = val[1]
1065
1068
  result
1066
1069
  end
1067
1070
  .,.,
1068
1071
 
1069
- module_eval <<'.,.,', 'lib/protobuf/compiler/proto.y', 87
1070
- def _reduce_39( val, _values, result )
1072
+ module_eval <<'.,.,', 'lib/protobuf/compiler/proto.y', 90
1073
+ def _reduce_41( val, _values, result )
1071
1074
  result = []
1072
1075
  result
1073
1076
  end
1074
1077
  .,.,
1075
1078
 
1076
- module_eval <<'.,.,', 'lib/protobuf/compiler/proto.y', 89
1077
- def _reduce_40( val, _values, result )
1079
+ module_eval <<'.,.,', 'lib/protobuf/compiler/proto.y', 92
1080
+ def _reduce_42( val, _values, result )
1078
1081
  result << val[1]
1079
1082
  result
1080
1083
  end
1081
1084
  .,.,
1082
1085
 
1083
- # reduce 41 omitted
1084
-
1085
- # reduce 42 omitted
1086
-
1087
1086
  # reduce 43 omitted
1088
1087
 
1089
1088
  # reduce 44 omitted
@@ -1096,96 +1095,96 @@ module_eval <<'.,.,', 'lib/protobuf/compiler/proto.y', 89
1096
1095
 
1097
1096
  # reduce 48 omitted
1098
1097
 
1099
- module_eval <<'.,.,', 'lib/protobuf/compiler/proto.y', 102
1100
- def _reduce_49( val, _values, result )
1098
+ # reduce 49 omitted
1099
+
1100
+ # reduce 50 omitted
1101
+
1102
+ module_eval <<'.,.,', 'lib/protobuf/compiler/proto.y', 105
1103
+ def _reduce_51( val, _values, result )
1101
1104
  result = Protobuf::Node::GroupNode.new val[0], val[2], val[4], val[5]
1102
1105
  result
1103
1106
  end
1104
1107
  .,.,
1105
1108
 
1106
- module_eval <<'.,.,', 'lib/protobuf/compiler/proto.y', 105
1107
- def _reduce_50( val, _values, result )
1109
+ module_eval <<'.,.,', 'lib/protobuf/compiler/proto.y', 108
1110
+ def _reduce_52( val, _values, result )
1108
1111
  result = Protobuf::Node::FieldNode.new val[0], val[1], val[2], val[4]
1109
1112
  result
1110
1113
  end
1111
1114
  .,.,
1112
1115
 
1113
- module_eval <<'.,.,', 'lib/protobuf/compiler/proto.y', 107
1114
- def _reduce_51( val, _values, result )
1116
+ module_eval <<'.,.,', 'lib/protobuf/compiler/proto.y', 110
1117
+ def _reduce_53( val, _values, result )
1115
1118
  result = Protobuf::Node::FieldNode.new val[0], val[1], val[2], val[4], val[6]
1116
1119
  result
1117
1120
  end
1118
1121
  .,.,
1119
1122
 
1120
- module_eval <<'.,.,', 'lib/protobuf/compiler/proto.y', 110
1121
- def _reduce_52( val, _values, result )
1123
+ module_eval <<'.,.,', 'lib/protobuf/compiler/proto.y', 113
1124
+ def _reduce_54( val, _values, result )
1122
1125
  result = val
1123
1126
  result
1124
1127
  end
1125
1128
  .,.,
1126
1129
 
1127
- module_eval <<'.,.,', 'lib/protobuf/compiler/proto.y', 112
1128
- def _reduce_53( val, _values, result )
1130
+ module_eval <<'.,.,', 'lib/protobuf/compiler/proto.y', 115
1131
+ def _reduce_55( val, _values, result )
1129
1132
  result << val[2]
1130
1133
  result
1131
1134
  end
1132
1135
  .,.,
1133
1136
 
1134
- # reduce 54 omitted
1137
+ # reduce 56 omitted
1135
1138
 
1136
- module_eval <<'.,.,', 'lib/protobuf/compiler/proto.y', 116
1137
- def _reduce_55( val, _values, result )
1139
+ module_eval <<'.,.,', 'lib/protobuf/compiler/proto.y', 119
1140
+ def _reduce_57( val, _values, result )
1138
1141
  result = [:default, val[2]]
1139
1142
  result
1140
1143
  end
1141
1144
  .,.,
1142
1145
 
1143
- module_eval <<'.,.,', 'lib/protobuf/compiler/proto.y', 119
1144
- def _reduce_56( val, _values, result )
1146
+ module_eval <<'.,.,', 'lib/protobuf/compiler/proto.y', 122
1147
+ def _reduce_58( val, _values, result )
1145
1148
  result = Protobuf::Node::ExtensionsNode.new val[2].unshift(val[1])
1146
1149
  result
1147
1150
  end
1148
1151
  .,.,
1149
1152
 
1150
- module_eval <<'.,.,', 'lib/protobuf/compiler/proto.y', 122
1151
- def _reduce_57( val, _values, result )
1153
+ module_eval <<'.,.,', 'lib/protobuf/compiler/proto.y', 125
1154
+ def _reduce_59( val, _values, result )
1152
1155
  result = []
1153
1156
  result
1154
1157
  end
1155
1158
  .,.,
1156
1159
 
1157
- module_eval <<'.,.,', 'lib/protobuf/compiler/proto.y', 124
1158
- def _reduce_58( val, _values, result )
1160
+ module_eval <<'.,.,', 'lib/protobuf/compiler/proto.y', 127
1161
+ def _reduce_60( val, _values, result )
1159
1162
  result << val[1]
1160
1163
  result
1161
1164
  end
1162
1165
  .,.,
1163
1166
 
1164
- module_eval <<'.,.,', 'lib/protobuf/compiler/proto.y', 127
1165
- def _reduce_59( val, _values, result )
1167
+ module_eval <<'.,.,', 'lib/protobuf/compiler/proto.y', 130
1168
+ def _reduce_61( val, _values, result )
1166
1169
  result = Protobuf::Node::ExtensionRangeNode.new val[0]
1167
1170
  result
1168
1171
  end
1169
1172
  .,.,
1170
1173
 
1171
- module_eval <<'.,.,', 'lib/protobuf/compiler/proto.y', 129
1172
- def _reduce_60( val, _values, result )
1174
+ module_eval <<'.,.,', 'lib/protobuf/compiler/proto.y', 132
1175
+ def _reduce_62( val, _values, result )
1173
1176
  result = Protobuf::Node::ExtensionRangeNode.new val[0], val[2]
1174
1177
  result
1175
1178
  end
1176
1179
  .,.,
1177
1180
 
1178
- module_eval <<'.,.,', 'lib/protobuf/compiler/proto.y', 131
1179
- def _reduce_61( val, _values, result )
1181
+ module_eval <<'.,.,', 'lib/protobuf/compiler/proto.y', 134
1182
+ def _reduce_63( val, _values, result )
1180
1183
  result = Protobuf::Node::ExtensionRangeNode.new val[0], :max
1181
1184
  result
1182
1185
  end
1183
1186
  .,.,
1184
1187
 
1185
- # reduce 62 omitted
1186
-
1187
- # reduce 63 omitted
1188
-
1189
1188
  # reduce 64 omitted
1190
1189
 
1191
1190
  # reduce 65 omitted
@@ -1220,24 +1219,24 @@ module_eval <<'.,.,', 'lib/protobuf/compiler/proto.y', 131
1220
1219
 
1221
1220
  # reduce 80 omitted
1222
1221
 
1223
- module_eval <<'.,.,', 'lib/protobuf/compiler/proto.y', 142
1224
- def _reduce_81( val, _values, result )
1222
+ # reduce 81 omitted
1223
+
1224
+ # reduce 82 omitted
1225
+
1226
+ module_eval <<'.,.,', 'lib/protobuf/compiler/proto.y', 145
1227
+ def _reduce_83( val, _values, result )
1225
1228
  result = val[1].unshift(val[0])
1226
1229
  result
1227
1230
  end
1228
1231
  .,.,
1229
1232
 
1230
- module_eval <<'.,.,', 'lib/protobuf/compiler/proto.y', 144
1231
- def _reduce_82( val, _values, result )
1233
+ module_eval <<'.,.,', 'lib/protobuf/compiler/proto.y', 147
1234
+ def _reduce_84( val, _values, result )
1232
1235
  result = val[1].unshift(val[0])
1233
1236
  result
1234
1237
  end
1235
1238
  .,.,
1236
1239
 
1237
- # reduce 83 omitted
1238
-
1239
- # reduce 84 omitted
1240
-
1241
1240
  # reduce 85 omitted
1242
1241
 
1243
1242
  # reduce 86 omitted
@@ -1250,6 +1249,10 @@ module_eval <<'.,.,', 'lib/protobuf/compiler/proto.y', 144
1250
1249
 
1251
1250
  # reduce 90 omitted
1252
1251
 
1252
+ # reduce 91 omitted
1253
+
1254
+ # reduce 92 omitted
1255
+
1253
1256
  def _reduce_none( val, _values, result )
1254
1257
  result
1255
1258
  end