rdl 1.0.0 → 1.0.1.rc1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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