steep 0.1.0.pre2 → 0.1.0

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.
Files changed (119) hide show
  1. checksums.yaml +5 -5
  2. data/.travis.yml +1 -1
  3. data/README.md +146 -33
  4. data/bin/smoke_runner.rb +43 -10
  5. data/lib/steep/ast/annotation/collection.rb +93 -0
  6. data/lib/steep/ast/annotation.rb +131 -0
  7. data/lib/steep/ast/buffer.rb +47 -0
  8. data/lib/steep/ast/location.rb +82 -0
  9. data/lib/steep/ast/method_type.rb +116 -0
  10. data/lib/steep/ast/signature/class.rb +33 -0
  11. data/lib/steep/ast/signature/const.rb +17 -0
  12. data/lib/steep/ast/signature/env.rb +123 -0
  13. data/lib/steep/ast/signature/extension.rb +21 -0
  14. data/lib/steep/ast/signature/gvar.rb +17 -0
  15. data/lib/steep/ast/signature/interface.rb +31 -0
  16. data/lib/steep/ast/signature/members.rb +71 -0
  17. data/lib/steep/ast/signature/module.rb +21 -0
  18. data/lib/steep/ast/type_params.rb +13 -0
  19. data/lib/steep/ast/types/any.rb +39 -0
  20. data/lib/steep/ast/types/bot.rb +39 -0
  21. data/lib/steep/ast/types/class.rb +35 -0
  22. data/lib/steep/ast/types/helper.rb +21 -0
  23. data/lib/steep/ast/types/instance.rb +39 -0
  24. data/lib/steep/ast/types/intersection.rb +74 -0
  25. data/lib/steep/ast/types/name.rb +124 -0
  26. data/lib/steep/ast/types/self.rb +39 -0
  27. data/lib/steep/ast/types/top.rb +39 -0
  28. data/lib/steep/ast/types/union.rb +74 -0
  29. data/lib/steep/ast/types/var.rb +57 -0
  30. data/lib/steep/ast/types/void.rb +35 -0
  31. data/lib/steep/cli.rb +28 -1
  32. data/lib/steep/drivers/annotations.rb +32 -0
  33. data/lib/steep/drivers/check.rb +53 -77
  34. data/lib/steep/drivers/scaffold.rb +303 -0
  35. data/lib/steep/drivers/utils/each_signature.rb +66 -0
  36. data/lib/steep/drivers/utils/validator.rb +115 -0
  37. data/lib/steep/drivers/validate.rb +39 -0
  38. data/lib/steep/errors.rb +291 -19
  39. data/lib/steep/interface/abstract.rb +44 -0
  40. data/lib/steep/interface/builder.rb +470 -0
  41. data/lib/steep/interface/instantiated.rb +126 -0
  42. data/lib/steep/interface/ivar_chain.rb +26 -0
  43. data/lib/steep/interface/method.rb +60 -0
  44. data/lib/steep/{interface.rb → interface/method_type.rb} +111 -100
  45. data/lib/steep/interface/substitution.rb +65 -0
  46. data/lib/steep/module_name.rb +116 -0
  47. data/lib/steep/parser.rb +1314 -814
  48. data/lib/steep/parser.y +536 -175
  49. data/lib/steep/source.rb +220 -25
  50. data/lib/steep/subtyping/check.rb +673 -0
  51. data/lib/steep/subtyping/constraints.rb +275 -0
  52. data/lib/steep/subtyping/relation.rb +41 -0
  53. data/lib/steep/subtyping/result.rb +126 -0
  54. data/lib/steep/subtyping/trace.rb +48 -0
  55. data/lib/steep/subtyping/variable_occurrence.rb +49 -0
  56. data/lib/steep/subtyping/variable_variance.rb +69 -0
  57. data/lib/steep/type_construction.rb +1630 -524
  58. data/lib/steep/type_inference/block_params.rb +100 -0
  59. data/lib/steep/type_inference/constant_env.rb +55 -0
  60. data/lib/steep/type_inference/send_args.rb +222 -0
  61. data/lib/steep/type_inference/type_env.rb +226 -0
  62. data/lib/steep/type_name.rb +27 -7
  63. data/lib/steep/typing.rb +4 -0
  64. data/lib/steep/version.rb +1 -1
  65. data/lib/steep.rb +71 -16
  66. data/smoke/and/a.rb +4 -2
  67. data/smoke/array/a.rb +4 -5
  68. data/smoke/array/b.rb +4 -4
  69. data/smoke/block/a.rb +2 -2
  70. data/smoke/block/a.rbi +2 -0
  71. data/smoke/block/b.rb +15 -0
  72. data/smoke/case/a.rb +3 -3
  73. data/smoke/class/a.rb +3 -3
  74. data/smoke/class/b.rb +0 -2
  75. data/smoke/class/d.rb +2 -2
  76. data/smoke/class/e.rb +1 -1
  77. data/smoke/class/f.rb +2 -2
  78. data/smoke/class/g.rb +8 -0
  79. data/smoke/const/a.rb +3 -3
  80. data/smoke/dstr/a.rb +1 -1
  81. data/smoke/ensure/a.rb +22 -0
  82. data/smoke/enumerator/a.rb +6 -6
  83. data/smoke/enumerator/b.rb +22 -0
  84. data/smoke/extension/a.rb +2 -2
  85. data/smoke/extension/b.rb +3 -3
  86. data/smoke/extension/c.rb +1 -1
  87. data/smoke/hello/hello.rb +2 -2
  88. data/smoke/if/a.rb +4 -2
  89. data/smoke/kwbegin/a.rb +8 -0
  90. data/smoke/literal/a.rb +5 -5
  91. data/smoke/method/a.rb +5 -5
  92. data/smoke/method/a.rbi +4 -0
  93. data/smoke/method/b.rb +29 -0
  94. data/smoke/module/a.rb +3 -3
  95. data/smoke/module/a.rbi +9 -0
  96. data/smoke/module/b.rb +2 -2
  97. data/smoke/module/c.rb +1 -1
  98. data/smoke/module/d.rb +5 -0
  99. data/smoke/module/e.rb +13 -0
  100. data/smoke/module/f.rb +13 -0
  101. data/smoke/rescue/a.rb +62 -0
  102. data/smoke/super/a.rb +2 -2
  103. data/smoke/type_case/a.rb +35 -0
  104. data/smoke/yield/a.rb +2 -2
  105. data/stdlib/builtin.rbi +463 -24
  106. data/steep.gemspec +3 -2
  107. metadata +91 -29
  108. data/lib/steep/annotation.rb +0 -223
  109. data/lib/steep/signature/class.rb +0 -450
  110. data/lib/steep/signature/extension.rb +0 -51
  111. data/lib/steep/signature/interface.rb +0 -49
  112. data/lib/steep/types/any.rb +0 -31
  113. data/lib/steep/types/class.rb +0 -27
  114. data/lib/steep/types/instance.rb +0 -27
  115. data/lib/steep/types/merge.rb +0 -32
  116. data/lib/steep/types/name.rb +0 -57
  117. data/lib/steep/types/union.rb +0 -42
  118. data/lib/steep/types/var.rb +0 -38
  119. data/lib/steep/types.rb +0 -4
data/lib/steep/parser.rb CHANGED
@@ -8,32 +8,58 @@ require 'racc/parser.rb'
8
8
  module Steep
9
9
  class Parser < Racc::Parser
10
10
 
11
- module_eval(<<'...end parser.y/module_eval...', 'parser.y', 189)
11
+ module_eval(<<'...end parser.y/module_eval...', 'parser.y', 502)
12
12
 
13
13
  require "strscan"
14
14
 
15
15
  attr_reader :input
16
+ attr_reader :buffer
17
+ attr_reader :offset
16
18
 
17
- def initialize(type, input)
19
+ def initialize(type, buffer:, offset:, input: nil)
18
20
  super()
19
21
  @type = type
20
- @input = StringScanner.new(input)
22
+ @buffer = buffer
23
+ @input = StringScanner.new(input || buffer.content)
24
+ @offset = offset
21
25
  end
22
26
 
23
- def self.parse_method(input)
24
- new(:METHOD, input).do_parse
27
+ def self.parse_method(input, name: nil)
28
+ new(:METHOD, buffer: AST::Buffer.new(name: name, content: input), offset: 0).do_parse
25
29
  end
26
30
 
27
- def self.parse_signature(input)
28
- new(:SIGNATURE, input).do_parse
31
+ def self.parse_signature(input, name: nil)
32
+ new(:SIGNATURE, buffer: AST::Buffer.new(name: name, content: input), offset: 0).do_parse
29
33
  end
30
34
 
31
- def self.parse_annotation_opt(input)
32
- new(:ANNOTATION, input).do_parse
33
- rescue
35
+ def self.parse_annotation_opt(input, buffer:, offset: 0)
36
+ new(:ANNOTATION, input: input, buffer: buffer, offset: offset).do_parse
37
+ rescue => exn
38
+ Steep.logger.debug "Parsing comment failed: #{exn.inspect}"
34
39
  nil
35
40
  end
36
41
 
42
+ class LocatedValue
43
+ attr_reader :location
44
+ attr_reader :value
45
+
46
+ def initialize(location:, value:)
47
+ @location = location
48
+ @value = value
49
+ end
50
+ end
51
+
52
+ def new_token(type, value = nil)
53
+ start_index = offset + input.pos - input.matched.bytesize
54
+ end_index = offset + input.pos
55
+
56
+ location = AST::Location.new(buffer: buffer,
57
+ start_pos: start_index,
58
+ end_pos: end_index)
59
+
60
+ [type, LocatedValue.new(location: location, value: value)]
61
+ end
62
+
37
63
  def next_token
38
64
  if @type
39
65
  type = @type
@@ -49,500 +75,675 @@ def next_token
49
75
  when input.eos?
50
76
  [false, false]
51
77
  when input.scan(/->/)
52
- [:ARROW, nil]
78
+ new_token(:ARROW)
53
79
  when input.scan(/\?/)
54
- [:QUESTION, nil]
80
+ new_token(:QUESTION)
55
81
  when input.scan(/\(/)
56
- [:LPAREN, nil]
82
+ new_token(:LPAREN, nil)
57
83
  when input.scan(/\)/)
58
- [:RPAREN, nil]
84
+ new_token(:RPAREN, nil)
59
85
  when input.scan(/{/)
60
- [:LBRACE, nil]
86
+ new_token(:LBRACE, nil)
61
87
  when input.scan(/}/)
62
- [:RBRACE, nil]
88
+ new_token(:RBRACE, nil)
63
89
  when input.scan(/,/)
64
- [:COMMA, nil]
65
- when input.scan(/[A-Z]\w*(::[A-Z]\w*)+/)
66
- [:CONST_PATH, input.matched.to_sym]
67
- when input.scan(/::[A-Z]\w*(::[A-Z]\w*)*/)
68
- [:CONST_PATH, input.matched.to_sym]
90
+ new_token(:COMMA, nil)
91
+ when input.scan(/::/)
92
+ new_token(:COLON2)
69
93
  when input.scan(/:/)
70
- [:COLON, nil]
94
+ new_token(:COLON)
71
95
  when input.scan(/\*\*/)
72
- [:STAR2, nil]
96
+ new_token(:STAR2, :**)
73
97
  when input.scan(/\*/)
74
- [:STAR, nil]
98
+ new_token(:STAR, :*)
75
99
  when input.scan(/\+/)
76
- [:PLUS, nil]
100
+ new_token(:PLUS, :+)
77
101
  when input.scan(/\./)
78
- [:DOT, nil]
102
+ new_token(:DOT)
79
103
  when input.scan(/<:/)
80
- [:LTCOLON, nil]
104
+ new_token(:LTCOLON)
81
105
  when input.scan(/(\[\]=)|(\[\])|===|==|\^|!=|<</)
82
- [:OPERATOR, input.matched.to_sym]
106
+ new_token(:OPERATOR, input.matched.to_sym)
107
+ when input.scan(/<=/)
108
+ new_token(:OPERATOR, :<=)
109
+ when input.scan(/>=/)
110
+ new_token(:OPERATOR, :>=)
83
111
  when input.scan(/</)
84
- [:LT, nil]
112
+ new_token(:LT, :<)
85
113
  when input.scan(/>/)
86
- [:GT, nil]
114
+ new_token(:GT, :>)
115
+ when input.scan(/nil\b/)
116
+ new_token(:NIL, :nil)
87
117
  when input.scan(/any\b/)
88
- [:ANY, nil]
118
+ new_token(:ANY, :any)
119
+ when input.scan(/void\b/)
120
+ new_token(:VOID, :void)
89
121
  when input.scan(/interface\b/)
90
- [:INTERFACE, nil]
122
+ new_token(:INTERFACE, :interface)
91
123
  when input.scan(/end\b/)
92
- [:END, nil]
124
+ new_token(:END, :end)
93
125
  when input.scan(/\|/)
94
- [:BAR, nil]
126
+ new_token(:BAR, :bar)
95
127
  when input.scan(/def\b/)
96
- [:DEF, nil]
128
+ new_token(:DEF)
97
129
  when input.scan(/@type\b/)
98
- [:AT_TYPE, nil]
130
+ new_token(:AT_TYPE)
99
131
  when input.scan(/@implements\b/)
100
- [:AT_IMPLEMENTS, nil]
132
+ new_token(:AT_IMPLEMENTS)
101
133
  when input.scan(/@dynamic\b/)
102
- [:AT_DYNAMIC, nil]
134
+ new_token(:AT_DYNAMIC)
103
135
  when input.scan(/const\b/)
104
- [:CONST, nil]
136
+ new_token(:CONST, :const)
105
137
  when input.scan(/var\b/)
106
- [:VAR, nil]
138
+ new_token(:VAR, :var)
107
139
  when input.scan(/return\b/)
108
- [:RETURN, nil]
140
+ new_token(:RETURN)
109
141
  when input.scan(/block\b/)
110
- [:BLOCK, nil]
142
+ new_token(:BLOCK, :block)
143
+ when input.scan(/break\b/)
144
+ new_token(:BREAK, :break)
111
145
  when input.scan(/method\b/)
112
- [:METHOD, nil]
146
+ new_token(:METHOD, :method)
113
147
  when input.scan(/self\?/)
114
- [:SELFQ, nil]
148
+ new_token(:SELFQ)
115
149
  when input.scan(/self\b/)
