rdl 2.1.0 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (102) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +1 -0
  3. data/.travis.yml +7 -6
  4. data/CHANGES.md +29 -0
  5. data/README.md +94 -26
  6. data/lib/rdl/boot.rb +82 -41
  7. data/lib/rdl/boot_rails.rb +5 -0
  8. data/lib/rdl/config.rb +9 -1
  9. data/lib/rdl/query.rb +2 -2
  10. data/lib/rdl/typecheck.rb +972 -225
  11. data/lib/rdl/types/annotated_arg.rb +8 -0
  12. data/lib/rdl/types/ast_node.rb +73 -0
  13. data/lib/rdl/types/bot.rb +8 -0
  14. data/lib/rdl/types/bound_arg.rb +63 -0
  15. data/lib/rdl/types/computed.rb +48 -0
  16. data/lib/rdl/types/dependent_arg.rb +9 -0
  17. data/lib/rdl/types/dynamic.rb +61 -0
  18. data/lib/rdl/types/finite_hash.rb +54 -9
  19. data/lib/rdl/types/generic.rb +33 -0
  20. data/lib/rdl/types/intersection.rb +8 -0
  21. data/lib/rdl/types/lexer.rex +6 -1
  22. data/lib/rdl/types/lexer.rex.rb +13 -1
  23. data/lib/rdl/types/method.rb +14 -0
  24. data/lib/rdl/types/nominal.rb +8 -0
  25. data/lib/rdl/types/non_null.rb +8 -0
  26. data/lib/rdl/types/optional.rb +8 -0
  27. data/lib/rdl/types/parser.racc +31 -5
  28. data/lib/rdl/types/parser.tab.rb +540 -302
  29. data/lib/rdl/types/rdl_types.rb +45 -0
  30. data/lib/rdl/types/singleton.rb +14 -1
  31. data/lib/rdl/types/string.rb +104 -0
  32. data/lib/rdl/types/structural.rb +8 -0
  33. data/lib/rdl/types/top.rb +8 -0
  34. data/lib/rdl/types/tuple.rb +32 -8
  35. data/lib/rdl/types/type.rb +54 -11
  36. data/lib/rdl/types/union.rb +41 -2
  37. data/lib/rdl/types/var.rb +10 -0
  38. data/lib/rdl/types/vararg.rb +8 -0
  39. data/lib/rdl/util.rb +13 -10
  40. data/lib/rdl/wrap.rb +271 -27
  41. data/lib/rdl_disable.rb +16 -2
  42. data/lib/types/active_record.rb +1 -0
  43. data/lib/types/core/array.rb +442 -23
  44. data/lib/types/core/basic_object.rb +3 -3
  45. data/lib/types/core/bigdecimal.rb +5 -0
  46. data/lib/types/core/class.rb +2 -0
  47. data/lib/types/core/dir.rb +3 -3
  48. data/lib/types/core/enumerable.rb +4 -4
  49. data/lib/types/core/enumerator.rb +1 -1
  50. data/lib/types/core/file.rb +4 -4
  51. data/lib/types/core/float.rb +203 -0
  52. data/lib/types/core/hash.rb +390 -15
  53. data/lib/types/core/integer.rb +223 -10
  54. data/lib/types/core/io.rb +2 -2
  55. data/lib/types/core/kernel.rb +8 -5
  56. data/lib/types/core/marshal.rb +3 -0
  57. data/lib/types/core/module.rb +3 -3
  58. data/lib/types/core/numeric.rb +0 -2
  59. data/lib/types/core/object.rb +5 -5
  60. data/lib/types/core/pathname.rb +2 -2
  61. data/lib/types/core/process.rb +1 -3
  62. data/lib/types/core/range.rb +1 -1
  63. data/lib/types/core/regexp.rb +2 -2
  64. data/lib/types/core/set.rb +1 -1
  65. data/lib/types/core/string.rb +408 -16
  66. data/lib/types/core/symbol.rb +3 -3
  67. data/lib/types/core/time.rb +1 -1
  68. data/lib/types/core/uri.rb +13 -13
  69. data/lib/types/rails/_helpers.rb +7 -1
  70. data/lib/types/rails/action_controller/mime_responds.rb +2 -0
  71. data/lib/types/rails/active_record/associations.rb +42 -30
  72. data/lib/types/rails/active_record/comp_types.rb +637 -0
  73. data/lib/types/rails/active_record/finder_methods.rb +1 -1
  74. data/lib/types/rails/active_record/model_schema.rb +28 -16
  75. data/lib/types/rails/active_record/relation.rb +5 -3
  76. data/lib/types/rails/active_record/sql-strings.rb +166 -0
  77. data/lib/types/rails/string.rb +1 -1
  78. data/lib/types/sequel.rb +1 -0
  79. data/lib/types/sequel/comp_types.rb +581 -0
  80. data/rdl.gemspec +5 -4
  81. data/test/test_alias.rb +4 -0
  82. data/test/test_array_types.rb +244 -0
  83. data/test/test_bound_types.rb +80 -0
  84. data/test/test_contract.rb +4 -0
  85. data/test/test_dsl.rb +5 -0
  86. data/test/test_dyn_comptype_checks.rb +206 -0
  87. data/test/test_generic.rb +21 -20
  88. data/test/test_hash_types.rb +322 -0
  89. data/test/test_intersection.rb +1 -0
  90. data/test/test_le.rb +29 -4
  91. data/test/test_member.rb +3 -1
  92. data/test/test_parser.rb +5 -0
  93. data/test/test_query.rb +1 -0
  94. data/test/test_rdl.rb +63 -28
  95. data/test/test_rdl_type.rb +4 -0
  96. data/test/test_string_types.rb +102 -0
  97. data/test/test_type_contract.rb +59 -37
  98. data/test/test_typecheck.rb +480 -75
  99. data/test/test_types.rb +17 -0
  100. data/test/test_wrap.rb +5 -0
  101. metadata +35 -5
  102. data/lib/types/rails/active_record/schema_types.rb +0 -51
@@ -69,6 +69,14 @@ module RDL::Type
69
69
  return IntersectionType.new(*(@types.map { |t| t.instantiate(inst) }))
70
70
  end
71
71
 
72
+ def widen
73
+ return IntersectionType.new(*(@types.map { |t| t.widen }))
74
+ end
75
+
76
+ def copy
77
+ return IntersectionType.new(*(@types.map { |t| t.copy }))
78
+ end
79
+
72
80
  def hash # :nodoc:
73
81
  return 47 + @types.hash
74
82
  end
@@ -2,12 +2,13 @@ module RDL::Type
2
2
  class Parser
3
3
 
4
4
  macro
5
- ID (\w|\:\:)+
5
+ ID ((\w|\:\:)+(!|\?|=)?)|~|\+|-|\/|&|\||\^
6
6
  SYMBOL :\w+
7
7
  SPECIAL_ID %\w+
8
8
  FIXNUM -?(\d)+
9
9
  FLOAT -?\d\.\d+
10
10
  PREDICATE \{\{(?:(?!}}).)+\}\}
11
+ COMP ``(?:(?!``).)+``
11
12
 
12
13
 
13
14
  rule
@@ -21,11 +22,14 @@ rule
21
22
  \} { [:RBRACE, text] }
22
23
  \[ { [:LBRACKET, text] }
23
24
  \] { [:RBRACKET, text] }
25
+ <\:\: { [:BIND, text] }
24
26
  < { [:LESS, text] }
25
27
  > { [:GREATER, text] }
28
+ = { [:EQUAL, text] }
26
29
  , { [:COMMA, text] }
27
30
  \? { [:QUERY, text] }
28
31
  \! { [:BANG, text] }
32
+ ~ { [:TILDE, text] }
29
33
  \*\* { [:STARSTAR, text] }
30
34
  \* { [:STAR, text] }
31
35
  \#T { [:HASH_TYPE, text] }
@@ -33,6 +37,7 @@ rule
33
37
  \$\{ { [:CONST_BEGIN, text] }
34
38
  \.\.\. { [:DOTS, text] }
35
39
  \. { [:DOT, text] }
40
+ {COMP} { [:COMP, text[2..-3]] }
36
41
  {FLOAT} { [:FLOAT, text] } # Must go before FIXNUM
37
42
  {FIXNUM} { [:FIXNUM, text] }
38
43
  {ID} { if text == "or" then [:OR, text] else [:ID, text] end }
@@ -88,12 +88,18 @@ class Parser < Racc::Parser
88
88
  when (text = @ss.scan(/\]/))
89
89
  action { [:RBRACKET, text] }
90
90
 
91
+ when (text = @ss.scan(/<\:\:/))
92
+ action { [:BIND, text] }
93
+
91
94
  when (text = @ss.scan(/</))
92
95
  action { [:LESS, text] }
93
96
 
94
97
  when (text = @ss.scan(/>/))
95
98
  action { [:GREATER, text] }
96
99
 
100
+ when (text = @ss.scan(/=/))
101
+ action { [:EQUAL, text] }
102
+
97
103
  when (text = @ss.scan(/,/))
98
104
  action { [:COMMA, text] }
99
105
 
@@ -103,6 +109,9 @@ class Parser < Racc::Parser
103
109
  when (text = @ss.scan(/\!/))
104
110
  action { [:BANG, text] }
105
111
 
112
+ when (text = @ss.scan(/~/))
113
+ action { [:TILDE, text] }
114
+
106
115
  when (text = @ss.scan(/\*\*/))
107
116
  action { [:STARSTAR, text] }
108
117
 
