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.
- checksums.yaml +5 -5
- data/.gitignore +1 -0
- data/.travis.yml +7 -6
- data/CHANGES.md +29 -0
- data/README.md +94 -26
- data/lib/rdl/boot.rb +82 -41
- data/lib/rdl/boot_rails.rb +5 -0
- data/lib/rdl/config.rb +9 -1
- data/lib/rdl/query.rb +2 -2
- data/lib/rdl/typecheck.rb +972 -225
- data/lib/rdl/types/annotated_arg.rb +8 -0
- data/lib/rdl/types/ast_node.rb +73 -0
- data/lib/rdl/types/bot.rb +8 -0
- data/lib/rdl/types/bound_arg.rb +63 -0
- data/lib/rdl/types/computed.rb +48 -0
- data/lib/rdl/types/dependent_arg.rb +9 -0
- data/lib/rdl/types/dynamic.rb +61 -0
- data/lib/rdl/types/finite_hash.rb +54 -9
- data/lib/rdl/types/generic.rb +33 -0
- data/lib/rdl/types/intersection.rb +8 -0
- data/lib/rdl/types/lexer.rex +6 -1
- data/lib/rdl/types/lexer.rex.rb +13 -1
- data/lib/rdl/types/method.rb +14 -0
- data/lib/rdl/types/nominal.rb +8 -0
- data/lib/rdl/types/non_null.rb +8 -0
- data/lib/rdl/types/optional.rb +8 -0
- data/lib/rdl/types/parser.racc +31 -5
- data/lib/rdl/types/parser.tab.rb +540 -302
- data/lib/rdl/types/rdl_types.rb +45 -0
- data/lib/rdl/types/singleton.rb +14 -1
- data/lib/rdl/types/string.rb +104 -0
- data/lib/rdl/types/structural.rb +8 -0
- data/lib/rdl/types/top.rb +8 -0
- data/lib/rdl/types/tuple.rb +32 -8
- data/lib/rdl/types/type.rb +54 -11
- data/lib/rdl/types/union.rb +41 -2
- data/lib/rdl/types/var.rb +10 -0
- data/lib/rdl/types/vararg.rb +8 -0
- data/lib/rdl/util.rb +13 -10
- data/lib/rdl/wrap.rb +271 -27
- data/lib/rdl_disable.rb +16 -2
- data/lib/types/active_record.rb +1 -0
- data/lib/types/core/array.rb +442 -23
- data/lib/types/core/basic_object.rb +3 -3
- data/lib/types/core/bigdecimal.rb +5 -0
- data/lib/types/core/class.rb +2 -0
- data/lib/types/core/dir.rb +3 -3
- data/lib/types/core/enumerable.rb +4 -4
- data/lib/types/core/enumerator.rb +1 -1
- data/lib/types/core/file.rb +4 -4
- data/lib/types/core/float.rb +203 -0
- data/lib/types/core/hash.rb +390 -15
- data/lib/types/core/integer.rb +223 -10
- data/lib/types/core/io.rb +2 -2
- data/lib/types/core/kernel.rb +8 -5
- data/lib/types/core/marshal.rb +3 -0
- data/lib/types/core/module.rb +3 -3
- data/lib/types/core/numeric.rb +0 -2
- data/lib/types/core/object.rb +5 -5
- data/lib/types/core/pathname.rb +2 -2
- data/lib/types/core/process.rb +1 -3
- data/lib/types/core/range.rb +1 -1
- data/lib/types/core/regexp.rb +2 -2
- data/lib/types/core/set.rb +1 -1
- data/lib/types/core/string.rb +408 -16
- data/lib/types/core/symbol.rb +3 -3
- data/lib/types/core/time.rb +1 -1
- data/lib/types/core/uri.rb +13 -13
- data/lib/types/rails/_helpers.rb +7 -1
- data/lib/types/rails/action_controller/mime_responds.rb +2 -0
- data/lib/types/rails/active_record/associations.rb +42 -30
- data/lib/types/rails/active_record/comp_types.rb +637 -0
- data/lib/types/rails/active_record/finder_methods.rb +1 -1
- data/lib/types/rails/active_record/model_schema.rb +28 -16
- data/lib/types/rails/active_record/relation.rb +5 -3
- data/lib/types/rails/active_record/sql-strings.rb +166 -0
- data/lib/types/rails/string.rb +1 -1
- data/lib/types/sequel.rb +1 -0
- data/lib/types/sequel/comp_types.rb +581 -0
- data/rdl.gemspec +5 -4
- data/test/test_alias.rb +4 -0
- data/test/test_array_types.rb +244 -0
- data/test/test_bound_types.rb +80 -0
- data/test/test_contract.rb +4 -0
- data/test/test_dsl.rb +5 -0
- data/test/test_dyn_comptype_checks.rb +206 -0
- data/test/test_generic.rb +21 -20
- data/test/test_hash_types.rb +322 -0
- data/test/test_intersection.rb +1 -0
- data/test/test_le.rb +29 -4
- data/test/test_member.rb +3 -1
- data/test/test_parser.rb +5 -0
- data/test/test_query.rb +1 -0
- data/test/test_rdl.rb +63 -28
- data/test/test_rdl_type.rb +4 -0
- data/test/test_string_types.rb +102 -0
- data/test/test_type_contract.rb +59 -37
- data/test/test_typecheck.rb +480 -75
- data/test/test_types.rb +17 -0
- data/test/test_wrap.rb +5 -0
- metadata +35 -5
- 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
|
data/lib/rdl/types/lexer.rex
CHANGED
@@ -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 }
|
data/lib/rdl/types/lexer.rex.rb
CHANGED
@@ -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+/))
|
data/lib/rdl/types/method.rb
CHANGED
@@ -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) &&
|
data/lib/rdl/types/nominal.rb
CHANGED
@@ -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),
|
data/lib/rdl/types/non_null.rb
CHANGED
data/lib/rdl/types/optional.rb
CHANGED
@@ -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
|
data/lib/rdl/types/parser.racc
CHANGED
@@ -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
|
-
|
42
|
-
|
|
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
|
-
|
179
|
+
| STRING { result = RDL::Type::PreciseStringType.new(val[0]) }
|
154
180
|
| DOT { result = RDL::Type::WildQuery.new }
|
155
181
|
|
156
182
|
---- header ----
|
data/lib/rdl/types/parser.tab.rb
CHANGED
@@ -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',
|
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
|
-
|
25
|
-
14, 16,
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
13,
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
nil,
|
53
|
-
|
54
|
-
nil,
|
55
|
-
nil, 15, 14, 16,
|
56
|
-
18,
|
57
|
-
nil,
|
58
|
-
nil,
|
59
|
-
|
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,
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
5,
|
83
|
-
5,
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
nil,
|
92
|
-
|
93
|
-
nil,
|
94
|
-
nil,
|
95
|
-
|
96
|
-
nil,
|
97
|
-
nil,
|
98
|
-
|
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
|
-
|
103
|
-
nil,
|
104
|
-
nil,
|
105
|
-
|
106
|
-
-3,
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
nil,
|
113
|
-
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
|
-
-
|
117
|
-
-
|
118
|
-
-
|
119
|
-
-
|
120
|
-
-
|
121
|
-
-
|
122
|
-
-
|
123
|
-
-
|
124
|
-
-
|
125
|
-
-
|
126
|
-
-
|
127
|
-
-
|
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,
|
131
|
-
42,
|
132
|
-
nil, nil, nil, nil, nil, nil,
|
133
|
-
|
134
|
-
nil,
|
135
|
-
nil, nil, nil, nil,
|
136
|
-
|
137
|
-
|
138
|
-
nil, nil, nil,
|
139
|
-
|
140
|
-
nil, nil, nil,
|
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,
|
144
|
-
|
145
|
-
nil, nil, nil, nil, nil, nil,
|
146
|
-
5, nil, nil, nil,
|
147
|
-
nil,
|
148
|
-
nil, nil, nil, nil,
|
149
|
-
|
150
|
-
|
151
|
-
nil, nil, nil,
|
152
|
-
|
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,
|
157
|
-
2, nil,
|
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,
|
161
|
-
nil,
|
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,
|
166
|
-
1,
|
167
|
-
1,
|
168
|
-
2,
|
169
|
-
2,
|
170
|
-
6,
|
171
|
-
7,
|
172
|
-
8,
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
1,
|
177
|
-
1,
|
178
|
-
1,
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
2,
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
3,
|
188
|
-
|
189
|
-
2,
|
190
|
-
2,
|
191
|
-
|
192
|
-
2,
|
193
|
-
|
194
|
-
0,
|
195
|
-
|
196
|
-
|
197
|
-
1,
|
198
|
-
3,
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
3,
|
204
|
-
3,
|
205
|
-
|
206
|
-
|
207
|
-
1,
|
208
|
-
2,
|
209
|
-
3,
|
210
|
-
|
211
|
-
|
212
|
-
2,
|
213
|
-
|
214
|
-
|
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
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
3,
|
221
|
-
|
222
|
-
3,
|
223
|
-
|
224
|
-
1,
|
225
|
-
3,
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
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
|
-
:
|
259
|
-
:
|
260
|
-
:
|
261
|
-
:
|
262
|
-
:
|
263
|
-
:
|
264
|
-
:
|
265
|
-
|
266
|
-
|
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',
|
481
|
+
module_eval(<<'.,.,', 'parser.racc', 39)
|
406
482
|
def _reduce_9(val, _values, result)
|
407
|
-
|
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',
|
489
|
+
module_eval(<<'.,.,', 'parser.racc', 43)
|
413
490
|
def _reduce_10(val, _values, result)
|
414
|
-
result = [val[0]
|
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',
|
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',
|
510
|
+
module_eval(<<'.,.,', 'parser.racc', 48)
|
434
511
|
def _reduce_13(val, _values, result)
|
435
|
-
|
436
|
-
|
512
|
+
result = :!
|
437
513
|
result
|
438
514
|
end
|
439
515
|
.,.,
|
440
516
|
|
441
|
-
module_eval(<<'.,.,', 'parser.racc',
|
517
|
+
module_eval(<<'.,.,', 'parser.racc', 49)
|
442
518
|
def _reduce_14(val, _values, result)
|
443
|
-
result =
|
519
|
+
result = :*
|
444
520
|
result
|
445
521
|
end
|
446
522
|
.,.,
|
447
523
|
|
448
|
-
module_eval(<<'.,.,', 'parser.racc',
|
524
|
+
module_eval(<<'.,.,', 'parser.racc', 50)
|
449
525
|
def _reduce_15(val, _values, result)
|
450
|
-
result =
|
526
|
+
result = :**
|
451
527
|
result
|
452
528
|
end
|
453
529
|
.,.,
|
454
530
|
|
455
|
-
module_eval(<<'.,.,', 'parser.racc',
|
531
|
+
module_eval(<<'.,.,', 'parser.racc', 51)
|
456
532
|
def _reduce_16(val, _values, result)
|
457
|
-
|
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',
|
538
|
+
module_eval(<<'.,.,', 'parser.racc', 52)
|
465
539
|
def _reduce_17(val, _values, result)
|
466
|
-
result =
|
540
|
+
result = :<=
|
467
541
|
result
|
468
542
|
end
|
469
543
|
.,.,
|
470
544
|
|
471
|
-
module_eval(<<'.,.,', 'parser.racc',
|
545
|
+
module_eval(<<'.,.,', 'parser.racc', 53)
|
472
546
|
def _reduce_18(val, _values, result)
|
473
|
-
result =
|
547
|
+
result = :>
|
474
548
|
result
|
475
549
|
end
|
476
550
|
.,.,
|
477
551
|
|
478
|
-
module_eval(<<'.,.,', 'parser.racc',
|
552
|
+
module_eval(<<'.,.,', 'parser.racc', 54)
|
479
553
|
def _reduce_19(val, _values, result)
|
480
|
-
result =
|
554
|
+
result = :>=
|
481
555
|
result
|
482
556
|
end
|
483
557
|
.,.,
|
484
558
|
|
485
|
-
module_eval(<<'.,.,', 'parser.racc',
|
559
|
+
module_eval(<<'.,.,', 'parser.racc', 55)
|
486
560
|
def _reduce_20(val, _values, result)
|
487
|
-
result =
|
561
|
+
result = :==
|
488
562
|
result
|
489
563
|
end
|
490
564
|
.,.,
|
491
565
|
|
492
|
-
module_eval(<<'.,.,', 'parser.racc',
|
566
|
+
module_eval(<<'.,.,', 'parser.racc', 56)
|
493
567
|
def _reduce_21(val, _values, result)
|
494
|
-
result =
|
568
|
+
result = :!=
|
495
569
|
result
|
496
570
|
end
|
497
571
|
.,.,
|
498
572
|
|
499
|
-
module_eval(<<'.,.,', 'parser.racc',
|
573
|
+
module_eval(<<'.,.,', 'parser.racc', 57)
|
500
574
|
def _reduce_22(val, _values, result)
|
501
|
-
result =
|
575
|
+
result = :===
|
502
576
|
result
|
503
577
|
end
|
504
578
|
.,.,
|
505
579
|
|
506
|
-
module_eval(<<'.,.,', 'parser.racc',
|
580
|
+
module_eval(<<'.,.,', 'parser.racc', 58)
|
507
581
|
def _reduce_23(val, _values, result)
|
508
|
-
result =
|
582
|
+
result = :<=>
|
509
583
|
result
|
510
584
|
end
|
511
585
|
.,.,
|
512
586
|
|
513
|
-
module_eval(<<'.,.,', 'parser.racc',
|
587
|
+
module_eval(<<'.,.,', 'parser.racc', 59)
|
514
588
|
def _reduce_24(val, _values, result)
|
515
|
-
result =
|
589
|
+
result = :<<
|
516
590
|
result
|
517
591
|
end
|
518
592
|
.,.,
|
519
593
|
|
520
|
-
module_eval(<<'.,.,', 'parser.racc',
|
594
|
+
module_eval(<<'.,.,', 'parser.racc', 60)
|
521
595
|
def _reduce_25(val, _values, result)
|
522
|
-
result =
|
596
|
+
result = :>>
|
523
597
|
result
|
524
598
|
end
|
525
599
|
.,.,
|
526
600
|
|
527
|
-
module_eval(<<'.,.,', 'parser.racc',
|
601
|
+
module_eval(<<'.,.,', 'parser.racc', 61)
|
528
602
|
def _reduce_26(val, _values, result)
|
529
|
-
result =
|
603
|
+
result = :[]
|
530
604
|
result
|
531
605
|
end
|
532
606
|
.,.,
|
533
607
|
|
534
|
-
module_eval(<<'.,.,', 'parser.racc',
|
608
|
+
module_eval(<<'.,.,', 'parser.racc', 62)
|
535
609
|
def _reduce_27(val, _values, result)
|
536
|
-
result =
|
610
|
+
result = :[]=
|
537
611
|
result
|
538
612
|
end
|
539
613
|
.,.,
|
540
614
|
|
541
|
-
module_eval(<<'.,.,', 'parser.racc',
|
615
|
+
module_eval(<<'.,.,', 'parser.racc', 63)
|
542
616
|
def _reduce_28(val, _values, result)
|
543
|
-
result =
|
617
|
+
result = :=~
|
544
618
|
result
|
545
619
|
end
|
546
620
|
.,.,
|
547
621
|
|
548
|
-
module_eval(<<'.,.,', 'parser.racc',
|
622
|
+
module_eval(<<'.,.,', 'parser.racc', 64)
|
549
623
|
def _reduce_29(val, _values, result)
|
550
|
-
result =
|
624
|
+
result = :!~
|
551
625
|
result
|
552
626
|
end
|
553
627
|
.,.,
|
554
628
|
|
555
|
-
module_eval(<<'.,.,', 'parser.racc',
|
629
|
+
module_eval(<<'.,.,', 'parser.racc', 67)
|
556
630
|
def _reduce_30(val, _values, result)
|
557
|
-
result =
|
631
|
+
result = []
|
558
632
|
result
|
559
633
|
end
|
560
634
|
.,.,
|
561
635
|
|
562
|
-
module_eval(<<'.,.,', 'parser.racc',
|
636
|
+
module_eval(<<'.,.,', 'parser.racc', 68)
|
563
637
|
def _reduce_31(val, _values, result)
|
564
|
-
result = val[
|
638
|
+
result = val[0]
|
565
639
|
result
|
566
640
|
end
|
567
641
|
.,.,
|
568
642
|
|
569
|
-
module_eval(<<'.,.,', 'parser.racc',
|
643
|
+
module_eval(<<'.,.,', 'parser.racc', 70)
|
570
644
|
def _reduce_32(val, _values, result)
|
571
|
-
|
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',
|
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',
|
658
|
+
module_eval(<<'.,.,', 'parser.racc', 74)
|
584
659
|
def _reduce_34(val, _values, result)
|
585
|
-
result = val[
|
660
|
+
result = val[2].unshift val[0]
|
586
661
|
result
|
587
662
|
end
|
588
663
|
.,.,
|
589
664
|
|
590
|
-
module_eval(<<'.,.,', 'parser.racc',
|
665
|
+
module_eval(<<'.,.,', 'parser.racc', 75)
|
591
666
|
def _reduce_35(val, _values, result)
|
592
|
-
|
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',
|
674
|
+
module_eval(<<'.,.,', 'parser.racc', 79)
|
598
675
|
def _reduce_36(val, _values, result)
|
599
|
-
result =
|
676
|
+
result = val[0]
|
600
677
|
result
|
601
678
|
end
|
602
679
|
.,.,
|
603
680
|
|
604
|
-
|
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',
|
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',
|
695
|
+
module_eval(<<'.,.,', 'parser.racc', 82)
|
614
696
|
def _reduce_39(val, _values, result)
|
615
|
-
result =
|
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',
|
702
|
+
module_eval(<<'.,.,', 'parser.racc', 83)
|
621
703
|
def _reduce_40(val, _values, result)
|
622
|
-
result =
|
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',
|
709
|
+
module_eval(<<'.,.,', 'parser.racc', 84)
|
628
710
|
def _reduce_41(val, _values, result)
|
629
|
-
|
630
|
-
|
711
|
+
result = RDL::Type::ComputedType.new(val[0])
|
631
712
|
result
|
632
713
|
end
|
633
714
|
.,.,
|
634
715
|
|
635
|
-
module_eval(<<'.,.,', 'parser.racc',
|
716
|
+
module_eval(<<'.,.,', 'parser.racc', 85)
|
636
717
|
def _reduce_42(val, _values, result)
|
637
|
-
result =
|
718
|
+
result = RDL::Type::DotsQuery.new
|
638
719
|
result
|
639
720
|
end
|
640
721
|
.,.,
|
641
722
|
|
642
|
-
module_eval(<<'.,.,', 'parser.racc',
|
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',
|
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',
|
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',
|
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
|
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',
|
678
|
-
def
|
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',
|
685
|
-
def
|
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',
|
692
|
-
def
|
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',
|
699
|
-
def
|
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',
|
717
|
-
def
|
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',
|
729
|
-
def
|
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',
|
737
|
-
def
|
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',
|
744
|
-
def
|
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',
|
752
|
-
def
|
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',
|
760
|
-
def
|
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',
|
768
|
-
def
|
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',
|
776
|
-
def
|
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',
|
783
|
-
def
|
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',
|
790
|
-
def
|
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',
|
798
|
-
def
|
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
|