116
- [:SELF, nil]
150
+ new_token(:SELF, :self)
117
151
  when input.scan(/'\w+/)
118
- [:TVAR, input.matched.gsub(/\A'/, '').to_sym]
152
+ new_token(:TVAR, input.matched.gsub(/\A'/, '').to_sym)
119
153
  when input.scan(/instance\b/)
120
- [:INSTANCE, nil]
154
+ new_token(:INSTANCE, :instance)
121
155
  when input.scan(/class\b/)
122
- [:CLASS, nil]
156
+ new_token(:CLASS, :class)
123
157
  when input.scan(/module\b/)
124
- [:MODULE, nil]
158
+ new_token(:MODULE, :module)
159
+ when input.scan(/include\?/)
160
+ new_token(:METHOD_NAME, :include?)
125
161
  when input.scan(/include\b/)
126
- [:INCLUDE, nil]
162
+ new_token(:INCLUDE, :include)
127
163
  when input.scan(/extend\b/)
128
- [:EXTEND, nil]
164
+ new_token(:EXTEND, :extend)
129
165
  when input.scan(/instance\b/)
130
- [:INSTANCE, nil]
166
+ new_token(:INSTANCE, :instance)
131
167
  when input.scan(/ivar\b/)
132
- [:IVAR, nil]
168
+ new_token(:IVAR, :ivar)
169
+ when input.scan(/%/)
170
+ new_token(:PERCENT, :%)
171
+ when input.scan(/-/)
172
+ new_token(:MINUS, :-)
173
+ when input.scan(/&/)
174
+ new_token(:OPERATOR, :&)
175
+ when input.scan(/~/)
176
+ new_token(:OPERATOR, :~)
177
+ when input.scan(/\//)
178
+ new_token(:OPERATOR, :/)
179
+ when input.scan(/!/)
180
+ new_token(:OPERATOR, :!)
133
181
  when input.scan(/extension\b/)
134
- [:EXTENSION, nil]
182
+ new_token(:EXTENSION, :extension)
135
183
  when input.scan(/constructor\b/)
136
- [:CONSTRUCTOR, true]
184
+ new_token(:CONSTRUCTOR, true)
137
185
  when input.scan(/noconstructor\b/)
138
- [:NOCONSTRUCTOR, false]
139
- when input.scan(/[A-Z]\w*\.(class|module)\b/)
140
- [:CLASS_IDENT, input.matched.gsub(/\.(class|module)$/, '').to_sym]
141
- when input.scan(/\w+(\!|\?)/)
142
- [:METHOD_NAME, input.matched.to_sym]
186
+ new_token(:NOCONSTRUCTOR, false)
187
+ when input.scan(/\w+(\!|\?|=)/)
188
+ new_token(:METHOD_NAME, input.matched.to_sym)
189
+ when input.scan(/\$\w+\b/)
190
+ new_token(:GVAR, input.matched.to_sym)
143
191
  when input.scan(/[A-Z]\w*/)
144
- [:MODULE_NAME, input.matched.to_sym]
192
+ new_token(:UIDENT, input.matched.to_sym)
145
193
  when input.scan(/_\w+/)
146
- [:INTERFACE_NAME, input.matched.to_sym]
147
- when input.scan(/@[\w_]+/)
148
- [:IVAR_NAME, input.matched.to_sym]
194
+ new_token(:INTERFACE_NAME, input.matched.to_sym)
195
+ when input.scan(/@\w+/)
196
+ new_token(:IVAR_NAME, input.matched.to_sym)
149
197
  when input.scan(/\w+/)
150
- [:IDENT, input.matched.to_sym]
198
+ new_token(:IDENT, input.matched.to_sym)
151
199
  end
152
200
  end
153
201
  ...end parser.y/module_eval...
154
202
  ##### State transition tables begin ###
155
203
 
156
204
  racc_action_table = [
157
- 121, 60, 209, 74, 59, 8, 61, 218, 65, 66,
158
- 67, 72, 73, 19, 58, 70, 71, 62, 63, -64,
159
- 219, 20, 21, 103, 15, 16, 64, 68, 69, 60,
160
- 120, 74, 59, 14, 61, 17, 65, 66, 67, 72,
161
- 73, 129, 58, 70, 71, 62, 63, -65, 220, 127,
162
- 223, 102, 15, 16, 64, 68, 69, 60, 224, 74,
163
- 59, 14, 61, 17, 65, 66, 67, 72, 73, 227,
164
- 58, 70, 71, 62, 63, 169, 91, 239, 230, 240,
165
- 15, 16, 64, 68, 69, 60, 232, 74, 59, 14,
166
- 61, 17, 65, 66, 67, 72, 73, 107, 58, 70,
167
- 71, 62, 63, 2, 3, 4, 105, 106, 15, 16,
168
- 64, 68, 69, 60, 233, 74, 59, 14, 61, 17,
169
- 65, 66, 67, 72, 73, 8, 58, 70, 71, 62,
170
- 63, 55, 54, 24, 241, 242, 243, 51, 64, 68,
171
- 69, 244, 26, 52, 245, 27, 28, 29, 30, 31,
172
- 32, 33, 48, 49, 50, 53, 246, 56, 88, 90,
173
- 91, 247, 8, 8, 93, 252, 253, 94, 28, 95,
174
- 30, 96, 97, 98, 88, 185, 8, 99, 100, 101,
175
- 179, 8, 5, 178, 8, 180, 22, 181, 182, 183,
176
- 88, 185, 37, 99, 100, 101, 179, 43, 45, 178,
177
- 45, 180, 45, 181, 182, 183, 88, 90, 91, 99,
178
- 100, 101, 179, 57, 77, 178, 102, 180, 103, 181,
179
- 182, 183, 88, 185, 107, 99, 100, 101, 179, 108,
180
- 109, 178, 8, 180, 8, 181, 182, 183, 88, 90,
181
- 91, 99, 100, 101, 93, 8, 113, 94, 28, 95,
182
- 30, 96, 97, 98, 167, 115, 204, 99, 100, 101,
183
- 203, 115, 117, 26, 205, 118, 27, 28, 29, 30,
184
- 31, 32, 33, 179, 15, 16, 178, 119, 180, 122,
185
- 181, 182, 183, 14, 123, 17, 99, 100, 101, 93,
186
- 124, 125, 94, 28, 95, 30, 96, 97, 98, 126,
187
- 169, 91, 99, 100, 101, 26, 130, 131, 27, 28,
188
- 29, 30, 31, 32, 33, 169, 91, 132, 133, 134,
189
- 26, 135, 140, 27, 28, 29, 30, 31, 32, 33,
190
- 26, -66, -67, 27, 28, 29, 30, 31, 32, 33,
191
- 26, -68, -69, 27, 28, 29, 30, 31, 32, 33,
192
- 26, 37, 149, 27, 28, 29, 30, 31, 32, 33,
193
- 26, 151, 153, 27, 28, 29, 30, 31, 32, 33,
194
- 26, 45, 155, 27, 28, 29, 30, 31, 32, 33,
195
- 26, 156, 160, 27, 28, 29, 30, 31, 32, 33,
196
- 26, 161, 164, 27, 28, 29, 30, 31, 32, 33,
197
- 26, 168, 188, 27, 28, 29, 30, 31, 32, 33,
198
- 26, 190, 191, 27, 28, 29, 30, 31, 32, 33,
199
- 26, 192, 107, 27, 28, 29, 30, 31, 32, 33,
200
- 26, 193, 149, 27, 28, 29, 30, 31, 32, 33,
201
- 26, nil, nil, 27, 28, 29, 30, 31, 32, 33,
202
- 26, nil, nil, 27, 28, 29, 30, 31, 32, 33,
203
- 26, nil, nil, 27, 28, 29, 30, 31, 32, 33,
204
- 26, nil, nil, 27, 28, 29, 30, 31, 32, 33,
205
- 26, nil, nil, 27, 28, 29, 30, 31, 32, 33,
206
- 26, nil, nil, 27, 28, 29, 30, 31, 32, 33,
207
- 26, nil, nil, 27, 28, 29, 30, 31, 32, 33,
208
- 26, nil, nil, 27, 28, 29, 30, 31, 32, 33,
209
- 26, nil, nil, 27, 28, 29, 30, 31, 32, 33,
210
- 26, nil, nil, 27, 28, 29, 30, 31, 32, 33,
211
- 26, nil, nil, 27, 28, 29, 30, 31, 32, 33,
212
- 26, nil, nil, 27, 28, 29, 30, 31, 32, 33,
213
- 26, nil, nil, 27, 28, 29, 30, 31, 32, 33,
214
- 204, 204, 204, nil, 203, 203, 203, nil, 205, 205,
215
- 205 ]
205
+ 94, 166, 93, 2, 3, 4, 97, 98, 78, 164,
206
+ 83, 84, 85, 270, 79, 272, 77, 275, 101, 102,
207
+ 100, 75, 76, 90, 87, 248, 80, 81, 276, 91,
208
+ 24, 23, 246, 247, 86, 249, 82, 88, 89, 92,
209
+ 95, 96, 99, 94, 277, 93, 24, 23, 278, 97,
210
+ 98, 78, 136, 83, 84, 85, 106, 79, 279, 77,
211
+ 8, 101, 102, 100, 75, 76, 90, 87, 26, 80,
212
+ 81, 288, 91, 27, 28, 289, 107, 86, 290, 82,
213
+ 88, 89, 92, 95, 96, 99, 94, 293, 93, 24,
214
+ 23, 294, 97, 98, 78, 295, 83, 84, 85, 296,
215
+ 79, 297, 77, 300, 101, 102, 100, 75, 76, 90,
216
+ 87, 248, 80, 81, 301, 91, 233, 234, 246, 247,
217
+ 86, 249, 82, 88, 89, 92, 95, 96, 99, 94,
218
+ 8, 93, 24, 23, 8, 97, 98, 78, 306, 83,
219
+ 84, 85, 106, 79, 307, 77, 308, 101, 102, 100,
220
+ 75, 76, 90, 87, 309, 80, 81, 8, 91, 24,
221
+ 23, 8, 107, 86, 5, 82, 88, 89, 92, 95,
222
+ 96, 99, 94, 8, 93, 180, 181, 29, 97, 98,
223
+ 78, 48, 83, 84, 85, 286, 79, 55, 77, 56,
224
+ 101, 102, 100, 75, 76, 90, 87, 58, 80, 81,
225
+ 24, 91, 24, 23, 63, 287, 86, 109, 82, 88,
226
+ 89, 92, 95, 96, 99, 94, 134, 93, 24, 23,
227
+ 135, 97, 98, 78, 136, 83, 84, 85, 137, 79,
228
+ 138, 77, 8, 101, 102, 100, 75, 76, 90, 87,
229
+ 248, 80, 81, 8, 91, 210, 123, 246, 247, 86,
230
+ 249, 82, 88, 89, 92, 95, 96, 99, 94, 8,
231
+ 93, 24, 23, 8, 97, 98, 78, 24, 83, 84,
232
+ 85, 147, 79, 147, 77, 149, 101, 102, 100, 75,
233
+ 76, 90, 87, 248, 80, 81, 150, 91, 151, 153,
234
+ 246, 247, 86, 249, 82, 88, 89, 92, 95, 96,
235
+ 99, 94, 154, 93, 155, 156, 8, 97, 98, 78,
236
+ 158, 83, 84, 85, 159, 79, 160, 77, 161, 101,
237
+ 102, 100, 75, 76, 90, 87, 162, 80, 81, 163,
238
+ 91, 167, 71, 70, 68, 86, 168, 82, 88, 89,
239
+ 92, 95, 96, 99, 67, 169, 170, 171, 172, 177,
240
+ -71, -72, -73, -74, -70, 48, 187, 189, 31, 191,
241
+ 73, 192, 193, 65, 194, 64, 66, 69, 72, 35,
242
+ 36, 37, 38, 39, 40, 41, 42, 44, 198, 201,
243
+ 209, 208, 228, 230, 231, 136, 19, 20, 235, 187,
244
+ 24, 23, 35, 36, 37, 38, 39, 40, 41, 42,
245
+ 44, 16, 18, 254, 21, 24, 23, 120, 122, 123,
246
+ 8, 262, 263, 24, 23, 125, 36, 126, 127, 128,
247
+ 40, 41, 42, 129, 264, 267, 268, nil, 130, 131,
248
+ 132, 133, 120, 122, 123, nil, 24, 23, nil, nil,
249
+ 125, 36, 126, 127, 128, 40, 41, 42, 129, nil,
250
+ nil, nil, nil, 130, 131, 132, 133, 210, 123, 19,
251
+ 20, 24, 23, nil, 35, 36, 37, 38, 39, 40,
252
+ 41, 42, 44, nil, 16, 18, nil, 21, 24, 23,
253
+ 210, 123, nil, nil, nil, 24, 23, 35, 36, 37,
254
+ 38, 39, 40, 41, 42, 44, nil, nil, nil, nil,
255
+ nil, nil, 120, 225, nil, nil, nil, nil, 24, 23,
256
+ 220, nil, 221, 222, 223, nil, nil, nil, 219, 120,
257
+ 225, nil, nil, 130, 131, 132, 133, 220, nil, 221,
258
+ 222, 223, nil, nil, nil, 219, 120, 225, nil, nil,
259
+ 130, 131, 132, 133, 220, nil, 221, 222, 223, nil,
260
+ nil, nil, 219, 120, 122, 123, nil, 130, 131, 132,
261
+ 133, 220, nil, 221, 222, 223, nil, nil, nil, 219,
262
+ nil, nil, nil, nil, 130, 131, 132, 133, 35, 36,
263
+ 37, 38, 39, 40, 41, 42, 44, 35, 36, 37,
264
+ 38, 39, 40, 41, 42, 44, nil, nil, nil, 24,
265
+ 23, nil, nil, nil, nil, nil, nil, nil, 24, 23,
266
+ 125, 36, 126, 127, 128, 40, 41, 42, 129, nil,
267
+ nil, nil, nil, 130, 131, 132, 133, nil, nil, nil,
268
+ nil, 24, 23, 35, 36, 37, 38, 39, 40, 41,
269
+ 42, 44, 35, 36, 37, 38, 39, 40, 41, 42,
270
+ 44, nil, nil, nil, 24, 23, nil, nil, nil, nil,
271
+ nil, nil, nil, 24, 23, 35, 36, 37, 38, 39,
272
+ 40, 41, 42, 44, 35, 36, 37, 38, 39, 40,
273
+ 41, 42, 44, nil, nil, nil, 24, 23, nil, nil,
274
+ nil, nil, nil, nil, nil, 24, 23, 35, 36, 37,
275
+ 38, 39, 40, 41, 42, 44, 35, 36, 37, 38,
276
+ 39, 40, 41, 42, 44, nil, nil, nil, 24, 23,
277
+ nil, nil, nil, nil, nil, nil, nil, 24, 23, 35,
278
+ 36, 37, 38, 39, 40, 41, 42, 44, 35, 36,
279
+ 37, 38, 39, 40, 41, 42, 44, nil, nil, nil,
280
+ 24, 23, nil, nil, nil, nil, nil, nil, nil, 24,
281
+ 23, 35, 36, 37, 38, 39, 40, 41, 42, 44,
282
+ 35, 36, 37, 38, 39, 40, 41, 42, 44, nil,
283
+ nil, nil, 24, 23, nil, nil, nil, nil, nil, nil,
284
+ nil, 24, 23, 35, 36, 37, 38, 39, 40, 41,
285
+ 42, 44, 35, 36, 37, 38, 39, 40, 41, 42,
286
+ 44, nil, nil, nil, 24, 23, nil, nil, nil, nil,
287
+ nil, nil, nil, 24, 23, 35, 36, 37, 38, 39,
288
+ 40, 41, 42, 44, 35, 36, 37, 38, 39, 40,
289
+ 41, 42, 44, nil, nil, nil, 24, 23, nil, nil,
290
+ nil, nil, nil, nil, nil, 24, 23, 35, 36, 37,
291
+ 38, 39, 40, 41, 42, 44, 35, 36, 37, 38,
292
+ 39, 40, 41, 42, 44, nil, nil, nil, 24, 23,
293
+ nil, nil, nil, nil, nil, nil, nil, 24, 23, 35,
294
+ 36, 37, 38, 39, 40, 41, 42, 44, 35, 36,
295
+ 37, 38, 39, 40, 41, 42, 44, nil, nil, nil,
296
+ 24, 23, nil, nil, nil, nil, nil, nil, nil, 24,
297
+ 23, 35, 36, 37, 38, 39, 40, 41, 42, 44,
298
+ 35, 36, 37, 38, 39, 40, 41, 42, 44, nil,
299
+ nil, nil, 24, 23, nil, nil, nil, nil, nil, nil,
300
+ nil, 24, 23, 35, 36, 37, 38, 39, 40, 41,
301
+ 42, 44, 35, 36, 37, 38, 39, 40, 41, 42,
302
+ 44, nil, nil, nil, 24, 23, nil, nil, nil, nil,
303
+ nil, nil, nil, 24, 23, 35, 36, 37, 38, 39,
304
+ 40, 41, 42, 44, 35, 36, 37, 38, 39, 40,
305
+ 41, 42, 44, 19, 20, nil, 24, 23, nil, 19,
306
+ 20, nil, nil, nil, nil, 24, 23, nil, 16, 18,
307
+ nil, 21, 24, 23, 16, 18, nil, 21, 24, 23,
308
+ 19, 20, nil, nil, nil, nil, 19, 20, nil, nil,
309
+ nil, nil, 19, 20, nil, 16, 18, nil, 21, 24,
310
+ 23, 16, 18, nil, 21, 24, 23, 16, 18, nil,
311
+ 21, 24, 23, 220, nil, 221, 222, 223, nil, nil,
312
+ nil, 219, nil, nil, nil, nil, 130, 131, 132, 133 ]
216
313
 
217
314
  racc_action_check = [
218
- 53, 21, 154, 21, 21, 156, 21, 170, 21, 21,
219
- 21, 21, 21, 4, 21, 21, 21, 21, 21, 94,
220
- 171, 4, 4, 94, 11, 11, 21, 21, 21, 149,
221
- 53, 149, 149, 11, 149, 11, 149, 149, 149, 149,
222
- 149, 77, 149, 149, 149, 149, 149, 93, 173, 77,
223
- 195, 93, 13, 13, 149, 149, 149, 226, 196, 226,
224
- 226, 13, 226, 13, 226, 226, 226, 226, 226, 203,
225
- 226, 226, 226, 226, 226, 220, 220, 226, 207, 226,
226
- 12, 12, 226, 226, 226, 246, 215, 246, 246, 12,
227
- 246, 12, 246, 246, 246, 246, 246, 216, 246, 246,
228
- 246, 246, 246, 0, 0, 0, 28, 28, 10, 10,
229
- 246, 246, 246, 245, 217, 245, 245, 10, 245, 10,
230
- 245, 245, 245, 245, 245, 223, 245, 245, 245, 245,
231
- 245, 19, 19, 7, 227, 231, 237, 19, 245, 245,
232
- 245, 238, 7, 19, 239, 7, 7, 7, 7, 7,
233
- 7, 7, 19, 19, 19, 19, 240, 19, 131, 131,
234
- 131, 241, 243, 244, 131, 250, 251, 131, 131, 131,
235
- 131, 131, 131, 131, 134, 134, 252, 131, 131, 131,
236
- 134, 253, 1, 134, 2, 134, 5, 134, 134, 134,
237
- 133, 133, 8, 134, 134, 134, 133, 14, 15, 133,
238
- 16, 133, 17, 133, 133, 133, 132, 132, 132, 133,
239
- 133, 133, 132, 20, 23, 132, 26, 132, 27, 132,
240
- 132, 132, 135, 135, 34, 132, 132, 132, 135, 36,
241
- 37, 135, 42, 135, 44, 135, 135, 135, 24, 24,
242
- 24, 135, 135, 135, 24, 46, 47, 24, 24, 24,
243
- 24, 24, 24, 24, 126, 48, 209, 24, 24, 24,
244
- 209, 49, 50, 126, 209, 51, 126, 126, 126, 126,
245
- 126, 126, 126, 185, 3, 3, 185, 52, 185, 54,
246
- 185, 185, 185, 3, 55, 3, 185, 185, 185, 90,
247
- 56, 74, 90, 90, 90, 90, 90, 90, 90, 76,
248
- 129, 129, 90, 90, 90, 129, 78, 79, 129, 129,
249
- 129, 129, 129, 129, 129, 219, 219, 81, 83, 85,
250
- 219, 86, 92, 219, 219, 219, 219, 219, 219, 219,
251
- 160, 95, 96, 160, 160, 160, 160, 160, 160, 160,
252
- 103, 97, 98, 103, 103, 103, 103, 103, 103, 103,
253
- 188, 109, 110, 188, 188, 188, 188, 188, 188, 188,
254
- 191, 111, 112, 191, 191, 191, 191, 191, 191, 191,
255
- 155, 113, 114, 155, 155, 155, 155, 155, 155, 155,
256
- 204, 116, 120, 204, 204, 204, 204, 204, 204, 204,
257
- 205, 121, 124, 205, 205, 205, 205, 205, 205, 205,
258
- 161, 128, 138, 161, 161, 161, 161, 161, 161, 161,
259
- 167, 141, 142, 167, 167, 167, 167, 167, 167, 167,
260
- 168, 143, 144, 168, 168, 168, 168, 168, 168, 168,
261
- 169, 147, 148, 169, 169, 169, 169, 169, 169, 169,
262
- 107, nil, nil, 107, 107, 107, 107, 107, 107, 107,
263
- 102, nil, nil, 102, 102, 102, 102, 102, 102, 102,
264
- 153, nil, nil, 153, 153, 153, 153, 153, 153, 153,
265
- 88, nil, nil, 88, 88, 88, 88, 88, 88, 88,
266
- 122, nil, nil, 122, 122, 122, 122, 122, 122, 122,
267
- 123, nil, nil, 123, 123, 123, 123, 123, 123, 123,
268
- 151, nil, nil, 151, 151, 151, 151, 151, 151, 151,
269
- 91, nil, nil, 91, 91, 91, 91, 91, 91, 91,
270
- 140, nil, nil, 140, 140, 140, 140, 140, 140, 140,
271
- 164, nil, nil, 164, 164, 164, 164, 164, 164, 164,
272
- 117, nil, nil, 117, 117, 117, 117, 117, 117, 117,
273
- 118, nil, nil, 118, 118, 118, 118, 118, 118, 118,
274
- 119, nil, nil, 119, 119, 119, 119, 119, 119, 119,
275
- 197, 152, 150, nil, 197, 152, 150, nil, 197, 152,
276
- 150 ]
315
+ 162, 109, 162, 0, 0, 0, 162, 162, 162, 109,
316
+ 162, 162, 162, 246, 162, 247, 162, 251, 162, 162,
317
+ 162, 162, 162, 162, 162, 188, 162, 162, 252, 162,
318
+ 19, 19, 188, 188, 162, 188, 162, 162, 162, 162,
319
+ 162, 162, 162, 28, 254, 28, 20, 20, 259, 28,
320
+ 28, 28, 260, 28, 28, 28, 28, 28, 261, 28,
321
+ 267, 28, 28, 28, 28, 28, 28, 28, 4, 28,
322
+ 28, 272, 28, 4, 4, 273, 28, 28, 274, 28,
323
+ 28, 28, 28, 28, 28, 28, 161, 283, 161, 189,
324
+ 189, 285, 161, 161, 161, 286, 161, 161, 161, 287,
325
+ 161, 288, 161, 291, 161, 161, 161, 161, 161, 161,
326
+ 161, 190, 161, 161, 292, 161, 180, 180, 190, 190,
327
+ 161, 190, 161, 161, 161, 161, 161, 161, 161, 160,
328
+ 293, 160, 21, 21, 294, 160, 160, 160, 298, 160,
329
+ 160, 160, 160, 160, 299, 160, 304, 160, 160, 160,
330
+ 160, 160, 160, 160, 305, 160, 160, 308, 160, 27,
331
+ 27, 309, 160, 160, 1, 160, 160, 160, 160, 160,
332
+ 160, 160, 271, 2, 271, 135, 135, 5, 271, 271,
333
+ 271, 8, 271, 271, 271, 271, 271, 16, 271, 17,
334
+ 271, 271, 271, 271, 271, 271, 271, 18, 271, 271,
335
+ 23, 271, 248, 248, 24, 271, 271, 30, 271, 271,
336
+ 271, 271, 271, 271, 271, 187, 34, 187, 249, 249,
337
+ 43, 187, 187, 187, 45, 187, 187, 187, 47, 187,
338
+ 48, 187, 57, 187, 187, 187, 187, 187, 187, 187,
339
+ 239, 187, 187, 59, 187, 264, 264, 239, 239, 187,
340
+ 239, 187, 187, 187, 187, 187, 187, 187, 296, 60,
341
+ 296, 69, 69, 61, 296, 296, 296, 63, 296, 296,
342
+ 296, 64, 296, 65, 296, 66, 296, 296, 296, 296,
343
+ 296, 296, 296, 277, 296, 296, 67, 296, 68, 70,
344
+ 277, 277, 296, 277, 296, 296, 296, 296, 296, 296,
345
+ 296, 295, 71, 295, 72, 73, 74, 295, 295, 295,
346
+ 78, 295, 295, 295, 98, 295, 104, 295, 106, 295,
347
+ 295, 295, 295, 295, 295, 295, 107, 295, 295, 108,
348
+ 295, 110, 26, 26, 26, 295, 111, 295, 295, 295,
349
+ 295, 295, 295, 295, 26, 113, 115, 117, 118, 124,
350
+ 125, 126, 127, 128, 129, 138, 141, 142, 7, 143,
351
+ 26, 144, 146, 26, 148, 26, 26, 26, 26, 7,
352
+ 7, 7, 7, 7, 7, 7, 7, 7, 152, 155,
353
+ 165, 163, 175, 178, 179, 182, 10, 10, 185, 186,
354
+ 7, 7, 163, 163, 163, 163, 163, 163, 163, 163,
355
+ 163, 10, 10, 192, 10, 10, 10, 168, 168, 168,
356
+ 194, 211, 212, 163, 163, 168, 168, 168, 168, 168,
357
+ 168, 168, 168, 168, 214, 237, 238, nil, 168, 168,
358
+ 168, 168, 31, 31, 31, nil, 168, 168, nil, nil,
359
+ 31, 31, 31, 31, 31, 31, 31, 31, 31, nil,
360
+ nil, nil, nil, 31, 31, 31, 31, 263, 263, 14,
361
+ 14, 31, 31, nil, 263, 263, 263, 263, 263, 263,
362
+ 263, 263, 263, nil, 14, 14, nil, 14, 14, 14,
363
+ 166, 166, nil, nil, nil, 263, 263, 166, 166, 166,
364
+ 166, 166, 166, 166, 166, 166, nil, nil, nil, nil,
365
+ nil, nil, 170, 170, nil, nil, nil, nil, 166, 166,
366
+ 170, nil, 170, 170, 170, nil, nil, nil, 170, 172,
367
+ 172, nil, nil, 170, 170, 170, 170, 172, nil, 172,
368
+ 172, 172, nil, nil, nil, 172, 171, 171, nil, nil,
369
+ 172, 172, 172, 172, 171, nil, 171, 171, 171, nil,
370
+ nil, nil, 171, 169, 169, 169, nil, 171, 171, 171,
371
+ 171, 169, nil, 169, 169, 169, nil, nil, nil, 169,
372
+ nil, nil, nil, nil, 169, 169, 169, 169, 120, 120,
373
+ 120, 120, 120, 120, 120, 120, 120, 177, 177, 177,
374
+ 177, 177, 177, 177, 177, 177, nil, nil, nil, 120,
375
+ 120, nil, nil, nil, nil, nil, nil, nil, 177, 177,
376
+ 122, 122, 122, 122, 122, 122, 122, 122, 122, nil,
377
+ nil, nil, nil, 122, 122, 122, 122, nil, nil, nil,
378
+ nil, 122, 122, 191, 191, 191, 191, 191, 191, 191,
379
+ 191, 191, 123, 123, 123, 123, 123, 123, 123, 123,
380
+ 123, nil, nil, nil, 191, 191, nil, nil, nil, nil,
381
+ nil, nil, nil, 123, 123, 193, 193, 193, 193, 193,
382
+ 193, 193, 193, 193, 198, 198, 198, 198, 198, 198,
383
+ 198, 198, 198, nil, nil, nil, 193, 193, nil, nil,
384
+ nil, nil, nil, nil, nil, 198, 198, 201, 201, 201,
385
+ 201, 201, 201, 201, 201, 201, 208, 208, 208, 208,
386
+ 208, 208, 208, 208, 208, nil, nil, nil, 201, 201,
387
+ nil, nil, nil, nil, nil, nil, nil, 208, 208, 209,
388
+ 209, 209, 209, 209, 209, 209, 209, 209, 210, 210,
389
+ 210, 210, 210, 210, 210, 210, 210, nil, nil, nil,
390
+ 209, 209, nil, nil, nil, nil, nil, nil, nil, 210,
391
+ 210, 228, 228, 228, 228, 228, 228, 228, 228, 228,
392
+ 231, 231, 231, 231, 231, 231, 231, 231, 231, nil,
393
+ nil, nil, 228, 228, nil, nil, nil, nil, nil, nil,
394
+ nil, 231, 231, 134, 134, 134, 134, 134, 134, 134,
395
+ 134, 134, 136, 136, 136, 136, 136, 136, 136, 136,
396
+ 136, nil, nil, nil, 134, 134, nil, nil, nil, nil,
397
+ nil, nil, nil, 136, 136, 55, 55, 55, 55, 55,
398
+ 55, 55, 55, 55, 56, 56, 56, 56, 56, 56,
399
+ 56, 56, 56, nil, nil, nil, 55, 55, nil, nil,
400
+ nil, nil, nil, nil, nil, 56, 56, 270, 270, 270,
401
+ 270, 270, 270, 270, 270, 270, 149, 149, 149, 149,
402
+ 149, 149, 149, 149, 149, nil, nil, nil, 270, 270,
403
+ nil, nil, nil, nil, nil, nil, nil, 149, 149, 150,
404
+ 150, 150, 150, 150, 150, 150, 150, 150, 275, 275,
405
+ 275, 275, 275, 275, 275, 275, 275, nil, nil, nil,
406
+ 150, 150, nil, nil, nil, nil, nil, nil, nil, 275,
407
+ 275, 151, 151, 151, 151, 151, 151, 151, 151, 151,
408
+ 153, 153, 153, 153, 153, 153, 153, 153, 153, nil,
409
+ nil, nil, 151, 151, nil, nil, nil, nil, nil, nil,
410
+ nil, 153, 153, 154, 154, 154, 154, 154, 154, 154,
411
+ 154, 154, 289, 289, 289, 289, 289, 289, 289, 289,
412
+ 289, nil, nil, nil, 154, 154, nil, nil, nil, nil,
413
+ nil, nil, nil, 289, 289, 290, 290, 290, 290, 290,
414
+ 290, 290, 290, 290, 156, 156, 156, 156, 156, 156,
415
+ 156, 156, 156, 11, 11, nil, 290, 290, nil, 3,
416
+ 3, nil, nil, nil, nil, 156, 156, nil, 11, 11,
417
+ nil, 11, 11, 11, 3, 3, nil, 3, 3, 3,
418
+ 15, 15, nil, nil, nil, nil, 12, 12, nil, nil,
419
+ nil, nil, 13, 13, nil, 15, 15, nil, 15, 15,
420
+ 15, 12, 12, nil, 12, 12, 12, 13, 13, nil,
421
+ 13, 13, 13, 225, nil, 225, 225, 225, nil, nil,
422
+ nil, 225, nil, nil, nil, nil, 225, 225, 225, 225 ]
277
423
 
278
424
  racc_action_pointer = [
279
- 101, 182, 168, 252, -30, 186, nil, 127, 171, nil,
280
- 86, 2, 58, 30, 182, 180, 182, 184, nil, 108,
281
- 195, -14, nil, 201, 229, nil, 200, 202, 81, nil,
282
- nil, nil, nil, nil, 197, nil, 212, 222, nil, nil,
283
- nil, nil, 216, nil, 218, nil, 229, 240, 227, 233,
284
- 250, 253, 265, -18, 267, 272, 240, nil, nil, nil,
425
+ 1, 164, 158, 990, 16, 177, nil, 352, 163, nil,
426
+ 367, 984, 1017, 1023, 440, 1011, 175, 177, 172, -8,
427
+ 8, 94, nil, 162, 165, nil, 312, 121, 34, nil,
428
+ 194, 423, nil, nil, 201, nil, nil, nil, nil, nil,
429
+ nil, nil, nil, 194, nil, 195, nil, 212, 222, nil,
430
+ nil, nil, nil, nil, nil, 808, 817, 217, nil, 228,
431
+ 244, 248, nil, 229, 241, 243, 263, 274, 276, 223,
432
+ 277, 290, 264, 293, 291, nil, nil, nil, 300, nil,
285
433
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
286
- nil, nil, nil, nil, 274, nil, 294, 35, 299, 299,
287
- nil, 309, nil, 310, nil, 311, 313, nil, 455, nil,
288
- 274, 495, 310, 35, 7, 319, 320, 329, 330, nil,
289
- nil, nil, 435, 325, nil, nil, nil, 425, nil, 330,
290
- 318, 322, 350, 353, 360, nil, 369, 525, 535, 545,
291
- 370, 379, 465, 475, 380, nil, 248, nil, 396, 290,
292
- nil, 149, 197, 181, 165, 213, nil, nil, 390, nil,
293
- 505, 394, 404, 404, 395, nil, nil, 399, 398, 14,
294
- 542, 485, 541, 445, -5, 355, -11, nil, nil, nil,
295
- 315, 385, nil, nil, 515, nil, nil, 395, 405, 415,
296
- 0, 12, nil, 40, nil, nil, nil, nil, nil, nil,
297
- nil, nil, nil, nil, nil, 258, nil, nil, 335, nil,
298
- nil, 345, nil, nil, nil, 38, 26, 540, nil, nil,
299
- nil, nil, nil, 63, 365, 375, nil, 46, nil, 226,
300
- nil, nil, nil, nil, nil, 79, 70, 100, nil, 305,
301
- 65, nil, nil, 109, nil, nil, 42, 109, nil, nil,
302
- nil, 103, nil, nil, nil, nil, nil, 109, 129, 108,
303
- 120, 154, nil, 146, 147, 98, 70, nil, nil, nil,
304
- 153, 154, 160, 165, nil, nil ]
434
+ nil, nil, nil, nil, nil, nil, nil, nil, 298, nil,
435
+ nil, nil, nil, nil, 308, nil, 292, 300, 324, -5,
436
+ 324, 328, nil, 337, nil, 338, nil, 339, 340, nil,
437
+ 561, nil, 593, 625, 337, 338, 339, 340, 341, 342,
438
+ nil, nil, nil, nil, 776, 156, 785, nil, 337, nil,
439
+ nil, 315, 313, 347, 355, nil, 350, nil, 352, 849,
440
+ 872, 904, 366, 913, 936, 367, 977, nil, nil, nil,
441
+ 120, 77, -9, 375, nil, 375, 470, nil, 398, 544,
442
+ 493, 527, 510, nil, nil, 370, nil, 570, 367, 376,
443
+ 89, nil, 356, nil, nil, 352, 348, 206, -8, 51,
444
+ 78, 616, 365, 648, 395, nil, nil, nil, 657, nil,
445
+ nil, 680, nil, nil, nil, nil, nil, nil, 689, 712,
446
+ 721, 404, 404, nil, 416, nil, nil, nil, nil, nil,
447
+ nil, nil, nil, nil, nil, 1046, nil, nil, 744, nil,
448
+ nil, 753, nil, nil, nil, nil, nil, 413, 390, 207,
449
+ nil, nil, nil, nil, nil, nil, 1, 9, 164, 180,
450
+ nil, 2, -8, nil, 37, nil, nil, nil, nil, 41,
451
+ 23, 44, nil, 447, 235, nil, nil, 45, nil, nil,
452
+ 840, 163, 44, 60, 63, 881, nil, 250, nil, nil,
453
+ nil, nil, nil, 58, nil, 79, 69, 73, 94, 945,
454
+ 968, 87, 78, 115, 119, 292, 249, nil, 122, 128,
455
+ nil, nil, nil, nil, 134, 142, nil, nil, 142, 146,
456
+ nil, nil ]
305
457
 
306
458
  racc_action_default = [
307
- -141, -141, -101, -72, -141, -141, -1, -7, -141, -2,
308
- -72, -72, -72, -72, -141, -141, -141, -141, -3, -137,
309
- -141, -141, 256, -31, -24, -9, -44, -46, -54, -49,
310
- -50, -51, -52, -53, -57, -58, -141, -103, -73, -74,
311
- -75, -76, -101, -83, -101, -84, -101, -141, -141, -141,
312
- -141, -141, -141, -141, -141, -141, -141, -138, -110, -111,
313
- -112, -113, -114, -115, -116, -117, -118, -119, -120, -121,
314
- -122, -123, -124, -125, -141, -139, -141, -35, -141, -10,
315
- -12, -13, -15, -16, -18, -19, -20, -23, -141, -26,
316
- -141, -141, -141, -44, -46, -49, -51, -52, -53, -63,
317
- -70, -71, -141, -141, -48, -55, -56, -141, -102, -141,
318
- -105, -99, -81, -141, -141, -140, -141, -141, -141, -141,
319
- -141, -141, -141, -141, -141, -126, -141, -32, -141, -42,
320
- -8, -24, -24, -24, -24, -24, -25, -27, -141, -28,
321
- -141, -141, -59, -141, -61, -62, -104, -141, -105, -141,
322
- -85, -141, -85, -141, -141, -141, -101, -129, -130, -131,
323
- -141, -141, -134, -135, -141, -4, -5, -141, -141, -141,
324
- -141, -36, -38, -39, -41, -43, -11, -14, -64, -65,
325
- -66, -67, -68, -69, -17, -141, -21, -22, -141, -29,
326
- -45, -141, -47, -77, -106, -141, -141, -85, -87, -88,
327
- -89, -90, -91, -97, -141, -141, -100, -141, -82, -85,
328
- -127, -128, -132, -133, -136, -141, -141, -141, -34, -42,
329
- -42, -30, -60, -101, -78, -86, -141, -141, -95, -96,
330
- -79, -141, -6, -33, -37, -40, -107, -108, -141, -141,
331
- -141, -141, -80, -101, -101, -141, -141, -98, -109, -92,
332
- -141, -141, -101, -101, -93, -94 ]
459
+ -176, -176, -119, -77, -176, -176, -1, -7, -176, -2,
460
+ -77, -77, -77, -77, -77, -77, -176, -176, -176, -176,
461
+ -176, -176, -93, -176, -95, -3, -176, -176, -176, 312,
462
+ -31, -24, -9, -44, -56, -46, -47, -48, -49, -50,
463
+ -51, -52, -53, -54, -55, -62, -63, -176, -121, -78,
464
+ -79, -80, -81, -82, -83, -176, -176, -119, -92, -119,
465
+ -119, -119, -94, -176, -176, -176, -176, -176, -176, -176,
466
+ -176, -176, -176, -176, -119, -128, -129, -130, -131, -132,
467
+ -133, -134, -135, -136, -137, -138, -139, -140, -141, -142,
468
+ -143, -144, -145, -146, -147, -148, -149, -150, -151, -152,
469
+ -153, -154, -155, -168, -171, -172, -176, -176, -176, -34,
470
+ -176, -10, -12, -13, -15, -16, -18, -19, -20, -23,
471
+ -176, -26, -176, -176, -176, -46, -48, -49, -50, -55,
472
+ -68, -69, -75, -76, -176, -176, -176, -120, -176, -84,
473
+ -85, -123, -115, -90, -176, -96, -176, -175, -176, -176,
474
+ -176, -176, -176, -176, -176, -176, -176, -167, -156, -157,
475
+ -176, -176, -176, -176, -32, -176, -42, -8, -24, -24,
476
+ -24, -24, -24, -25, -27, -176, -28, -176, -176, -64,
477
+ -59, -58, -66, -67, -122, -176, -123, -176, -97, -176,
478
+ -97, -176, -176, -176, -119, -160, -161, -162, -176, -164,
479
+ -165, -176, -169, -170, -173, -174, -4, -5, -176, -176,
480
+ -176, -176, -36, -38, -39, -41, -43, -11, -14, -70,
481
+ -71, -72, -73, -74, -17, -176, -21, -22, -176, -29,
482
+ -45, -176, -57, -60, -61, -86, -124, -176, -176, -97,
483
+ -99, -100, -101, -102, -103, -104, -176, -113, -176, -176,
484
+ -116, -117, -176, -91, -176, -158, -159, -163, -166, -176,
485
+ -176, -176, -35, -42, -42, -30, -65, -119, -87, -98,
486
+ -176, -176, -176, -109, -111, -176, -88, -97, -6, -33,
487
+ -37, -40, -125, -126, -105, -176, -176, -176, -176, -176,
488
+ -176, -176, -176, -119, -119, -176, -176, -114, -176, -176,
489
+ -118, -89, -127, -106, -176, -176, -110, -112, -119, -119,
490
+ -107, -108 ]
333
491
 
334
492
  racc_goto_table = [
335
- 75, 25, 6, 78, 36, 44, 46, 47, 175, 138,
336
- 173, 144, 170, 145, 147, 196, 171, 207, 141, 143,
337
- 236, 110, 1, 111, 9, 112, 184, 186, 187, 104,
338
- 166, 38, 39, 40, 41, 114, 116, 42, 128, 177,
339
- 248, 249, 150, 165, 152, 226, 76, 23, 18, 254,
340
- 255, 235, 194, nil, nil, nil, nil, nil, nil, nil,
341
- nil, nil, 225, nil, nil, nil, nil, nil, nil, nil,
342
- nil, 216, nil, 215, 231, nil, nil, nil, nil, nil,
343
- nil, nil, 136, nil, 137, 139, nil, nil, nil, nil,
344
- nil, nil, nil, nil, nil, nil, 142, 142, 175, 175,
345
- 173, 173, 234, 154, 138, 146, 171, 222, nil, nil,
346
- 176, 157, 158, 159, nil, nil, 162, 163, nil, nil,
347
- nil, nil, nil, nil, nil, nil, nil, nil, 195, nil,
348
- nil, nil, nil, nil, 189, nil, nil, nil, nil, nil,
349
- nil, nil, nil, nil, nil, 206, nil, 208, nil, 210,
350
- nil, nil, nil, nil, 212, 213, 211, nil, 214, nil,
351
- nil, nil, 217, 137, nil, nil, nil, nil, nil, nil,
493
+ 32, 17, 110, 6, 103, 47, 175, 178, 17, 17,
494
+ 17, 17, 17, 17, 214, 182, 183, 59, 60, 61,
495
+ 204, 205, 216, 185, 121, 74, 212, 211, 238, 282,
496
+ 252, 165, 62, 141, 25, 142, 143, 144, 224, 226,
497
+ 227, 30, 207, 146, 148, 108, 237, 206, 139, 140,
498
+ 157, 9, 218, 1, 281, 302, 303, 232, 49, 50,
499
+ 51, 52, 53, 54, 57, 188, 190, 152, 236, 271,
500
+ 310, 311, 145, 250, nil, nil, nil, nil, nil, 269,
501
+ nil, nil, nil, nil, nil, nil, nil, 260, 259, nil,
352
502
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
353
- nil, nil, 221, nil, nil, 142, nil, nil, nil, nil,
354
- nil, nil, nil, nil, nil, nil, nil, nil, 228, 229,
355
- nil, nil, nil, nil, nil, 238, nil, nil, nil, nil,
503
+ nil, nil, nil, nil, 266, nil, nil, nil, nil, 175,
504
+ nil, 214, 214, 173, nil, 174, 176, 292, nil, 216,
505
+ 216, nil, nil, 212, 280, nil, nil, nil, nil, nil,
506
+ 285, nil, nil, nil, nil, 184, 203, nil, nil, 217,
507
+ nil, nil, 195, 196, 197, nil, 199, 200, 291, 202,
508
+ nil, nil, nil, nil, 304, 305, nil, nil, nil, 121,
509
+ nil, 121, 298, 299, nil, nil, nil, nil, nil, nil,
510
+ 229, nil, nil, nil, nil, nil, nil, nil, nil, nil,
511
+ nil, nil, nil, nil, 253, nil, 255, 251, nil, nil,
512
+ nil, 257, nil, nil, 258, 256, nil, nil, nil, nil,
513
+ nil, nil, 261, 174, nil, nil, nil, nil, nil, nil,
356
514
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
357
- nil, nil, nil, nil, 250, 251 ]
515
+ nil, 265, nil, nil, nil, nil, nil, nil, nil, nil,
516
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
517
+ nil, nil, nil, nil, nil, nil, 273, 274, nil, nil,
518
+ nil, nil, nil, nil, nil, nil, 121, nil, nil, nil,
519
+ nil, nil, nil, 284 ]
358
520
 
359
521
  racc_goto_check = [
360
- 46, 12, 2, 11, 48, 35, 35, 35, 17, 22,
361
- 15, 9, 24, 10, 34, 37, 13, 37, 27, 27,
362
- 47, 5, 1, 5, 3, 5, 18, 18, 18, 28,
363
- 9, 3, 3, 3, 3, 50, 50, 33, 23, 14,
364
- 47, 47, 36, 8, 38, 45, 7, 6, 4, 47,
365
- 47, 25, 34, nil, nil, nil, nil, nil, nil, nil,
366
- nil, nil, 37, nil, nil, nil, nil, nil, nil, nil,
367
- nil, 9, nil, 10, 37, nil, nil, nil, nil, nil,
368
- nil, nil, 12, nil, 12, 12, nil, nil, nil, nil,
369
- nil, nil, nil, nil, nil, nil, 12, 12, 17, 17,
370
- 15, 15, 24, 35, 22, 48, 13, 27, nil, nil,
371
- 11, 12, 12, 12, nil, nil, 12, 12, nil, nil,
372
- nil, nil, nil, nil, nil, nil, nil, nil, 46, nil,
373
- nil, nil, nil, nil, 12, nil, nil, nil, nil, nil,
374
- nil, nil, nil, nil, nil, 12, nil, 12, nil, 12,
375
- nil, nil, nil, nil, 12, 12, 2, nil, 12, nil,
522
+ 12, 30, 11, 2, 58, 55, 22, 29, 30, 30,
523
+ 30, 30, 30, 30, 15, 9, 10, 30, 30, 30,
524
+ 52, 52, 17, 39, 12, 30, 13, 24, 41, 53,
525
+ 41, 23, 43, 5, 4, 5, 5, 5, 18, 18,
526
+ 18, 6, 9, 57, 57, 7, 52, 8, 12, 12,
527
+ 5, 3, 14, 1, 25, 53, 53, 31, 3, 3,
528
+ 3, 3, 3, 3, 38, 40, 42, 30, 39, 51,
529
+ 53, 53, 43, 54, nil, nil, nil, nil, nil, 41,
530
+ nil, nil, nil, nil, nil, nil, nil, 9, 10, nil,
531
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
532
+ nil, nil, nil, nil, 29, nil, nil, nil, nil, 22,
533
+ nil, 15, 15, 12, nil, 12, 12, 41, nil, 17,
534
+ 17, nil, nil, 13, 24, nil, nil, nil, nil, nil,
535
+ 52, nil, nil, nil, nil, 55, 58, nil, nil, 11,
536
+ nil, nil, 12, 12, 12, nil, 12, 12, 29, 12,
537
+ nil, nil, nil, nil, 52, 52, nil, nil, nil, 12,
538
+ nil, 12, 29, 29, nil, nil, nil, nil, nil, nil,
539
+ 12, nil, nil, nil, nil, nil, nil, nil, nil, nil,
540
+ nil, nil, nil, nil, 12, nil, 12, 30, nil, nil,
541
+ nil, 12, nil, nil, 12, 2, nil, nil, nil, nil,
376
542
  nil, nil, 12, 12, nil, nil, nil, nil, nil, nil,
377
543
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
378
- nil, nil, 12, nil, nil, 12, nil, nil, nil, nil,
379
- nil, nil, nil, nil, nil, nil, nil, nil, 12, 12,
380
- nil, nil, nil, nil, nil, 46, nil, nil, nil, nil,
544
+ nil, 12, nil, nil, nil, nil, nil, nil, nil, nil,
381
545
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
382
- nil, nil, nil, nil, 46, 46 ]
546
+ nil, nil, nil, nil, nil, nil, 30, 30, nil, nil,
547
+ nil, nil, nil, nil, nil, nil, 12, nil, nil, nil,
548
+ nil, nil, nil, 12 ]
383
549
 
