rdl 1.0.0 → 1.0.1.rc1

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.
@@ -103,12 +103,21 @@ class Parser < Racc::Parser
103
103
  when (text = @ss.scan(/\*/))
104
104
  action { [:STAR, text] }
105
105
 
106
- when (text = @ss.scan(/\#\#/))
107
- action { [:DOUBLE_HASH, text] }
106
+ when (text = @ss.scan(/\#T/))
107
+ action { [:HASH_TYPE, text] }
108
+
109
+ when (text = @ss.scan(/\#Q/))
110
+ action { [:HASH_QUERY, text] }
108
111
 
109
112
  when (text = @ss.scan(/\$\{/))
110
113
  action { [:CONST_BEGIN, text] }
111
114
 
115
+ when (text = @ss.scan(/\.\.\./))
116
+ action { [:DOTS, text] }
117
+
118
+ when (text = @ss.scan(/\./))
119
+ action { [:DOT, text] }
120
+
112
121
  when (text = @ss.scan(/-?\d\.\d+/))
113
122
  action { [:FLOAT, text] } # Must go before FIXNUM
114
123
 
@@ -11,7 +11,7 @@ module RDL::Type
11
11
  attr_reader :ret
12
12
 
13
13
  @@contract_cache = {}
14
-
14
+
15
15
  # Create a new MethodType
16
16
  #
17
17
  # [+args+] List of types of the arguments of the procedure (use [] for no args).
@@ -190,13 +190,13 @@ RUBY
190
190
  return false # one has a block and the other doesn't
191
191
  end
192
192
  end
193
-
193
+
194
194
  def instantiate(inst)
195
195
  return MethodType.new(@args.map { |arg| arg.instantiate(inst) },
196
196
  @block ? @block.instantiate(inst) : nil,
197
197
  @ret.instantiate(inst))
198
198
  end
199
-
199
+
200
200
  def eql?(other)
201
201
  self == other
202
202
  end
@@ -209,6 +209,44 @@ RUBY
209
209
  (other.ret == @ret)
210
210
  end
211
211
 
212
+ # other may not be a query
213
+ def match(other)
214
+ other = other.type if other.instance_of? AnnotatedArgType
215
+ return true if other.instance_of? WildQuery
216
+ return false unless @ret.match(other.ret)
217
+ if @block == nil
218
+ return false unless other.block == nil
219
+ else
220
+ return false if other.block == nil
221
+ return false unless @block.match(other.block)
222
+ end
223
+ # Check arg matches; logic is similar to pre_cond
224
+ states = [[0,0]] # [position in self, position in other]
225
+ until states.empty?
226
+ s_arg, o_arg = states.pop
227
+ return true if s_arg == @args.size && o_arg == other.args.size # everything matches
228
+ next if s_arg >= @args.size # match not possible, not enough args in self
229
+ if @args[s_arg].instance_of? DotsQuery then
230
+ if o_arg == other.args.size
231
+ # no args left in other, skip ...
232
+ states << [s_arg+1, o_arg]
233
+ else
234
+ states << [s_arg+1, o_arg+1] # match, no more matches to ...
235
+ states << [s_arg, o_arg+1] # match, more matches to ... coming
236
+ end
237
+ else
238
+ next if o_arg == other.args.size # match not possible, not enough args in other
239
+ s_arg_t = @args[s_arg]
240
+ s_arg_t = s_arg_t.type if s_arg_t.instance_of? AnnotatedArgType
241
+ o_arg_t = other.args[o_arg]
242
+ o_arg_t = o_arg_t.type if o_arg_t.instance_of? AnnotatedArgType
243
+ next unless s_arg_t.match(o_arg_t)
244
+ states << [s_arg+1, o_arg+1]
245
+ end
246
+ end
247
+ return false
248
+ end
249
+
212
250
  def hash # :nodoc:
213
251
  h = (37 + @ret.hash) * 41 + @args.hash
214
252
  h = h * 31 + @block.hash if @block
@@ -216,4 +254,3 @@ RUBY
216
254
  end
217
255
  end
218
256
  end
219
-
data/lib/rdl/types/nil.rb CHANGED
@@ -29,6 +29,12 @@ module RDL::Type
29
29
  other.instance_of? NilType
30
30
  end
31
31
 
32
+ def match(other)
33
+ other = other.type if other.instance_of? AnnotatedArgType
34
+ return true if other.instance_of? WildQuery
35
+ return self == other
36
+ end
37
+
32
38
  def <=(other)
33
39
  true
34
40
  end
@@ -38,11 +44,11 @@ module RDL::Type
38
44
  return t <= self if t
39
45
  obj.nil?
40
46
  end
41
-
47
+
42
48
  def instantiate(inst)
43
49
  return self
44
50
  end
45
-
51
+
46
52
  def hash
47
53
  13
48
54
  end
@@ -3,7 +3,7 @@ require_relative 'type'
3
3
  module RDL::Type
4
4
  class NominalType < Type
5
5
  attr_reader :name # string
6
-
6
+
7
7
  @@cache = {}
8
8
 
9
9
  class << self
@@ -31,6 +31,12 @@ module RDL::Type
31
31
  return (other.instance_of? self.class) && (other.name == @name)
32
32
  end
33
33
 
34
+ def match(other)
35
+ other = other.type if other.instance_of? AnnotatedArgType
36
+ return true if other.instance_of? WildQuery
37
+ return self == other
38
+ end
39
+
34
40
  def hash # :nodoc:
35
41
  return @name.hash
36
42
  end
@@ -72,7 +78,7 @@ module RDL::Type
72
78
  return true if obj.nil?
73
79
  return obj.is_a? klass
74
80
  end
75
-
81
+
76
82
  def instantiate(inst)
77
83
  return self
78
84
  end
@@ -13,7 +13,7 @@ module RDL::Type
13
13
  def self.new(type)
14
14
  t = @@cache[type]
15
15
  return t if t
16
- raise RuntimeError, "Attempt to create vararg type with non-type" unless type.is_a? Type
16
+ raise RuntimeError, "Attempt to create optional type with non-type" unless type.is_a? Type
17
17
  t = OptionalType.__new__ type
18
18
  return (@@cache[type] = t) # assignment evaluates to t
19
19
  end
@@ -41,12 +41,18 @@ module RDL::Type
41
41
  return (other.instance_of? OptionalType) && (other.type == @type)
42
42
  end
43
43
 
44
+ def match(other)
45
+ other = other.type if other.instance_of? AnnotatedArgType
46
+ return true if other.instance_of? WildQuery
47
+ return (other.instance_of? OptionalType) && (@type.match(other.type))
48
+ end
49
+
44
50
  # Note: no member?, because these can only appear in MethodType, where they're handled specially
45
-
51
+
46
52
  def instantiate(inst)
47
53
  return OptionalType.new(@type.instantiate(inst))
48
54
  end
49
-
55
+
50
56
  def hash # :nodoc:
51
57
  return 57 + @type.hash
52
58
  end
@@ -7,8 +7,8 @@ class Parser
7
7
 
8
8
  start entry
9
9
 
10
- token DOUBLE_HASH CONST_BEGIN RASSOC
11
- token OR FIXNUM FLOAT COLON RARROW ID SYMBOL SPECIAL_ID STRING
10
+ token HASH_TYPE HASH_QUERY CONST_BEGIN RASSOC
11
+ token OR FIXNUM FLOAT COLON RARROW DOT DOTS ID SYMBOL SPECIAL_ID STRING
12
12
  token LPAREN RPAREN LBRACE RBRACE LBRACKET RBRACKET
13
13
  token COMMA QUERY STAR LESS GREATER
14
14
  token EOF
@@ -18,11 +18,13 @@ rule
18
18
  entry:
19
19
  method_type { result = val[0] }
20
20
  | bare_type { result = val[0] }
21
+ | query_type { result = val[0] }
21
22
 
22
23
  bare_type:
23
- DOUBLE_HASH type_expr {
24
- result = val[1]
25
- }
24
+ HASH_TYPE type_expr { result = val[1] }
25
+
26
+ query_type:
27
+ HASH_QUERY method_type { result = RDL::Type::MethodType.new val[1].args, val[1].block, val[1].ret }
26
28
 
27
29
  method_type:
28
30
  LPAREN arg_list RPAREN block RARROW type_expr {
@@ -51,6 +53,7 @@ rule
51
53
  arg:
52
54
  base_arg { result = val[0] }
53
55
  | base_arg ID { result = RDL::Type::AnnotatedArgType.new(val[1], val[0]) }
56
+ | DOTS { result = RDL::Type::DotsQuery.new }
54
57
  named_arg_list:
55
58
  named_arg { result = val[0] }
56
59
  | named_arg COMMA named_arg_list { result = val[0] + val[2] }
@@ -112,7 +115,7 @@ rule
112
115
  fail "Unexpected special type identifier #{val[0]}"
113
116
  end
114
117
  }
115
- | ID LESS type_expr_comma_list GREATER {
118
+ | ID LESS type_expr_comma_list GREATER {
116
119
  n = RDL::Type::NominalType.new(val[0])
117
120
  result = RDL::Type::GenericType.new(n, *val[2])
118
121
  }
@@ -132,6 +135,7 @@ rule
132
135
  }
133
136
  # The following can't be used in SingletonTypes because those compare using .equal?
134
137
  # | STRING { result = RDL::Type::SingletonType.new(val[0]) }
138
+ | DOT { result = RDL::Type::WildQuery.new }
135
139
 
136
140
  ---- header ----
137
141
 
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # DO NOT MODIFY!!!!
3
- # This file is automatically generated by Racc 1.4.12
3
+ # This file is automatically generated by Racc 1.4.14
4
4
  # from Racc grammer file "".
5
5
  #
6
6
 
@@ -13,7 +13,7 @@ module RDL::Type
13
13
 
14
14
  class Parser < Racc::Parser
15
15
 
16
- module_eval(<<'...end parser.racc/module_eval...', 'parser.racc', 143)
16
+ module_eval(<<'...end parser.racc/module_eval...', 'parser.racc', 147)
17
17
 
18
18
  def initialize()
19
19
  @yydebug = true
@@ -23,162 +23,176 @@ end
23
23
  ##### State transition tables begin ###
24
24
 
25
25
  racc_action_table = [
26
- 18, 56, 16, 17, 62, 25, 11, 13, 50, 9,
27
- 58, 15, 59, 14, 32, 26, 27, 18, 50, 16,
28
- 17, 32, 25, 11, 13, 4, 9, 60, 15, 61,
29
- 14, 57, 26, 27, 18, 5, 16, 17, 63, 12,
30
- 11, 13, 64, 9, 65, 15, 66, 14, 18, 73,
31
- 16, 17, 68, 12, 11, 13, 53, 37, 49, 15,
32
- 18, 14, 16, 17, 75, 12, 11, 13, 5, 9,
33
- 48, 15, 18, 14, 16, 17, 47, 12, 11, 13,
34
- 46, 9, 80, 15, 18, 14, 16, 17, 45, 12,
35
- 11, 13, 32, 9, 83, 15, 18, 14, 16, 17,
36
- 5, 12, 11, 13, 31, 9, 86, 15, 18, 14,
37
- 16, 17, 87, 33, 11, 13, 29, 9, 89, 15,
38
- 18, 14, 16, 17, 90, 12, 11, 13, 6, 93,
39
- 56, 15, 18, 14, 16, 17, nil, 12, 11, 13,
40
- nil, 9, nil, 15, 18, 14, 16, 17, nil, 12,
41
- 11, 13, nil, nil, nil, 15, 18, 14, 16, 17,
42
- nil, 12, 11, 13, nil, 9, nil, 15, 18, 14,
43
- 16, 17, nil, 12, 11, 13, nil, nil, nil, 15,
44
- 18, 14, 16, 17, nil, 12, 11, 13, nil, 9,
45
- nil, 15, 18, 14, 16, 17, nil, 12, 11, 13,
46
- nil, 9, nil, 15, 18, 14, 16, 17, nil, 12,
47
- 11, 13, nil, nil, nil, 15, 41, 14, 39, 40,
48
- 41, 37, 39, 40, 42, 37, nil, nil, 42 ]
26
+ 20, 55, 18, 19, 71, 21, 28, 30, 13, 15,
27
+ 73, 11, 42, 17, 61, 16, 37, 31, 32, 20,
28
+ 80, 18, 19, 7, 21, 28, 30, 13, 15, 37,
29
+ 11, 85, 17, 88, 16, 7, 31, 32, 20, 91,
30
+ 18, 19, 92, 21, 94, 14, 13, 15, 95, 11,
31
+ 98, 17, 61, 16, 20, 78, 18, 19, 8, 21,
32
+ 7, 14, 13, 15, 34, 11, 36, 17, 20, 16,
33
+ 18, 19, 37, 21, 50, 14, 13, 15, 51, 5,
34
+ 6, 17, 20, 16, 18, 19, 52, 21, 53, 14,
35
+ 13, 15, 7, 54, 58, 17, 20, 16, 18, 19,
36
+ 62, 21, 63, 14, 13, 15, 64, 55, 65, 17,
37
+ 20, 16, 18, 19, 66, 21, 67, 14, 13, 15,
38
+ 68, 11, 69, 17, 20, 16, 18, 19, 70, 21,
39
+ nil, 14, 13, 15, nil, 11, nil, 17, 20, 16,
40
+ 18, 19, nil, 21, nil, 38, 13, 15, nil, 11,
41
+ nil, 17, 20, 16, 18, 19, nil, 21, nil, 14,
42
+ 13, 15, nil, 11, nil, 17, 20, 16, 18, 19,
43
+ nil, 21, nil, 14, 13, 15, nil, nil, nil, 17,
44
+ 20, 16, 18, 19, nil, 21, nil, 14, 13, 15,
45
+ nil, 11, nil, 17, 20, 16, 18, 19, nil, 21,
46
+ nil, 14, 13, 15, nil, 11, nil, 17, 20, 16,
47
+ 18, 19, nil, 21, nil, 14, 13, 15, nil, 11,
48
+ nil, 17, 20, 16, 18, 19, nil, 21, nil, 14,
49
+ 13, 15, nil, nil, nil, 17, 20, 16, 18, 19,
50
+ nil, 21, nil, 14, 13, 15, nil, 11, nil, 17,
51
+ 46, 16, 44, 45, nil, nil, 46, 42, 44, 45,
52
+ 47, nil, nil, 42, nil, nil, 47 ]
49
53
 
50
54
  racc_action_check = [
51
- 5, 33, 5, 5, 41, 5, 5, 5, 25, 5,
52
- 35, 5, 36, 5, 33, 5, 5, 47, 37, 47,
53
- 47, 25, 47, 47, 47, 0, 47, 39, 47, 40,
54
- 47, 34, 47, 47, 50, 0, 50, 50, 42, 50,
55
- 50, 50, 43, 50, 44, 50, 45, 50, 31, 50,
56
- 31, 31, 46, 31, 31, 31, 30, 49, 24, 31,
57
- 83, 31, 83, 83, 55, 83, 83, 83, 56, 83,
58
- 23, 83, 9, 83, 9, 9, 22, 9, 9, 9,
59
- 19, 9, 62, 9, 73, 9, 73, 73, 18, 73,
60
- 73, 73, 12, 73, 67, 73, 32, 73, 32, 32,
61
- 68, 32, 32, 32, 10, 32, 76, 32, 14, 32,
62
- 14, 14, 80, 14, 14, 14, 6, 14, 84, 14,
63
- 63, 14, 63, 63, 86, 63, 63, 63, 1, 88,
64
- 90, 63, 4, 63, 4, 4, nil, 4, 4, 4,
65
- nil, 4, nil, 4, 60, 4, 60, 60, nil, 60,
66
- 60, 60, nil, nil, nil, 60, 57, 60, 57, 57,
67
- nil, 57, 57, 57, nil, 57, nil, 57, 87, 57,
68
- 87, 87, nil, 87, 87, 87, nil, nil, nil, 87,
69
- 26, 87, 26, 26, nil, 26, 26, 26, nil, 26,
70
- nil, 26, 27, 26, 27, 27, nil, 27, 27, 27,
71
- nil, 27, nil, 27, 61, 27, 61, 61, nil, 61,
72
- 61, 61, nil, nil, nil, 61, 64, 61, 64, 64,
73
- 15, 64, 15, 15, 64, 15, nil, nil, 15 ]
55
+ 7, 30, 7, 7, 50, 7, 7, 7, 7, 7,
56
+ 51, 7, 54, 7, 38, 7, 30, 7, 7, 52,
57
+ 60, 52, 52, 61, 52, 52, 52, 52, 52, 38,
58
+ 52, 67, 52, 72, 52, 73, 52, 52, 55, 81,
59
+ 55, 55, 85, 55, 89, 55, 55, 55, 91, 55,
60
+ 93, 55, 95, 55, 62, 55, 62, 62, 1, 62,
61
+ 6, 62, 62, 62, 8, 62, 12, 62, 65, 62,
62
+ 65, 65, 14, 65, 20, 65, 65, 65, 23, 0,
63
+ 0, 65, 66, 65, 66, 66, 26, 66, 27, 66,
64
+ 66, 66, 0, 29, 35, 66, 68, 66, 68, 68,
65
+ 39, 68, 40, 68, 68, 68, 41, 42, 44, 68,
66
+ 31, 68, 31, 31, 45, 31, 46, 31, 31, 31,
67
+ 47, 31, 48, 31, 5, 31, 5, 5, 49, 5,
68
+ nil, 5, 5, 5, nil, 5, nil, 5, 16, 5,
69
+ 16, 16, nil, 16, nil, 16, 16, 16, nil, 16,
70
+ nil, 16, 37, 16, 37, 37, nil, 37, nil, 37,
71
+ 37, 37, nil, 37, nil, 37, 92, 37, 92, 92,
72
+ nil, 92, nil, 92, 92, 92, nil, nil, nil, 92,
73
+ 32, 92, 32, 32, nil, 32, nil, 32, 32, 32,
74
+ nil, 32, nil, 32, 78, 32, 78, 78, nil, 78,
75
+ nil, 78, 78, 78, nil, 78, nil, 78, 11, 78,
76
+ 11, 11, nil, 11, nil, 11, 11, 11, nil, 11,
77
+ nil, 11, 36, 11, 36, 36, nil, 36, nil, 36,
78
+ 36, 36, nil, nil, nil, 36, 88, 36, 88, 88,
79
+ nil, 88, nil, 88, 88, 88, nil, 88, nil, 88,
80
+ 69, 88, 69, 69, nil, nil, 17, 69, 17, 17,
81
+ 69, nil, nil, 17, nil, nil, 17 ]
74
82
 
75
83
  racc_action_pointer = [
76
- 20, 128, nil, nil, 126, -6, 116, nil, nil, 66,
77
- 100, nil, 69, nil, 102, 214, nil, nil, 77, 64,
78
- nil, nil, 74, 59, 56, -2, 174, 186, nil, nil,
79
- 40, 42, 90, -9, 29, -10, -8, 8, nil, 20,
80
- 22, -7, 31, 40, 26, 28, 35, 11, nil, 46,
81
- 28, nil, nil, nil, nil, 40, 53, 150, nil, nil,
82
- 138, 198, 64, 114, 210, nil, nil, 91, 85, nil,
83
- nil, nil, nil, 78, nil, nil, 104, nil, nil, nil,
84
- 105, nil, nil, 54, 100, nil, 113, 162, 118, nil,
85
- 120, nil, nil, nil ]
84
+ 74, 58, nil, nil, nil, 117, 42, -7, 64, nil,
85
+ nil, 201, 62, nil, 46, nil, 131, 249, nil, nil,
86
+ 60, nil, nil, 59, nil, nil, 84, 74, nil, 91,
87
+ -10, 103, 173, nil, nil, 75, 215, 145, 3, 98,
88
+ 79, 83, 96, nil, 100, 106, 102, 112, 120, 107,
89
+ -17, -10, 12, nil, -2, 31, nil, nil, nil, nil,
90
+ -7, 5, 47, nil, nil, 61, 75, 10, 89, 243,
91
+ nil, nil, 30, 17, nil, nil, nil, nil, 187, nil,
92
+ nil, 37, nil, nil, nil, 34, nil, nil, 229, 23,
93
+ nil, 34, 159, 36, nil, 41, nil, nil, nil ]
86
94
 
87
95
  racc_action_default = [
88
- -50, -50, -1, -2, -50, -8, -50, -3, -26, -50,
89
- -38, -40, -41, -42, -50, -30, -47, -48, -50, -50,
90
- -9, -10, -11, -14, -16, -41, -50, -50, -21, 94,
91
- -50, -50, -50, -41, -28, -50, -50, -50, -31, -50,
92
- -50, -50, -50, -36, -50, -50, -24, -50, -15, -50,
93
- -50, -19, -20, -27, -39, -50, -50, -50, -44, -45,
94
- -50, -50, -50, -50, -30, -46, -49, -50, -50, -12,
95
- -13, -17, -18, -50, -23, -43, -6, -29, -32, -33,
96
- -50, -35, -37, -50, -50, -22, -50, -50, -4, -25,
97
- -50, -7, -34, -5 ]
96
+ -54, -54, -1, -2, -3, -54, -54, -10, -54, -4,
97
+ -29, -54, -41, -43, -44, -45, -54, -33, -50, -51,
98
+ -54, -53, -5, -54, -11, -12, -13, -16, -18, -19,
99
+ -44, -54, -54, -24, 99, -54, -54, -54, -44, -31,
100
+ -54, -54, -54, -34, -54, -54, -54, -54, -39, -54,
101
+ -54, -27, -54, -17, -54, -54, -22, -23, -30, -42,
102
+ -54, -54, -54, -47, -48, -54, -54, -54, -54, -33,
103
+ -49, -52, -54, -54, -14, -15, -20, -21, -54, -26,
104
+ -46, -8, -32, -35, -36, -54, -38, -40, -54, -54,
105
+ -25, -54, -54, -6, -28, -54, -9, -37, -7 ]
98
106
 
99
107
  racc_goto_table = [
100
- 7, 28, 36, 2, 54, 30, 44, 38, 21, 20,
101
- 35, 67, 72, 19, 3, 1, nil, nil, nil, nil,
102
- nil, nil, 51, 52, nil, nil, nil, nil, 55, nil,
103
- nil, nil, nil, 78, 79, nil, 81, nil, nil, nil,
104
- nil, nil, nil, 28, nil, nil, 74, nil, nil, nil,
105
- 70, 69, 71, 77, nil, 82, 38, nil, nil, 76,
106
- 92, nil, nil, nil, nil, nil, nil, nil, nil, 85,
107
- nil, 84, nil, nil, 91, nil, nil, nil, nil, 88 ]
108
+ 9, 41, 33, 59, 2, 49, 35, 25, 43, 40,
109
+ 22, 24, 77, 3, 72, 23, 4, 1, nil, nil,
110
+ nil, nil, nil, nil, nil, nil, 56, 57, nil, nil,
111
+ 60, nil, 83, 84, nil, 86, nil, nil, nil, nil,
112
+ nil, nil, nil, nil, nil, nil, nil, 33, nil, nil,
113
+ 79, nil, 75, nil, 76, 82, 74, 87, nil, 97,
114
+ 43, nil, nil, nil, nil, 81, nil, nil, nil, nil,
115
+ nil, nil, nil, 90, nil, nil, 96, 89, nil, nil,
116
+ nil, nil, nil, 93 ]
108
117
 
109
118
  racc_goto_check = [
110
- 4, 4, 7, 2, 14, 4, 17, 12, 9, 8,
111
- 15, 6, 13, 5, 3, 1, nil, nil, nil, nil,
112
- nil, nil, 4, 4, nil, nil, nil, nil, 15, nil,
113
- nil, nil, nil, 14, 14, nil, 14, nil, nil, nil,
114
- nil, nil, nil, 4, nil, nil, 4, nil, nil, nil,
115
- 9, 8, 9, 15, nil, 17, 12, nil, nil, 2,
116
- 14, nil, nil, nil, nil, nil, nil, nil, nil, 4,
117
- nil, 2, nil, nil, 7, nil, nil, nil, nil, 4 ]
119
+ 5, 8, 5, 15, 2, 18, 5, 10, 13, 16,
120
+ 2, 9, 14, 3, 7, 6, 4, 1, nil, nil,
121
+ nil, nil, nil, nil, nil, nil, 5, 5, nil, nil,
122
+ 16, nil, 15, 15, nil, 15, nil, nil, nil, nil,
123
+ nil, nil, nil, nil, nil, nil, nil, 5, nil, nil,
124
+ 5, nil, 10, nil, 10, 16, 9, 18, nil, 15,
125
+ 13, nil, nil, nil, nil, 2, nil, nil, nil, nil,
126
+ nil, nil, nil, 5, nil, nil, 8, 2, nil, nil,
127
+ nil, nil, nil, 5 ]
118
128
 
119
129
  racc_goto_pointer = [
120
- nil, 15, 3, 14, -4, 8, -35, -12, 4, 3,
121
- nil, nil, -8, -38, -27, -4, nil, -9, nil ]
130
+ nil, 17, 4, 13, 16, -5, 8, -37, -15, 4,
131
+ 0, nil, nil, -9, -43, -33, -7, nil, -12, nil ]
122
132
 
