finitio 0.6.1 → 0.7.0.pre.rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/finitio.rb +10 -1
- data/lib/finitio/{Finitio/default.fio → stdlib/finitio/data.fio} +0 -0
- data/lib/finitio/support/compilation.rb +36 -6
- data/lib/finitio/syntax.rb +6 -2
- data/lib/finitio/syntax/{type/definitions.rb → definitions.rb} +0 -0
- data/lib/finitio/syntax/finitio.citrus +11 -1
- data/lib/finitio/syntax/import.rb +21 -0
- data/lib/finitio/syntax/imports.rb +19 -0
- data/lib/finitio/syntax/lexer.citrus +4 -0
- data/lib/finitio/syntax/{type/system.rb → system.rb} +6 -2
- data/lib/finitio/syntax/type.rb +0 -2
- data/lib/finitio/system.rb +33 -5
- data/lib/finitio/type/proxy_type.rb +3 -3
- data/lib/finitio/version.rb +2 -2
- data/spec/syntax/nodes/imported.fio +0 -0
- data/spec/syntax/nodes/test_import.rb +48 -0
- data/spec/system/test_fetch.rb +37 -0
- metadata +152 -146
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 62428c8d4da07e87d6941a239e5d7f068dcbfbe5
|
4
|
+
data.tar.gz: e20902929ec496b6ea231b5c66a63b7ef59432af
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c75b78277e39efebb52b2ba293f336953deb0c59f5b9eaa248e5c4645ae8ca078783466a8352f8a1ad98570d2fb2286a3ad2d3dadf0a6560b76ec336f311fc18
|
7
|
+
data.tar.gz: b3cba6dc70482fb8b780c72ff500c37c13968f61ea2f8293fd263d1423261e1a482e9df296a6165cd71a787fdea5bfb696b91b3b944af006cf10a23e56121ac7
|
data/Gemfile.lock
CHANGED
data/lib/finitio.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'set'
|
2
2
|
require 'time'
|
3
|
+
require 'pathname'
|
3
4
|
|
4
5
|
module Finitio
|
5
6
|
|
@@ -13,6 +14,14 @@ module Finitio
|
|
13
14
|
|
14
15
|
ANY_TYPE = AnyType.new
|
15
16
|
|
17
|
+
STDLIB_PATHS = [
|
18
|
+
File.expand_path('../finitio/stdlib', __FILE__)
|
19
|
+
]
|
20
|
+
|
21
|
+
def stdlib_path(path)
|
22
|
+
STDLIB_PATHS << path
|
23
|
+
end
|
24
|
+
|
16
25
|
def parse(source)
|
17
26
|
require "finitio/syntax"
|
18
27
|
Syntax.parse(source)
|
@@ -31,6 +40,6 @@ module Finitio
|
|
31
40
|
extend self
|
32
41
|
|
33
42
|
DEFAULT_SYSTEM = system(File.read(
|
34
|
-
File.expand_path('../finitio/
|
43
|
+
File.expand_path('../finitio/stdlib/finitio/data.fio', __FILE__)
|
35
44
|
))
|
36
45
|
end # module Finitio
|
File without changes
|
@@ -1,23 +1,53 @@
|
|
1
1
|
module Finitio
|
2
2
|
class Compilation
|
3
3
|
|
4
|
-
def initialize(system = System.new, factory = TypeFactory.new)
|
4
|
+
def initialize(system = System.new, factory = TypeFactory.new, source = nil)
|
5
5
|
@system = system
|
6
6
|
@factory = factory
|
7
7
|
@proxies = []
|
8
|
+
@source = source
|
8
9
|
end
|
9
|
-
attr_reader :system, :factory, :proxies
|
10
|
+
attr_reader :system, :factory, :proxies, :source
|
10
11
|
|
11
|
-
def self.coerce(arg)
|
12
|
+
def self.coerce(arg, source = nil)
|
12
13
|
case arg
|
13
|
-
when NilClass then new
|
14
|
-
when System then new(arg, arg.factory)
|
15
|
-
when TypeFactory then new(System.new, arg)
|
14
|
+
when NilClass then new(System.new, TypeFactory.new, source)
|
15
|
+
when System then new(arg, arg.factory, source)
|
16
|
+
when TypeFactory then new(System.new, arg, source)
|
16
17
|
else
|
17
18
|
raise ArgumentError, "Unable to coerce `#{arg}`"
|
18
19
|
end
|
19
20
|
end
|
20
21
|
|
22
|
+
def imports
|
23
|
+
@system.send(:imports)
|
24
|
+
end
|
25
|
+
|
26
|
+
def add_import(import)
|
27
|
+
@system.add_import(import)
|
28
|
+
self
|
29
|
+
end
|
30
|
+
|
31
|
+
def resolve_url(url)
|
32
|
+
if url.to_s =~ /^\.\//
|
33
|
+
resolve_relative_url(url)
|
34
|
+
else
|
35
|
+
STDLIB_PATHS.each do |path|
|
36
|
+
file = File.expand_path("#{url}.fio", path)
|
37
|
+
return Pathname.new(file) if File.file?(file)
|
38
|
+
end
|
39
|
+
raise Error, "No such import `#{url}`"
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def resolve_relative_url(url)
|
44
|
+
raise Error, "Unable to resolve `#{url}`, missing path context"\
|
45
|
+
unless source.respond_to?(:to_path)
|
46
|
+
file = File.expand_path("../#{url}.fio", source.to_path)
|
47
|
+
raise Error, "No such file `#{file}`" unless File.file?(file)
|
48
|
+
Pathname.new(file)
|
49
|
+
end
|
50
|
+
|
21
51
|
def resolve_proxies!
|
22
52
|
proxies.each do |p|
|
23
53
|
p.resolve(system)
|
data/lib/finitio/syntax.rb
CHANGED
@@ -3,6 +3,10 @@ require_relative 'syntax/node'
|
|
3
3
|
require_relative 'syntax/literal'
|
4
4
|
require_relative 'syntax/expr'
|
5
5
|
require_relative 'syntax/type'
|
6
|
+
require_relative 'syntax/import'
|
7
|
+
require_relative 'syntax/imports'
|
8
|
+
require_relative 'syntax/definitions'
|
9
|
+
require_relative 'syntax/system'
|
6
10
|
module Finitio
|
7
11
|
module Syntax
|
8
12
|
|
@@ -21,13 +25,13 @@ module Finitio
|
|
21
25
|
end
|
22
26
|
|
23
27
|
def self.compile(source, cpl = nil)
|
24
|
-
cpl = Compilation.coerce(cpl)
|
28
|
+
cpl = Compilation.coerce(cpl, source)
|
25
29
|
parse(source, root: "system").compile(cpl)
|
26
30
|
cpl.resolve_proxies!.system
|
27
31
|
end
|
28
32
|
|
29
33
|
def self.compile_type(source, cpl = nil)
|
30
|
-
cpl = Compilation.coerce(cpl)
|
34
|
+
cpl = Compilation.coerce(cpl, source)
|
31
35
|
parse(source, root: "type").compile(cpl)
|
32
36
|
end
|
33
37
|
|
File without changes
|
@@ -10,10 +10,20 @@ grammar Finitio::Syntax::Parser
|
|
10
10
|
include Finitio::Syntax::Types
|
11
11
|
|
12
12
|
rule system
|
13
|
-
(spacing definitions spacing main_type? spacing eof)
|
13
|
+
(spacing imports spacing definitions spacing main_type? spacing eof)
|
14
14
|
<Finitio::Syntax::System>
|
15
15
|
end
|
16
16
|
|
17
|
+
rule imports
|
18
|
+
(import (spacing import)*)?
|
19
|
+
<Finitio::Syntax::Imports>
|
20
|
+
end
|
21
|
+
|
22
|
+
rule import
|
23
|
+
('@import' spaces import_url)
|
24
|
+
<Finitio::Syntax::Import>
|
25
|
+
end
|
26
|
+
|
17
27
|
rule definitions
|
18
28
|
(type_def (spacing type_def)*)?
|
19
29
|
<Finitio::Syntax::Definitions>
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Finitio
|
2
|
+
module Syntax
|
3
|
+
module Import
|
4
|
+
include Node
|
5
|
+
|
6
|
+
capture :import_url
|
7
|
+
|
8
|
+
def compile(system)
|
9
|
+
file = system.resolve_url(import_url)
|
10
|
+
imported = Finitio.system(file)
|
11
|
+
system.add_import(imported)
|
12
|
+
system
|
13
|
+
end
|
14
|
+
|
15
|
+
def to_ast
|
16
|
+
[:import, import_url]
|
17
|
+
end
|
18
|
+
|
19
|
+
end # module Import
|
20
|
+
end # module Syntax
|
21
|
+
end # module Finitio
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Finitio
|
2
|
+
module Syntax
|
3
|
+
module Imports
|
4
|
+
include Node
|
5
|
+
|
6
|
+
def compile(system)
|
7
|
+
captures[:import].each do |node|
|
8
|
+
node.compile(system)
|
9
|
+
end
|
10
|
+
system
|
11
|
+
end
|
12
|
+
|
13
|
+
def to_ast
|
14
|
+
[:imports] + captures[:import].map(&:to_ast)
|
15
|
+
end
|
16
|
+
|
17
|
+
end # module Imports
|
18
|
+
end # module Syntax
|
19
|
+
end # module Finitio
|
@@ -3,16 +3,20 @@ module Finitio
|
|
3
3
|
module System
|
4
4
|
include Node
|
5
5
|
|
6
|
-
capture :definitions, :main_type
|
6
|
+
capture :imports, :definitions, :main_type
|
7
7
|
|
8
8
|
def compile(system)
|
9
|
+
imports.compile(system) if imports
|
9
10
|
definitions.compile(system)
|
10
11
|
main_type.compile(system) if main_type
|
11
12
|
system
|
12
13
|
end
|
13
14
|
|
14
15
|
def to_ast
|
15
|
-
ast = [ :system ]
|
16
|
+
ast = [ :system ]
|
17
|
+
imports_ast = imports.to_ast
|
18
|
+
ast << imports_ast unless imports_ast.size == 1
|
19
|
+
ast += definitions.to_ast
|
16
20
|
ast << main_type.to_ast if main_type
|
17
21
|
ast
|
18
22
|
end
|
data/lib/finitio/syntax/type.rb
CHANGED
data/lib/finitio/system.rb
CHANGED
@@ -4,8 +4,16 @@ module Finitio
|
|
4
4
|
#
|
5
5
|
class System
|
6
6
|
|
7
|
-
def initialize(types = {})
|
7
|
+
def initialize(types = {}, imports = [])
|
8
8
|
@types = types
|
9
|
+
@imports = imports
|
10
|
+
end
|
11
|
+
|
12
|
+
attr_reader :types, :imports
|
13
|
+
private :types, :imports
|
14
|
+
|
15
|
+
def add_import(system)
|
16
|
+
@imports << system
|
9
17
|
end
|
10
18
|
|
11
19
|
def add_type(type, name = nil, metadata = nil)
|
@@ -19,7 +27,9 @@ module Finitio
|
|
19
27
|
end
|
20
28
|
|
21
29
|
def get_type(name)
|
22
|
-
|
30
|
+
fetch(name){|_|
|
31
|
+
fetch(name.to_s){ nil }
|
32
|
+
}
|
23
33
|
end
|
24
34
|
alias :[] :get_type
|
25
35
|
|
@@ -27,9 +37,27 @@ module Finitio
|
|
27
37
|
self['Main']
|
28
38
|
end
|
29
39
|
|
30
|
-
def fetch(name, &bl)
|
31
|
-
|
40
|
+
def fetch(name, with_imports = true, &bl)
|
41
|
+
if with_imports
|
42
|
+
@types.fetch(name) do
|
43
|
+
_fetch(name, @imports, &bl)
|
44
|
+
end
|
45
|
+
else
|
46
|
+
@types.fetch(name, &bl)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def _fetch(name, imports, &bl)
|
51
|
+
if imports.empty?
|
52
|
+
raise KeyError, %Q{key not found: "#{name}"} unless bl
|
53
|
+
bl.call(name)
|
54
|
+
else
|
55
|
+
imports.first.fetch(name, false) do
|
56
|
+
_fetch(name, imports[1..-1], &bl)
|
57
|
+
end
|
58
|
+
end
|
32
59
|
end
|
60
|
+
private :_fetch
|
33
61
|
|
34
62
|
def factory
|
35
63
|
@factory ||= TypeFactory.new
|
@@ -56,7 +84,7 @@ module Finitio
|
|
56
84
|
end
|
57
85
|
|
58
86
|
def dup
|
59
|
-
System.new(@types.dup)
|
87
|
+
System.new(@types.dup, @imports.dup)
|
60
88
|
end
|
61
89
|
|
62
90
|
end # class System
|
@@ -25,15 +25,15 @@ module Finitio
|
|
25
25
|
:to_s
|
26
26
|
].each do |meth|
|
27
27
|
define_method(meth) do |*args, &bl|
|
28
|
-
raise Error, "
|
28
|
+
raise Error, "No such type `#{@target_name}` (proxy not resolved?)" unless @target
|
29
29
|
@target.send(meth, *args, &bl)
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
33
33
|
def resolve(system)
|
34
|
-
@target = system.fetch(target_name)
|
34
|
+
@target = system.fetch(target_name){
|
35
35
|
raise Error, "No such type `#{target_name}`"
|
36
|
-
|
36
|
+
}
|
37
37
|
end
|
38
38
|
|
39
39
|
end # class ProxyType
|
data/lib/finitio/version.rb
CHANGED
File without changes
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
module Finitio
|
3
|
+
describe Syntax, "import" do
|
4
|
+
|
5
|
+
subject{
|
6
|
+
Syntax.parse(input, root: "import")
|
7
|
+
}
|
8
|
+
|
9
|
+
let(:sys){
|
10
|
+
Compilation.coerce(system, Path.dir/"test_import.rb")
|
11
|
+
}
|
12
|
+
|
13
|
+
let(:compiled){
|
14
|
+
subject.compile(sys)
|
15
|
+
}
|
16
|
+
|
17
|
+
let(:ast){
|
18
|
+
subject.to_ast
|
19
|
+
}
|
20
|
+
|
21
|
+
context 'with a stdlib import' do
|
22
|
+
let(:input){ '@import finitio/data' }
|
23
|
+
|
24
|
+
it 'compiles to an Import' do
|
25
|
+
expect(compiled).to be(sys)
|
26
|
+
expect(compiled.send(:imports).size).to eql(1)
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'has the expected AST' do
|
30
|
+
expect(ast).to eq([:import, "finitio/data"])
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
context 'with a stdlib import' do
|
35
|
+
let(:input){ '@import ./imported' }
|
36
|
+
|
37
|
+
it 'compiles to an Import' do
|
38
|
+
expect(compiled).to be(sys)
|
39
|
+
expect(compiled.send(:imports).size).to eql(1)
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'has the expected AST' do
|
43
|
+
expect(ast).to eq([:import, "./imported"])
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
end
|
data/spec/system/test_fetch.rb
CHANGED
@@ -38,5 +38,42 @@ module Finitio
|
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
41
|
+
context 'with an imported type' do
|
42
|
+
subject{
|
43
|
+
s = System.new
|
44
|
+
s.add_import(system)
|
45
|
+
s.fetch("intType", imports, &fallback)
|
46
|
+
}
|
47
|
+
|
48
|
+
context "specifying the use of imports" do
|
49
|
+
let(:imports) { true }
|
50
|
+
let(:fallback){ ->(name){ raise } }
|
51
|
+
|
52
|
+
it 'should return the type' do
|
53
|
+
expect(subject).to eq(intType)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
context "specifying not to use the imports" do
|
58
|
+
let(:imports) { false }
|
59
|
+
let(:fallback){ ->(name){ "bar" } }
|
60
|
+
|
61
|
+
it 'should yield the fallback block' do
|
62
|
+
expect(subject).to eq("bar")
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
context "specifying not to use the imports and no fallbak" do
|
67
|
+
let(:imports) { false }
|
68
|
+
let(:fallback){ nil }
|
69
|
+
|
70
|
+
it 'should yield the fallback block' do
|
71
|
+
expect {
|
72
|
+
subject
|
73
|
+
}.to raise_error
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
41
78
|
end
|
42
79
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: finitio
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0.pre.rc1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bernard Lambeau
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-12-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: citrus
|
@@ -49,8 +49,8 @@ files:
|
|
49
49
|
- Rakefile
|
50
50
|
- finitio.gemspec
|
51
51
|
- lib/finitio.rb
|
52
|
-
- lib/finitio/Finitio/default.fio
|
53
52
|
- lib/finitio/errors.rb
|
53
|
+
- lib/finitio/stdlib/finitio/data.fio
|
54
54
|
- lib/finitio/support.rb
|
55
55
|
- lib/finitio/support/attribute.rb
|
56
56
|
- lib/finitio/support/compilation.rb
|
@@ -61,6 +61,7 @@ files:
|
|
61
61
|
- lib/finitio/support/metadata.rb
|
62
62
|
- lib/finitio/support/type_factory.rb
|
63
63
|
- lib/finitio/syntax.rb
|
64
|
+
- lib/finitio/syntax/definitions.rb
|
64
65
|
- lib/finitio/syntax/expr.rb
|
65
66
|
- lib/finitio/syntax/expr/arith_op.rb
|
66
67
|
- lib/finitio/syntax/expr/comparison.rb
|
@@ -75,6 +76,8 @@ files:
|
|
75
76
|
- lib/finitio/syntax/expressions.citrus
|
76
77
|
- lib/finitio/syntax/finitio.citrus
|
77
78
|
- lib/finitio/syntax/finitio.sexp
|
79
|
+
- lib/finitio/syntax/import.rb
|
80
|
+
- lib/finitio/syntax/imports.rb
|
78
81
|
- lib/finitio/syntax/lexer.citrus
|
79
82
|
- lib/finitio/syntax/literal.rb
|
80
83
|
- lib/finitio/syntax/literal/boolean.rb
|
@@ -83,6 +86,7 @@ files:
|
|
83
86
|
- lib/finitio/syntax/literal/string.rb
|
84
87
|
- lib/finitio/syntax/literals.citrus
|
85
88
|
- lib/finitio/syntax/node.rb
|
89
|
+
- lib/finitio/syntax/system.rb
|
86
90
|
- lib/finitio/syntax/type.rb
|
87
91
|
- lib/finitio/syntax/type/ad_type.rb
|
88
92
|
- lib/finitio/syntax/type/any_type.rb
|
@@ -91,7 +95,6 @@ files:
|
|
91
95
|
- lib/finitio/syntax/type/constraint_def.rb
|
92
96
|
- lib/finitio/syntax/type/constraints.rb
|
93
97
|
- lib/finitio/syntax/type/contract.rb
|
94
|
-
- lib/finitio/syntax/type/definitions.rb
|
95
98
|
- lib/finitio/syntax/type/expression.rb
|
96
99
|
- lib/finitio/syntax/type/external_pair.rb
|
97
100
|
- lib/finitio/syntax/type/heading.rb
|
@@ -107,7 +110,6 @@ files:
|
|
107
110
|
- lib/finitio/syntax/type/set_type.rb
|
108
111
|
- lib/finitio/syntax/type/struct_type.rb
|
109
112
|
- lib/finitio/syntax/type/sub_type.rb
|
110
|
-
- lib/finitio/syntax/type/system.rb
|
111
113
|
- lib/finitio/syntax/type/tuple_type.rb
|
112
114
|
- lib/finitio/syntax/type/type_def.rb
|
113
115
|
- lib/finitio/syntax/type/type_ref.rb
|
@@ -162,6 +164,7 @@ files:
|
|
162
164
|
- spec/spec_helper.rb
|
163
165
|
- spec/syntax/expr/test_free_variables.rb
|
164
166
|
- spec/syntax/expr/test_to_proc_source.rb
|
167
|
+
- spec/syntax/nodes/imported.fio
|
165
168
|
- spec/syntax/nodes/test_ad_type.rb
|
166
169
|
- spec/syntax/nodes/test_any_type.rb
|
167
170
|
- spec/syntax/nodes/test_attribute.rb
|
@@ -172,6 +175,7 @@ files:
|
|
172
175
|
- spec/syntax/nodes/test_contract.rb
|
173
176
|
- spec/syntax/nodes/test_expression.rb
|
174
177
|
- spec/syntax/nodes/test_heading.rb
|
178
|
+
- spec/syntax/nodes/test_import.rb
|
175
179
|
- spec/syntax/nodes/test_metadata.rb
|
176
180
|
- spec/syntax/nodes/test_named_constraint.rb
|
177
181
|
- spec/syntax/nodes/test_relation_type.rb
|
@@ -307,169 +311,171 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
307
311
|
version: '0'
|
308
312
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
309
313
|
requirements:
|
310
|
-
- - "
|
314
|
+
- - ">"
|
311
315
|
- !ruby/object:Gem::Version
|
312
|
-
version:
|
316
|
+
version: 1.3.1
|
313
317
|
requirements: []
|
314
318
|
rubyforge_project:
|
315
|
-
rubygems_version: 2.
|
319
|
+
rubygems_version: 2.6.11
|
316
320
|
signing_key:
|
317
321
|
specification_version: 4
|
318
322
|
summary: Finitio - in Ruby
|
319
323
|
test_files:
|
320
|
-
- spec/spec_helper.rb
|
321
|
-
- spec/type_factory/factory/test_tuple_type.rb
|
322
|
-
- spec/type_factory/factory/test_builtin.rb
|
323
|
-
- spec/type_factory/factory/test_set_type.rb
|
324
|
-
- spec/type_factory/factory/test_struct_type.rb
|
325
|
-
- spec/type_factory/factory/test_sub_type.rb
|
326
|
-
- spec/type_factory/factory/test_seq_type.rb
|
327
|
-
- spec/type_factory/dsl/test_attributes.rb
|
328
|
-
- spec/type_factory/dsl/test_builtin.rb
|
329
|
-
- spec/type_factory/dsl/test_adt.rb
|
330
|
-
- spec/type_factory/dsl/test_multi_tuple.rb
|
331
|
-
- spec/type_factory/dsl/test_seq.rb
|
332
|
-
- spec/type_factory/dsl/test_multi_relation.rb
|
333
|
-
- spec/type_factory/dsl/test_tuple.rb
|
334
|
-
- spec/type_factory/dsl/test_set.rb
|
335
|
-
- spec/type_factory/dsl/test_attribute.rb
|
336
|
-
- spec/type_factory/dsl/test_any.rb
|
337
|
-
- spec/type_factory/dsl/test_union.rb
|
338
|
-
- spec/type_factory/dsl/test_struct.rb
|
339
|
-
- spec/type_factory/dsl/test_relation.rb
|
340
|
-
- spec/type_factory/dsl/test_subtype.rb
|
341
|
-
- spec/attribute/test_initialize.rb
|
342
324
|
- spec/attribute/test_equality.rb
|
343
|
-
- spec/attribute/test_to_name.rb
|
344
325
|
- spec/attribute/test_fetch_on.rb
|
326
|
+
- spec/attribute/test_initialize.rb
|
345
327
|
- spec/attribute/test_optional.rb
|
346
328
|
- spec/attribute/test_required.rb
|
329
|
+
- spec/attribute/test_to_name.rb
|
330
|
+
- spec/constraint/test_anonymous.rb
|
331
|
+
- spec/constraint/test_equality.rb
|
332
|
+
- spec/constraint/test_name.rb
|
333
|
+
- spec/constraint/test_named.rb
|
334
|
+
- spec/constraint/test_triple_equal.rb
|
335
|
+
- spec/finitio/system.fio
|
336
|
+
- spec/finitio/test_ast.rb
|
337
|
+
- spec/finitio/test_parse.rb
|
338
|
+
- spec/finitio/test_system.rb
|
339
|
+
- spec/heading/test_allow_extra.rb
|
340
|
+
- spec/heading/test_each.rb
|
341
|
+
- spec/heading/test_equality.rb
|
342
|
+
- spec/heading/test_hash.rb
|
347
343
|
- spec/heading/test_hash_get.rb
|
348
344
|
- spec/heading/test_initialize.rb
|
349
|
-
- spec/heading/test_equality.rb
|
350
|
-
- spec/heading/test_to_name.rb
|
351
345
|
- spec/heading/test_multi.rb
|
352
|
-
- spec/heading/test_hash.rb
|
353
|
-
- spec/heading/test_allow_extra.rb
|
354
346
|
- spec/heading/test_size.rb
|
355
|
-
- spec/heading/
|
356
|
-
- spec/
|
357
|
-
- spec/
|
358
|
-
- spec/
|
359
|
-
- spec/
|
360
|
-
- spec/
|
361
|
-
- spec/
|
362
|
-
- spec/
|
363
|
-
- spec/
|
364
|
-
- spec/
|
347
|
+
- spec/heading/test_to_name.rb
|
348
|
+
- spec/spec_helper.rb
|
349
|
+
- spec/syntax/expr/test_free_variables.rb
|
350
|
+
- spec/syntax/expr/test_to_proc_source.rb
|
351
|
+
- spec/syntax/nodes/imported.fio
|
352
|
+
- spec/syntax/nodes/test_ad_type.rb
|
353
|
+
- spec/syntax/nodes/test_any_type.rb
|
354
|
+
- spec/syntax/nodes/test_attribute.rb
|
355
|
+
- spec/syntax/nodes/test_builtin_type.rb
|
356
|
+
- spec/syntax/nodes/test_comment.rb
|
357
|
+
- spec/syntax/nodes/test_constraint_def.rb
|
358
|
+
- spec/syntax/nodes/test_constraints.rb
|
359
|
+
- spec/syntax/nodes/test_contract.rb
|
360
|
+
- spec/syntax/nodes/test_expression.rb
|
361
|
+
- spec/syntax/nodes/test_heading.rb
|
362
|
+
- spec/syntax/nodes/test_import.rb
|
363
|
+
- spec/syntax/nodes/test_metadata.rb
|
364
|
+
- spec/syntax/nodes/test_named_constraint.rb
|
365
|
+
- spec/syntax/nodes/test_relation_type.rb
|
366
|
+
- spec/syntax/nodes/test_seq_type.rb
|
367
|
+
- spec/syntax/nodes/test_set_type.rb
|
368
|
+
- spec/syntax/nodes/test_spacing.rb
|
369
|
+
- spec/syntax/nodes/test_struct_type.rb
|
370
|
+
- spec/syntax/nodes/test_sub_type.rb
|
371
|
+
- spec/syntax/nodes/test_system.rb
|
372
|
+
- spec/syntax/nodes/test_tuple_type.rb
|
373
|
+
- spec/syntax/nodes/test_type_def.rb
|
374
|
+
- spec/syntax/nodes/test_type_ref.rb
|
375
|
+
- spec/syntax/nodes/test_union_type.rb
|
376
|
+
- spec/syntax/nodes/test_unnamed_constraint.rb
|
377
|
+
- spec/syntax/test_compile.rb
|
378
|
+
- spec/syntax/test_compile_type.rb
|
365
379
|
- spec/system/test_add_type.rb
|
366
380
|
- spec/system/test_dsl.rb
|
367
|
-
- spec/
|
368
|
-
- spec/
|
369
|
-
- spec/
|
370
|
-
- spec/
|
371
|
-
- spec/
|
372
|
-
- spec/type/multi_relation_type/test_dress.rb
|
373
|
-
- spec/type/sub_type/test_name.rb
|
374
|
-
- spec/type/sub_type/test_initialize.rb
|
375
|
-
- spec/type/sub_type/test_equality.rb
|
376
|
-
- spec/type/sub_type/test_include.rb
|
377
|
-
- spec/type/sub_type/test_default_name.rb
|
378
|
-
- spec/type/sub_type/test_dress.rb
|
379
|
-
- spec/type/proxy_type/test_resolve.rb
|
380
|
-
- spec/type/proxy_type/test_delegation.rb
|
381
|
-
- spec/type/ad_type/test_name.rb
|
382
|
-
- spec/type/ad_type/test_initialize.rb
|
383
|
-
- spec/type/ad_type/test_include.rb
|
381
|
+
- spec/system/test_dup.rb
|
382
|
+
- spec/system/test_fetch.rb
|
383
|
+
- spec/system/test_get_type.rb
|
384
|
+
- spec/system/test_initialize.rb
|
385
|
+
- spec/test_finitio.rb
|
384
386
|
- spec/type/ad_type/test_default_name.rb
|
385
387
|
- spec/type/ad_type/test_dress.rb
|
386
|
-
- spec/type/
|
387
|
-
- spec/type/
|
388
|
-
- spec/type/
|
389
|
-
- spec/type/
|
390
|
-
- spec/type/
|
391
|
-
- spec/type/
|
392
|
-
- spec/type/set_type/test_name.rb
|
393
|
-
- spec/type/set_type/test_initialize.rb
|
394
|
-
- spec/type/set_type/test_equality.rb
|
395
|
-
- spec/type/set_type/test_include.rb
|
396
|
-
- spec/type/set_type/test_default_name.rb
|
397
|
-
- spec/type/set_type/test_dress.rb
|
398
|
-
- spec/type/relation_type/test_name.rb
|
399
|
-
- spec/type/relation_type/test_initialize.rb
|
400
|
-
- spec/type/relation_type/test_equality.rb
|
401
|
-
- spec/type/relation_type/test_include.rb
|
402
|
-
- spec/type/relation_type/test_default_name.rb
|
403
|
-
- spec/type/relation_type/test_dress.rb
|
404
|
-
- spec/type/any_type/test_name.rb
|
405
|
-
- spec/type/any_type/test_initialize.rb
|
406
|
-
- spec/type/any_type/test_equality.rb
|
407
|
-
- spec/type/any_type/test_include.rb
|
388
|
+
- spec/type/ad_type/test_include.rb
|
389
|
+
- spec/type/ad_type/test_initialize.rb
|
390
|
+
- spec/type/ad_type/test_name.rb
|
391
|
+
- spec/type/alias_type/test_default_name.rb
|
392
|
+
- spec/type/alias_type/test_delegation.rb
|
393
|
+
- spec/type/alias_type/test_name.rb
|
408
394
|
- spec/type/any_type/test_default_name.rb
|
409
395
|
- spec/type/any_type/test_dress.rb
|
410
|
-
- spec/type/
|
411
|
-
- spec/type/
|
412
|
-
- spec/type/
|
413
|
-
- spec/type/
|
396
|
+
- spec/type/any_type/test_equality.rb
|
397
|
+
- spec/type/any_type/test_include.rb
|
398
|
+
- spec/type/any_type/test_initialize.rb
|
399
|
+
- spec/type/any_type/test_name.rb
|
414
400
|
- spec/type/builtin_type/test_default_name.rb
|
415
401
|
- spec/type/builtin_type/test_dress.rb
|
416
|
-
- spec/type/
|
417
|
-
- spec/type/
|
418
|
-
- spec/type/
|
419
|
-
- spec/type/
|
420
|
-
- spec/type/
|
421
|
-
- spec/type/
|
422
|
-
- spec/type/
|
423
|
-
- spec/type/
|
424
|
-
- spec/type/
|
425
|
-
- spec/type/
|
426
|
-
- spec/type/tuple_type/test_default_name.rb
|
427
|
-
- spec/type/tuple_type/test_dress.rb
|
428
|
-
- spec/type/alias_type/test_name.rb
|
429
|
-
- spec/type/alias_type/test_default_name.rb
|
430
|
-
- spec/type/alias_type/test_delegation.rb
|
431
|
-
- spec/type/seq_type/test_name.rb
|
432
|
-
- spec/type/seq_type/test_initialize.rb
|
433
|
-
- spec/type/seq_type/test_equality.rb
|
434
|
-
- spec/type/seq_type/test_include.rb
|
435
|
-
- spec/type/seq_type/test_default_name.rb
|
436
|
-
- spec/type/seq_type/test_dress.rb
|
437
|
-
- spec/type/multi_tuple_type/test_name.rb
|
438
|
-
- spec/type/multi_tuple_type/test_initialize.rb
|
439
|
-
- spec/type/multi_tuple_type/test_equality.rb
|
440
|
-
- spec/type/multi_tuple_type/test_include.rb
|
402
|
+
- spec/type/builtin_type/test_equality.rb
|
403
|
+
- spec/type/builtin_type/test_include.rb
|
404
|
+
- spec/type/builtin_type/test_initialize.rb
|
405
|
+
- spec/type/builtin_type/test_name.rb
|
406
|
+
- spec/type/multi_relation_type/test_default_name.rb
|
407
|
+
- spec/type/multi_relation_type/test_dress.rb
|
408
|
+
- spec/type/multi_relation_type/test_equality.rb
|
409
|
+
- spec/type/multi_relation_type/test_include.rb
|
410
|
+
- spec/type/multi_relation_type/test_initialize.rb
|
411
|
+
- spec/type/multi_relation_type/test_name.rb
|
441
412
|
- spec/type/multi_tuple_type/test_default_name.rb
|
442
413
|
- spec/type/multi_tuple_type/test_dress.rb
|
443
|
-
- spec/
|
444
|
-
- spec/
|
445
|
-
- spec/
|
446
|
-
- spec/
|
447
|
-
- spec/
|
448
|
-
- spec/
|
449
|
-
- spec/
|
450
|
-
- spec/
|
451
|
-
- spec/
|
452
|
-
- spec/
|
453
|
-
- spec/
|
454
|
-
- spec/
|
455
|
-
- spec/
|
456
|
-
- spec/
|
457
|
-
- spec/
|
458
|
-
- spec/
|
459
|
-
- spec/
|
460
|
-
- spec/
|
461
|
-
- spec/
|
462
|
-
- spec/
|
463
|
-
- spec/
|
464
|
-
- spec/
|
465
|
-
- spec/
|
466
|
-
- spec/
|
467
|
-
- spec/
|
468
|
-
- spec/
|
469
|
-
- spec/
|
470
|
-
- spec/
|
471
|
-
- spec/
|
472
|
-
- spec/
|
473
|
-
- spec/
|
474
|
-
- spec/
|
475
|
-
- spec/
|
414
|
+
- spec/type/multi_tuple_type/test_equality.rb
|
415
|
+
- spec/type/multi_tuple_type/test_include.rb
|
416
|
+
- spec/type/multi_tuple_type/test_initialize.rb
|
417
|
+
- spec/type/multi_tuple_type/test_name.rb
|
418
|
+
- spec/type/proxy_type/test_delegation.rb
|
419
|
+
- spec/type/proxy_type/test_resolve.rb
|
420
|
+
- spec/type/relation_type/test_default_name.rb
|
421
|
+
- spec/type/relation_type/test_dress.rb
|
422
|
+
- spec/type/relation_type/test_equality.rb
|
423
|
+
- spec/type/relation_type/test_include.rb
|
424
|
+
- spec/type/relation_type/test_initialize.rb
|
425
|
+
- spec/type/relation_type/test_name.rb
|
426
|
+
- spec/type/seq_type/test_default_name.rb
|
427
|
+
- spec/type/seq_type/test_dress.rb
|
428
|
+
- spec/type/seq_type/test_equality.rb
|
429
|
+
- spec/type/seq_type/test_include.rb
|
430
|
+
- spec/type/seq_type/test_initialize.rb
|
431
|
+
- spec/type/seq_type/test_name.rb
|
432
|
+
- spec/type/set_type/test_default_name.rb
|
433
|
+
- spec/type/set_type/test_dress.rb
|
434
|
+
- spec/type/set_type/test_equality.rb
|
435
|
+
- spec/type/set_type/test_include.rb
|
436
|
+
- spec/type/set_type/test_initialize.rb
|
437
|
+
- spec/type/set_type/test_name.rb
|
438
|
+
- spec/type/struct_type/test_default_name.rb
|
439
|
+
- spec/type/struct_type/test_dress.rb
|
440
|
+
- spec/type/struct_type/test_equality.rb
|
441
|
+
- spec/type/struct_type/test_include.rb
|
442
|
+
- spec/type/struct_type/test_initialize.rb
|
443
|
+
- spec/type/struct_type/test_name.rb
|
444
|
+
- spec/type/sub_type/test_default_name.rb
|
445
|
+
- spec/type/sub_type/test_dress.rb
|
446
|
+
- spec/type/sub_type/test_equality.rb
|
447
|
+
- spec/type/sub_type/test_include.rb
|
448
|
+
- spec/type/sub_type/test_initialize.rb
|
449
|
+
- spec/type/sub_type/test_name.rb
|
450
|
+
- spec/type/tuple_type/test_default_name.rb
|
451
|
+
- spec/type/tuple_type/test_dress.rb
|
452
|
+
- spec/type/tuple_type/test_equality.rb
|
453
|
+
- spec/type/tuple_type/test_include.rb
|
454
|
+
- spec/type/tuple_type/test_initialize.rb
|
455
|
+
- spec/type/tuple_type/test_name.rb
|
456
|
+
- spec/type/union_type/test_default_name.rb
|
457
|
+
- spec/type/union_type/test_dress.rb
|
458
|
+
- spec/type/union_type/test_equality.rb
|
459
|
+
- spec/type/union_type/test_include.rb
|
460
|
+
- spec/type/union_type/test_initialize.rb
|
461
|
+
- spec/type/union_type/test_name.rb
|
462
|
+
- spec/type_factory/dsl/test_adt.rb
|
463
|
+
- spec/type_factory/dsl/test_any.rb
|
464
|
+
- spec/type_factory/dsl/test_attribute.rb
|
465
|
+
- spec/type_factory/dsl/test_attributes.rb
|
466
|
+
- spec/type_factory/dsl/test_builtin.rb
|
467
|
+
- spec/type_factory/dsl/test_multi_relation.rb
|
468
|
+
- spec/type_factory/dsl/test_multi_tuple.rb
|
469
|
+
- spec/type_factory/dsl/test_relation.rb
|
470
|
+
- spec/type_factory/dsl/test_seq.rb
|
471
|
+
- spec/type_factory/dsl/test_set.rb
|
472
|
+
- spec/type_factory/dsl/test_struct.rb
|
473
|
+
- spec/type_factory/dsl/test_subtype.rb
|
474
|
+
- spec/type_factory/dsl/test_tuple.rb
|
475
|
+
- spec/type_factory/dsl/test_union.rb
|
476
|
+
- spec/type_factory/factory/test_builtin.rb
|
477
|
+
- spec/type_factory/factory/test_seq_type.rb
|
478
|
+
- spec/type_factory/factory/test_set_type.rb
|
479
|
+
- spec/type_factory/factory/test_struct_type.rb
|
480
|
+
- spec/type_factory/factory/test_sub_type.rb
|
481
|
+
- spec/type_factory/factory/test_tuple_type.rb
|