384
550
  racc_goto_pointer = [
385
- nil, 22, 0, 21, 44, -21, 40, 23, -83, -96,
386
- -94, -21, -6, -113, -93, -119, nil, -121, -107, nil,
387
- nil, nil, -81, -39, -117, -169, nil, -84, 1, nil,
388
- nil, nil, nil, 23, -96, -10, -69, -135, -68, nil,
389
- nil, nil, nil, nil, nil, -158, -21, -203, -4, nil,
390
- -13 ]
551
+ nil, 53, 1, 48, 30, -24, 34, 15, -116, -121,
552
+ -120, -29, -7, -140, -117, -152, nil, -144, -132, nil,
553
+ nil, nil, -116, -78, -139, -210, nil, nil, nil, -127,
554
+ -2, -123, nil, nil, nil, nil, nil, nil, 46, -118,
555
+ -77, -160, -77, 9, nil, nil, nil, nil, nil, nil,
556
+ nil, -178, -141, -238, -116, -3, nil, -21, -24, nil ]
391
557
 
392
558
  racc_goto_default = [
393
- nil, nil, 237, nil, nil, 7, nil, nil, nil, 34,
394
- 35, nil, 89, 79, 80, 81, 82, 83, 84, 85,
395
- 86, 87, 92, nil, nil, 172, 174, nil, nil, 10,
396
- 11, 12, 13, nil, nil, nil, nil, nil, nil, 197,
397
- 198, 199, 200, 201, 202, nil, nil, nil, nil, 148,
398
- nil ]
559
+ nil, nil, 283, nil, nil, 7, nil, nil, nil, 45,
560
+ 46, nil, 179, 111, 112, 113, 114, 115, 116, 117,
561
+ 118, 119, 124, nil, nil, 213, 215, 33, 34, nil,
562
+ 43, nil, 10, 11, 12, 13, 14, 15, nil, nil,
563
+ nil, nil, nil, 22, 239, 240, 241, 242, 243, 244,
564
+ 245, nil, 105, nil, nil, nil, 186, nil, nil, 104 ]
399
565
 