123
133
  racc_goto_default = [
124
- nil, nil, nil, nil, 34, nil, nil, nil, nil, nil,
125
- 22, 23, 24, nil, 8, nil, 43, nil, 10 ]
134
+ nil, nil, nil, nil, nil, 39, nil, nil, nil, nil,
135
+ nil, 26, 27, 29, nil, 10, nil, 48, nil, 12 ]
126
136
 
127
137
  racc_reduce_table = [
128
138
  0, 0, :racc_error,
129
- 1, 27, :_reduce_1,
130
- 1, 27, :_reduce_2,
131
- 2, 29, :_reduce_3,
132
- 6, 28, :_reduce_4,
133
- 7, 28, :_reduce_5,
134
- 3, 33, :_reduce_6,
135
- 5, 33, :_reduce_7,
136
- 0, 31, :_reduce_8,
137
- 1, 31, :_reduce_9,
138
- 1, 31, :_reduce_10,
139
- 1, 34, :_reduce_11,
140
- 3, 34, :_reduce_12,
141
- 3, 34, :_reduce_13,
142
- 1, 36, :_reduce_14,
143
- 2, 36, :_reduce_15,
144
- 1, 35, :_reduce_16,
145
- 3, 35, :_reduce_17,
146
- 3, 38, :_reduce_18,
147
- 2, 37, :_reduce_19,
148
- 2, 37, :_reduce_20,
149
- 1, 37, :_reduce_21,
150
- 2, 39, :_reduce_22,
151
- 1, 39, :_reduce_23,
152
- 0, 32, :_reduce_24,
153
- 3, 32, :_reduce_25,
154
- 1, 30, :_reduce_26,
155
- 3, 30, :_reduce_27,
156
- 1, 41, :_reduce_28,
157
- 3, 41, :_reduce_29,
158
- 0, 42, :_reduce_none,
159
- 1, 42, :_reduce_31,
160
- 3, 42, :_reduce_32,
161
- 3, 42, :_reduce_33,
162
- 5, 42, :_reduce_34,
163
- 3, 42, :_reduce_35,
164
- 1, 43, :_reduce_36,
165
- 3, 43, :_reduce_37,
166
- 1, 40, :_reduce_38,
167
- 3, 40, :_reduce_39,
168
- 1, 44, :_reduce_40,
139
+ 1, 30, :_reduce_1,
140
+ 1, 30, :_reduce_2,
141
+ 1, 30, :_reduce_3,
142
+ 2, 32, :_reduce_4,
143
+ 2, 33, :_reduce_5,
144
+ 6, 31, :_reduce_6,
145
+ 7, 31, :_reduce_7,
146
+ 3, 37, :_reduce_8,
147
+ 5, 37, :_reduce_9,
148
+ 0, 35, :_reduce_10,
149
+ 1, 35, :_reduce_11,
150
+ 1, 35, :_reduce_12,
151
+ 1, 38, :_reduce_13,
152
+ 3, 38, :_reduce_14,
153
+ 3, 38, :_reduce_15,
154
+ 1, 40, :_reduce_16,
155
+ 2, 40, :_reduce_17,
156
+ 1, 40, :_reduce_18,
157
+ 1, 39, :_reduce_19,
158
+ 3, 39, :_reduce_20,
159
+ 3, 42, :_reduce_21,
160
+ 2, 41, :_reduce_22,
161
+ 2, 41, :_reduce_23,
162
+ 1, 41, :_reduce_24,
163
+ 2, 43, :_reduce_25,
164
+ 1, 43, :_reduce_26,
165
+ 0, 36, :_reduce_27,
166
+ 3, 36, :_reduce_28,
167
+ 1, 34, :_reduce_29,
168
+ 3, 34, :_reduce_30,
169
+ 1, 45, :_reduce_31,
170
+ 3, 45, :_reduce_32,
171
+ 0, 46, :_reduce_none,
172
+ 1, 46, :_reduce_34,
173
+ 3, 46, :_reduce_35,
174
+ 3, 46, :_reduce_36,
175
+ 5, 46, :_reduce_37,
176
+ 3, 46, :_reduce_38,
177
+ 1, 47, :_reduce_39,
178
+ 3, 47, :_reduce_40,
169
179
  1, 44, :_reduce_41,
170
- 1, 44, :_reduce_42,
171
- 4, 44, :_reduce_43,
172
- 3, 44, :_reduce_44,
173
- 3, 44, :_reduce_45,
174
- 3, 44, :_reduce_46,
175
- 1, 44, :_reduce_47,
176
- 1, 44, :_reduce_48,
177
- 3, 44, :_reduce_49 ]
178
-
179
- racc_reduce_n = 50
180
-
181
- racc_shift_n = 94
180
+ 3, 44, :_reduce_42,
181
+ 1, 48, :_reduce_43,
182
+ 1, 48, :_reduce_44,
183
+ 1, 48, :_reduce_45,
184
+ 4, 48, :_reduce_46,
185
+ 3, 48, :_reduce_47,
186
+ 3, 48, :_reduce_48,
187
+ 3, 48, :_reduce_49,
188
+ 1, 48, :_reduce_50,
189
+ 1, 48, :_reduce_51,
190
+ 3, 48, :_reduce_52,
191
+ 1, 48, :_reduce_53 ]
192
+
193
+ racc_reduce_n = 54
194
+
195
+ racc_shift_n = 99
182
196
 