@@ -124,13 +133,16 @@ class Parser < Racc::Parser
124
133
  when (text = @ss.scan(/\./))
125
134
  action { [:DOT, text] }
126
135
 
136
+ when (text = @ss.scan(/``(?:(?!``).)+``/))
137
+ action { [:COMP, text[2..-3]] }
138
+
127
139
  when (text = @ss.scan(/-?\d\.\d+/))
128
140
  action { [:FLOAT, text] } # Must go before FIXNUM
129
141
 
130
142
  when (text = @ss.scan(/-?(\d)+/))
131
143
  action { [:FIXNUM, text] }
132
144
 
133
- when (text = @ss.scan(/(\w|\:\:)+/))
145
+ when (text = @ss.scan(/((\w|\:\:)+(!|\?|=)?)|~|\+|-|\/|&|\||\^/))
134
146
  action { if text == "or" then [:OR, text] else [:ID, text] end }
135
147
 
136
148
  when (text = @ss.scan(/:\w+/))
@@ -83,6 +83,8 @@ module RDL::Type
83
83
  t = t.type
84
84
  end
85
85
  case t
86
+ when ComputedType
87
+ raise "We do not currently support dynamic checks of unevaulated ComputedTypes."
86
88
  when OptionalType
87
89
  t = t.type.instantiate(inst)
88
90
  if actual == args.size
@@ -294,6 +296,18 @@ RUBY
294
296
  @ret.instantiate(inst))
295
297
  end
296
298
 
299
+ def widen
300
+ return MethodType.new(@args.map { |arg| arg.widen },
301
+ @block ? @block.widen : nil,
302
+ @ret.widen)
303
+ end
304
+
305
+ def copy
306
+ return MethodType.new(@args.map { |arg| arg.copy },
307
+ @block ? @block.copy : nil,
308
+ @ret.copy)
309
+ end
310
+
297
311
  # Return +true+ if +other+ is the same type
298
312
  def ==(other)
299
313
  return (other.instance_of? MethodType) &&
@@ -72,6 +72,14 @@ module RDL::Type
72
72
  return self
73
73
  end
74
74
 