400
566
  racc_reduce_table = [
401
567
  0, 0, :racc_error,
402
- 2, 54, :_reduce_1,
403
- 2, 54, :_reduce_2,
404
- 2, 54, :_reduce_3,
405
- 5, 55, :_reduce_4,
406
- 1, 61, :_reduce_none,
407
- 3, 61, :_reduce_6,
408
- 0, 59, :_reduce_7,
409
- 3, 59, :_reduce_8,
410
- 1, 59, :_reduce_9,
411
- 1, 64, :_reduce_10,
412
- 3, 64, :_reduce_11,
413
- 1, 64, :_reduce_12,
414
- 1, 67, :_reduce_13,
415
- 3, 67, :_reduce_14,
416
- 1, 67, :_reduce_15,
417
- 1, 69, :_reduce_16,
418
- 3, 69, :_reduce_17,
419
- 1, 69, :_reduce_18,
420
- 1, 71, :_reduce_19,
421
- 1, 71, :_reduce_20,
422
- 3, 71, :_reduce_21,
423
- 3, 71, :_reduce_22,
424
- 1, 71, :_reduce_23,
425
- 0, 74, :_reduce_24,
426
- 2, 74, :_reduce_25,
427
- 1, 66, :_reduce_26,
428
- 2, 68, :_reduce_27,
429
- 2, 70, :_reduce_28,
430
- 3, 72, :_reduce_29,
431
- 4, 73, :_reduce_30,
432
- 0, 60, :_reduce_31,
433
- 2, 60, :_reduce_32,
434
- 5, 60, :_reduce_33,
435
- 3, 76, :_reduce_34,
436
- 0, 76, :_reduce_35,
437
- 1, 77, :_reduce_36,
438
- 3, 77, :_reduce_37,
439
- 1, 77, :_reduce_38,
440
- 1, 78, :_reduce_39,
441
- 3, 78, :_reduce_40,
442
- 1, 78, :_reduce_41,
443
- 0, 79, :_reduce_42,
444
- 1, 79, :_reduce_43,
445
- 1, 62, :_reduce_44,
446
- 4, 62, :_reduce_45,
447
- 1, 62, :_reduce_46,
448
- 4, 62, :_reduce_47,
449
- 2, 62, :_reduce_48,
450
- 1, 62, :_reduce_49,
451
- 1, 62, :_reduce_50,
452
- 1, 62, :_reduce_51,
453
- 1, 62, :_reduce_52,
454
- 1, 62, :_reduce_53,
455
- 0, 81, :_reduce_54,
568
+ 2, 60, :_reduce_1,
569
+ 2, 60, :_reduce_2,
570
+ 2, 60, :_reduce_3,
571
+ 5, 61, :_reduce_4,
572
+ 1, 67, :_reduce_none,
573
+ 3, 67, :_reduce_6,
574
+ 0, 65, :_reduce_7,
575
+ 3, 65, :_reduce_8,
576
+ 1, 65, :_reduce_9,
577
+ 1, 70, :_reduce_10,
578
+ 3, 70, :_reduce_11,
579
+ 1, 70, :_reduce_12,
580
+ 1, 73, :_reduce_13,
581
+ 3, 73, :_reduce_14,
582
+ 1, 73, :_reduce_15,
583
+ 1, 75, :_reduce_16,
584
+ 3, 75, :_reduce_17,
585
+ 1, 75, :_reduce_18,
586
+ 1, 77, :_reduce_19,
587
+ 1, 77, :_reduce_20,
588
+ 3, 77, :_reduce_21,
589
+ 3, 77, :_reduce_22,
590
+ 1, 77, :_reduce_23,
591
+ 0, 80, :_reduce_24,
592
+ 2, 80, :_reduce_25,
593
+ 1, 72, :_reduce_26,
594
+ 2, 74, :_reduce_27,
595
+ 2, 76, :_reduce_28,
596
+ 3, 78, :_reduce_29,
597
+ 4, 79, :_reduce_30,
598
+ 0, 66, :_reduce_31,
599
+ 2, 66, :_reduce_32,
600
+ 5, 66, :_reduce_33,
601
+ 0, 82, :_reduce_34,
602
+ 3, 82, :_reduce_35,
603
+ 1, 83, :_reduce_36,
604
+ 3, 83, :_reduce_37,
605
+ 1, 83, :_reduce_38,
606
+ 1, 84, :_reduce_39,
607
+ 3, 84, :_reduce_40,
608
+ 1, 84, :_reduce_41,
609
+ 0, 85, :_reduce_42,
610
+ 1, 85, :_reduce_43,
611
+ 1, 68, :_reduce_44,
612
+ 4, 68, :_reduce_45,
613
+ 1, 68, :_reduce_46,
614
+ 1, 68, :_reduce_47,
615
+ 1, 68, :_reduce_48,
616
+ 1, 68, :_reduce_49,
617
+ 1, 68, :_reduce_50,
618
+ 1, 68, :_reduce_51,
619
+ 1, 68, :_reduce_52,
620
+ 1, 68, :_reduce_53,
621
+ 1, 87, :_reduce_54,
622
+ 1, 87, :_reduce_55,
623
+ 1, 86, :_reduce_none,
624
+ 4, 86, :_reduce_57,
625
+ 3, 86, :_reduce_58,
626
+ 0, 90, :_reduce_59,
627
+ 1, 90, :_reduce_none,
628
+ 1, 90, :_reduce_none,
629
+ 1, 71, :_reduce_none,
630
+ 1, 71, :_reduce_63,
631
+ 1, 88, :_reduce_64,
632
+ 3, 88, :_reduce_65,
633
+ 3, 69, :_reduce_66,
634
+ 3, 69, :_reduce_67,
456
635
  1, 81, :_reduce_none,
457
636
  1, 81, :_reduce_none,
458
- 1, 65, :_reduce_none,
459
- 1, 65, :_reduce_58,
460
- 1, 80, :_reduce_59,
461
- 3, 80, :_reduce_60,
462
- 3, 63, :_reduce_61,
463
- 3, 63, :_reduce_62,
464
- 1, 75, :_reduce_none,
465
- 1, 75, :_reduce_none,
466
- 1, 75, :_reduce_none,
467
- 1, 75, :_reduce_66,
468
- 1, 75, :_reduce_67,
469
- 1, 75, :_reduce_68,
470
- 1, 75, :_reduce_69,
471
- 1, 75, :_reduce_70,
472
- 1, 75, :_reduce_71,
473
- 0, 56, :_reduce_72,
474
- 2, 56, :_reduce_73,
475
- 2, 56, :_reduce_74,
476
- 2, 56, :_reduce_75,
477
- 2, 56, :_reduce_76,
478
- 5, 82, :_reduce_77,
479
- 6, 83, :_reduce_78,
480
- 6, 84, :_reduce_79,
481
- 7, 85, :_reduce_80,
482
- 0, 91, :_reduce_81,
483
- 2, 91, :_reduce_82,
484
- 1, 86, :_reduce_83,
485
- 1, 88, :_reduce_84,
486
- 0, 90, :_reduce_85,
487
- 2, 90, :_reduce_86,
488
- 1, 92, :_reduce_87,
489
- 1, 92, :_reduce_88,
490
- 1, 92, :_reduce_89,
491
- 1, 92, :_reduce_90,
492
- 1, 92, :_reduce_91,
493
- 5, 93, :_reduce_92,
494
- 7, 94, :_reduce_93,
495
- 7, 95, :_reduce_94,
496
- 2, 96, :_reduce_95,
497
- 2, 97, :_reduce_96,
498
- 0, 98, :_reduce_97,
499
- 3, 98, :_reduce_98,
500
- 0, 89, :_reduce_99,
501
- 2, 89, :_reduce_100,
502
- 0, 58, :_reduce_101,
503
- 3, 58, :_reduce_102,
504
- 1, 101, :_reduce_103,
505
- 3, 101, :_reduce_104,
506
- 0, 87, :_reduce_105,
507
- 2, 87, :_reduce_106,
508
- 4, 102, :_reduce_107,
509
- 1, 100, :_reduce_108,
510
- 3, 100, :_reduce_109,
511
- 1, 99, :_reduce_none,
512
- 1, 99, :_reduce_none,
513
- 1, 99, :_reduce_none,
514
- 1, 99, :_reduce_113,
515
- 1, 99, :_reduce_114,
516
- 1, 99, :_reduce_115,
517
- 1, 99, :_reduce_116,
518
- 1, 99, :_reduce_117,
519
- 1, 99, :_reduce_118,
520
- 1, 99, :_reduce_119,
521
- 1, 99, :_reduce_none,
522
- 1, 99, :_reduce_none,
523
- 1, 99, :_reduce_122,
524
- 1, 99, :_reduce_123,
525
- 1, 99, :_reduce_124,
526
- 1, 99, :_reduce_125,
527
- 2, 99, :_reduce_126,
528
- 5, 57, :_reduce_127,
529
- 5, 57, :_reduce_128,
530
- 4, 57, :_reduce_129,
531
- 4, 57, :_reduce_130,
532
- 4, 57, :_reduce_131,
533
- 5, 57, :_reduce_132,
534
- 5, 57, :_reduce_133,
535
- 4, 57, :_reduce_134,
536
- 4, 57, :_reduce_135,
537
- 5, 57, :_reduce_136,
538
- 1, 57, :_reduce_137,
539
- 2, 57, :_reduce_138,
540
- 2, 57, :_reduce_139,
541
- 1, 103, :_reduce_140 ]
542
-
543
- racc_reduce_n = 141
544
-
545
- racc_shift_n = 256
637
+ 1, 81, :_reduce_none,
638
+ 1, 81, :_reduce_none,
639
+ 1, 81, :_reduce_none,
640
+ 1, 81, :_reduce_none,
641
+ 1, 81, :_reduce_none,
642
+ 1, 81, :_reduce_none,
643
+ 1, 81, :_reduce_none,
644
+ 0, 62, :_reduce_77,
645
+ 2, 62, :_reduce_78,
646
+ 2, 62, :_reduce_79,
647
+ 2, 62, :_reduce_80,
648
+ 2, 62, :_reduce_81,
649
+ 2, 62, :_reduce_82,
650
+ 2, 62, :_reduce_83,
651
+ 3, 96, :_reduce_84,
652
+ 3, 95, :_reduce_85,
653
+ 5, 91, :_reduce_86,
654
+ 6, 92, :_reduce_87,
655
+ 6, 93, :_reduce_88,
656
+ 8, 94, :_reduce_89,
657
+ 0, 101, :_reduce_90,
658
+ 2, 101, :_reduce_91,
659
+ 1, 97, :_reduce_none,
660
+ 1, 89, :_reduce_none,
661
+ 2, 89, :_reduce_94,
662
+ 1, 102, :_reduce_95,
663
+ 3, 102, :_reduce_96,
664
+ 0, 100, :_reduce_97,
665
+ 2, 100, :_reduce_98,
666
+ 1, 103, :_reduce_none,
667
+ 1, 103, :_reduce_none,
668
+ 1, 103, :_reduce_none,
669
+ 1, 103, :_reduce_none,
670
+ 1, 103, :_reduce_none,
671
+ 1, 103, :_reduce_none,
672
+ 3, 109, :_reduce_105,
673
+ 5, 104, :_reduce_106,
674
+ 7, 105, :_reduce_107,
675
+ 7, 106, :_reduce_108,
676
+ 2, 107, :_reduce_109,
677
+ 5, 107, :_reduce_110,
678
+ 2, 108, :_reduce_111,
679
+ 5, 108, :_reduce_112,
680
+ 0, 110, :_reduce_113,
681
+ 3, 110, :_reduce_114,
682
+ 0, 99, :_reduce_115,
683
+ 2, 99, :_reduce_116,
684
+ 1, 113, :_reduce_117,
685
+ 4, 113, :_reduce_118,
686
+ 0, 64, :_reduce_119,
687
+ 3, 64, :_reduce_120,
688
+ 1, 114, :_reduce_121,
689
+ 3, 114, :_reduce_122,
690
+ 0, 98, :_reduce_123,
691
+ 2, 98, :_reduce_124,
692
+ 4, 115, :_reduce_125,
693
+ 1, 112, :_reduce_126,
694
+ 3, 112, :_reduce_127,
695
+ 1, 111, :_reduce_none,
696
+ 1, 111, :_reduce_none,
697
+ 1, 111, :_reduce_none,
698
+ 1, 111, :_reduce_none,
699
+ 1, 111, :_reduce_none,
700
+ 1, 111, :_reduce_none,
701
+ 1, 111, :_reduce_none,
702
+ 1, 111, :_reduce_none,
703
+ 1, 111, :_reduce_none,
704
+ 1, 111, :_reduce_none,
705
+ 1, 111, :_reduce_none,
706
+ 1, 111, :_reduce_none,
707
+ 1, 111, :_reduce_none,
708
+ 1, 111, :_reduce_none,
709
+ 1, 111, :_reduce_none,
710
+ 1, 111, :_reduce_none,
711
+ 1, 111, :_reduce_none,
712
+ 1, 111, :_reduce_none,
713
+ 1, 111, :_reduce_none,
714
+ 1, 111, :_reduce_none,
715
+ 1, 111, :_reduce_none,
716
+ 1, 111, :_reduce_none,
717
+ 1, 111, :_reduce_none,
718
+ 1, 111, :_reduce_none,
719
+ 1, 111, :_reduce_none,
720
+ 1, 111, :_reduce_153,
721
+ 1, 111, :_reduce_154,
722
+ 1, 111, :_reduce_155,
723
+ 2, 111, :_reduce_156,
724
+ 2, 111, :_reduce_157,
725
+ 5, 63, :_reduce_158,
726
+ 5, 63, :_reduce_159,
727
+ 4, 63, :_reduce_160,
728
+ 4, 63, :_reduce_161,
729
+ 4, 63, :_reduce_162,
730
+ 5, 63, :_reduce_163,
731
+ 4, 63, :_reduce_164,
732
+ 4, 63, :_reduce_165,
733
+ 5, 63, :_reduce_166,
734
+ 3, 63, :_reduce_167,
735
+ 2, 63, :_reduce_168,
736
+ 4, 63, :_reduce_169,
737
+ 3, 117, :_reduce_170,
738
+ 1, 117, :_reduce_171,
739
+ 1, 118, :_reduce_172,
740
+ 3, 118, :_reduce_173,
741
+ 3, 118, :_reduce_174,
742
+ 1, 116, :_reduce_175 ]
743
+
744
+ racc_reduce_n = 176
745
+
746
+ racc_shift_n = 312
546
747
 