183
197
  racc_token_table = {
184
198
  false => 0,
@@ -186,29 +200,32 @@ racc_token_table = {
186
200
  :COMMA => 2,
187
201
  :RARROW => 3,
188
202
  :OR => 4,
189
- :DOUBLE_HASH => 5,
190
- :CONST_BEGIN => 6,
191
- :RASSOC => 7,
192
- :FIXNUM => 8,
193
- :FLOAT => 9,
194
- :COLON => 10,
195
- :ID => 11,
196
- :SYMBOL => 12,
197
- :SPECIAL_ID => 13,
198
- :STRING => 14,
199
- :LPAREN => 15,
200
- :RPAREN => 16,
201
- :LBRACE => 17,
202
- :RBRACE => 18,
203
- :LBRACKET => 19,
204
- :RBRACKET => 20,
205
- :QUERY => 21,
206
- :STAR => 22,
207
- :LESS => 23,
208
- :GREATER => 24,
209
- :EOF => 25 }
210
-
211
- racc_nt_base = 26
203
+ :HASH_TYPE => 5,
204
+ :HASH_QUERY => 6,
205
+ :CONST_BEGIN => 7,
206
+ :RASSOC => 8,
207
+ :FIXNUM => 9,
208
+ :FLOAT => 10,
209
+ :COLON => 11,
210
+ :DOT => 12,
211
+ :DOTS => 13,
212
+ :ID => 14,
213
+ :SYMBOL => 15,
214
+ :SPECIAL_ID => 16,
215
+ :STRING => 17,
216
+ :LPAREN => 18,
217
+ :RPAREN => 19,
218
+ :LBRACE => 20,
219
+ :RBRACE => 21,
220
+ :LBRACKET => 22,
221
+ :RBRACKET => 23,
222
+ :QUERY => 24,
223
+ :STAR => 25,
224
+ :LESS => 26,
225
+ :GREATER => 27,
226
+ :EOF => 28 }
227
+
228
+ racc_nt_base = 29
212
229
 