75
+ def widen
76
+ return self
77
+ end
78
+
79
+ def copy
80
+ return self
81
+ end
82
+
75
83
  @@cache.merge!({"NilClass" => SingletonType.new(nil),
76
84
  "TrueClass" => SingletonType.new(true),
77
85
  "FalseClass" => SingletonType.new(false),
@@ -46,5 +46,13 @@ module RDL::Type
46
46
  def instantiate(inst)
47
47
  return NonNullType.new(@type.instantiate(inst))
48
48
  end
49
+
50
+ def widen
51
+ return NonNullType.new(@type.widen)
52
+ end
53
+
54
+ def copy
55
+ NonNullType.new(@type.copy)
56
+ end
49
57
  end
50
58
  end
@@ -42,6 +42,14 @@ module RDL::Type
42
42
  return OptionalType.new(@type.instantiate(inst))
43
43
  end
44
44
 
45
+ def widen
46
+ return OptionalType.new(@type.widen)
47
+ end
48
+
49
+ def copy
50
+ return OptionalType.new(@type.copy)
51
+ end
52
+
45
53
  def hash # :nodoc:
46
54
  return 57 + @type.hash
47
55
  end
@@ -9,8 +9,8 @@ class Parser
9
9
 
10
10
  token HASH_TYPE HASH_QUERY CONST_BEGIN RASSOC
11
11
  token OR FIXNUM FLOAT COLON RARROW DOT DOTS ID SYMBOL SPECIAL_ID STRING PREDICATE
12
- token LPAREN RPAREN LBRACE RBRACE LBRACKET RBRACKET
13
- token COMMA QUERY BANG STARSTAR STAR LESS GREATER
12
+ token LPAREN RPAREN LBRACE RBRACE LBRACKET RBRACKET COMP
13
+ token COMMA QUERY BANG STARSTAR STAR LESS GREATER EQUAL TILDE BIND
14
14
  token EOF
15
15
 
16
16
  rule
@@ -36,10 +36,33 @@ rule
36
36
  | LPAREN arg_list RPAREN block RARROW type_expr ID PREDICATE {
37
37
  result = RDL::Type::MethodType.new val[1], val[3], RDL::Type::DependentArgType.new(val[6], val[5], val[7])
38
38
  }
39
+ | LPAREN arg_list RPAREN block RARROW COMP {
40
+ result = RDL::Type::MethodType.new(val[1], val[3], RDL::Type::ComputedType.new(val[5]))
41
+ }
39
42
 
40
43
  method_sig_list:
41
- ID COLON method_type { result = [val[0].to_sym, val[2]] }
42
- | ID COLON method_type COMMA method_sig_list { result = [val[0].to_sym, val[2]] + val[4] }
44
+ method_name COLON method_type { result = [val[0], val[2]] }
45
+ | method_name COLON method_type COMMA method_sig_list { result = [val[0], val[2]] + val[4] }
46
+
47
+ method_name:
48
+ ID { result = val[0].to_sym }
49
+ | BANG { result = :! }
50
+ | STAR { result = :* }
51
+ | STARSTAR { result = :** }
52
+ | LESS { result = :< }
53
+ | LESS EQUAL { result = :<= }
54
+ | GREATER { result = :> }
55
+ | GREATER EQUAL { result = :>= }
56
+ | EQUAL EQUAL { result = :== }
57
+ | BANG EQUAL { result = :!= }
58
+ | EQUAL EQUAL EQUAL { result = :=== }
59
+ | LESS EQUAL GREATER { result = :<=> }
60
+ | LESS LESS { result = :<< }
61
+ | GREATER GREATER { result = :>> }
62
+ | LBRACKET RBRACKET { result = :[] }
63
+ | LBRACKET RBRACKET EQUAL { result = :[]= }
64
+ | EQUAL TILDE { result = :=~ }
65
+ | BANG TILDE { result = :!~ }
43
66
 
44
67
  arg_list:
45
68
  { result = [] }
@@ -57,6 +80,9 @@ rule
57
80
  base_arg { result = val[0] }
58
81
  | base_arg ID PREDICATE { result = RDL::Type::DependentArgType.new(val[1], val[0], val[2]) }
59
82
  | base_arg ID { result = RDL::Type::AnnotatedArgType.new(val[1], val[0]) }
83
+ | ID BIND base_arg { result = RDL::Type::BoundArgType.new(val[0], val[2]) }
84
+ | ID BIND COMP { result = RDL::Type::BoundArgType.new(val[0], RDL::Type::ComputedType.new(val[2])) }
85
+ | COMP { result = RDL::Type::ComputedType.new(val[0]) }
60
86
  | DOTS { result = RDL::Type::DotsQuery.new }
61
87
  named_arg_list:
62
88
  named_arg { result = [val[0], nil] }
@@ -150,7 +176,7 @@ rule
150
176
  result = RDL::Type::SingletonType.new(Kernel.const_get(val[1]))
151
177
  }
152
178
  # The following can't be used in SingletonTypes because those compare using .equal?
153
- # | STRING { result = RDL::Type::SingletonType.new(val[0]) }
179
+ | STRING { result = RDL::Type::PreciseStringType.new(val[0]) }
154
180
  | DOT { result = RDL::Type::WildQuery.new }
155
181
 
156
182
  ---- header ----
@@ -11,7 +11,7 @@ module RDL::Type
11
11
 
12
12
  class Parser < Racc::Parser
13
13
 
14
- module_eval(<<'...end parser.racc/module_eval...', 'parser.racc', 161)
14
+ module_eval(<<'...end parser.racc/module_eval...', 'parser.racc', 187)
15
15
 
16
16
  def initialize()
17
17
  @yydebug = true
@@ -21,213 +21,280 @@ end
21
21
  ##### State transition tables begin ###
22
22
 
23
23
  racc_action_table = [
24
- 38, 68, 21, 101, 19, 20, 41, 22, 29, 32,
25
- 14, 16, 7, 83, 11, 103, 17, 84, 18, 31,
26
- 33, 13, 31, 34, 105, 39, 39, 21, 106, 19,
27
- 20, 108, 22, 29, 32, 14, 16, 7, 111, 11,
28
- 113, 17, 114, 18, 77, 33, 13, 31, 34, 45,
29
- 115, 43, 44, 5, 6, 45, 41, 43, 44, 46,
30
- 8, 7, 41, 7, 36, 46, 56, 7, 57, 48,
31
- 58, 21, 59, 19, 20, 48, 22, 60, 15, 14,
32
- 16, 62, 65, 11, 62, 17, 21, 18, 19, 20,
33
- 13, 22, 69, 15, 14, 16, 70, 71, 72, 73,
34
- 17, 21, 18, 19, 20, 13, 22, 75, 15, 14,
35
- 16, 76, 77, 11, 78, 17, 21, 18, 19, 20,
36
- 13, 22, 79, 15, 14, 16, 80, 81, 11, 87,
37
- 17, 21, 18, 19, 20, 13, 22, 92, 15, 14,
38
- 16, 96, 7, 11, nil, 17, 21, 18, 19, 20,
39
- 13, 22, nil, 15, 14, 16, nil, nil, 11, nil,
40
- 17, 21, 18, 19, 20, 13, 22, nil, 15, 14,
41
- 16, nil, nil, 11, nil, 17, nil, 18, nil, 90,
42
- 13, 21, nil, 19, 20, nil, 22, nil, 15, 14,
43
- 16, nil, nil, 11, nil, 17, 21, 18, 19, 20,
44
- 13, 22, nil, 15, 14, 16, nil, nil, nil, nil,
45
- 17, 21, 18, 19, 20, 13, 22, nil, 15, 14,
46
- 16, nil, nil, nil, nil, 17, 21, 18, 19, 20,
47
- 13, 22, nil, 15, 14, 16, nil, nil, nil, nil,
48
- 17, 21, 18, 19, 20, 13, 22, nil, 51, 14,
49
- 16, nil, nil, 11, nil, 17, nil, 18, 55, 21,
50
- 13, 19, 20, nil, 22, nil, 15, 14, 16, nil,
51
- nil, nil, nil, 17, 21, 18, 19, 20, 13, 22,
52
- nil, 15, 14, 16, nil, nil, nil, nil, 17, 21,
53
- 18, 19, 20, 13, 22, nil, 15, 14, 16, nil,
54
- nil, 11, nil, 17, 21, 18, 19, 20, 13, 22,
55
- nil, 15, 14, 16, nil, nil, 11, nil, 17, 21,
56
- 18, 19, 20, 13, 22, nil, 15, 14, 16, nil,
57
- nil, 11, nil, 17, 21, 18, 19, 20, 13, 22,
58
- nil, 15, 14, 16, nil, nil, 11, nil, 17, 21,
59
- 18, 19, 20, 13, 22, nil, 15, 14, 16, nil,
24
+ 40, 79, 71, 21, 43, 19, 20, 99, 23, 103,
25
+ 15, 14, 16, 22, 104, -26, 100, 17, 34, 18,
26
+ 5, 6, 92, 101, 91, 70, 41, 41, 89, 90,
27
+ 21, 107, 19, 20, 7, 23, 124, 54, 14, 16,
28
+ 22, 38, 11, 7, 17, 114, 61, 97, 95, 96,
29
+ 55, 57, 56, 58, 59, 60, 21, 124, 19, 20,
30
+ 141, 23, 118, 54, 14, 16, 22, 142, 11, 7,
31
+ 17, 7, 61, 65, 94, 93, 55, 57, 56, 58,
32
+ 59, 60, 21, 122, 19, 20, 123, 23, 8, 15,
33
+ 14, 16, 22, 126, 11, 7, 17, 128, 18, 69,
34
+ 109, 35, 13, 21, 36, 19, 20, 72, 23, 32,
35
+ 30, 14, 16, 22, 143, 11, 130, 17, 76, 18,
36
+ 131, 31, 35, 13, 34, 36, 21, 144, 19, 20,
37
+ 68, 23, 32, 30, 14, 16, 22, 71, 11, 80,
38
+ 17, 81, 18, 82, 31, 35, 13, 34, 36, 47,
39
+ 84, 45, 46, 89, 90, 47, 43, 45, 46, 48,
40
+ 83, 134, 43, 86, 87, 48, 88, 7, -12, 67,
41
+ 50, 66, 21, 98, 19, 20, 50, 23, nil, 15,
42
+ 14, 16, 22, nil, 11, nil, 17, nil, 18, nil,
43
+ nil, 21, 13, 19, 20, nil, 23, nil, 15, 14,
44
+ 16, 22, nil, 11, nil, 17, nil, 18, nil, nil,
45
+ 21, 13, 19, 20, nil, 23, nil, 15, 14, 16,
46
+ 22, nil, 11, nil, 17, nil, 18, nil, nil, 21,
47
+ 13, 19, 20, nil, 23, nil, 15, 14, 16, 22,
48
+ nil, 11, nil, 17, nil, 18, nil, nil, 21, 13,
49
+ 19, 20, nil, 23, nil, 15, 14, 16, 22, nil,
50
+ 11, nil, 17, nil, 18, nil, nil, 21, 13, 19,
51
+ 20, nil, 23, nil, 15, 14, 16, 22, nil, nil,
52
+ nil, 17, nil, 18, nil, nil, 21, 13, 19, 20,
53
+ nil, 23, nil, 15, 14, 16, 22, nil, 11, nil,
54
+ 17, nil, 18, nil, nil, 21, 13, 19, 20, nil,
55
+ 23, nil, 15, 14, 16, 22, nil, 11, nil, 17,
56
+ nil, 18, nil, nil, 21, 13, 19, 20, nil, 23,
57
+ nil, 15, 14, 16, 22, nil, 11, nil, 17, nil,
58
+ 18, nil, nil, 111, 13, 21, nil, 19, 20, nil,
59
+ 23, nil, 15, 14, 16, 22, nil, nil, nil, 17,
60
+ nil, 18, nil, nil, 21, 13, 19, 20, nil, 23,
61
+ nil, 15, 14, 16, 22, nil, nil, nil, 17, nil,
62
+ 18, nil, nil, 21, 13, 19, 20, nil, 23, nil,
63
+ 15, 14, 16, 22, nil, nil, nil, 17, nil, 18,
64
+ nil, nil, 21, 13, 19, 20, nil, 23, nil, 15,
65
+ 14, 16, 22, nil, nil, nil, 17, nil, 18, nil,
66
+ nil, 21, 13, 19, 20, nil, 23, nil, 15, 14,
67
+ 16, 22, nil, 11, nil, 17, nil, 18, nil, nil,
68
+ 21, 13, 19, 20, nil, 23, nil, 15, 14, 16,
69
+ 22, nil, 11, nil, 17, nil, 18, nil, nil, 21,
70
+ 13, 19, 20, nil, 23, nil, 15, 14, 16, 22,
71
+ nil, 11, nil, 17, nil, 18, nil, 133, 21, 13,
72
+ 19, 20, nil, 23, nil, 15, 14, 16, 22, nil,
73
+ 138, nil, 17, nil, 18, nil, nil, nil, 13, 140,
74
+ nil, nil, nil, 139, 57, 56, 58, 59, 60, 21,
75
+ nil, 19, 20, nil, 23, nil, 15, 14, 16, 22,
60
76
  nil, nil, nil, 17, nil, 18 ]
61
77
 
62
78
  racc_action_check = [
63
- 12, 40, 58, 82, 58, 58, 60, 58, 58, 58,
64
- 58, 58, 83, 57, 58, 84, 58, 57, 58, 60,
65
- 58, 58, 58, 58, 96, 12, 40, 7, 99, 7,
66
- 7, 102, 7, 7, 7, 7, 7, 103, 106, 7,
67
- 107, 7, 109, 7, 111, 7, 7, 7, 7, 17,
68
- 113, 17, 17, 0, 0, 73, 17, 73, 73, 17,
69
- 1, 17, 73, 6, 8, 73, 21, 0, 24, 17,
70
- 27, 11, 28, 11, 11, 73, 11, 30, 11, 11,
71
- 11, 32, 37, 11, 41, 11, 72, 11, 72, 72,
72
- 11, 72, 43, 72, 72, 72, 44, 45, 46, 47,
73
- 72, 78, 72, 78, 78, 72, 78, 49, 78, 78,
74
- 78, 50, 51, 78, 52, 78, 48, 78, 48, 48,
75
- 78, 48, 53, 48, 48, 48, 54, 56, 48, 59,
76
- 48, 90, 48, 90, 90, 48, 90, 67, 90, 90,
77
- 90, 71, 77, 90, nil, 90, 31, 90, 31, 31,
78
- 90, 31, nil, 31, 31, 31, nil, nil, 31, nil,
79
- 31, 62, 31, 62, 62, 31, 62, nil, 62, 62,
80
- 62, nil, nil, 62, nil, 62, nil, 62, nil, 62,
81
- 62, 5, nil, 5, 5, nil, 5, nil, 5, 5,
82
- 5, nil, nil, 5, nil, 5, 68, 5, 68, 68,
83
- 5, 68, nil, 68, 68, 68, nil, nil, nil, nil,
84
- 68, 69, 68, 69, 69, 68, 69, nil, 69, 69,
85
- 69, nil, nil, nil, nil, 69, 70, 69, 70, 70,
86
- 69, 70, nil, 70, 70, 70, nil, nil, nil, nil,
87
- 70, 18, 70, 18, 18, 70, 18, nil, 18, 18,
88
- 18, nil, nil, 18, nil, 18, nil, 18, 18, 105,
89
- 18, 105, 105, nil, 105, nil, 105, 105, 105, nil,
90
- nil, nil, nil, 105, 38, 105, 38, 38, 105, 38,
91
- nil, 38, 38, 38, nil, nil, nil, nil, 38, 39,
92
- 38, 39, 39, 38, 39, nil, 39, 39, 39, nil,
93
- nil, 39, nil, 39, 33, 39, 33, 33, 39, 33,
94
- nil, 33, 33, 33, nil, nil, 33, nil, 33, 101,
95
- 33, 101, 101, 33, 101, nil, 101, 101, 101, nil,
96
- nil, 101, nil, 101, 34, 101, 34, 34, 101, 34,
97
- nil, 34, 34, 34, nil, nil, 34, nil, 34, 13,
98
- 34, 13, 13, 34, 13, nil, 13, 13, 13, nil,
79
+ 12, 42, 30, 55, 72, 55, 55, 63, 55, 67,
80
+ 55, 55, 55, 55, 67, 97, 64, 55, 72, 55,
81
+ 0, 0, 58, 66, 58, 30, 12, 42, 55, 55,
82
+ 61, 69, 61, 61, 0, 61, 97, 61, 61, 61,
83
+ 61, 8, 61, 128, 61, 78, 61, 61, 60, 60,
84
+ 61, 61, 61, 61, 61, 61, 18, 143, 18, 18,
85
+ 132, 18, 82, 18, 18, 18, 18, 135, 18, 6,
86
+ 18, 88, 18, 18, 59, 59, 18, 18, 18, 18,
87
+ 18, 18, 70, 91, 70, 70, 95, 70, 1, 70,
88
+ 70, 70, 70, 102, 70, 103, 70, 104, 70, 29,
89
+ 70, 70, 70, 68, 70, 68, 68, 33, 68, 68,
90
+ 68, 68, 68, 68, 140, 68, 118, 68, 39, 68,
91
+ 121, 68, 68, 68, 68, 68, 7, 141, 7, 7,
92
+ 28, 7, 7, 7, 7, 7, 7, 43, 7, 45,
93
+ 7, 46, 7, 47, 7, 7, 7, 7, 7, 84,
94
+ 49, 84, 84, 139, 139, 17, 84, 17, 17, 84,
95
+ 48, 127, 17, 51, 52, 17, 53, 17, 54, 25,
96
+ 84, 21, 35, 62, 35, 35, 17, 35, nil, 35,
97
+ 35, 35, 35, nil, 35, nil, 35, nil, 35, nil,
98
+ nil, 5, 35, 5, 5, nil, 5, nil, 5, 5,
99
+ 5, 5, nil, 5, nil, 5, nil, 5, nil, nil,
100
+ 11, 5, 11, 11, nil, 11, nil, 11, 11, 11,
101
+ 11, nil, 11, nil, 11, nil, 11, nil, nil, 34,
102
+ 11, 34, 34, nil, 34, nil, 34, 34, 34, 34,
103
+ nil, 34, nil, 34, nil, 34, nil, nil, 36, 34,
104
+ 36, 36, nil, 36, nil, 36, 36, 36, 36, nil,
105
+ 36, nil, 36, nil, 36, nil, nil, 40, 36, 40,
106
+ 40, nil, 40, nil, 40, 40, 40, 40, nil, nil,
107
+ nil, 40, nil, 40, nil, nil, 41, 40, 41, 41,
108
+ nil, 41, nil, 41, 41, 41, 41, nil, 41, nil,
109
+ 41, nil, 41, nil, nil, 50, 41, 50, 50, nil,
110
+ 50, nil, 50, 50, 50, 50, nil, 50, nil, 50,
111
+ nil, 50, nil, nil, 71, 50, 71, 71, nil, 71,
112
+ nil, 71, 71, 71, 71, nil, 71, nil, 71, nil,
113
+ 71, nil, nil, 71, 71, 79, nil, 79, 79, nil,
114
+ 79, nil, 79, 79, 79, 79, nil, nil, nil, 79,
115
+ nil, 79, nil, nil, 80, 79, 80, 80, nil, 80,
116
+ nil, 80, 80, 80, 80, nil, nil, nil, 80, nil,
117
+ 80, nil, nil, 81, 80, 81, 81, nil, 81, nil,
118
+ 81, 81, 81, 81, nil, nil, nil, 81, nil, 81,
119
+ nil, nil, 83, 81, 83, 83, nil, 83, nil, 83,
120
+ 83, 83, 83, nil, nil, nil, 83, nil, 83, nil,
121
+ nil, 98, 83, 98, 98, nil, 98, nil, 98, 98,
122
+ 98, 98, nil, 98, nil, 98, nil, 98, nil, nil,
123
+ 111, 98, 111, 111, nil, 111, nil, 111, 111, 111,
124
+ 111, nil, 111, nil, 111, nil, 111, nil, nil, 126,
125
+ 111, 126, 126, nil, 126, nil, 126, 126, 126, 126,
126
+ nil, 126, nil, 126, nil, 126, nil, 126, 130, 126,
127
+ 130, 130, nil, 130, nil, 130, 130, 130, 130, nil,
128
+ 131, nil, 130, nil, 130, nil, nil, nil, 130, 131,
129
+ nil, nil, nil, 131, 131, 131, 131, 131, 131, 13,
130
+ nil, 13, 13, nil, 13, nil, 13, 13, 13, 13,
99
131
  nil, nil, nil, 13, nil, 13 ]
100
132
 
101
133
  racc_action_pointer = [
102
- 48, 60, nil, nil, nil, 174, 44, 20, 64, nil,
103
- nil, 64, -4, 342, nil, nil, nil, 42, 234, nil,
104
- nil, 52, nil, nil, 48, nil, nil, 68, 58, nil,
105
- 75, 139, 70, 297, 327, nil, nil, 62, 267, 282,
106
- -3, 73, nil, 84, 88, 83, 90, 97, 109, 85,
107
- 89, 101, 112, 98, 102, nil, 105, -8, -5, 111,
108
- -8, nil, 154, nil, nil, nil, nil, 107, 189, 204,
109
- 219, 119, 79, 48, nil, nil, nil, 123, 94, nil,
110
- nil, nil, 0, -7, -6, nil, nil, nil, nil, nil,
111
- 124, nil, nil, nil, nil, nil, 16, nil, nil, 26,
112
- nil, 312, 9, 18, nil, 252, 24, 26, nil, 20,
113
- nil, 33, nil, 32, nil, nil ]
134
+ 15, 88, nil, nil, nil, 184, 50, 119, 41, nil,
135
+ nil, 203, -4, 502, nil, nil, nil, 148, 49, nil,
136
+ nil, 157, nil, nil, nil, 149, nil, nil, 128, 85,
137
+ -9, nil, nil, 105, 222, 165, 241, nil, nil, 98,
138
+ 260, 279, -3, 126, nil, 131, 133, 129, 152, 148,
139
+ 298, 141, 142, 155, 157, -4, nil, nil, -8, 43,
140
+ 16, 23, 171, -17, -8, nil, 1, -12, 96, 13,
141
+ 75, 317, -10, nil, nil, nil, nil, nil, 14, 338,
142
+ 357, 376, 40, 395, 142, nil, nil, nil, 52, nil,
143
+ nil, 52, nil, nil, nil, 54, nil, 4, 414, nil,
144
+ nil, nil, 90, 76, 76, nil, nil, nil, nil, nil,
145
+ nil, 433, nil, nil, nil, nil, nil, nil, 108, nil,
146
+ nil, 118, nil, nil, nil, nil, 452, 139, 24, nil,
147
+ 471, 476, 46, nil, nil, 45, nil, nil, nil, 121,
148
+ 90, 109, nil, 25, nil ]
114
149
 