547
748
  racc_token_table = {
548
749
  false => 0,
@@ -560,46 +761,52 @@ racc_token_table = {
560
761
  :COLON => 12,
561
762
  :LBRACE => 13,
562
763
  :RBRACE => 14,
563
- :INTERFACE_NAME => 15,
564
- :LT => 16,
565
- :GT => 17,
566
- :MODULE_NAME => 18,
567
- :CLASS_IDENT => 19,
568
- :ANY => 20,
569
- :TVAR => 21,
570
- :CLASS => 22,
571
- :MODULE => 23,
572
- :INSTANCE => 24,
573
- :CONSTRUCTOR => 25,
574
- :NOCONSTRUCTOR => 26,
575
- :BAR => 27,
576
- :IDENT => 28,
577
- :BLOCK => 29,
578
- :INCLUDE => 30,
579
- :INTERFACE => 31,
580
- :END => 32,
581
- :EXTENSION => 33,
582
- :DEF => 34,
583
- :SELF => 35,
584
- :DOT => 36,
585
- :SELFQ => 37,
586
- :EXTEND => 38,
587
- :LTCOLON => 39,
588
- :PLUS => 40,
589
- :OPERATOR => 41,
590
- :METHOD_NAME => 42,
591
- :AT_TYPE => 43,
592
- :VAR => 44,
593
- :METHOD => 45,
594
- :RETURN => 46,
595
- :CONST => 47,
596
- :CONST_PATH => 48,
597
- :IVAR => 49,
598
- :IVAR_NAME => 50,
599
- :AT_IMPLEMENTS => 51,
600
- :AT_DYNAMIC => 52 }
601
-
602
- racc_nt_base = 53
764
+ :LT => 15,
765
+ :GT => 16,
766
+ :ANY => 17,
767
+ :TVAR => 18,
768
+ :CLASS => 19,
769
+ :MODULE => 20,
770
+ :INSTANCE => 21,
771
+ :SELF => 22,
772
+ :VOID => 23,
773
+ :NIL => 24,
774
+ :INTERFACE_NAME => 25,
775
+ :DOT => 26,
776
+ :CONSTRUCTOR => 27,
777
+ :NOCONSTRUCTOR => 28,
778
+ :BAR => 29,
779
+ :IDENT => 30,
780
+ :MODULE_NAME => 31,
781
+ :BLOCK => 32,
782
+ :INCLUDE => 33,
783
+ :GVAR => 34,
784
+ :INTERFACE => 35,
785
+ :END => 36,
786
+ :EXTENSION => 37,
787
+ :UIDENT => 38,
788
+ :COLON2 => 39,
789
+ :IVAR_NAME => 40,
790
+ :DEF => 41,
791
+ :SELFQ => 42,
792
+ :EXTEND => 43,
793
+ :LTCOLON => 44,
794
+ :PLUS => 45,
795
+ :OPERATOR => 46,
796
+ :METHOD_NAME => 47,
797
+ :BREAK => 48,
798
+ :PERCENT => 49,
799
+ :MINUS => 50,
800
+ :METHOD => 51,
801
+ :AT_TYPE => 52,
802
+ :VAR => 53,
803
+ :RETURN => 54,
804
+ :CONST => 55,
805
+ :IVAR => 56,
806
+ :AT_IMPLEMENTS => 57,
807
+ :AT_DYNAMIC => 58 }
808
+
809
+ racc_nt_base = 59
603
810
 
604
811
  racc_use_result_var = true
605
812
 
@@ -635,42 +842,48 @@ Racc_token_to_s_table = [
635
842
  "COLON",
636
843
  "LBRACE",
637
844
  "RBRACE",
638
- "INTERFACE_NAME",
639
845
  "LT",
640
846
  "GT",
641
- "MODULE_NAME",
642
- "CLASS_IDENT",
643
847
  "ANY",
644
848
  "TVAR",
645
849
  "CLASS",
646
850
  "MODULE",
647
851
  "INSTANCE",
852
+ "SELF",
853
+ "VOID",
854
+ "NIL",
855
+ "INTERFACE_NAME",
856
+ "DOT",
648
857
  "CONSTRUCTOR",
649
858
  "NOCONSTRUCTOR",
650
859
  "BAR",
651
860
  "IDENT",
861
+ "MODULE_NAME",
652
862
  "BLOCK",
653
863
  "INCLUDE",
864
+ "GVAR",
654
865
  "INTERFACE",
655
866
  "END",
656
867
  "EXTENSION",
868
+ "UIDENT",
869
+ "COLON2",
870
+ "IVAR_NAME",
657
871
  "DEF",
658
- "SELF",
659
- "DOT",
660
872
  "SELFQ",
661
873
  "EXTEND",
662
874
  "LTCOLON",
663
875
  "PLUS",
664
876
  "OPERATOR",
665
877
  "METHOD_NAME",
878
+ "BREAK",
879
+ "PERCENT",
880
+ "MINUS",
881
+ "METHOD",
666
882
  "AT_TYPE",
667
883
  "VAR",
668
- "METHOD",
669
884
  "RETURN",
670
885
  "CONST",
671
- "CONST_PATH",
672
886
  "IVAR",
673
- "IVAR_NAME",
674
887
  "AT_IMPLEMENTS",
675
888
  "AT_DYNAMIC",
676
889
  "$start",
@@ -700,30 +913,39 @@ Racc_token_to_s_table = [
700
913
  "block_params0",
701
914
  "block_params1",
702
915
  "block_params2",
916
+ "type_name",
917
+ "instance_type_name",
703
918
  "type_seq",
919
+ "module_name",
704
920
  "constructor",
705
921
  "interface",
706
922
  "class_decl",
707
923
  "module_decl",
708
924
  "extension_decl",
925
+ "const_decl",
926
+ "gvar_decl",
709
927
  "interface_name",
710
- "method_decls",
711
- "class_name",
928
+ "interface_members",
712
929
  "super_opt",
713
930
  "class_members",
714
931
  "self_type_opt",
932
+ "module_name0",
715
933
  "class_member",
716
934
  "instance_method_member",
717
- "class_method_member",
718
- "class_instance_method_member",
935
+ "module_method_member",
936
+ "module_instance_method_member",
719
937
  "include_member",
720
938
  "extend_member",
939
+ "ivar_member",
721
940
  "constructor_method",
722
941
  "method_name",
723
942
  "method_type_union",
943
+ "super_class",
724
944
  "type_param_seq",
725
- "method_decl",
726
- "subject" ]
945
+ "interface_method",
946
+ "subject",
947
+ "dynamic_names",
948
+ "dynamic_name" ]
727
949
 
728
950
  Racc_debug_parser = false
729
951
 
@@ -731,922 +953,1200 @@ Racc_debug_parser = false
731
953
 
732
954
  # reduce 0 omitted
733
955
 
734
- module_eval(<<'.,.,', 'parser.y', 4)
956
+ module_eval(<<'.,.,', 'parser.y', 6)
735
957
  def _reduce_1(val, _values, result)
736
958
  result = val[1]
737
959
  result
738
960
  end
739
961
  .,.,
740
962
 
741
- module_eval(<<'.,.,', 'parser.y', 5)
963
+ module_eval(<<'.,.,', 'parser.y', 7)
742
964
  def _reduce_2(val, _values, result)
743
965
  result = val[1]
744
966
  result
745
967
  end
746
968
  .,.,
747
969
 
748
- module_eval(<<'.,.,', 'parser.y', 6)
970
+ module_eval(<<'.,.,', 'parser.y', 8)
749
971
  def _reduce_3(val, _values, result)
750
972
  result = val[1]
751
973
  result
752
974
  end
753
975
  .,.,
754
976
 
755
- module_eval(<<'.,.,', 'parser.y', 9)
977
+ module_eval(<<'.,.,', 'parser.y', 12)
756
978
  def _reduce_4(val, _values, result)
757
- result = Interface::MethodType.new(type_params: val[0], params: val[1], block: val[2], return_type: val[4])
979
+ result = AST::MethodType.new(location: AST::Location.concat(*val.compact.map(&:location)),
980
+ type_params: val[0],
981
+ params: val[1]&.value,
982
+ block: val[2],
983
+ return_type: val[4])
984
+
758
985
  result
759
986
  end
760
987
  .,.,
761
988
 
762
989
  # reduce 5 omitted
763
990
 
764
- module_eval(<<'.,.,', 'parser.y', 12)
991
+ module_eval(<<'.,.,', 'parser.y', 20)
765
992
  def _reduce_6(val, _values, result)
766
- result = Types::Union.new(types: val[1])
993
+ result = AST::Types::Union.build(location: val[0].location + val[2].location,
994
+ types: val[1])
767
995
  result
768
996
  end
769
997
  .,.,
770
998
 
771
- module_eval(<<'.,.,', 'parser.y', 14)
999
+ module_eval(<<'.,.,', 'parser.y', 23)
772
1000
  def _reduce_7(val, _values, result)
773
- result = Interface::Params.empty
1001
+ result = nil
774
1002
  result
775
1003
  end
776
1004
  .,.,
777
1005
 
778
- module_eval(<<'.,.,', 'parser.y', 15)
1006
+ module_eval(<<'.,.,', 'parser.y', 24)
779
1007
  def _reduce_8(val, _values, result)
780
- result = val[1]
1008
+ result = LocatedValue.new(location: val[0].location + val[2].location,
1009
+ value: val[1])
781
1010
  result
782
1011
  end
783
1012
  .,.,
784
1013
 
785
- module_eval(<<'.,.,', 'parser.y', 16)
1014
+ module_eval(<<'.,.,', 'parser.y', 26)
786
1015
  def _reduce_9(val, _values, result)
787
- result = Interface::Params.empty.with(required: [val[0]])
1016
+ result = LocatedValue.new(location: val[0].location,
1017
+ value: AST::MethodType::Params::Required.new(location: val[0].location, type: val[0]))
788
1018
  result
789
1019
  end
790
1020
  .,.,
791
1021
 
792
- module_eval(<<'.,.,', 'parser.y', 18)
1022
+ module_eval(<<'.,.,', 'parser.y', 29)
793
1023
  def _reduce_10(val, _values, result)
794
- result = Interface::Params.empty.with(required: [val[0]])
1024
+ result = AST::MethodType::Params::Required.new(location: val[0].location, type: val[0])
795
1025
  result
796
1026
  end
797
1027
  .,.,
798
1028
 
799
- module_eval(<<'.,.,', 'parser.y', 19)
1029
+ module_eval(<<'.,.,', 'parser.y', 31)
800
1030
  def _reduce_11(val, _values, result)
801
- result = val[2].with(required: [val[0]] + val[2].required)
1031
+ location = val[0].location
1032
+ result = AST::MethodType::Params::Required.new(location: location,
1033
+ type: val[0],
1034
+ next_params: val[2])
1035
+
802
1036
  result
803
1037
  end
804
1038
  .,.,
805
1039
 
806
- module_eval(<<'.,.,', 'parser.y', 20)
1040
+ module_eval(<<'.,.,', 'parser.y', 36)
807
1041
  def _reduce_12(val, _values, result)
808
1042
  result = val[0]
809
1043
  result
810
1044
  end
811
1045
  .,.,
812
1046
 
813
- module_eval(<<'.,.,', 'parser.y', 22)
1047
+ module_eval(<<'.,.,', 'parser.y', 38)
814
1048
  def _reduce_13(val, _values, result)
815
- result = Interface::Params.empty.with(optional: [val[0]])
1049
+ result = AST::MethodType::Params::Optional.new(location: val[0].first, type: val[0].last)
816
1050
  result
817
1051
  end
818
1052
  .,.,
819
1053
 
820
- module_eval(<<'.,.,', 'parser.y', 23)
1054
+ module_eval(<<'.,.,', 'parser.y', 40)
821
1055
  def _reduce_14(val, _values, result)
822
- result = val[2].with(optional: [val[0]] + val[2].optional)
1056
+ location = val[0].first
1057
+ result = AST::MethodType::Params::Optional.new(type: val[0].last, location: location, next_params: val[2])
1058
+
823
1059
  result
824
1060
  end
825
1061
  .,.,
826
1062
 
827
- module_eval(<<'.,.,', 'parser.y', 24)
1063
+ module_eval(<<'.,.,', 'parser.y', 43)
828
1064
  def _reduce_15(val, _values, result)
829
1065
  result = val[0]
830
1066
  result
831
1067
  end
832
1068
  .,.,
833
1069
 
834
- module_eval(<<'.,.,', 'parser.y', 26)
1070
+ module_eval(<<'.,.,', 'parser.y', 45)
835
1071
  def _reduce_16(val, _values, result)
836
- result = Interface::Params.empty.with(rest: val[0])
1072
+ result = AST::MethodType::Params::Rest.new(location: val[0].first, type: val[0].last)
837
1073
  result
838
1074
  end
839
1075
  .,.,
840
1076
 
841
- module_eval(<<'.,.,', 'parser.y', 27)
1077
+ module_eval(<<'.,.,', 'parser.y', 47)
842
1078
  def _reduce_17(val, _values, result)
843
- result = val[2].with(rest: val[0])
1079
+ loc = val[0].first
1080
+ result = AST::MethodType::Params::Rest.new(location: loc, type: val[0].last, next_params: val[2])
1081
+
844
1082
  result
845
1083
  end
846
1084
  .,.,
847
1085
 