213
230
  racc_use_result_var = true
214
231
 
@@ -234,12 +251,15 @@ Racc_token_to_s_table = [
234
251
  "COMMA",
235
252
  "RARROW",
236
253
  "OR",
237
- "DOUBLE_HASH",
254
+ "HASH_TYPE",
255
+ "HASH_QUERY",
238
256
  "CONST_BEGIN",
239
257
  "RASSOC",
240
258
  "FIXNUM",
241
259
  "FLOAT",
242
260
  "COLON",
261
+ "DOT",
262
+ "DOTS",
243
263
  "ID",
244
264
  "SYMBOL",
245
265
  "SPECIAL_ID",
@@ -259,6 +279,7 @@ Racc_token_to_s_table = [
259
279
  "entry",
260
280
  "method_type",
261
281
  "bare_type",
282
+ "query_type",
262
283
  "type_expr",
263
284
  "arg_list",
264
285
  "block",
@@ -295,276 +316,296 @@ module_eval(<<'.,.,', 'parser.racc', 19)
295
316
  end
296
317
  .,.,
297
318
 
298
- module_eval(<<'.,.,', 'parser.racc', 23)
319
+ module_eval(<<'.,.,', 'parser.racc', 20)
299
320
  def _reduce_3(val, _values, result)
300
- result = val[1]
301
-
321
+ result = val[0]
302
322
  result
303
323
  end
304
324
  .,.,
305
325
 
306
- module_eval(<<'.,.,', 'parser.racc', 28)
326
+ module_eval(<<'.,.,', 'parser.racc', 23)
307
327
  def _reduce_4(val, _values, result)
308
- result = RDL::Type::MethodType.new val[1], val[3], val[5]
309
-
328
+ result = val[1]
310
329
  result
311
330
  end
312
331
  .,.,
313
332
 
314
- module_eval(<<'.,.,', 'parser.racc', 31)
333
+ module_eval(<<'.,.,', 'parser.racc', 26)
315
334
  def _reduce_5(val, _values, result)
316
- result = RDL::Type::MethodType.new val[1], val[3], RDL::Type::AnnotatedArgType.new(val[6], val[5])
317
-
335
+ result = RDL::Type::MethodType.new val[1].args, val[1].block, val[1].ret
318
336
  result
319
337
  end
320
338
  .,.,
321
339
 
322
- module_eval(<<'.,.,', 'parser.racc', 35)
340
+ module_eval(<<'.,.,', 'parser.racc', 30)
323
341
  def _reduce_6(val, _values, result)
324
- result = [val[0].to_sym, val[2]]
342
+ result = RDL::Type::MethodType.new val[1], val[3], val[5]
343
+
325
344
  result
326
345
  end
327
346
  .,.,
328
347
 
329
- module_eval(<<'.,.,', 'parser.racc', 36)
348
+ module_eval(<<'.,.,', 'parser.racc', 33)
330
349
  def _reduce_7(val, _values, result)
331
- result = [val[0].to_sym, val[2]] + val[4]
350
+ result = RDL::Type::MethodType.new val[1], val[3], RDL::Type::AnnotatedArgType.new(val[6], val[5])
351
+
332
352
  result
333
353
  end
334
354
  .,.,
335
355
 
336
- module_eval(<<'.,.,', 'parser.racc', 39)
356
+ module_eval(<<'.,.,', 'parser.racc', 37)
337
357
  def _reduce_8(val, _values, result)
338
- result = []
358
+ result = [val[0].to_sym, val[2]]
339
359
  result
340
360
  end
341
361
  .,.,
342
362
 
343
- module_eval(<<'.,.,', 'parser.racc', 40)
363
+ module_eval(<<'.,.,', 'parser.racc', 38)
344
364
  def _reduce_9(val, _values, result)
345
- result = val[0]
365
+ result = [val[0].to_sym, val[2]] + val[4]
346
366
  result
347
367
  end
348
368
  .,.,
349
369
 
350
- module_eval(<<'.,.,', 'parser.racc', 42)
370
+ module_eval(<<'.,.,', 'parser.racc', 41)
351
371
  def _reduce_10(val, _values, result)
352
- result = [RDL::Type::FiniteHashType.new(Hash[*val[0]])]
353
-
372
+ result = []
354
373
  result
355
374
  end
356
375
  .,.,
357
376
 
358
- module_eval(<<'.,.,', 'parser.racc', 45)
377
+ module_eval(<<'.,.,', 'parser.racc', 42)
359
378
  def _reduce_11(val, _values, result)
360
- result = [val[0]]
379
+ result = val[0]
361
380
  result
362
381
  end
363
382
  .,.,
364
383
 
365
- module_eval(<<'.,.,', 'parser.racc', 46)
384
+ module_eval(<<'.,.,', 'parser.racc', 44)
366
385
  def _reduce_12(val, _values, result)
367
- result = val[2].unshift val[0]
386
+ result = [RDL::Type::FiniteHashType.new(Hash[*val[0]])]
387
+
368
388
  result
369
389
  end
370
390
  .,.,
371
391
 
372
392
  module_eval(<<'.,.,', 'parser.racc', 47)
373
393
  def _reduce_13(val, _values, result)
374
- # named arg list must come last
375
- result = [val[0], RDL::Type::FiniteHashType.new(Hash[*val[2]])]
376
-
394
+ result = [val[0]]
377
395
  result
378
396
  end
379
397
  .,.,
380
398
 
381
- module_eval(<<'.,.,', 'parser.racc', 51)
399
+ module_eval(<<'.,.,', 'parser.racc', 48)
382
400
  def _reduce_14(val, _values, result)
383
- result = val[0]
401
+ result = val[2].unshift val[0]
384
402
  result
385
403
  end
386
404
  .,.,
387
405
 
388
- module_eval(<<'.,.,', 'parser.racc', 52)
406
+ module_eval(<<'.,.,', 'parser.racc', 49)
389
407
  def _reduce_15(val, _values, result)
390
- result = RDL::Type::AnnotatedArgType.new(val[1], val[0])
408
+ # named arg list must come last
409
+ result = [val[0], RDL::Type::FiniteHashType.new(Hash[*val[2]])]
410
+
391
411
  result
392
412
  end
393
413
  .,.,
394
414
 
395
- module_eval(<<'.,.,', 'parser.racc', 54)
415
+ module_eval(<<'.,.,', 'parser.racc', 53)
396
416
  def _reduce_16(val, _values, result)
397
417
  result = val[0]
398
418
  result
399
419
  end
400
420
  .,.,
401
421
 
402
- module_eval(<<'.,.,', 'parser.racc', 55)
422
+ module_eval(<<'.,.,', 'parser.racc', 54)
403
423
  def _reduce_17(val, _values, result)
404
- result = val[0] + val[2]
424
+ result = RDL::Type::AnnotatedArgType.new(val[1], val[0])
405
425
  result
406
426
  end
407
427
  .,.,
408
428
 
409
- module_eval(<<'.,.,', 'parser.racc', 57)
429
+ module_eval(<<'.,.,', 'parser.racc', 55)
410
430
  def _reduce_18(val, _values, result)
411
- result = [val[0].to_sym, val[2]]
431
+ result = RDL::Type::DotsQuery.new
412
432
  result
413
433
  end
414
434
  .,.,
415
435
 
416
- module_eval(<<'.,.,', 'parser.racc', 60)
436
+ module_eval(<<'.,.,', 'parser.racc', 57)
417
437
  def _reduce_19(val, _values, result)
418
- result = RDL::Type::OptionalType.new val[1]
438
+ result = val[0]
419
439
  result
420
440
  end
421
441
  .,.,
422
442
 
423
- module_eval(<<'.,.,', 'parser.racc', 61)
443
+ module_eval(<<'.,.,', 'parser.racc', 58)
424
444
  def _reduce_20(val, _values, result)
425
- result = RDL::Type::VarargType.new val[1]
445
+ result = val[0] + val[2]
426
446
  result
427
447
  end
428
448
  .,.,
429
449
 
430
- module_eval(<<'.,.,', 'parser.racc', 62)
450
+ module_eval(<<'.,.,', 'parser.racc', 60)
431
451
  def _reduce_21(val, _values, result)
432
- result = val[0]
452
+ result = [val[0].to_sym, val[2]]
433
453
  result
434
454
  end
435
455
  .,.,
436
456
 
437
- module_eval(<<'.,.,', 'parser.racc', 64)
457
+ module_eval(<<'.,.,', 'parser.racc', 63)
438
458
  def _reduce_22(val, _values, result)
439
459
  result = RDL::Type::OptionalType.new val[1]
440
460
  result
441
461
  end
442
462
  .,.,
443
463
 
444
- module_eval(<<'.,.,', 'parser.racc', 65)
464
+ module_eval(<<'.,.,', 'parser.racc', 64)
445
465
  def _reduce_23(val, _values, result)
446
- result = val[0]
466
+ result = RDL::Type::VarargType.new val[1]
447
467
  result
448
468
  end
449
469
  .,.,
450
470
 
451
- module_eval(<<'.,.,', 'parser.racc', 68)
471
+ module_eval(<<'.,.,', 'parser.racc', 65)
452
472
  def _reduce_24(val, _values, result)
453
- result = nil
473
+ result = val[0]
454
474
  result
455
475
  end
456
476
  .,.,
457
477
 
458
- module_eval(<<'.,.,', 'parser.racc', 69)
478
+ module_eval(<<'.,.,', 'parser.racc', 67)
459
479
  def _reduce_25(val, _values, result)
460
- result = val[1]
480
+ result = RDL::Type::OptionalType.new val[1]
461
481
  result
462
482
  end
463
483
  .,.,
464
484
 
465
- module_eval(<<'.,.,', 'parser.racc', 72)
485
+ module_eval(<<'.,.,', 'parser.racc', 68)
466
486
  def _reduce_26(val, _values, result)
467
487
  result = val[0]
468
488
  result
469
489
  end
470
490
  .,.,
471
491
 
472
- module_eval(<<'.,.,', 'parser.racc', 73)
492
+ module_eval(<<'.,.,', 'parser.racc', 71)
473
493
  def _reduce_27(val, _values, result)
494
+ result = nil
495
+ result
496
+ end
497
+ .,.,
498
+
499
+ module_eval(<<'.,.,', 'parser.racc', 72)
500
+ def _reduce_28(val, _values, result)
474
501
  result = val[1]
475
502
  result
476
503
  end
477
504
  .,.,
478
505
 
506
+ module_eval(<<'.,.,', 'parser.racc', 75)
507
+ def _reduce_29(val, _values, result)
508
+ result = val[0]
509
+ result
510
+ end
511
+ .,.,
512
+
479
513
  module_eval(<<'.,.,', 'parser.racc', 76)
480
- def _reduce_28(val, _values, result)
514
+ def _reduce_30(val, _values, result)
515
+ result = val[1]
516
+ result
517
+ end
518
+ .,.,
519
+
520
+ module_eval(<<'.,.,', 'parser.racc', 79)
521
+ def _reduce_31(val, _values, result)
481
522
  result = [val[0]]
482
523
  result
483
524
  end
484
525
  .,.,
485
526
 
486
- module_eval(<<'.,.,', 'parser.racc', 77)
487
- def _reduce_29(val, _values, result)
527
+ module_eval(<<'.,.,', 'parser.racc', 80)
528
+ def _reduce_32(val, _values, result)
488
529
  result = [val[0]] + val[2]
489
530
  result
490
531
  end
491
532
  .,.,
492
533
 
493
- # reduce 30 omitted
534
+ # reduce 33 omitted
494
535
 
495
- module_eval(<<'.,.,', 'parser.racc', 80)
496
- def _reduce_31(val, _values, result)
536
+ module_eval(<<'.,.,', 'parser.racc', 83)
537
+ def _reduce_34(val, _values, result)
497
538
  result = val[0]
498
539
  result
499
540
  end
500
541
  .,.,
501
542
 
502
- module_eval(<<'.,.,', 'parser.racc', 81)
503
- def _reduce_32(val, _values, result)
543
+ module_eval(<<'.,.,', 'parser.racc', 84)
544
+ def _reduce_35(val, _values, result)
504
545
  result = [val[0].to_i, val[2]]
505
546
  result
506
547
  end
507
548
  .,.,
508
549
 
509
- module_eval(<<'.,.,', 'parser.racc', 82)
510
- def _reduce_33(val, _values, result)
550
+ module_eval(<<'.,.,', 'parser.racc', 85)
551
+ def _reduce_36(val, _values, result)
511
552
  result = [val[0].to_f, val[2]]
512
553
  result
513
554
  end
514
555
  .,.,
515
556
 
516
- module_eval(<<'.,.,', 'parser.racc', 84)
517
- def _reduce_34(val, _values, result)
557
+ module_eval(<<'.,.,', 'parser.racc', 87)
558
+ def _reduce_37(val, _values, result)
518
559
  result = [Kernel.const_get(val[0]), val[2]]
519
560
 
520
561
  result
521
562
  end
522
563
  .,.,
523
564
 
524
- module_eval(<<'.,.,', 'parser.racc', 86)
525
- def _reduce_35(val, _values, result)
565
+ module_eval(<<'.,.,', 'parser.racc', 89)
566
+ def _reduce_38(val, _values, result)
526
567
  result = [val[0], val[2]]
527
568
  result
528
569
  end
529
570
  .,.,
530
571
 
531
- module_eval(<<'.,.,', 'parser.racc', 89)
532
- def _reduce_36(val, _values, result)
572
+ module_eval(<<'.,.,', 'parser.racc', 92)
573
+ def _reduce_39(val, _values, result)
533
574
  result = val[0]
534
575
  result
535
576
  end
536
577
  .,.,
537
578
 
538
- module_eval(<<'.,.,', 'parser.racc', 90)
539
- def _reduce_37(val, _values, result)
579
+ module_eval(<<'.,.,', 'parser.racc', 93)
580
+ def _reduce_40(val, _values, result)
540
581
  result = val[0] + val[2]
541
582
  result
542
583
  end
543
584
  .,.,
544
585
 
545
- module_eval(<<'.,.,', 'parser.racc', 93)
546
- def _reduce_38(val, _values, result)
586
+ module_eval(<<'.,.,', 'parser.racc', 96)
587
+ def _reduce_41(val, _values, result)
547
588
  result = val[0]
548
589
  result
549
590
  end
550
591
  .,.,
551
592
 
552
- module_eval(<<'.,.,', 'parser.racc', 94)
553
- def _reduce_39(val, _values, result)
593
+ module_eval(<<'.,.,', 'parser.racc', 97)
594
+ def _reduce_42(val, _values, result)
554
595
  result = RDL::Type::UnionType.new val[0], val[2]
555
596
  result
556
597
  end
557
598
  .,.,
558
599
 
559
- module_eval(<<'.,.,', 'parser.racc', 97)
560
- def _reduce_40(val, _values, result)
600
+ module_eval(<<'.,.,', 'parser.racc', 100)
601
+ def _reduce_43(val, _values, result)
561
602
  result = RDL::Type::SingletonType.new(val[0].to_sym)
562
603
  result
563
604
  end
564
605
  .,.,
565
606
 
566
- module_eval(<<'.,.,', 'parser.racc', 99)
567
- def _reduce_41(val, _values, result)
607
+ module_eval(<<'.,.,', 'parser.racc', 102)
608
+ def _reduce_44(val, _values, result)
568
609
  if val[0] == 'nil' then
569
610
  result = RDL::Type::NilType.new
570
611
  elsif val[0] =~ /^[a-z_]+\w*\'?/ then
@@ -577,8 +618,8 @@ module_eval(<<'.,.,', 'parser.racc', 99)
577
618
  end
578
619
  .,.,
579
620
 
580
- module_eval(<<'.,.,', 'parser.racc', 108)
581
- def _reduce_42(val, _values, result)
621
+ module_eval(<<'.,.,', 'parser.racc', 111)
622
+ def _reduce_45(val, _values, result)
582
623
  if $__rdl_special_types.has_key? val[0] then
583
624
  result = $__rdl_special_types[val[0]]
584
625
  else
@@ -589,8 +630,8 @@ module_eval(<<'.,.,', 'parser.racc', 108)
589
630
  end
590
631
  .,.,
591
632
 
592
- module_eval(<<'.,.,', 'parser.racc', 115)
593
- def _reduce_43(val, _values, result)
633
+ module_eval(<<'.,.,', 'parser.racc', 118)
634
+ def _reduce_46(val, _values, result)
594
635
  n = RDL::Type::NominalType.new(val[0])
595
636
  result = RDL::Type::GenericType.new(n, *val[2])
596
637
 
@@ -598,52 +639,59 @@ module_eval(<<'.,.,', 'parser.racc', 115)
598
639
  end
599
640
  .,.,
600
641
 
601
- module_eval(<<'.,.,', 'parser.racc', 119)
602
- def _reduce_44(val, _values, result)
642
+ module_eval(<<'.,.,', 'parser.racc', 122)
643
+ def _reduce_47(val, _values, result)
603
644
  result = RDL::Type::TupleType.new(*val[1])
604
645
 
605
646
  result
606
647
  end
607
648
  .,.,
608
649
 
609
- module_eval(<<'.,.,', 'parser.racc', 122)
610
- def _reduce_45(val, _values, result)
650
+ module_eval(<<'.,.,', 'parser.racc', 125)
651
+ def _reduce_48(val, _values, result)
611
652
  result = RDL::Type::StructuralType.new(Hash[*val[1]])
612
653
 
613
654
  result
614
655
  end
615
656
  .,.,
616
657
 
617
- module_eval(<<'.,.,', 'parser.racc', 125)
618
- def _reduce_46(val, _values, result)
658
+ module_eval(<<'.,.,', 'parser.racc', 128)
659
+ def _reduce_49(val, _values, result)
619
660
  result = RDL::Type::FiniteHashType.new(Hash[*val[1]])
620
661
 
621
662
  result
622
663
  end
623
664
  .,.,
624
665
 
625
- module_eval(<<'.,.,', 'parser.racc', 127)
626
- def _reduce_47(val, _values, result)
666
+ module_eval(<<'.,.,', 'parser.racc', 130)
667
+ def _reduce_50(val, _values, result)
627
668
  result = RDL::Type::SingletonType.new(val[0].to_i)
628
669
  result
629
670
  end
630
671
  .,.,
631
672
 
632
- module_eval(<<'.,.,', 'parser.racc', 128)
633
- def _reduce_48(val, _values, result)
673
+ module_eval(<<'.,.,', 'parser.racc', 131)
674
+ def _reduce_51(val, _values, result)
634
675
  result = RDL::Type::SingletonType.new(val[0].to_f)
635
676
  result
636
677
  end
637
678
  .,.,
638
679
 
639
- module_eval(<<'.,.,', 'parser.racc', 130)
640
- def _reduce_49(val, _values, result)
680
+ module_eval(<<'.,.,', 'parser.racc', 133)
681
+ def _reduce_52(val, _values, result)
641
682
  result = RDL::Type::SingletonType.new(Kernel.const_get(val[1]))
642
683
 
643
684
  result
644
685
  end
645
686
  .,.,
646
687
 
688
+ module_eval(<<'.,.,', 'parser.racc', 137)
689
+ def _reduce_53(val, _values, result)
690
+ result = RDL::Type::WildQuery.new
691
+ result
692
+ end
693
+ .,.,
694
+
647
695
  def _reduce_none(val, _values, result)
648
696
  val[0]
649
697
  end