115
150
  racc_action_default = [
116
- -63, -63, -1, -2, -3, -63, -63, -11, -63, -4,
117
- -33, -63, -46, -63, -50, -51, -52, -37, -63, -59,
118
- -60, -63, -62, -5, -63, -12, -13, -14, -17, -20,
119
- -21, -63, -51, -63, -63, -27, 116, -63, -63, -63,
120
- -48, -63, -38, -63, -63, -63, -63, -43, -63, -63,
121
- -63, -51, -35, -63, -63, -57, -63, -30, -63, -19,
122
- -63, -22, -63, -25, -26, -34, -47, -63, -63, -63,
123
- -63, -63, -63, -37, -44, -54, -58, -63, -63, -55,
124
- -56, -61, -63, -63, -63, -15, -16, -18, -23, -24,
125
- -63, -29, -53, -49, -39, -40, -63, -42, -45, -9,
126
- -36, -63, -63, -63, -28, -63, -63, -6, -31, -63,
127
- -41, -63, -10, -7, -32, -8 ]
151
+ -86, -86, -1, -2, -3, -86, -86, -30, -86, -4,
152
+ -55, -86, -68, -86, -72, -73, -74, -59, -86, -81,
153
+ -82, -86, -84, -85, -5, -86, -31, -32, -33, -36,
154
+ -73, -41, -42, -43, -86, -86, -86, -49, 145, -86,
155
+ -86, -86, -70, -86, -60, -86, -86, -86, -86, -65,
156
+ -86, -86, -86, -86, -73, -13, -14, -15, -16, -18,
157
+ -86, -86, -57, -86, -86, -79, -86, -52, -86, -38,
158
+ -86, -86, -86, -44, -47, -48, -56, -69, -86, -86,
159
+ -86, -86, -86, -86, -59, -66, -76, -80, -86, -21,
160
+ -29, -17, -24, -19, -25, -20, -28, -79, -86, -77,
161
+ -78, -83, -86, -86, -86, -34, -35, -37, -39, -40,
162
+ -46, -86, -51, -45, -75, -71, -61, -62, -86, -64,
163
+ -67, -10, -23, -22, -27, -58, -86, -86, -86, -50,
164
+ -86, -86, -6, -9, -53, -86, -63, -11, -12, -13,
165
+ -86, -7, -54, -26, -8 ]
128
166
 