848
- module_eval(<<'.,.,', 'parser.y', 28)
1086
+ module_eval(<<'.,.,', 'parser.y', 50)
849
1087
  def _reduce_18(val, _values, result)
850
1088
  result = val[0]
851
1089
  result
852
1090
  end
853
1091
  .,.,
854
1092
 
855
- module_eval(<<'.,.,', 'parser.y', 30)
1093
+ module_eval(<<'.,.,', 'parser.y', 53)
856
1094
  def _reduce_19(val, _values, result)
857
- result = Interface::Params.empty.with(required_keywords: val[0])
1095
+ location, name, type = val[0]
1096
+ result = AST::MethodType::Params::RequiredKeyword.new(location: location, name: name, type: type)
1097
+
858
1098
  result
859
1099
  end
860
1100
  .,.,
861
1101
 
862
- module_eval(<<'.,.,', 'parser.y', 31)
1102
+ module_eval(<<'.,.,', 'parser.y', 57)
863
1103
  def _reduce_20(val, _values, result)
864
- result = Interface::Params.empty.with(optional_keywords: val[0])
1104
+ location, name, type = val[0]
1105
+ result = AST::MethodType::Params::OptionalKeyword.new(location: location, name: name, type: type)
1106
+
865
1107
  result
866
1108
  end
867
1109
  .,.,
868
1110
 
869
- module_eval(<<'.,.,', 'parser.y', 32)
1111
+ module_eval(<<'.,.,', 'parser.y', 61)
870
1112
  def _reduce_21(val, _values, result)
871
- result = val[2].with(required_keywords: val[2].required_keywords.merge(val[0]))
1113
+ location, name, type = val[0]
1114
+ result = AST::MethodType::Params::RequiredKeyword.new(location: location,
1115
+ name: name,
1116
+ type: type,
1117
+ next_params: val[2])
1118
+
872
1119
  result
873
1120
  end
874
1121
  .,.,
875
1122
 
876
- module_eval(<<'.,.,', 'parser.y', 33)
1123
+ module_eval(<<'.,.,', 'parser.y', 68)
877
1124
  def _reduce_22(val, _values, result)
878
- result = val[2].with(optional_keywords: val[2].optional_keywords.merge(val[0]))
1125
+ location, name, type = val[0]
1126
+ result = AST::MethodType::Params::OptionalKeyword.new(location: location,
1127
+ name: name,
1128
+ type: type,
1129
+ next_params: val[2])
1130
+
879
1131
  result
880
1132
  end
881
1133
  .,.,
882
1134
 
883
- module_eval(<<'.,.,', 'parser.y', 34)
1135
+ module_eval(<<'.,.,', 'parser.y', 74)
884
1136
  def _reduce_23(val, _values, result)
885
1137
  result = val[0]
886
1138
  result
887
1139
  end
888
1140
  .,.,
889
1141
 
890
- module_eval(<<'.,.,', 'parser.y', 36)
1142
+ module_eval(<<'.,.,', 'parser.y', 76)
891
1143
  def _reduce_24(val, _values, result)
892
- result = Interface::Params.empty
1144
+ result = nil
893
1145
  result
894
1146
  end
895
1147
  .,.,
896
1148
 
897
- module_eval(<<'.,.,', 'parser.y', 37)
1149
+ module_eval(<<'.,.,', 'parser.y', 78)
898
1150
  def _reduce_25(val, _values, result)
899
- result = Interface::Params.empty.with(rest_keywords: val[1])
1151
+ result = AST::MethodType::Params::RestKeyword.new(location: val[0].location + val[1].location,
1152
+ type: val[1])
1153
+
900
1154
  result
901
1155
  end
902
1156
  .,.,
903
1157
 
904
- module_eval(<<'.,.,', 'parser.y', 39)
1158
+ module_eval(<<'.,.,', 'parser.y', 82)
905
1159
  def _reduce_26(val, _values, result)
906
1160
  result = val[0]
907
1161
  result
908
1162
  end
909
1163
  .,.,
910
1164
 
911
- module_eval(<<'.,.,', 'parser.y', 40)
1165
+ module_eval(<<'.,.,', 'parser.y', 83)
912
1166
  def _reduce_27(val, _values, result)
913
- result = val[1]
1167
+ result = [val[0].location + val[1].location,
1168
+ val[1]]
914
1169
  result
915
1170
  end
916
1171
  .,.,
917
1172
 
918
- module_eval(<<'.,.,', 'parser.y', 41)
1173
+ module_eval(<<'.,.,', 'parser.y', 85)
919
1174
  def _reduce_28(val, _values, result)
920
- result = val[1]
1175
+ result = [val[0].location + val[1].location,
1176
+ val[1]]
921
1177
  result
922
1178
  end
923
1179
  .,.,
924
1180
 
925
- module_eval(<<'.,.,', 'parser.y', 42)
1181
+ module_eval(<<'.,.,', 'parser.y', 87)
926
1182
  def _reduce_29(val, _values, result)
927
- result = { val[0] => val[2] }
1183
+ result = [val[0].location + val[2].location,
1184
+ val[0].value,
1185
+ val[2]]
928
1186
  result
929
1187
  end
930
1188
  .,.,
931
1189
 
932
- module_eval(<<'.,.,', 'parser.y', 43)
1190
+ module_eval(<<'.,.,', 'parser.y', 90)
933
1191
  def _reduce_30(val, _values, result)
934
- result = { val[1] => val[3] }
1192
+ result = [val[0].location + val[3].location,
1193
+ val[1].value,
1194
+ val[3]]
935
1195
  result
936
1196
  end
937
1197
  .,.,
938
1198
 
939
- module_eval(<<'.,.,', 'parser.y', 45)
1199
+ module_eval(<<'.,.,', 'parser.y', 94)
940
1200
  def _reduce_31(val, _values, result)
941
1201
  result = nil
942
1202
  result
943
1203
  end
944
1204
  .,.,
945
1205
 
946
- module_eval(<<'.,.,', 'parser.y', 46)
1206
+ module_eval(<<'.,.,', 'parser.y', 96)
947
1207
  def _reduce_32(val, _values, result)
948
- result = Interface::Block.new(params: Interface::Params.empty.with(rest: Types::Any.new),
949
- return_type: Types::Any.new)
1208
+ result = AST::MethodType::Block.new(params: nil,
1209
+ return_type: nil,
1210
+ location: val[0].location + val[1].location)
1211
+
950
1212
  result
951
1213
  end
952
1214
  .,.,
953
1215
 
954
- module_eval(<<'.,.,', 'parser.y', 48)
1216
+ module_eval(<<'.,.,', 'parser.y', 101)
955
1217
  def _reduce_33(val, _values, result)
956
- result = Interface::Block.new(params: val[1], return_type: val[3])
1218
+ result = AST::MethodType::Block.new(params: val[1],
1219
+ return_type: val[3],
1220
+ location: val[0].location + val[4].location)
1221
+
957
1222
  result
958
1223
  end
959
1224
  .,.,
960
1225
 
961
- module_eval(<<'.,.,', 'parser.y', 50)
1226
+ module_eval(<<'.,.,', 'parser.y', 106)
962
1227
  def _reduce_34(val, _values, result)
963
- result = val[1]
1228
+ result = nil
964
1229
  result
965
1230
  end
966
1231
  .,.,
967
1232
 
968
- module_eval(<<'.,.,', 'parser.y', 51)
1233
+ module_eval(<<'.,.,', 'parser.y', 108)
969
1234
  def _reduce_35(val, _values, result)
970
- result = Interface::Params.empty.with(rest: Types::Any.new)
1235
+ result = val[1]
1236
+
971
1237
  result
972
1238
  end
973
1239
  .,.,
974
1240
 
975
- module_eval(<<'.,.,', 'parser.y', 53)
1241
+ module_eval(<<'.,.,', 'parser.y', 112)
976
1242
  def _reduce_36(val, _values, result)
977
- result = Interface::Params.empty.with(required: [val[0]])
1243
+ result = AST::MethodType::Params::Required.new(location: val[0].location,
1244
+ type: val[0])
1245
+
978
1246
  result
979
1247
  end
980
1248
  .,.,
981
1249
 
982
- module_eval(<<'.,.,', 'parser.y', 54)
1250
+ module_eval(<<'.,.,', 'parser.y', 116)
983
1251
  def _reduce_37(val, _values, result)
984
- result = val[2].with(required: [val[0]] + val[2].required)
1252
+ result = AST::MethodType::Params::Required.new(location: val[0].location,
1253
+ type: val[0],
1254
+ next_params: val[2])
1255
+
985
1256
  result
986
1257
  end
987
1258
  .,.,
988
1259
 
989
- module_eval(<<'.,.,', 'parser.y', 55)
1260
+ module_eval(<<'.,.,', 'parser.y', 120)
990
1261
  def _reduce_38(val, _values, result)
991
1262
  result = val[0]
992
1263
  result
993
1264
  end
994
1265
  .,.,
995
1266
 
996
- module_eval(<<'.,.,', 'parser.y', 57)
1267
+ module_eval(<<'.,.,', 'parser.y', 123)
997
1268
  def _reduce_39(val, _values, result)
998
- result = Interface::Params.empty.with(optional: [val[0]])
1269
+ result = AST::MethodType::Params::Optional.new(location: val[0].first,
1270
+ type: val[0].last)
1271
+
999
1272
  result
1000
1273
  end
1001
1274
  .,.,
1002
1275
 
1003
- module_eval(<<'.,.,', 'parser.y', 58)
1276
+ module_eval(<<'.,.,', 'parser.y', 127)
1004
1277
  def _reduce_40(val, _values, result)
1005
- result = val[2].with(optional: [val[0]] + val[2].optional)
1278
+ loc = val.first[0] + (val[2] || val[1]).location
1279
+ type = val.first[1]
1280
+ next_params = val[2]
1281
+ result = AST::MethodType::Params::Optional.new(location: loc, type: type, next_params: next_params)
1282
+
1006
1283
  result
1007
1284
  end
1008
1285
  .,.,
1009
1286
 
1010
- module_eval(<<'.,.,', 'parser.y', 59)
1287
+ module_eval(<<'.,.,', 'parser.y', 132)
1011
1288
  def _reduce_41(val, _values, result)
1012
1289
  result = val[0]
1013
1290
  result
1014
1291
  end
1015
1292
  .,.,
1016
1293
 
1017
- module_eval(<<'.,.,', 'parser.y', 61)
1294
+ module_eval(<<'.,.,', 'parser.y', 134)
1018
1295
  def _reduce_42(val, _values, result)
1019
- result = Interface::Params.empty
1296
+ result = nil
1020
1297
  result
1021
1298
  end
1022
1299
  .,.,
1023
1300
 
1024
- module_eval(<<'.,.,', 'parser.y', 62)
1301
+ module_eval(<<'.,.,', 'parser.y', 136)
1025
1302
  def _reduce_43(val, _values, result)
1026
- result = Interface::Params.empty.with(rest: val[0])
1303
+ result = AST::MethodType::Params::Rest.new(location: val[0].first, type: val[0].last)
1304
+
1027
1305
  result
1028
1306
  end
1029
1307
  .,.,
1030
1308
 
1031
- module_eval(<<'.,.,', 'parser.y', 64)
1309
+ module_eval(<<'.,.,', 'parser.y', 140)
1032
1310
  def _reduce_44(val, _values, result)
1033
- result = Types::Name.interface(name: val[0])
1311
+ result = AST::Types::Name.new(name: val[0].value, location: val[0].location, args: [])
1312
+
1034
1313
  result
1035
1314
  end
1036
1315
  .,.,
1037
1316
 
1038
- module_eval(<<'.,.,', 'parser.y', 65)
1317
+ module_eval(<<'.,.,', 'parser.y', 143)
1039
1318
  def _reduce_45(val, _values, result)
1040
- result = Types::Name.interface(name: val[0], params: val[2])
1319
+ loc = val[0].location + val[3].location
1320
+ name = val[0].value
1321
+ args = val[2]
1322
+ result = AST::Types::Name.new(location: loc, name: name, args: args)
1323
+
1041
1324
  result
1042
1325
  end
1043
1326
  .,.,
1044
1327
 
1045
- module_eval(<<'.,.,', 'parser.y', 66)
1328
+ module_eval(<<'.,.,', 'parser.y', 148)
1046
1329
  def _reduce_46(val, _values, result)
1047
- result = Types::Name.instance(name: val[0])
1330
+ result = AST::Types::Any.new(location: val[0].location)
1048
1331
  result
1049
1332
  end
1050
1333
  .,.,
1051
1334
 
1052
- module_eval(<<'.,.,', 'parser.y', 67)
1335
+ module_eval(<<'.,.,', 'parser.y', 149)
1053
1336
  def _reduce_47(val, _values, result)
1054
- result = Types::Name.instance(name: val[0], params: val[2])
1337
+ result = AST::Types::Var.new(location: val[0].location, name: val[0].value)
1055
1338
  result
1056
1339
  end
1057
1340
  .,.,
1058
1341
 
1059
- module_eval(<<'.,.,', 'parser.y', 68)
1342
+ module_eval(<<'.,.,', 'parser.y', 150)
1060
1343
  def _reduce_48(val, _values, result)
1061
- result = Types::Name.module(name: val[0], constructor: val[1])
1344
+ result = AST::Types::Class.new(location: val[0].location)
1062
1345
  result
1063
1346
  end
1064
1347
  .,.,
1065
1348
 
1066
- module_eval(<<'.,.,', 'parser.y', 69)
1349
+ module_eval(<<'.,.,', 'parser.y', 151)
1067
1350
  def _reduce_49(val, _values, result)
1068
- result = Types::Any.new
1351
+ result = AST::Types::Class.new(location: val[0].location)
1069
1352
  result
1070
1353
  end
1071
1354
  .,.,
1072
1355
 
1073
- module_eval(<<'.,.,', 'parser.y', 70)
1356
+ module_eval(<<'.,.,', 'parser.y', 152)
1074
1357
  def _reduce_50(val, _values, result)
1075
- result = Types::Var.new(name: val[0])
1358
+ result = AST::Types::Instance.new(location: val[0].location)
1076
1359
  result
1077
1360
  end
1078
1361
  .,.,
1079
1362
 
1080
- module_eval(<<'.,.,', 'parser.y', 71)
1363
+ module_eval(<<'.,.,', 'parser.y', 153)
1081
1364
  def _reduce_51(val, _values, result)
1082
- result = Types::Class.new
1365
+ result = AST::Types::Self.new(location: val[0].location)
1083
1366
  result
1084
1367
  end
1085
1368
  .,.,
1086
1369
 
1087
- module_eval(<<'.,.,', 'parser.y', 72)
1370
+ module_eval(<<'.,.,', 'parser.y', 154)
1088
1371
  def _reduce_52(val, _values, result)
1089
- result = Types::Class.new
1372
+ result = AST::Types::Void.new(location: val[0].location)
1090
1373
  result
1091
1374
  end
1092
1375
  .,.,
1093
1376
 
1094
- module_eval(<<'.,.,', 'parser.y', 73)
1377
+ module_eval(<<'.,.,', 'parser.y', 155)
1095
1378
  def _reduce_53(val, _values, result)
1096
- result = Types::Instance.new
1379
+ result = AST::Types::Name.new_instance(name: ModuleName.new(name: "NilClass", absolute: true),
1380
+ location: val[0].location)
1097
1381
  result
1098
1382
  end
1099
1383
  .,.,
1100
1384
 
1101
- module_eval(<<'.,.,', 'parser.y', 75)
1385
+ module_eval(<<'.,.,', 'parser.y', 159)
1102
1386
  def _reduce_54(val, _values, result)
1103
- result = nil
1387
+ result = LocatedValue.new(value: TypeName::Instance.new(name: val[0].value),
1388
+ location: val[0].location)
1389
+
1104
1390
  result
1105
1391
  end
1106
1392
  .,.,
1107
1393
 
1108
- # reduce 55 omitted
1394
+ module_eval(<<'.,.,', 'parser.y', 163)
1395
+ def _reduce_55(val, _values, result)
1396
+ result = LocatedValue.new(value: TypeName::Interface.new(name: val[0].value),
1397
+ location: val[0].location)
1398
+
1399
+ result
1400
+ end
1401
+ .,.,
1109
1402
 
1110
1403
  # reduce 56 omitted
1111
1404
 
1112
- # reduce 57 omitted
1405
+ module_eval(<<'.,.,', 'parser.y', 169)
1406
+ def _reduce_57(val, _values, result)
1407
+ loc = val[0].location + (val[3] || val[2]).location
1408
+ result = LocatedValue.new(value: TypeName::Class.new(name: val[0].value, constructor: val[3]&.value),
1409
+ location: loc)
1410
+
1411
+ result
1412
+ end
1413
+ .,.,
1113
1414
 
1114
- module_eval(<<'.,.,', 'parser.y', 80)
1415
+ module_eval(<<'.,.,', 'parser.y', 174)
1115
1416
  def _reduce_58(val, _values, result)
1116
- result = Types::Union.new(types: val[0])
1417
+ loc = val[0].location + val.last.location
1418
+ result = LocatedValue.new(value: TypeName::Module.new(name: val[0].value),
1419
+ location: loc)
1420
+
1117
1421
  result
1118
1422
  end
1119
1423
  .,.,
1120
1424
 
1121
- module_eval(<<'.,.,', 'parser.y', 82)
1425
+ module_eval(<<'.,.,', 'parser.y', 179)
1122
1426
  def _reduce_59(val, _values, result)
1123
- result = [val[0]]
1427
+ result = nil
1124
1428
  result
1125
1429
  end
1126
1430
  .,.,
1127
1431
 
1128
- module_eval(<<'.,.,', 'parser.y', 83)
1129
- def _reduce_60(val, _values, result)
1130
- result = [val[0]] + val[2]
1432
+ # reduce 60 omitted
1433
+
1434
+ # reduce 61 omitted
1435
+
1436
+ # reduce 62 omitted
1437
+
1438
+ module_eval(<<'.,.,', 'parser.y', 185)
1439
+ def _reduce_63(val, _values, result)
1440
+ loc = val[0].first.location + val[0].last.location
1441
+ result = AST::Types::Union.build(types: val[0], location: loc)
1442
+
1131
1443
  result
1132
1444
  end
1133
1445
  .,.,
1134
1446
 
1135
- module_eval(<<'.,.,', 'parser.y', 85)
1136
- def _reduce_61(val, _values, result)
1137
- result = [val[0], val[2]]
1447
+ module_eval(<<'.,.,', 'parser.y', 189)
1448
+ def _reduce_64(val, _values, result)
1449
+ result = [val[0]]
1138
1450
  result
1139
1451
  end
1140
1452
  .,.,
