rdl 2.1.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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