129
167
  racc_goto_table = [
130
- 2, 9, 54, 35, 66, 53, 23, 37, 50, 26,
131
- 42, 40, 25, 3, 4, 24, 82, 49, 89, 1,
132
- nil, nil, nil, nil, nil, nil, 67, 61, nil, 63,
133
- 64, nil, nil, nil, 93, 94, 95, nil, 97, nil,
134
- nil, nil, nil, nil, 74, nil, nil, nil, nil, nil,
135
- nil, nil, nil, nil, 35, nil, nil, nil, 91, nil,
136
- 86, nil, 88, 85, 98, 100, 42, nil, nil, nil,
137
- nil, 110, nil, nil, nil, nil, nil, 99, nil, nil,
138
- nil, nil, nil, 102, nil, nil, 104, nil, nil, nil,
139
- 112, nil, nil, nil, nil, nil, nil, 107, nil, nil,
140
- nil, nil, nil, 109 ]
168
+ 2, 9, 77, 37, 52, 44, 24, 39, 27, 26,
169
+ 42, 78, 1, 108, 102, 110, 25, 51, 4, 3,
170
+ 137, nil, nil, nil, nil, nil, nil, nil, nil, nil,
171
+ 73, 74, 75, nil, nil, nil, nil, nil, nil, nil,
172
+ nil, 115, 116, 117, nil, 119, 85, nil, nil, nil,
173
+ nil, nil, 42, nil, nil, nil, nil, nil, nil, nil,
174
+ nil, nil, nil, nil, 37, nil, 37, 112, 125, 106,
175
+ 105, 120, 44, 113, nil, nil, nil, nil, nil, nil,
176
+ nil, nil, nil, nil, nil, nil, nil, nil, 121, nil,
177
+ nil, nil, 136, nil, nil, nil, nil, nil, nil, nil,
178
+ nil, nil, nil, 127, nil, nil, nil, 129, nil, nil,
179
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
180
+ nil, nil, 132, nil, nil, nil, nil, nil, 135 ]
141
181
 
142
182
  racc_goto_check = [
143
- 2, 5, 8, 5, 15, 16, 2, 5, 18, 10,
144
- 13, 19, 9, 3, 4, 6, 7, 2, 14, 1,
145
- nil, nil, nil, nil, nil, nil, 16, 5, nil, 5,
146
- 5, nil, nil, nil, 15, 15, 15, nil, 15, nil,
147
- nil, nil, nil, nil, 5, nil, nil, nil, nil, nil,
148
- nil, nil, nil, nil, 5, nil, nil, nil, 5, nil,
149
- 10, nil, 10, 9, 18, 16, 13, nil, nil, nil,
150
- nil, 15, nil, nil, nil, nil, nil, 2, nil, nil,
151
- nil, nil, nil, 2, nil, nil, 5, nil, nil, nil,
152
- 8, nil, nil, nil, nil, nil, nil, 5, nil, nil,
153
- nil, nil, nil, 2 ]
183
+ 2, 5, 16, 5, 19, 14, 2, 5, 11, 10,
184
+ 20, 17, 1, 13, 7, 15, 6, 2, 4, 3,
185
+ 8, nil, nil, nil, nil, nil, nil, nil, nil, nil,
186
+ 5, 5, 5, nil, nil, nil, nil, nil, nil, nil,
187
+ nil, 16, 16, 16, nil, 16, 5, nil, nil, nil,
188
+ nil, nil, 20, nil, nil, nil, nil, nil, nil, nil,
189
+ nil, nil, nil, nil, 5, nil, 5, 5, 17, 11,
190
+ 10, 19, 14, 11, nil, nil, nil, nil, nil, nil,
191
+ nil, nil, nil, nil, nil, nil, nil, nil, 2, nil,
192
+ nil, nil, 16, nil, nil, nil, nil, nil, nil, nil,
193
+ nil, nil, nil, 2, nil, nil, nil, 5, nil, nil,
194
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
195
+ nil, nil, 5, nil, nil, nil, nil, nil, 2 ]
154
196
 
155
197
  racc_goto_pointer = [
156
- nil, 19, 0, 13, 14, -4, 8, -41, -16, 5,
157
- 2, nil, nil, -7, -44, -34, -13, nil, -9, -2 ]
198
+ nil, 12, 0, 19, 18, -4, 9, -53, -111, nil,
199
+ 2, 1, nil, -57, -12, -56, -38, -30, nil, -13,
200
+ -3 ]
158
201
 
159
202
  racc_goto_default = [
160
- nil, nil, nil, nil, nil, 52, nil, nil, nil, nil,
161
- nil, 27, 28, 30, nil, 10, nil, 47, nil, 12 ]
203
+ nil, nil, nil, nil, nil, 62, nil, nil, 64, 53,
204
+ nil, nil, 28, 29, 33, nil, 10, 63, 49, nil,
205
+ 12 ]
162
206
 
163
207
  racc_reduce_table = [
164
208
  0, 0, :racc_error,
165
- 1, 33, :_reduce_1,
166
- 1, 33, :_reduce_2,
167
- 1, 33, :_reduce_3,
168
- 2, 35, :_reduce_4,
169
- 2, 36, :_reduce_5,
170
- 6, 34, :_reduce_6,
171
- 7, 34, :_reduce_7,
172
- 8, 34, :_reduce_8,
173
- 3, 40, :_reduce_9,
174
- 5, 40, :_reduce_10,
175
- 0, 38, :_reduce_11,
176
- 1, 38, :_reduce_12,
177
- 1, 38, :_reduce_13,
178
- 1, 41, :_reduce_14,
179
- 3, 41, :_reduce_15,
180
- 3, 41, :_reduce_16,
181
- 1, 43, :_reduce_17,
182
- 3, 43, :_reduce_18,
183
- 2, 43, :_reduce_19,
184
- 1, 43, :_reduce_20,
185
- 1, 42, :_reduce_21,
186
- 2, 42, :_reduce_22,
187
- 3, 42, :_reduce_23,
188
- 3, 45, :_reduce_24,
189
- 2, 44, :_reduce_25,
190
- 2, 44, :_reduce_26,
191
- 1, 44, :_reduce_27,
192
- 2, 46, :_reduce_28,
193
- 1, 46, :_reduce_29,
194
- 0, 39, :_reduce_30,
195
- 3, 39, :_reduce_31,
196
- 4, 39, :_reduce_32,
197
- 1, 37, :_reduce_33,
198
- 3, 37, :_reduce_34,
199
- 1, 48, :_reduce_35,
200
- 3, 48, :_reduce_36,
201
- 0, 49, :_reduce_none,
202
- 1, 49, :_reduce_38,
203
- 3, 49, :_reduce_39,
204
- 3, 49, :_reduce_40,
205
- 5, 49, :_reduce_41,
206
- 3, 49, :_reduce_42,
207
- 1, 50, :_reduce_43,
208
- 2, 50, :_reduce_44,
209
- 3, 50, :_reduce_45,
210
- 1, 47, :_reduce_46,
211
- 3, 47, :_reduce_47,
212
- 2, 47, :_reduce_48,
213
- 4, 47, :_reduce_49,
214
- 1, 51, :_reduce_50,
209
+ 1, 37, :_reduce_1,
210
+ 1, 37, :_reduce_2,
211
+ 1, 37, :_reduce_3,
212
+ 2, 39, :_reduce_4,
213
+ 2, 40, :_reduce_5,
214
+ 6, 38, :_reduce_6,
215
+ 7, 38, :_reduce_7,
216
+ 8, 38, :_reduce_8,
217
+ 6, 38, :_reduce_9,
218
+ 3, 44, :_reduce_10,
219
+ 5, 44, :_reduce_11,
220
+ 1, 45, :_reduce_12,
221
+ 1, 45, :_reduce_13,
222
+ 1, 45, :_reduce_14,
223
+ 1, 45, :_reduce_15,
224
+ 1, 45, :_reduce_16,
225
+ 2, 45, :_reduce_17,
226
+ 1, 45, :_reduce_18,
227
+ 2, 45, :_reduce_19,
228
+ 2, 45, :_reduce_20,
229
+ 2, 45, :_reduce_21,
230
+ 3, 45, :_reduce_22,
231
+ 3, 45, :_reduce_23,
232
+ 2, 45, :_reduce_24,
233
+ 2, 45, :_reduce_25,
234
+ 2, 45, :_reduce_26,
235
+ 3, 45, :_reduce_27,
236
+ 2, 45, :_reduce_28,
237
+ 2, 45, :_reduce_29,
238
+ 0, 42, :_reduce_30,
239
+ 1, 42, :_reduce_31,
240
+ 1, 42, :_reduce_32,
241
+ 1, 46, :_reduce_33,
242
+ 3, 46, :_reduce_34,
243
+ 3, 46, :_reduce_35,
244
+ 1, 48, :_reduce_36,
245
+ 3, 48, :_reduce_37,
246
+ 2, 48, :_reduce_38,
247
+ 3, 48, :_reduce_39,
248
+ 3, 48, :_reduce_40,
249
+ 1, 48, :_reduce_41,
250
+ 1, 48, :_reduce_42,
251
+ 1, 47, :_reduce_43,
252
+ 2, 47, :_reduce_44,
253
+ 3, 47, :_reduce_45,
254
+ 3, 50, :_reduce_46,
255
+ 2, 49, :_reduce_47,
256
+ 2, 49, :_reduce_48,
257
+ 1, 49, :_reduce_49,
258
+ 2, 51, :_reduce_50,
215
259
  1, 51, :_reduce_51,
216
- 1, 51, :_reduce_52,
217
- 4, 51, :_reduce_53,
218
- 3, 51, :_reduce_54,
219
- 3, 51, :_reduce_55,
220
- 3, 51, :_reduce_56,
221
- 2, 51, :_reduce_57,
222
- 3, 51, :_reduce_58,
223
- 1, 51, :_reduce_59,
224
- 1, 51, :_reduce_60,
225
- 3, 51, :_reduce_61,
226
- 1, 51, :_reduce_62 ]
227
-
228
- racc_reduce_n = 63
229
-
230
- racc_shift_n = 116
260
+ 0, 43, :_reduce_52,
261
+ 3, 43, :_reduce_53,
262
+ 4, 43, :_reduce_54,
263
+ 1, 41, :_reduce_55,
264
+ 3, 41, :_reduce_56,
265
+ 1, 53, :_reduce_57,
266
+ 3, 53, :_reduce_58,
267
+ 0, 54, :_reduce_none,
268
+ 1, 54, :_reduce_60,
269
+ 3, 54, :_reduce_61,
270
+ 3, 54, :_reduce_62,
271
+ 5, 54, :_reduce_63,
272
+ 3, 54, :_reduce_64,
273
+ 1, 55, :_reduce_65,
274
+ 2, 55, :_reduce_66,
275
+ 3, 55, :_reduce_67,
276
+ 1, 52, :_reduce_68,
277
+ 3, 52, :_reduce_69,
278
+ 2, 52, :_reduce_70,
279
+ 4, 52, :_reduce_71,
280
+ 1, 56, :_reduce_72,
281
+ 1, 56, :_reduce_73,
282
+ 1, 56, :_reduce_74,
283
+ 4, 56, :_reduce_75,
284
+ 3, 56, :_reduce_76,
285
+ 3, 56, :_reduce_77,
286
+ 3, 56, :_reduce_78,
287
+ 2, 56, :_reduce_79,
288
+ 3, 56, :_reduce_80,
289
+ 1, 56, :_reduce_81,
290
+ 1, 56, :_reduce_82,
291
+ 3, 56, :_reduce_83,
292
+ 1, 56, :_reduce_84,
293
+ 1, 56, :_reduce_85 ]
294
+
295
+ racc_reduce_n = 86
296
+
297
+ racc_shift_n = 145
231
298
 