1141
1453
 
1142
- module_eval(<<'.,.,', 'parser.y', 86)
1143
- def _reduce_62(val, _values, result)
1454
+ module_eval(<<'.,.,', 'parser.y', 190)
1455
+ def _reduce_65(val, _values, result)
1144
1456
  result = [val[0]] + val[2]
1145
1457
  result
1146
1458
  end
1147
1459
  .,.,
1148
1460
 
1149
- # reduce 63 omitted
1150
-
1151
- # reduce 64 omitted
1152
-
1153
- # reduce 65 omitted
1154
-
1155
- module_eval(<<'.,.,', 'parser.y', 91)
1461
+ module_eval(<<'.,.,', 'parser.y', 192)
1156
1462
  def _reduce_66(val, _values, result)
1157
- result = :any
1463
+ result = [val[0], val[2]]
1158
1464
  result
1159
1465
  end
1160
1466
  .,.,
1161
1467
 
1162
- module_eval(<<'.,.,', 'parser.y', 92)
1468
+ module_eval(<<'.,.,', 'parser.y', 193)
1163
1469
  def _reduce_67(val, _values, result)
1164
- result = :class
1470
+ result = [val[0]] + val[2]
1165
1471
  result
1166
1472
  end
1167
1473
  .,.,
1168
1474
 
1169
- module_eval(<<'.,.,', 'parser.y', 93)
1170
- def _reduce_68(val, _values, result)
1171
- result = :module
1475
+ # reduce 68 omitted
1476
+
1477
+ # reduce 69 omitted
1478
+
1479
+ # reduce 70 omitted
1480
+
1481
+ # reduce 71 omitted
1482
+
1483
+ # reduce 72 omitted
1484
+
1485
+ # reduce 73 omitted
1486
+
1487
+ # reduce 74 omitted
1488
+
1489
+ # reduce 75 omitted
1490
+
1491
+ # reduce 76 omitted
1492
+
1493
+ module_eval(<<'.,.,', 'parser.y', 205)
1494
+ def _reduce_77(val, _values, result)
1495
+ result = []
1172
1496
  result
1173
1497
  end
1174
1498
  .,.,
1175
1499
 
1176
- module_eval(<<'.,.,', 'parser.y', 94)
1177
- def _reduce_69(val, _values, result)
1178
- result = :instance
1500
+ module_eval(<<'.,.,', 'parser.y', 206)
1501
+ def _reduce_78(val, _values, result)
1502
+ result = [val[0]] + val[1]
1179
1503
  result
1180
1504
  end
1181
1505
  .,.,
1182
1506
 
1183
- module_eval(<<'.,.,', 'parser.y', 95)
1184
- def _reduce_70(val, _values, result)
1185
- result = :block
1507
+ module_eval(<<'.,.,', 'parser.y', 207)
1508
+ def _reduce_79(val, _values, result)
1509
+ result = [val[0]] + val[1]
1186
1510
  result
1187
1511
  end
1188
1512
  .,.,
1189
1513
 
1190
- module_eval(<<'.,.,', 'parser.y', 96)
1191
- def _reduce_71(val, _values, result)
1192
- result = :include
1514
+ module_eval(<<'.,.,', 'parser.y', 208)
1515
+ def _reduce_80(val, _values, result)
1516
+ result = [val[0]] + val[1]
1193
1517
  result
1194
1518
  end
1195
1519
  .,.,
1196
1520
 
1197
- module_eval(<<'.,.,', 'parser.y', 98)
1198
- def _reduce_72(val, _values, result)
1199
- result = []
1521
+ module_eval(<<'.,.,', 'parser.y', 209)
1522
+ def _reduce_81(val, _values, result)
1523
+ result = [val[0]] + val[1]
1200
1524
  result
1201
1525
  end
1202
1526
  .,.,
1203
1527
 
1204
- module_eval(<<'.,.,', 'parser.y', 99)
1205
- def _reduce_73(val, _values, result)
1528
+ module_eval(<<'.,.,', 'parser.y', 210)
1529
+ def _reduce_82(val, _values, result)
1206
1530
  result = [val[0]] + val[1]
1207
1531
  result
1208
1532
  end
1209
1533
  .,.,
1210
1534
 
1211
- module_eval(<<'.,.,', 'parser.y', 100)
1212
- def _reduce_74(val, _values, result)
1535
+ module_eval(<<'.,.,', 'parser.y', 211)
1536
+ def _reduce_83(val, _values, result)
1213
1537
  result = [val[0]] + val[1]
1214
1538
  result
1215
1539
  end
1216
1540
  .,.,
1217
1541
 
1218
- module_eval(<<'.,.,', 'parser.y', 101)
1219
- def _reduce_75(val, _values, result)
1220
- result = [val[0]] + val[1]
1542
+ module_eval(<<'.,.,', 'parser.y', 214)
1543
+ def _reduce_84(val, _values, result)
1544
+ loc = val.first.location + val.last.location
1545
+ result = AST::Signature::Gvar.new(
1546
+ location: loc,
1547
+ name: val[0].value,
1548
+ type: val[2]
1549
+ )
1550
+
1221
1551
  result
1222
1552
  end
1223
1553
  .,.,
1224
1554
 
1225
- module_eval(<<'.,.,', 'parser.y', 102)
1226
- def _reduce_76(val, _values, result)
1227
- result = [val[0]] + val[1]
1555
+ module_eval(<<'.,.,', 'parser.y', 223)
1556
+ def _reduce_85(val, _values, result)
1557
+ loc = val.first.location + val.last.location
1558
+ result = AST::Signature::Const.new(
1559
+ location: loc,
1560
+ name: val[0].value,
1561
+ type: val[2]
1562
+ )
1563
+
1228
1564
  result
1229
1565
  end
1230
1566
  .,.,
1231
1567
 
1232
- module_eval(<<'.,.,', 'parser.y', 104)
1233
- def _reduce_77(val, _values, result)
1234
- result = Signature::Interface.new(name: val[1], params: val[2], methods: val[3])
1568
+ module_eval(<<'.,.,', 'parser.y', 232)
1569
+ def _reduce_86(val, _values, result)
1570
+ loc = val.first.location + val.last.location
1571
+ result = AST::Signature::Interface.new(
1572
+ location: loc,
1573
+ name: val[1].value,
1574
+ params: val[2],
1575
+ methods: val[3]
1576
+ )
1577
+
1235
1578
  result
1236
1579
  end
1237
1580
  .,.,
1238
1581
 
1239
- module_eval(<<'.,.,', 'parser.y', 105)
1240
- def _reduce_78(val, _values, result)
1241
- result = Signature::Class.new(name: val[1], params: val[2], super_class: val[3], members: val[4] )
1582
+ module_eval(<<'.,.,', 'parser.y', 242)
1583
+ def _reduce_87(val, _values, result)
1584
+ loc = val.first.location + val.last.location
1585
+ result = AST::Signature::Class.new(name: val[1].value.absolute!,
1586
+ params: val[2],
1587
+ super_class: val[3],
1588
+ members: val[4],
1589
+ location: loc)
1590
+
1242
1591
  result
1243
1592
  end
1244
1593
  .,.,
1245
1594
 
1246
- module_eval(<<'.,.,', 'parser.y', 106)
1247
- def _reduce_79(val, _values, result)
1248
- result = Signature::Module.new(name: val[1], params: val[2], self_type: val[3], members: val[4])
1595
+ module_eval(<<'.,.,', 'parser.y', 250)
1596
+ def _reduce_88(val, _values, result)
1597
+ loc = val.first.location + val.last.location
1598
+ result = AST::Signature::Module.new(name: val[1].value.absolute!,
1599
+ location: loc,
1600
+ params: val[2],
1601
+ self_type: val[3],
1602
+ members: val[4])
1603
+
1249
1604
  result
1250
1605
  end
1251
1606
  .,.,
1252
1607
 
1253
- module_eval(<<'.,.,', 'parser.y', 107)
1254
- def _reduce_80(val, _values, result)
1255
- result = Signature::Extension.new(module_name: val[1], extension_name: val[3], members: val[5])
1608
+ module_eval(<<'.,.,', 'parser.y', 258)
1609
+ def _reduce_89(val, _values, result)
1610
+ loc = val.first.location + val.last.location
1611
+ result = AST::Signature::Extension.new(module_name: val[1].value.absolute!,
1612
+ name: val[4].value,
1613
+ location: loc,
1614
+ params: val[2],
1615
+ members: val[6])
1616
+
1256
1617
  result
1257
1618
  end
1258
1619
  .,.,
1259
1620
 
1260
- module_eval(<<'.,.,', 'parser.y', 109)
1261
- def _reduce_81(val, _values, result)
1621
+ module_eval(<<'.,.,', 'parser.y', 266)
1622
+ def _reduce_90(val, _values, result)
1262
1623
  result = nil
1263
1624
  result
1264
1625
  end
1265
1626
  .,.,
1266
1627
 
1267
- module_eval(<<'.,.,', 'parser.y', 110)
1268
- def _reduce_82(val, _values, result)
1628
+ module_eval(<<'.,.,', 'parser.y', 267)
1629
+ def _reduce_91(val, _values, result)
1269
1630
  result = val[1]
1270
1631
  result
1271
1632
  end
1272
1633
  .,.,
1273
1634
 
1274
- module_eval(<<'.,.,', 'parser.y', 112)
1275
- def _reduce_83(val, _values, result)
1276
- result = val[0]
1277
- result
1278
- end
1279
- .,.,
1635
+ # reduce 92 omitted
1280
1636
 
1281
- module_eval(<<'.,.,', 'parser.y', 114)
1282
- def _reduce_84(val, _values, result)
1283
- result = val[0]
1637
+ # reduce 93 omitted
1638
+
1639
+ module_eval(<<'.,.,', 'parser.y', 273)
1640
+ def _reduce_94(val, _values, result)
1641
+ loc = val.first.location + val.last.location
1642
+ result = LocatedValue.new(location: loc, value: val[1].value.absolute!)
1643
+
1284
1644
  result
1285
1645
  end
1286
1646
  .,.,
1287
1647
 
1288
- module_eval(<<'.,.,', 'parser.y', 116)
1289
- def _reduce_85(val, _values, result)
1290
- result = []
1648
+ module_eval(<<'.,.,', 'parser.y', 278)
1649
+ def _reduce_95(val, _values, result)
1650
+ result = LocatedValue.new(location: val[0].location, value: ModuleName.parse(val[0].value))
1651
+
1291
1652
  result
1292
1653
  end
1293
1654
  .,.,
1294
1655
 
1295
- module_eval(<<'.,.,', 'parser.y', 117)
1296
- def _reduce_86(val, _values, result)
1297
- result = [val[0]] + val[1]
1656
+ module_eval(<<'.,.,', 'parser.y', 281)
1657
+ def _reduce_96(val, _values, result)
1658
+ location = val[0].location + val.last.location
1659
+ name = ModuleName.parse(val[0].value) + val.last.value
1660
+ result = LocatedValue.new(location: location, value: name)
1661
+
1298
1662
  result
1299
1663
  end
1300
1664
  .,.,
1301
1665
 
1302
- module_eval(<<'.,.,', 'parser.y', 119)
1303
- def _reduce_87(val, _values, result)
1304
- result = val[0]
1666
+ module_eval(<<'.,.,', 'parser.y', 286)
1667
+ def _reduce_97(val, _values, result)
1668
+ result = []
1305
1669
  result
1306
1670
  end
1307
1671
  .,.,
1308
1672
 
1309
- module_eval(<<'.,.,', 'parser.y', 120)
1310
- def _reduce_88(val, _values, result)
1311
- result = val[0]
1673
+ module_eval(<<'.,.,', 'parser.y', 287)
1674
+ def _reduce_98(val, _values, result)
1675
+ result = [val[0]] + val[1]
1312
1676
  result
1313
1677
  end
1314
1678
  .,.,
1315
1679
 
1316
- module_eval(<<'.,.,', 'parser.y', 121)
1317
- def _reduce_89(val, _values, result)
1318
- result = val[0]
1680
+ # reduce 99 omitted
1681
+
1682
+ # reduce 100 omitted
1683
+
1684
+ # reduce 101 omitted
1685
+
1686
+ # reduce 102 omitted
1687
+
1688
+ # reduce 103 omitted
1689
+
1690
+ # reduce 104 omitted
1691
+
1692
+ module_eval(<<'.,.,', 'parser.y', 297)
1693
+ def _reduce_105(val, _values, result)
1694
+ loc = val.first.location + val.last.location
1695
+ result = AST::Signature::Members::Ivar.new(
1696
+ location: loc,
1697
+ name: val[0].value,
1698
+ type: val[2]
1699
+ )
1700
+
1319
1701
  result
1320
1702
  end
1321
1703
  .,.,
1322
1704
 
1323
- module_eval(<<'.,.,', 'parser.y', 122)
1324
- def _reduce_90(val, _values, result)
1325
- result = val[0]
1705
+ module_eval(<<'.,.,', 'parser.y', 306)
1706
+ def _reduce_106(val, _values, result)
1707
+ loc = val.first.location + val.last.last.location
1708
+ result = AST::Signature::Members::Method.new(
1709
+ name: val[2].value,
1710
+ types: val[4],
1711
+ kind: :instance,
1712
+ location: loc,
1713
+ attributes: [val[1] ? :constructor : nil].compact
1714
+ )
1715
+
1326
1716
  result
1327
1717
  end
1328
1718
  .,.,
1329
1719
 
1330
- module_eval(<<'.,.,', 'parser.y', 123)
1331
- def _reduce_91(val, _values, result)
1332
- result = val[0]
1720
+ module_eval(<<'.,.,', 'parser.y', 316)
1721
+ def _reduce_107(val, _values, result)
1722
+ loc = val.first.location + val.last.last.location
1723
+ result = AST::Signature::Members::Method.new(
1724
+ name: val[4].value,
1725
+ types: val[6],
1726
+ kind: :module,
1727
+ location: loc,
1728
+ attributes: [val[1] ? :constructor : nil].compact
1729
+ )
1730
+
1333
1731
  result
1334
1732
  end
1335
1733
  .,.,
1336
1734
 
1337
- module_eval(<<'.,.,', 'parser.y', 125)
1338
- def _reduce_92(val, _values, result)
1339
- result = Signature::Members::InstanceMethod.new(name: val[2], types: val[4], constructor: val[1])
1735
+ module_eval(<<'.,.,', 'parser.y', 326)
1736
+ def _reduce_108(val, _values, result)
1737
+ loc = val.first.location + val.last.last.location
1738
+ result = AST::Signature::Members::Method.new(
1739
+ name: val[4].value,
1740
+ types: val[6],
1741
+ kind: :module_instance,
1742
+ location: loc,
1743
+ attributes: [val[1] ? :constructor : nil].compact
1744
+ )
1745
+
1340
1746
  result
1341
1747
  end
1342
1748
  .,.,
1343
1749
 
1344
- module_eval(<<'.,.,', 'parser.y', 126)
1345
- def _reduce_93(val, _values, result)
1346
- result = Signature::Members::ModuleMethod.new(name: val[4], types: val[6], constructor: val[1])
1750
+ module_eval(<<'.,.,', 'parser.y', 336)
1751
+ def _reduce_109(val, _values, result)
1752
+ loc = val.first.location + val.last.location
1753
+ name = val[1].value
1754
+ result = AST::Signature::Members::Include.new(name: name, location: loc, args: [])
1755
+
1347
1756
  result
1348
1757
  end
1349
1758
  .,.,
1350
1759
 
1351
- module_eval(<<'.,.,', 'parser.y', 127)
1352
- def _reduce_94(val, _values, result)
1353
- result = Signature::Members::ModuleInstanceMethod.new(name: val[4], types: val[6], constructor: val[1])
1760
+ module_eval(<<'.,.,', 'parser.y', 341)
1761
+ def _reduce_110(val, _values, result)
1762
+ loc = val.first.location + val.last.location
1763
+ name = val[1].value
1764
+ result = AST::Signature::Members::Include.new(name: name, location: loc, args: val[3])
1765
+
1354
1766
  result
1355
1767
  end
1356
1768
  .,.,
1357
1769
 
1358
- module_eval(<<'.,.,', 'parser.y', 128)
1359
- def _reduce_95(val, _values, result)
1360
- result = Signature::Members::Include.new(name: val[1])
1770
+ module_eval(<<'.,.,', 'parser.y', 346)
1771
+ def _reduce_111(val, _values, result)
1772
+ loc = val.first.location + val.last.location
1773
+ name = val[1].value
1774
+ result = AST::Signature::Members::Extend.new(name: name, location: loc, args: [])
1775
+
1361
1776
  result
1362
1777
  end
1363
1778
  .,.,
1364
1779
 
1365
- module_eval(<<'.,.,', 'parser.y', 129)
1366
- def _reduce_96(val, _values, result)
1367
- result = Signature::Members::Extend.new(name: val[1])
1780
+ module_eval(<<'.,.,', 'parser.y', 351)
1781
+ def _reduce_112(val, _values, result)
1782
+ loc = val.first.location + val.last.location
1783
+ name = val[1].value
1784
+ result = AST::Signature::Members::Extend.new(name: name, location: loc, args: val[3])
1785
+
1368
1786
  result
1369
1787
  end
1370
1788
  .,.,
1371
1789
 
1372
- module_eval(<<'.,.,', 'parser.y', 131)
1373
- def _reduce_97(val, _values, result)
1790
+ module_eval(<<'.,.,', 'parser.y', 356)
1791
+ def _reduce_113(val, _values, result)
1374
1792
  result = false
1375
1793
  result
1376
1794
  end
1377
1795
  .,.,
1378
1796
 
1379
- module_eval(<<'.,.,', 'parser.y', 132)
1380
- def _reduce_98(val, _values, result)
1797
+ module_eval(<<'.,.,', 'parser.y', 357)
1798
+ def _reduce_114(val, _values, result)
1381
1799
  result = true
1382
1800
  result
1383
1801
  end
1384
1802
  .,.,
1385
1803
 
1386
- module_eval(<<'.,.,', 'parser.y', 134)
1387
- def _reduce_99(val, _values, result)
1804
+ module_eval(<<'.,.,', 'parser.y', 359)
1805
+ def _reduce_115(val, _values, result)
1388
1806
  result = nil
1389
1807
  result
1390
1808
  end
1391
1809
  .,.,
1392
1810
 
1393
- module_eval(<<'.,.,', 'parser.y', 135)
1394
- def _reduce_100(val, _values, result)
1811
+ module_eval(<<'.,.,', 'parser.y', 360)
1812
+ def _reduce_116(val, _values, result)
1395
1813
  result = val[1]
1396
1814
  result