232
299
  racc_token_table = {
233
300
  false => 0,
@@ -255,15 +322,19 @@ racc_token_table = {
255
322
  :RBRACE => 22,
256
323
  :LBRACKET => 23,
257
324
  :RBRACKET => 24,
258
- :QUERY => 25,
259
- :BANG => 26,
260
- :STARSTAR => 27,
261
- :STAR => 28,
262
- :LESS => 29,
263
- :GREATER => 30,
264
- :EOF => 31 }
265
-
266
- racc_nt_base = 32
325
+ :COMP => 25,
326
+ :QUERY => 26,
327
+ :BANG => 27,
328
+ :STARSTAR => 28,
329
+ :STAR => 29,
330
+ :LESS => 30,
331
+ :GREATER => 31,
332
+ :EQUAL => 32,
333
+ :TILDE => 33,
334
+ :BIND => 34,
335
+ :EOF => 35 }
336
+
337
+ racc_nt_base = 36
267
338
 
268
339
  racc_use_result_var = true
269
340
 
@@ -309,12 +380,16 @@ Racc_token_to_s_table = [
309
380
  "RBRACE",
310
381
  "LBRACKET",
311
382
  "RBRACKET",
383
+ "COMP",
312
384
  "QUERY",
313
385
  "BANG",
314
386
  "STARSTAR",
315
387
  "STAR",
316
388
  "LESS",
317
389
  "GREATER",
390
+ "EQUAL",
391
+ "TILDE",
392
+ "BIND",
318
393
  "EOF",
319
394
  "$start",
320
395
  "entry",
@@ -325,6 +400,7 @@ Racc_token_to_s_table = [
325
400
  "arg_list",
326
401
  "block",
327
402
  "method_sig_list",
403
+ "method_name",
328
404
  "nonempty_arg_list",
329
405
  "named_arg_list",
330
406
  "arg",
@@ -402,301 +478,456 @@ module_eval(<<'.,.,', 'parser.racc', 36)
402
478
  end
403
479
  .,.,
404
480
 
405
- module_eval(<<'.,.,', 'parser.racc', 40)
481
+ module_eval(<<'.,.,', 'parser.racc', 39)
406
482
  def _reduce_9(val, _values, result)
407
- result = [val[0].to_sym, val[2]]
483
+ result = RDL::Type::MethodType.new(val[1], val[3], RDL::Type::ComputedType.new(val[5]))
484
+
408
485
  result
409
486
  end
410
487
  .,.,
411
488
 
412
- module_eval(<<'.,.,', 'parser.racc', 41)
489
+ module_eval(<<'.,.,', 'parser.racc', 43)
413
490
  def _reduce_10(val, _values, result)
414
- result = [val[0].to_sym, val[2]] + val[4]
491
+ result = [val[0], val[2]]
415
492
  result
416
493
  end
417
494
  .,.,
418
495
 
419
496
  module_eval(<<'.,.,', 'parser.racc', 44)
420
497
  def _reduce_11(val, _values, result)
421
- result = []
498
+ result = [val[0], val[2]] + val[4]
422
499
  result
423
500
  end
424
501
  .,.,
425
502
 
426
- module_eval(<<'.,.,', 'parser.racc', 45)
503
+ module_eval(<<'.,.,', 'parser.racc', 47)
427
504
  def _reduce_12(val, _values, result)
428
- result = val[0]
505
+ result = val[0].to_sym
429
506
  result
430
507
  end
431
508
  .,.,
432
509
 
433
- module_eval(<<'.,.,', 'parser.racc', 47)
510
+ module_eval(<<'.,.,', 'parser.racc', 48)
434
511
  def _reduce_13(val, _values, result)
435
- result = [RDL::Type::FiniteHashType.new(Hash[*val[0][0]], val[0][1])]
436
-
512
+ result = :!
437
513
  result
438
514
  end
439
515
  .,.,
440
516
 
441
- module_eval(<<'.,.,', 'parser.racc', 50)
517
+ module_eval(<<'.,.,', 'parser.racc', 49)
442
518
  def _reduce_14(val, _values, result)
443
- result = [val[0]]
519
+ result = :*
444
520
  result
445
521
  end
446
522
  .,.,
447
523
 
448
- module_eval(<<'.,.,', 'parser.racc', 51)
524
+ module_eval(<<'.,.,', 'parser.racc', 50)
449
525
  def _reduce_15(val, _values, result)
450
- result = val[2].unshift val[0]
526
+ result = :**
451
527
  result
452
528
  end
453
529
  .,.,
454
530
 
455
- module_eval(<<'.,.,', 'parser.racc', 52)
531
+ module_eval(<<'.,.,', 'parser.racc', 51)
456
532
  def _reduce_16(val, _values, result)
457
- # named arg list must come last
458
- result = [val[0], RDL::Type::FiniteHashType.new(Hash[*val[2][0]], val[2][1])]
459
-
533
+ result = :<
460
534
  result
461
535
  end
462
536
  .,.,
463
537
 
464
- module_eval(<<'.,.,', 'parser.racc', 56)
538
+ module_eval(<<'.,.,', 'parser.racc', 52)
465
539
  def _reduce_17(val, _values, result)
466
- result = val[0]
540
+ result = :<=
467
541
  result
468
542
  end
469
543
  .,.,
470
544
 
471
- module_eval(<<'.,.,', 'parser.racc', 57)
545
+ module_eval(<<'.,.,', 'parser.racc', 53)
472
546
  def _reduce_18(val, _values, result)
473
- result = RDL::Type::DependentArgType.new(val[1], val[0], val[2])
547
+ result = :>
474
548
  result
475
549
  end
476
550
  .,.,
477
551
 
478
- module_eval(<<'.,.,', 'parser.racc', 58)
552
+ module_eval(<<'.,.,', 'parser.racc', 54)
479
553
  def _reduce_19(val, _values, result)
480
- result = RDL::Type::AnnotatedArgType.new(val[1], val[0])
554
+ result = :>=
481
555
  result
482
556
  end
483
557
  .,.,
484
558
 
485
- module_eval(<<'.,.,', 'parser.racc', 59)
559
+ module_eval(<<'.,.,', 'parser.racc', 55)
486
560
  def _reduce_20(val, _values, result)
487
- result = RDL::Type::DotsQuery.new
561
+ result = :==
488
562
  result
489
563
  end
490
564
  .,.,
491
565
 
492
- module_eval(<<'.,.,', 'parser.racc', 61)
566
+ module_eval(<<'.,.,', 'parser.racc', 56)
493
567
  def _reduce_21(val, _values, result)
494
- result = [val[0], nil]
568
+ result = :!=
495
569
  result
496
570
  end
497
571
  .,.,
498
572
 
499
- module_eval(<<'.,.,', 'parser.racc', 62)
573
+ module_eval(<<'.,.,', 'parser.racc', 57)
500
574
  def _reduce_22(val, _values, result)
501
- result = [[], val[1]]
575
+ result = :===
502
576
  result
503
577
  end
504
578
  .,.,
505
579
 
506
- module_eval(<<'.,.,', 'parser.racc', 63)
580
+ module_eval(<<'.,.,', 'parser.racc', 58)
507
581
  def _reduce_23(val, _values, result)
508
- result = [val[0] + val[2][0], val[2][1]]
582
+ result = :<=>
509
583
  result
510
584
  end
511
585
  .,.,
512
586
 
513
- module_eval(<<'.,.,', 'parser.racc', 65)
587
+ module_eval(<<'.,.,', 'parser.racc', 59)
514
588
  def _reduce_24(val, _values, result)
515
- result = [val[0].to_sym, val[2]]
589
+ result = :<<
516
590
  result
517
591
  end
518
592
  .,.,
519
593
 
520
- module_eval(<<'.,.,', 'parser.racc', 68)
594
+ module_eval(<<'.,.,', 'parser.racc', 60)
521
595
  def _reduce_25(val, _values, result)
522
- result = RDL::Type::OptionalType.new val[1]
596
+ result = :>>
523
597
  result
524
598
  end
525
599
  .,.,
526
600
 
527
- module_eval(<<'.,.,', 'parser.racc', 69)
601
+ module_eval(<<'.,.,', 'parser.racc', 61)
528
602
  def _reduce_26(val, _values, result)
529
- result = RDL::Type::VarargType.new val[1]
603
+ result = :[]
530
604
  result
531
605
  end
532
606
  .,.,
533
607
 
534
- module_eval(<<'.,.,', 'parser.racc', 70)
608
+ module_eval(<<'.,.,', 'parser.racc', 62)
535
609
  def _reduce_27(val, _values, result)
536
- result = val[0]
610
+ result = :[]=
537
611
  result
538
612
  end
539
613
  .,.,
540
614
 
541
- module_eval(<<'.,.,', 'parser.racc', 72)
615
+ module_eval(<<'.,.,', 'parser.racc', 63)
542
616
  def _reduce_28(val, _values, result)
543
- result = RDL::Type::OptionalType.new val[1]
617
+ result = :=~
544
618
  result
545
619
  end
546
620
  .,.,
547
621
 
548
- module_eval(<<'.,.,', 'parser.racc', 73)
622
+ module_eval(<<'.,.,', 'parser.racc', 64)
549
623
  def _reduce_29(val, _values, result)
550
- result = val[0]
624
+ result = :!~
551
625
  result
552
626
  end
553
627
  .,.,
554
628
 
555
- module_eval(<<'.,.,', 'parser.racc', 76)
629
+ module_eval(<<'.,.,', 'parser.racc', 67)
556
630
  def _reduce_30(val, _values, result)
557
- result = nil
631
+ result = []
558
632
  result
559
633
  end
560
634
  .,.,
561
635
 
562
- module_eval(<<'.,.,', 'parser.racc', 77)
636
+ module_eval(<<'.,.,', 'parser.racc', 68)
563
637
  def _reduce_31(val, _values, result)
564
- result = val[1]
638
+ result = val[0]
565
639
  result
566
640
  end
567
641
  .,.,
568
642
 
569
- module_eval(<<'.,.,', 'parser.racc', 78)
643
+ module_eval(<<'.,.,', 'parser.racc', 70)
570
644
  def _reduce_32(val, _values, result)
571
- result = RDL::Type::OptionalType.new val[2]
645
+ result = [RDL::Type::FiniteHashType.new(Hash[*val[0][0]], val[0][1])]
646
+
572
647
  result
573
648
  end
574
649
  .,.,
575
650
 
576
- module_eval(<<'.,.,', 'parser.racc', 81)
651
+ module_eval(<<'.,.,', 'parser.racc', 73)
577
652
  def _reduce_33(val, _values, result)
578
- result = val[0]
653
+ result = [val[0]]
579
654
  result
580
655
  end
581
656
  .,.,
582
657
 
583
- module_eval(<<'.,.,', 'parser.racc', 82)
658
+ module_eval(<<'.,.,', 'parser.racc', 74)
584
659
  def _reduce_34(val, _values, result)
585
- result = val[1]
660
+ result = val[2].unshift val[0]
586
661
  result
587
662
  end
588
663
  .,.,
589
664
 
590
- module_eval(<<'.,.,', 'parser.racc', 85)
665
+ module_eval(<<'.,.,', 'parser.racc', 75)
591
666
  def _reduce_35(val, _values, result)
592
- result = [val[0]]
667
+ # named arg list must come last
668
+ result = [val[0], RDL::Type::FiniteHashType.new(Hash[*val[2][0]], val[2][1])]
669
+
593
670
  result
594
671
  end
595
672
  .,.,
596
673
 
597
- module_eval(<<'.,.,', 'parser.racc', 86)
674
+ module_eval(<<'.,.,', 'parser.racc', 79)
598
675
  def _reduce_36(val, _values, result)
599
- result = [val[0]] + val[2]
676
+ result = val[0]
600
677
  result
601
678
  end
602
679
  .,.,
603
680
 
604
- # reduce 37 omitted
681
+ module_eval(<<'.,.,', 'parser.racc', 80)
682
+ def _reduce_37(val, _values, result)
683
+ result = RDL::Type::DependentArgType.new(val[1], val[0], val[2])
684
+ result
685
+ end
686
+ .,.,
605
687
 
606
- module_eval(<<'.,.,', 'parser.racc', 89)
688
+ module_eval(<<'.,.,', 'parser.racc', 81)
607
689
  def _reduce_38(val, _values, result)
608
- result = val[0]
690
+ result = RDL::Type::AnnotatedArgType.new(val[1], val[0])
609
691
  result
610
692
  end
611
693
  .,.,
612
694
 
613
- module_eval(<<'.,.,', 'parser.racc', 90)
695
+ module_eval(<<'.,.,', 'parser.racc', 82)
614
696
  def _reduce_39(val, _values, result)
615
- result = [val[0].to_i, val[2]]
697
+ result = RDL::Type::BoundArgType.new(val[0], val[2])
616
698
  result
617
699
  end
618
700
  .,.,
619
701
 
620
- module_eval(<<'.,.,', 'parser.racc', 91)
702
+ module_eval(<<'.,.,', 'parser.racc', 83)
621
703
  def _reduce_40(val, _values, result)
622
- result = [val[0].to_f, val[2]]
704
+ result = RDL::Type::BoundArgType.new(val[0], RDL::Type::ComputedType.new(val[2]))
623
705
  result
624
706
  end
625
707
  .,.,
626
708
 
627
- module_eval(<<'.,.,', 'parser.racc', 93)
709
+ module_eval(<<'.,.,', 'parser.racc', 84)
628
710
  def _reduce_41(val, _values, result)
629
- result = [Kernel.const_get(val[0]), val[2]]
630
-
711
+ result = RDL::Type::ComputedType.new(val[0])
631
712
  result
632
713
  end
633
714
  .,.,
634
715
 
635
- module_eval(<<'.,.,', 'parser.racc', 95)
716
+ module_eval(<<'.,.,', 'parser.racc', 85)
636
717
  def _reduce_42(val, _values, result)
637
- result = [val[0], val[2]]
718
+ result = RDL::Type::DotsQuery.new
638
719
  result
639
720
  end
640
721
  .,.,
641
722
 
642
- module_eval(<<'.,.,', 'parser.racc', 98)
723
+ module_eval(<<'.,.,', 'parser.racc', 87)
643
724
  def _reduce_43(val, _values, result)
644
725
  result = [val[0], nil]
645
726
  result
646
727
  end
647
728
  .,.,
648
729
 
649
- module_eval(<<'.,.,', 'parser.racc', 99)
730
+ module_eval(<<'.,.,', 'parser.racc', 88)
650
731
  def _reduce_44(val, _values, result)
651
732
  result = [[], val[1]]
652
733
  result
653
734
  end
654
735
  .,.,
655
736
 
656
- module_eval(<<'.,.,', 'parser.racc', 100)
737
+ module_eval(<<'.,.,', 'parser.racc', 89)
657
738
  def _reduce_45(val, _values, result)
658
739
  result = [val[0] + val[2][0], val[2][1]]
659
740
  result
660
741
  end
661
742
  .,.,
662
743
 
663
- module_eval(<<'.,.,', 'parser.racc', 103)
744
+ module_eval(<<'.,.,', 'parser.racc', 91)
664
745
  def _reduce_46(val, _values, result)
746
+ result = [val[0].to_sym, val[2]]
747
+ result
748
+ end
749
+ .,.,
750
+
751
+ module_eval(<<'.,.,', 'parser.racc', 94)
752
+ def _reduce_47(val, _values, result)
753
+ result = RDL::Type::OptionalType.new val[1]
754
+ result
755
+ end
756
+ .,.,
757
+
758
+ module_eval(<<'.,.,', 'parser.racc', 95)
759
+ def _reduce_48(val, _values, result)
760
+ result = RDL::Type::VarargType.new val[1]
761
+ result
762
+ end
763
+ .,.,
764
+
765
+ module_eval(<<'.,.,', 'parser.racc', 96)
766
+ def _reduce_49(val, _values, result)
767
+ result = val[0]
768
+ result
769
+ end
770
+ .,.,
771
+
772
+ module_eval(<<'.,.,', 'parser.racc', 98)
773
+ def _reduce_50(val, _values, result)
774
+ result = RDL::Type::OptionalType.new val[1]
775
+ result
776
+ end
777
+ .,.,
778
+
779
+ module_eval(<<'.,.,', 'parser.racc', 99)
780
+ def _reduce_51(val, _values, result)
665
781
  result = val[0]
666
782
  result
667
783
  end
668
784
  .,.,
669
785
 
786
+ module_eval(<<'.,.,', 'parser.racc', 102)
787
+ def _reduce_52(val, _values, result)
788
+ result = nil
789
+ result
790
+ end
791
+ .,.,
792
+
793
+ module_eval(<<'.,.,', 'parser.racc', 103)
794
+ def _reduce_53(val, _values, result)
795
+ result = val[1]
796
+ result
797
+ end
798
+ .,.,
799
+
670
800
  module_eval(<<'.,.,', 'parser.racc', 104)
671
- def _reduce_47(val, _values, result)
801
+ def _reduce_54(val, _values, result)
802
+ result = RDL::Type::OptionalType.new val[2]
803
+ result
804
+ end
805
+ .,.,
806
+
807
+ module_eval(<<'.,.,', 'parser.racc', 107)
808
+ def _reduce_55(val, _values, result)
809
+ result = val[0]
810
+ result
811
+ end
812
+ .,.,
813
+
814
+ module_eval(<<'.,.,', 'parser.racc', 108)
815
+ def _reduce_56(val, _values, result)
816
+ result = val[1]
817
+ result
818
+ end
819
+ .,.,
820
+
821
+ module_eval(<<'.,.,', 'parser.racc', 111)
822
+ def _reduce_57(val, _values, result)
823
+ result = [val[0]]
824
+ result
825
+ end
826
+ .,.,
827
+
828
+ module_eval(<<'.,.,', 'parser.racc', 112)
829
+ def _reduce_58(val, _values, result)
830
+ result = [val[0]] + val[2]
831
+ result
832
+ end
833
+ .,.,
834
+
835
+ # reduce 59 omitted
836
+
837
+ module_eval(<<'.,.,', 'parser.racc', 115)
838
+ def _reduce_60(val, _values, result)
839
+ result = val[0]
840
+ result
841
+ end
842
+ .,.,
843
+
844
+ module_eval(<<'.,.,', 'parser.racc', 116)
845
+ def _reduce_61(val, _values, result)
846
+ result = [val[0].to_i, val[2]]
847
+ result
848
+ end
849
+ .,.,
850
+
851
+ module_eval(<<'.,.,', 'parser.racc', 117)
852
+ def _reduce_62(val, _values, result)
853
+ result = [val[0].to_f, val[2]]
854
+ result
855
+ end
856
+ .,.,
857
+
858
+ module_eval(<<'.,.,', 'parser.racc', 119)
859
+ def _reduce_63(val, _values, result)
860
+ result = [Kernel.const_get(val[0]), val[2]]
861
+
862
+ result
863
+ end
864
+ .,.,
865
+
866
+ module_eval(<<'.,.,', 'parser.racc', 121)
867
+ def _reduce_64(val, _values, result)
868
+ result = [val[0], val[2]]
869
+ result
870
+ end
871
+ .,.,
872
+
873
+ module_eval(<<'.,.,', 'parser.racc', 124)
874
+ def _reduce_65(val, _values, result)
875
+ result = [val[0], nil]
876
+ result
877
+ end
878
+ .,.,
879
+
880
+ module_eval(<<'.,.,', 'parser.racc', 125)
881
+ def _reduce_66(val, _values, result)
882
+ result = [[], val[1]]
883
+ result
884
+ end
885
+ .,.,
886
+
887
+ module_eval(<<'.,.,', 'parser.racc', 126)
888
+ def _reduce_67(val, _values, result)
889
+ result = [val[0] + val[2][0], val[2][1]]
890
+ result
891
+ end
892
+ .,.,
893
+
894
+ module_eval(<<'.,.,', 'parser.racc', 129)
895
+ def _reduce_68(val, _values, result)
896
+ result = val[0]
897
+ result
898
+ end
899
+ .,.,
900
+
901
+ module_eval(<<'.,.,', 'parser.racc', 130)
902
+ def _reduce_69(val, _values, result)
672
903
  result = RDL::Type::UnionType.new val[0], val[2]
673
904
  result
674
905
  end
675
906
  .,.,
676
907
 
677
- module_eval(<<'.,.,', 'parser.racc', 105)
678
- def _reduce_48(val, _values, result)
908
+ module_eval(<<'.,.,', 'parser.racc', 131)
909
+ def _reduce_70(val, _values, result)
679
910
  result = RDL::Type::NonNullType.new val[1]
680
911
  result
681
912
  end
682
913
  .,.,
683
914
 
684
- module_eval(<<'.,.,', 'parser.racc', 106)
685
- def _reduce_49(val, _values, result)
915
+ module_eval(<<'.,.,', 'parser.racc', 132)
916
+ def _reduce_71(val, _values, result)
686
917
  result = RDL::Type::UnionType.new(RDL::Type::NonNullType.new(val[1]), val[3])
687
918
  result
688
919
  end
689
920
  .,.,
690
921
 
691
- module_eval(<<'.,.,', 'parser.racc', 109)
692
- def _reduce_50(val, _values, result)
922
+ module_eval(<<'.,.,', 'parser.racc', 135)
923
+ def _reduce_72(val, _values, result)
693
924
  result = RDL::Type::SingletonType.new(val[0].to_sym)
694
925
  result
695
926
  end
696
927
  .,.,
697
928
 
698
- module_eval(<<'.,.,', 'parser.racc', 111)
699
- def _reduce_51(val, _values, result)
929
+ module_eval(<<'.,.,', 'parser.racc', 137)
930
+ def _reduce_73(val, _values, result)
700
931
  if val[0] == 'nil' then
701
932
  result = RDL::Globals.types[:nil]
702
933
  elsif val[0] == 'true' then
@@ -713,8 +944,8 @@ module_eval(<<'.,.,', 'parser.racc', 111)
713
944
  end
714
945
  .,.,
715
946
 
716
- module_eval(<<'.,.,', 'parser.racc', 124)
717
- def _reduce_52(val, _values, result)
947
+ module_eval(<<'.,.,', 'parser.racc', 150)
948
+ def _reduce_74(val, _values, result)
718
949
  if RDL::Globals.special_types.has_key? val[0] then
719
950
  result = RDL::Globals.special_types[val[0]]
720
951
  else
@@ -725,77 +956,84 @@ module_eval(<<'.,.,', 'parser.racc', 124)
725
956
  end
726
957
  .,.,
727
958
 
728
- module_eval(<<'.,.,', 'parser.racc', 131)
729
- def _reduce_53(val, _values, result)
959
+ module_eval(<<'.,.,', 'parser.racc', 157)
960
+ def _reduce_75(val, _values, result)
730
961
  result = RDL::Type::GenericType.new(val[0], *val[2])
731
962
 
732
963
  result
733
964
  end
734
965
  .,.,
735
966
 
736
- module_eval(<<'.,.,', 'parser.racc', 133)
737
- def _reduce_54(val, _values, result)
967
+ module_eval(<<'.,.,', 'parser.racc', 159)
968
+ def _reduce_76(val, _values, result)
738
969
  result = val[1]
739
970
  result
740
971
  end
741
972
  .,.,
742
973
 
743
- module_eval(<<'.,.,', 'parser.racc', 135)
744
- def _reduce_55(val, _values, result)
974
+ module_eval(<<'.,.,', 'parser.racc', 161)
975
+ def _reduce_77(val, _values, result)
745
976
  result = RDL::Type::TupleType.new(*val[1])
746
977
 
747
978
  result
748
979
  end
749
980
  .,.,
750
981
 
751
- module_eval(<<'.,.,', 'parser.racc', 138)
752
- def _reduce_56(val, _values, result)
982
+ module_eval(<<'.,.,', 'parser.racc', 164)
983
+ def _reduce_78(val, _values, result)
753
984
  result = RDL::Type::StructuralType.new(Hash[*val[1]])
754
985
 
755
986
  result
756
987
  end
757
988
  .,.,
758
989
 
759
- module_eval(<<'.,.,', 'parser.racc', 141)
760
- def _reduce_57(val, _values, result)
990
+ module_eval(<<'.,.,', 'parser.racc', 167)
991
+ def _reduce_79(val, _values, result)
761
992
  result = RDL::Type::TupleType.new
762
993
 
763
994
  result
764
995
  end
765
996
  .,.,
766
997
 
767
- module_eval(<<'.,.,', 'parser.racc', 144)
768
- def _reduce_58(val, _values, result)
998
+ module_eval(<<'.,.,', 'parser.racc', 170)
999
+ def _reduce_80(val, _values, result)
769
1000
  result = RDL::Type::FiniteHashType.new(Hash[*val[1][0]], val[1][1])
770
1001
 
771
1002
  result
772
1003
  end
773
1004
  .,.,
774
1005
 
775
- module_eval(<<'.,.,', 'parser.racc', 146)
776
- def _reduce_59(val, _values, result)
1006
+ module_eval(<<'.,.,', 'parser.racc', 172)
1007
+ def _reduce_81(val, _values, result)
777
1008
  result = RDL::Type::SingletonType.new(val[0].to_i)
778
1009
  result
779
1010
  end
780
1011
  .,.,
781
1012
 
782
- module_eval(<<'.,.,', 'parser.racc', 147)
783
- def _reduce_60(val, _values, result)
1013
+ module_eval(<<'.,.,', 'parser.racc', 173)
1014
+ def _reduce_82(val, _values, result)
784
1015
  result = RDL::Type::SingletonType.new(val[0].to_f)
785
1016
  result
786
1017
  end
787
1018
  .,.,
788
1019
 
789
- module_eval(<<'.,.,', 'parser.racc', 149)
790
- def _reduce_61(val, _values, result)
1020
+ module_eval(<<'.,.,', 'parser.racc', 175)
1021
+ def _reduce_83(val, _values, result)
791
1022
  result = RDL::Type::SingletonType.new(Kernel.const_get(val[1]))
792
1023
 
793
1024
  result
794
1025
  end
795
1026
  .,.,
796
1027
 
797
- module_eval(<<'.,.,', 'parser.racc', 153)
798
- def _reduce_62(val, _values, result)
1028
+ module_eval(<<'.,.,', 'parser.racc', 178)
1029
+ def _reduce_84(val, _values, result)
1030
+ result = RDL::Type::PreciseStringType.new(val[0])
1031
+ result
1032
+ end
1033
+ .,.,
1034
+
1035
+ module_eval(<<'.,.,', 'parser.racc', 179)
1036
+ def _reduce_85(val, _values, result)
799
1037
  result = RDL::Type::WildQuery.new
800
1038
  result
801
1039
  end