1397
1815
  end
1398
1816
  .,.,
1399
1817
 
1400
- module_eval(<<'.,.,', 'parser.y', 137)
1401
- def _reduce_101(val, _values, result)
1402
- result = []
1818
+ module_eval(<<'.,.,', 'parser.y', 363)
1819
+ def _reduce_117(val, _values, result)
1820
+ result = AST::Signature::SuperClass.new(location: val[0].location, name: val[0].value, args: [])
1821
+
1403
1822
  result
1404
1823
  end
1405
1824
  .,.,
1406
1825
 
1407
- module_eval(<<'.,.,', 'parser.y', 138)
1408
- def _reduce_102(val, _values, result)
1409
- result = val[1]
1826
+ module_eval(<<'.,.,', 'parser.y', 366)
1827
+ def _reduce_118(val, _values, result)
1828
+ loc = val[0].location + val[3].location
1829
+ name = val[0].value
1830
+ result = AST::Signature::SuperClass.new(location: loc, name: name, args: val[2])
1831
+
1410
1832
  result
1411
1833
  end
1412
1834
  .,.,
1413
1835
 
1414
- module_eval(<<'.,.,', 'parser.y', 140)
1415
- def _reduce_103(val, _values, result)
1416
- result = [val[0]]
1836
+ module_eval(<<'.,.,', 'parser.y', 371)
1837
+ def _reduce_119(val, _values, result)
1838
+ result = nil
1417
1839
  result
1418
1840
  end
1419
1841
  .,.,
1420
1842
 
1421
- module_eval(<<'.,.,', 'parser.y', 141)
1422
- def _reduce_104(val, _values, result)
1423
- result = [val[0]] + val[2]
1843
+ module_eval(<<'.,.,', 'parser.y', 373)
1844
+ def _reduce_120(val, _values, result)
1845
+ location = val[0].location + val[2].location
1846
+ result = AST::TypeParams.new(location: location, variables: val[1])
1847
+
1424
1848
  result
1425
1849
  end
1426
1850
  .,.,
1427
1851
 
1428
- module_eval(<<'.,.,', 'parser.y', 143)
1429
- def _reduce_105(val, _values, result)
1430
- result = {}
1852
+ module_eval(<<'.,.,', 'parser.y', 377)
1853
+ def _reduce_121(val, _values, result)
1854
+ result = [val[0].value]
1431
1855
  result
1432
1856
  end
1433
1857
  .,.,
1434
1858
 
1435
- module_eval(<<'.,.,', 'parser.y', 144)
1436
- def _reduce_106(val, _values, result)
1437
- result = val[1].merge(val[0])
1859
+ module_eval(<<'.,.,', 'parser.y', 378)
1860
+ def _reduce_122(val, _values, result)
1861
+ result = [val[0].value] + val[2]
1438
1862
  result
1439
1863
  end
1440
1864
  .,.,
1441
1865
 
1442
- module_eval(<<'.,.,', 'parser.y', 146)
1443
- def _reduce_107(val, _values, result)
1444
- result = { val[1] => val[3] }
1866
+ module_eval(<<'.,.,', 'parser.y', 380)
1867
+ def _reduce_123(val, _values, result)
1868
+ result = []
1445
1869
  result
1446
1870
  end
1447
1871
  .,.,
1448
1872
 
1449
- module_eval(<<'.,.,', 'parser.y', 148)
1450
- def _reduce_108(val, _values, result)
1451
- result = [val[0]]
1873
+ module_eval(<<'.,.,', 'parser.y', 381)
1874
+ def _reduce_124(val, _values, result)
1875
+ result = val[1].unshift(val[0])
1452
1876
  result
1453
1877
  end
1454
1878
  .,.,
1455
1879
 
1456
- module_eval(<<'.,.,', 'parser.y', 149)
1457
- def _reduce_109(val, _values, result)
1458
- result = [val[0]] + val[2]
1880
+ module_eval(<<'.,.,', 'parser.y', 384)
1881
+ def _reduce_125(val, _values, result)
1882
+ loc = val[0].location + val[3].last.location
1883
+ result = AST::Signature::Interface::Method.new(location: loc, name: val[1].value, types: val[3])
1884
+
1459
1885
  result
1460
1886
  end
1461
1887
  .,.,
1462
1888
 
1463
- # reduce 110 omitted
1464
-
1465
- # reduce 111 omitted
1466
-
1467
- # reduce 112 omitted
1468
-
1469
- module_eval(<<'.,.,', 'parser.y', 154)
1470
- def _reduce_113(val, _values, result)
1471
- result = :any
1889
+ module_eval(<<'.,.,', 'parser.y', 388)
1890
+ def _reduce_126(val, _values, result)
1891
+ result = [val[0]]
1472
1892
  result
1473
1893
  end
1474
1894
  .,.,
1475
1895
 
1476
- module_eval(<<'.,.,', 'parser.y', 155)
1477
- def _reduce_114(val, _values, result)
1478
- result = :interface
1896
+ module_eval(<<'.,.,', 'parser.y', 389)
1897
+ def _reduce_127(val, _values, result)
1898
+ result = [val[0]] + val[2]
1479
1899
  result
1480
1900
  end
1481
1901
  .,.,
1482
1902
 
1483
- module_eval(<<'.,.,', 'parser.y', 156)
1484
- def _reduce_115(val, _values, result)
1485
- result = :end
1486
- result
1487
- end
1488
- .,.,
1903
+ # reduce 128 omitted
1489
1904
 
1490
- module_eval(<<'.,.,', 'parser.y', 157)
1491
- def _reduce_116(val, _values, result)
1492
- result = :+
1905
+ # reduce 129 omitted
1906
+
1907
+ # reduce 130 omitted
1908
+
1909
+ # reduce 131 omitted
1910
+
1911
+ # reduce 132 omitted
1912
+
1913
+ # reduce 133 omitted
1914
+
1915
+ # reduce 134 omitted
1916
+
1917
+ # reduce 135 omitted
1918
+
1919
+ # reduce 136 omitted
1920
+
1921
+ # reduce 137 omitted
1922
+
1923
+ # reduce 138 omitted
1924
+
1925
+ # reduce 139 omitted
1926
+
1927
+ # reduce 140 omitted
1928
+
1929
+ # reduce 141 omitted
1930
+
1931
+ # reduce 142 omitted
1932
+
1933
+ # reduce 143 omitted
1934
+
1935
+ # reduce 144 omitted
1936
+
1937
+ # reduce 145 omitted
1938
+
1939
+ # reduce 146 omitted
1940
+
1941
+ # reduce 147 omitted
1942
+
1943
+ # reduce 148 omitted
1944
+
1945
+ # reduce 149 omitted
1946
+
1947
+ # reduce 150 omitted
1948
+
1949
+ # reduce 151 omitted
1950
+
1951
+ # reduce 152 omitted
1952
+
1953
+ module_eval(<<'.,.,', 'parser.y', 412)
1954
+ def _reduce_153(val, _values, result)
1955
+ result = LocatedValue.new(location: val[0].location, value: :|)
1493
1956
  result
1494
1957
  end
1495
1958
  .,.,
1496
1959
 
1497
- module_eval(<<'.,.,', 'parser.y', 158)
1498
- def _reduce_117(val, _values, result)
1499
- result = :class
1960
+ module_eval(<<'.,.,', 'parser.y', 413)
1961
+ def _reduce_154(val, _values, result)
1962
+ result = LocatedValue.new(location: val[0].location, value: :constructor)
1500
1963
  result
1501
1964
  end
1502
1965
  .,.,
1503
1966
 
1504
- module_eval(<<'.,.,', 'parser.y', 159)
1505
- def _reduce_118(val, _values, result)
1506
- result = :module
1967
+ module_eval(<<'.,.,', 'parser.y', 414)
1968
+ def _reduce_155(val, _values, result)
1969
+ result = LocatedValue.new(location: val[0].location, value: :noconstructor)
1507
1970
  result
1508
1971
  end
1509
1972
  .,.,
1510
1973
 
1511
- module_eval(<<'.,.,', 'parser.y', 160)
1512
- def _reduce_119(val, _values, result)
1513
- result = :instance
1974
+ module_eval(<<'.,.,', 'parser.y', 416)
1975
+ def _reduce_156(val, _values, result)
1976
+ raise ParseError, "\nunexpected method name any ?" unless val[0].location.pred?(val[1].location)
1977
+ result = LocatedValue.new(location: val[0].location + val[1].location, value: :any?)
1978
+
1514
1979
  result
1515
1980
  end
1516
1981
  .,.,
1517
1982
 
1518
- # reduce 120 omitted
1519
-
1520
- # reduce 121 omitted
1521
-
1522
- module_eval(<<'.,.,', 'parser.y', 163)
1523
- def _reduce_122(val, _values, result)
1524
- result = :block
1983
+ module_eval(<<'.,.,', 'parser.y', 420)
1984
+ def _reduce_157(val, _values, result)
1985
+ raise ParseError, "\nunexpected method name > >" unless val[0].location.pred?(val[1].location)
1986
+ result = LocatedValue.new(location: val[0].location + val[1].location, value: :>>)
1987
+
1525
1988
  result
1526
1989
  end
1527
1990
  .,.,
1528
1991
 
1529
- module_eval(<<'.,.,', 'parser.y', 164)
1530
- def _reduce_123(val, _values, result)
1531
- result = :include
1992
+ module_eval(<<'.,.,', 'parser.y', 425)
1993
+ def _reduce_158(val, _values, result)
1994
+ loc = val.first.location + val.last.location
1995
+ result = AST::Annotation::VarType.new(location: loc,
1996
+ name: val[2].value,
1997
+ type: val[4])
1998
+
1532
1999
  result
1533
2000
  end
1534
2001
  .,.,
1535
2002
 
1536
- module_eval(<<'.,.,', 'parser.y', 165)
1537
- def _reduce_124(val, _values, result)
1538
- result = :constructor
2003
+ module_eval(<<'.,.,', 'parser.y', 431)
2004
+ def _reduce_159(val, _values, result)
2005
+ loc = val.first.location + val.last.location
2006
+ result = AST::Annotation::MethodType.new(location: loc,
2007
+ name: val[2].value,
2008
+ type: val[4])
2009
+
1539
2010
  result
1540
2011
  end
1541
2012
  .,.,
1542
2013
 
1543
- module_eval(<<'.,.,', 'parser.y', 166)
1544
- def _reduce_125(val, _values, result)
1545
- result = :noconstructor
2014
+ module_eval(<<'.,.,', 'parser.y', 437)
2015
+ def _reduce_160(val, _values, result)
2016
+ loc = val.first.location + val.last.location
2017
+ result = AST::Annotation::ReturnType.new(type: val[3], location: loc)
2018
+
1546
2019
  result
1547
2020
  end
1548
2021
  .,.,
1549
2022
 
1550
- module_eval(<<'.,.,', 'parser.y', 167)
1551
- def _reduce_126(val, _values, result)
1552
- result = :>>
2023
+ module_eval(<<'.,.,', 'parser.y', 441)
2024
+ def _reduce_161(val, _values, result)
2025
+ loc = val.first.location + val.last.location
2026
+ result = AST::Annotation::BlockType.new(type: val[3], location: loc)
2027
+
1553
2028
  result
1554
2029
  end
1555
2030
  .,.,
1556
2031
 
1557
- module_eval(<<'.,.,', 'parser.y', 169)
1558
- def _reduce_127(val, _values, result)
1559
- result = Annotation::VarType.new(var: val[2], type: val[4])
2032
+ module_eval(<<'.,.,', 'parser.y', 445)
2033
+ def _reduce_162(val, _values, result)
2034
+ loc = val.first.location + val.last.location
2035
+ result = AST::Annotation::SelfType.new(type: val[3], location: loc)
2036
+
1560
2037
  result
1561
2038
  end
1562
2039
  .,.,
1563
2040
 
1564
- module_eval(<<'.,.,', 'parser.y', 170)
1565
- def _reduce_128(val, _values, result)
1566
- result = Annotation::MethodType.new(method: val[2], type: val[4])
2041
+ module_eval(<<'.,.,', 'parser.y', 449)
2042
+ def _reduce_163(val, _values, result)
2043
+ loc = val.first.location + val.last.location
2044
+ result = AST::Annotation::ConstType.new(name: val[2].value,
2045
+ type: val[4],
2046
+ location: loc)
2047
+
1567
2048
  result
1568
2049
  end
1569
2050
  .,.,
1570
2051
 
1571
- module_eval(<<'.,.,', 'parser.y', 171)
1572
- def _reduce_129(val, _values, result)
1573
- result = Annotation::ReturnType.new(type: val[3])
2052
+ module_eval(<<'.,.,', 'parser.y', 455)
2053
+ def _reduce_164(val, _values, result)
2054
+ loc = val.first.location + val.last.location
2055
+ result = AST::Annotation::InstanceType.new(type: val[3], location: loc)
2056
+
1574
2057
  result
1575
2058
  end
1576
2059
  .,.,
1577
2060
 
1578
- module_eval(<<'.,.,', 'parser.y', 172)
1579
- def _reduce_130(val, _values, result)
1580
- result = Annotation::BlockType.new(type: val[3])
2061
+ module_eval(<<'.,.,', 'parser.y', 459)
2062
+ def _reduce_165(val, _values, result)
2063
+ loc = val.first.location + val.last.location
2064
+ result = AST::Annotation::ModuleType.new(type: val[3], location: loc)
2065
+
1581
2066
  result
1582
2067
  end
1583
2068
  .,.,
1584
2069
 
1585
- module_eval(<<'.,.,', 'parser.y', 173)
1586
- def _reduce_131(val, _values, result)
1587
- result = Annotation::SelfType.new(type: val[3])
2070
+ module_eval(<<'.,.,', 'parser.y', 463)
2071
+ def _reduce_166(val, _values, result)
2072
+ loc = val.first.location + val.last.location
2073
+ result = AST::Annotation::IvarType.new(name: val[2].value, type: val[4], location: loc)
2074
+
1588
2075
  result
1589
2076
  end
1590
2077
  .,.,
1591
2078
 
1592
- module_eval(<<'.,.,', 'parser.y', 174)
1593
- def _reduce_132(val, _values, result)
1594
- result = Annotation::ConstType.new(name: val[2], type: val[4])
2079
+ module_eval(<<'.,.,', 'parser.y', 467)
2080
+ def _reduce_167(val, _values, result)
2081
+ loc = val[0].location + (val[2]&.location || val[1].location)
2082
+ args = val[2]&.variables || []
2083
+ name = AST::Annotation::Implements::Module.new(name: val[1].value, args: args)
2084
+ result = AST::Annotation::Implements.new(name: name, location: loc)
2085
+
1595
2086
  result
1596
2087
  end
1597
2088
  .,.,
1598
2089
 
1599
- module_eval(<<'.,.,', 'parser.y', 175)
1600
- def _reduce_133(val, _values, result)
1601
- result = Annotation::ConstType.new(name: val[2], type: val[4])
2090
+ module_eval(<<'.,.,', 'parser.y', 473)
2091
+ def _reduce_168(val, _values, result)
2092
+ loc = val[0].location + val[1].last.location
2093
+ result = AST::Annotation::Dynamic.new(names: val[1], location: loc)
2094
+
1602
2095
  result
1603
2096
  end
1604
2097
  .,.,
1605
2098
 
1606
- module_eval(<<'.,.,', 'parser.y', 176)
1607
- def _reduce_134(val, _values, result)
1608
- result = Annotation::InstanceType.new(type: val[3])
2099
+ module_eval(<<'.,.,', 'parser.y', 477)
2100
+ def _reduce_169(val, _values, result)
2101
+ loc = val.first.location + val.last.location
2102
+ result = AST::Annotation::BreakType.new(type: val[3], location: loc)
2103
+
1609
2104
  result
1610
2105
  end
1611
2106
  .,.,
1612
2107
 
1613
- module_eval(<<'.,.,', 'parser.y', 177)
1614
- def _reduce_135(val, _values, result)
1615
- result = Annotation::ModuleType.new(type: val[3])
2108
+ module_eval(<<'.,.,', 'parser.y', 481)
2109
+ def _reduce_170(val, _values, result)
2110
+ result = [val[0]] + val[2]
1616
2111
  result
1617
2112
  end
1618
2113
  .,.,
1619
2114
 
1620
- module_eval(<<'.,.,', 'parser.y', 178)
1621
- def _reduce_136(val, _values, result)
1622
- result = Annotation::IvarType.new(name: val[2], type: val[4])
2115
+ module_eval(<<'.,.,', 'parser.y', 482)
2116
+ def _reduce_171(val, _values, result)
2117
+ result = val
1623
2118
  result
1624
2119
  end
1625
2120
  .,.,
1626
2121
 
1627
- module_eval(<<'.,.,', 'parser.y', 179)
1628
- def _reduce_137(val, _values, result)
1629
- raise "Invalid type annotation"
2122
+ module_eval(<<'.,.,', 'parser.y', 485)
2123
+ def _reduce_172(val, _values, result)
2124
+ result = AST::Annotation::Dynamic::Name.new(name: val[0].value, location: val[0].location, kind: :instance)
2125
+
1630
2126
  result
1631
2127
  end
1632
2128
  .,.,
1633
2129
 
1634
- module_eval(<<'.,.,', 'parser.y', 180)
1635
- def _reduce_138(val, _values, result)
1636
- result = Annotation::Implements.new(module_name: val[1])
2130
+ module_eval(<<'.,.,', 'parser.y', 488)
2131
+ def _reduce_173(val, _values, result)
2132
+ loc = val.first.location + val.last.location
2133
+ result = AST::Annotation::Dynamic::Name.new(name: val[2].value, location: loc, kind: :module)
2134
+
1637
2135
  result
1638
2136
  end
1639
2137
  .,.,
1640
2138
 
1641
- module_eval(<<'.,.,', 'parser.y', 181)
1642
- def _reduce_139(val, _values, result)
1643
- result = Annotation::Dynamic.new(name: val[1])
2139
+ module_eval(<<'.,.,', 'parser.y', 492)
2140
+ def _reduce_174(val, _values, result)
2141
+ loc = val.first.location + val.last.location
2142
+ result = AST::Annotation::Dynamic::Name.new(name: val[2].value, location: loc, kind: :module_instance)
2143
+
1644
2144
  result
1645
2145
  end
1646
2146
  .,.,
1647
2147
 
1648
- module_eval(<<'.,.,', 'parser.y', 183)
1649
- def _reduce_140(val, _values, result)
2148
+ module_eval(<<'.,.,', 'parser.y', 496)
2149
+ def _reduce_175(val, _values, result)
1650
2150
  result = val[0]
1651
2151
  result
1652
2152
  end