rlsm 1.1.0 → 1.8.1
Sign up to get free protection for your applications and to get access to all the features.
- data/Manifest +26 -0
- data/README +10 -10
- data/Rakefile +9 -55
- data/data/monoids.db +0 -0
- data/examples/benchmark.rb +14 -0
- data/examples/creating_db.rb +52 -0
- data/examples/creating_lists.rb +185 -0
- data/examples/numbers.rb +41 -0
- data/examples/order8.rb +13 -0
- data/examples/presenting_monoids_in_tex.rb +373 -0
- data/examples/regular_monoids.rb +144 -0
- data/ext/array/array_c_ext.c +21 -12
- data/ext/monoid/monoid_c_ext.c +76 -85
- data/lib/rlsm.rb +1 -1
- data/lib/rlsm/dfa.rb +9 -8
- data/lib/rlsm/helper.rb +12 -6
- data/lib/rlsm/monoid.rb +627 -217
- data/lib/rlsm/regexp.rb +2 -1
- data/lib/rlsm/regexp_parser.rb +2 -1
- data/rlsm.gemspec +26 -0
- data/test/test_dfa.rb +16 -14
- data/test/test_monoid.rb +43 -43
- data/test/test_regexp.rb +2 -2
- metadata +51 -83
- data/ext/binop/binop_c_ext.c +0 -57
- data/ext/binop/extconf.rb +0 -2
- data/lib/rlsm/binary_operation.rb +0 -151
- data/test/test_binop.rb +0 -119
data/lib/rlsm/regexp.rb
CHANGED
@@ -3,6 +3,7 @@ require File.join(File.dirname(__FILE__), 'regexp_parser')
|
|
3
3
|
require File.join(File.dirname(__FILE__), 'dfa')
|
4
4
|
|
5
5
|
module RLSM
|
6
|
+
# @private
|
6
7
|
class RegExp
|
7
8
|
#Returns a RegExp which is the empty word.
|
8
9
|
def self.empty_word
|
@@ -27,7 +28,7 @@ module RLSM
|
|
27
28
|
#
|
28
29
|
#Whitspaces will be ignored and the empty string represents the empty language.
|
29
30
|
def initialize(description)
|
30
|
-
@parse_tree = RE::Parser[ description ]
|
31
|
+
@parse_tree = RLSM::RE::Parser[ description ]
|
31
32
|
@string = @parse_tree.to_s
|
32
33
|
end
|
33
34
|
|
data/lib/rlsm/regexp_parser.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require File.join(File.dirname(__FILE__), 'helper')
|
2
2
|
|
3
3
|
module RLSM
|
4
|
+
# @private
|
4
5
|
module RE #:nodoc:
|
5
6
|
module ParserHelpers #:nodoc:
|
6
7
|
OpenBracket = '('
|
@@ -118,7 +119,7 @@ module RLSM
|
|
118
119
|
end
|
119
120
|
|
120
121
|
if unbalanced_brackets?(input)
|
121
|
-
raise
|
122
|
+
raise RLSM::Error, "Parse Error: Unbalanced brackets."
|
122
123
|
end
|
123
124
|
|
124
125
|
parse(input)
|
data/rlsm.gemspec
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
# -*- ruby -*-
|
2
|
+
|
3
|
+
require "rake"
|
4
|
+
require File.join(File.dirname(__FILE__), 'lib', 'rlsm')
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.author = "Gunther Diemant"
|
8
|
+
s.email = "g.diemant@gmx.net"
|
9
|
+
s.homepage = "http://github.com/asmodis/rlsm"
|
10
|
+
s.rubyforge_project = 'rlsm'
|
11
|
+
|
12
|
+
s.name = 'rlsm'
|
13
|
+
s.version = RLSM::VERSION
|
14
|
+
s.add_development_dependency('minitest')
|
15
|
+
s.add_development_dependency('thoughtbot-shoulda')
|
16
|
+
s.summary = "Library for investigating regular languages and syntactic monoids."
|
17
|
+
s.description = "see README"
|
18
|
+
|
19
|
+
s.files = File.open("Manifest").to_a.map { |file| file.strip }
|
20
|
+
s.test_files = FileList['test/test_*.rb']
|
21
|
+
s.extensions = FileList['ext/**/extconf.rb']
|
22
|
+
|
23
|
+
s.has_rdoc = true
|
24
|
+
s.extra_rdoc_files = ['README']
|
25
|
+
s.rdoc_options << '--main' << 'README'
|
26
|
+
end
|
data/test/test_dfa.rb
CHANGED
@@ -11,7 +11,7 @@ context "Parsing the description of a DFA." do
|
|
11
11
|
end
|
12
12
|
|
13
13
|
test "The empty string is not accepted" do
|
14
|
-
assert_raises
|
14
|
+
assert_raises RLSM::Error do
|
15
15
|
RLSM::DFA.new ""
|
16
16
|
end
|
17
17
|
end
|
@@ -23,13 +23,13 @@ context "Parsing the description of a DFA." do
|
|
23
23
|
end
|
24
24
|
|
25
25
|
test "The description must include an initial state indicator." do
|
26
|
-
assert_raises
|
26
|
+
assert_raises RLSM::Error do
|
27
27
|
RLSM::DFA.new "s1"
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
31
31
|
test "The description may not include more than one initial state." do
|
32
|
-
assert_raises
|
32
|
+
assert_raises RLSM::Error do
|
33
33
|
RLSM::DFA.new "}s1-a->}s2"
|
34
34
|
end
|
35
35
|
end
|
@@ -41,29 +41,29 @@ context "Parsing the description of a DFA." do
|
|
41
41
|
end
|
42
42
|
|
43
43
|
test "A transition arrow must have a starting dash." do
|
44
|
-
assert_raises
|
44
|
+
assert_raises RLSM::Error do
|
45
45
|
RLSM::DFA.new "}s1 a-> s2"
|
46
46
|
end
|
47
47
|
end
|
48
48
|
|
49
49
|
test "A transition arrow must have a closing arrow." do
|
50
|
-
assert_raises
|
50
|
+
assert_raises RLSM::Error do
|
51
51
|
RLSM::DFA.new "}s1 -a> s2"
|
52
52
|
end
|
53
53
|
|
54
|
-
assert_raises
|
54
|
+
assert_raises RLSM::Error do
|
55
55
|
RLSM::DFA.new "}s1 -a- s2"
|
56
56
|
end
|
57
57
|
end
|
58
58
|
|
59
59
|
test "A transition must have at least one label." do
|
60
|
-
assert_raises
|
60
|
+
assert_raises RLSM::Error do
|
61
61
|
RLSM::DFA.new "}s1 --> s2"
|
62
62
|
end
|
63
63
|
end
|
64
64
|
|
65
65
|
test "Multiple labels must be seperated by a comma." do
|
66
|
-
assert_raises
|
66
|
+
assert_raises RLSM::Error do
|
67
67
|
RLSM::DFA.new "}s1 -a;b-> s2"
|
68
68
|
end
|
69
69
|
end
|
@@ -75,13 +75,13 @@ context "Parsing the description of a DFA." do
|
|
75
75
|
end
|
76
76
|
|
77
77
|
test "A transition must start with a state." do
|
78
|
-
assert_raises
|
78
|
+
assert_raises RLSM::Error do
|
79
79
|
RLSM::DFA.new " -a-> }s2"
|
80
80
|
end
|
81
81
|
end
|
82
82
|
|
83
83
|
test "A transition must end with a state." do
|
84
|
-
assert_raises
|
84
|
+
assert_raises RLSM::Error do
|
85
85
|
RLSM::DFA.new "}s1 -a-> "
|
86
86
|
end
|
87
87
|
end
|
@@ -139,7 +139,7 @@ context "Creation of a DFA." do
|
|
139
139
|
end
|
140
140
|
|
141
141
|
test "Transition labels out from one state must be unique" do
|
142
|
-
assert_raises
|
142
|
+
assert_raises RLSM::Error do
|
143
143
|
RLSM::DFA.new "}s1 -a-> s2 s1-a->s3"
|
144
144
|
end
|
145
145
|
end
|
@@ -207,11 +207,11 @@ context "Properties of a state" do
|
|
207
207
|
|
208
208
|
test "Arguments for state properties must be states of the DFA." do
|
209
209
|
dfa = RLSM::DFA.new "}s1"
|
210
|
-
assert_raises
|
210
|
+
assert_raises RLSM::Error do
|
211
211
|
dfa.dead? "s3"
|
212
212
|
end
|
213
213
|
|
214
|
-
assert_raises
|
214
|
+
assert_raises RLSM::Error do
|
215
215
|
dfa.reachable? "s3"
|
216
216
|
end
|
217
217
|
end
|
@@ -382,7 +382,7 @@ context "Accepting of words, transition monoid" do
|
|
382
382
|
end
|
383
383
|
|
384
384
|
test "Requesting a transition from a nonexistant state." do
|
385
|
-
assert_raises
|
385
|
+
assert_raises RLSM::Error do
|
386
386
|
RLSM::DFA.new("}s1")['s2', 'a']
|
387
387
|
end
|
388
388
|
end
|
@@ -401,6 +401,8 @@ context "Accepting of words, transition monoid" do
|
|
401
401
|
refute dfa.accepts?("aab")
|
402
402
|
end
|
403
403
|
|
404
|
+
|
405
|
+
|
404
406
|
test "Calculating the transition monoid." do
|
405
407
|
dfa = RLSM::DFA.new "}s1-a->s2 s2 -a-> *s3 s3 -b-> s2"
|
406
408
|
expected_monoid = RLSM::Monoid[ <<MONOID
|
data/test/test_monoid.rb
CHANGED
@@ -49,41 +49,41 @@ context "Creation of a monoid:" do
|
|
49
49
|
end
|
50
50
|
|
51
51
|
test "Monoid::new : Should reject an empty description." do
|
52
|
-
assert_raises
|
52
|
+
assert_raises RLSM::Error do
|
53
53
|
RLSM::Monoid[ "" ]
|
54
54
|
end
|
55
55
|
end
|
56
56
|
|
57
57
|
test "Monoid::new : Should reject a description with only whitespaces." do
|
58
|
-
assert_raises
|
58
|
+
assert_raises RLSM::Error do
|
59
59
|
RLSM::Monoid[ " \t\n" ]
|
60
60
|
end
|
61
61
|
end
|
62
62
|
|
63
63
|
test "Monoid::new : Description should describe a quadratic matrix." do
|
64
|
-
assert_raises
|
64
|
+
assert_raises RLSM::Error do
|
65
65
|
RLSM::Monoid[ "012 120 20" ]
|
66
66
|
end
|
67
67
|
end
|
68
68
|
|
69
69
|
test "Monoid::new : Described n x n - matrix should contain n symbols." do
|
70
|
-
assert_raises
|
70
|
+
assert_raises RLSM::Error do
|
71
71
|
RLSM::Monoid[ "123 456 789" ]
|
72
72
|
end
|
73
73
|
|
74
|
-
assert_raises
|
74
|
+
assert_raises RLSM::Error do
|
75
75
|
RLSM::Monoid[ "000 000 000" ]
|
76
76
|
end
|
77
77
|
end
|
78
78
|
|
79
79
|
test "Monoid::new : Identity should be first row and column." do
|
80
|
-
assert_raises
|
80
|
+
assert_raises RLSM::Error do
|
81
81
|
RLSM::Monoid[ "00 01" ]
|
82
82
|
end
|
83
83
|
end
|
84
84
|
|
85
85
|
test "Monoid::new : Described monoid should be associative." do
|
86
|
-
assert_raises
|
86
|
+
assert_raises RLSM::Error do
|
87
87
|
RLSM::Monoid[ "012 100 200" ]
|
88
88
|
end
|
89
89
|
end
|
@@ -96,7 +96,7 @@ context "Creation of a monoid:" do
|
|
96
96
|
end
|
97
97
|
|
98
98
|
test "Monoid::new : Column seperators must either be used or not in a row." do
|
99
|
-
assert_raises
|
99
|
+
assert_raises RLSM::Error do
|
100
100
|
RLSM::Monoid[ "0,12 120 201" ]
|
101
101
|
end
|
102
102
|
end
|
@@ -116,11 +116,11 @@ context "Multiplication of elements:" do
|
|
116
116
|
end
|
117
117
|
|
118
118
|
test "Monoid#[] : Should require at least two arguments." do
|
119
|
-
assert_raises
|
119
|
+
assert_raises RLSM::Error do
|
120
120
|
@monoid["2"]
|
121
121
|
end
|
122
122
|
|
123
|
-
assert_raises
|
123
|
+
assert_raises RLSM::Error do
|
124
124
|
@monoid[]
|
125
125
|
end
|
126
126
|
end
|
@@ -134,7 +134,7 @@ context "Multiplication of elements:" do
|
|
134
134
|
|
135
135
|
|
136
136
|
test "Monoid#[] : Should raise BinOpError for unknown elements." do
|
137
|
-
assert_raises
|
137
|
+
assert_raises RLSM::Error do
|
138
138
|
@monoid["1","3"]
|
139
139
|
end
|
140
140
|
end
|
@@ -201,7 +201,7 @@ context "Generating submonoids:" do
|
|
201
201
|
test "Monoid#generated_set : Should raise BinOpError for unknown elements." do
|
202
202
|
m1 = RLSM::Monoid[ "0123 1203 2013 3333" ]
|
203
203
|
|
204
|
-
assert_raises
|
204
|
+
assert_raises RLSM::Error do
|
205
205
|
m1.generated_set(["4"])
|
206
206
|
end
|
207
207
|
end
|
@@ -507,45 +507,45 @@ context "Iterator: " do
|
|
507
507
|
i = 0
|
508
508
|
RLSM::Monoid.each(3) { i += 1 }
|
509
509
|
|
510
|
-
assert_equal 6, i
|
510
|
+
assert_equal 6, i, "order3"
|
511
511
|
|
512
512
|
i = 0
|
513
513
|
RLSM::Monoid.each(4) { i += 1 }
|
514
514
|
|
515
|
-
assert_equal 27, i
|
515
|
+
assert_equal 27, i, "order4"
|
516
516
|
|
517
517
|
i = 0
|
518
518
|
RLSM::Monoid.each(5) { i += 1 }
|
519
519
|
|
520
|
-
assert_equal 156, i
|
521
|
-
|
522
|
-
order4 = [RLSM::Monoid[
|
523
|
-
RLSM::Monoid[
|
524
|
-
RLSM::Monoid[
|
525
|
-
RLSM::Monoid[
|
526
|
-
RLSM::Monoid[
|
527
|
-
RLSM::Monoid[
|
528
|
-
RLSM::Monoid[
|
529
|
-
RLSM::Monoid[
|
530
|
-
RLSM::Monoid[
|
531
|
-
RLSM::Monoid[
|
532
|
-
RLSM::Monoid[
|
533
|
-
RLSM::Monoid[
|
534
|
-
RLSM::Monoid[
|
535
|
-
RLSM::Monoid[
|
536
|
-
RLSM::Monoid[
|
537
|
-
RLSM::Monoid[
|
538
|
-
RLSM::Monoid[
|
539
|
-
RLSM::Monoid[
|
540
|
-
RLSM::Monoid[
|
541
|
-
RLSM::Monoid[
|
542
|
-
RLSM::Monoid[
|
543
|
-
RLSM::Monoid[
|
544
|
-
RLSM::Monoid[
|
545
|
-
RLSM::Monoid[
|
546
|
-
RLSM::Monoid[
|
547
|
-
RLSM::Monoid[
|
548
|
-
RLSM::Monoid[
|
520
|
+
assert_equal 156, i, "order5"
|
521
|
+
|
522
|
+
order4 = [RLSM::Monoid[ [0,1,2,3,1,0,3,2,2,3,0,1,3,2,1,0] ],
|
523
|
+
RLSM::Monoid[ [0,1,2,3,1,0,3,2,2,3,1,0,3,2,0,1] ],
|
524
|
+
RLSM::Monoid[ [0,1,2,3,1,0,2,3,2,2,2,2,3,3,2,2] ],
|
525
|
+
RLSM::Monoid[ [0,1,2,3,1,0,2,3,2,2,2,3,3,3,3,2] ],
|
526
|
+
RLSM::Monoid[ [0,1,2,3,1,0,3,2,2,3,2,3,3,2,3,2] ],
|
527
|
+
RLSM::Monoid[ [0,1,2,3,1,0,2,3,2,2,2,2,3,3,2,3] ],
|
528
|
+
RLSM::Monoid[ [0,1,2,3,1,0,2,3,2,2,2,2,3,3,3,3] ],
|
529
|
+
RLSM::Monoid[ [0,1,2,3,1,0,2,3,2,3,2,3,3,2,2,3] ],
|
530
|
+
RLSM::Monoid[ [0,1,2,3,1,1,1,1,2,1,1,1,3,1,1,1] ],
|
531
|
+
RLSM::Monoid[ [0,1,2,3,1,1,1,3,2,1,1,3,3,3,3,1] ],
|
532
|
+
RLSM::Monoid[ [0,1,2,3,1,1,2,2,2,2,1,1,3,2,1,1] ],
|
533
|
+
RLSM::Monoid[ [0,1,2,3,1,1,1,1,2,1,1,1,3,1,1,2] ],
|
534
|
+
RLSM::Monoid[ [0,1,2,3,1,1,1,1,2,1,1,1,3,1,1,3] ],
|
535
|
+
RLSM::Monoid[ [0,1,2,3,1,1,1,1,2,1,1,1,3,1,2,3] ],
|
536
|
+
RLSM::Monoid[ [0,1,2,3,1,1,1,1,2,1,1,1,3,3,3,3] ],
|
537
|
+
RLSM::Monoid[ [0,1,2,3,1,1,1,1,2,1,1,2,3,1,2,3] ],
|
538
|
+
RLSM::Monoid[ [0,1,2,3,1,1,1,3,2,1,1,3,3,3,3,3] ],
|
539
|
+
RLSM::Monoid[ [0,1,2,3,1,1,2,1,2,2,1,2,3,1,2,3] ],
|
540
|
+
RLSM::Monoid[ [0,1,2,3,1,1,2,3,2,2,1,3,3,3,3,3] ],
|
541
|
+
RLSM::Monoid[ [0,1,2,3,1,1,1,1,2,1,2,1,3,1,1,3] ],
|
542
|
+
RLSM::Monoid[ [0,1,2,3,1,1,1,1,2,1,2,1,3,3,3,3] ],
|
543
|
+
RLSM::Monoid[ [0,1,2,3,1,1,1,1,2,1,2,2,3,1,2,3] ],
|
544
|
+
RLSM::Monoid[ [0,1,2,3,1,1,1,1,2,1,2,2,3,1,3,3] ],
|
545
|
+
RLSM::Monoid[ [0,1,2,3,1,1,1,1,2,1,2,3,3,3,3,3] ],
|
546
|
+
RLSM::Monoid[ [0,1,2,3,1,1,1,1,2,2,2,2,3,3,3,3] ],
|
547
|
+
RLSM::Monoid[ [0,1,2,3,1,1,1,1,2,1,3,0,3,1,0,2] ],
|
548
|
+
RLSM::Monoid[ [0,1,2,3,1,1,2,3,2,2,3,1,3,3,1,2] ]]
|
549
549
|
|
550
550
|
RLSM::Monoid.each(4) { |m| assert order4.include? m }
|
551
551
|
end
|
data/test/test_regexp.rb
CHANGED
@@ -19,11 +19,11 @@ context "Parsing of a regexp:" do
|
|
19
19
|
end
|
20
20
|
|
21
21
|
test "RegExp::new : Should check that parentheses are balanced." do
|
22
|
-
assert_raises
|
22
|
+
assert_raises RLSM::Error do
|
23
23
|
RLSM::RegExp.new "(ab(cUd)"
|
24
24
|
end
|
25
25
|
|
26
|
-
assert_raises
|
26
|
+
assert_raises RLSM::Error do
|
27
27
|
RLSM::RegExp.new "ab)((cUd)"
|
28
28
|
end
|
29
29
|
end
|
metadata
CHANGED
@@ -1,7 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rlsm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
hash: 53
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 1
|
8
|
+
- 8
|
9
|
+
- 1
|
10
|
+
version: 1.8.1
|
5
11
|
platform: ruby
|
6
12
|
authors:
|
7
13
|
- Gunther Diemant
|
@@ -9,116 +15,73 @@ autorequire:
|
|
9
15
|
bindir: bin
|
10
16
|
cert_chain: []
|
11
17
|
|
12
|
-
date:
|
18
|
+
date: 2010-09-02 00:00:00 +02:00
|
13
19
|
default_executable:
|
14
20
|
dependencies:
|
15
21
|
- !ruby/object:Gem::Dependency
|
16
22
|
name: minitest
|
17
|
-
|
18
|
-
|
19
|
-
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
20
26
|
requirements:
|
21
27
|
- - ">="
|
22
28
|
- !ruby/object:Gem::Version
|
29
|
+
hash: 3
|
30
|
+
segments:
|
31
|
+
- 0
|
23
32
|
version: "0"
|
24
|
-
|
33
|
+
type: :development
|
34
|
+
version_requirements: *id001
|
25
35
|
- !ruby/object:Gem::Dependency
|
26
36
|
name: thoughtbot-shoulda
|
27
|
-
|
28
|
-
|
29
|
-
|
37
|
+
prerelease: false
|
38
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
30
40
|
requirements:
|
31
41
|
- - ">="
|
32
42
|
- !ruby/object:Gem::Version
|
43
|
+
hash: 3
|
44
|
+
segments:
|
45
|
+
- 0
|
33
46
|
version: "0"
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
rlsm stands for *R*egular *L*anguages and *S*yntactic *M*onoids.
|
38
|
-
|
39
|
-
Source is availible from
|
40
|
-
http://github.com/asmodis/rlsm
|
41
|
-
|
42
|
-
RDoc-Documentation is availible from
|
43
|
-
http://rlsm.rubyforge.org
|
44
|
-
|
45
|
-
== DESCRIPTION:
|
46
|
-
|
47
|
-
This is a ruby implementation of three concepts:
|
48
|
-
- Deterministic Finite Automata
|
49
|
-
- Regular Expressions (in the sense of theoretical computer sience)
|
50
|
-
- Monoids
|
51
|
-
|
52
|
-
|
53
|
-
== SYNOPSIS:
|
54
|
-
|
55
|
-
require 'rlsm'
|
56
|
-
|
57
|
-
m = RLSM::Monoid.new '012 112 212'
|
58
|
-
m.syntactic? # => true
|
59
|
-
m.isomorph_to?(m) # => true
|
60
|
-
m.commutative? # => false
|
61
|
-
|
62
|
-
== INSTALL:
|
63
|
-
|
64
|
-
gem install rlsm
|
65
|
-
|
66
|
-
|
67
|
-
== LICENSE:
|
68
|
-
|
69
|
-
(The MIT License)
|
70
|
-
|
71
|
-
Copyright (c) 2009 Gunther Diemant <g.diemant@gmx.net>
|
72
|
-
|
73
|
-
Permission is hereby granted, free of charge, to any person obtaining
|
74
|
-
a copy of this software and associated documentation files (the
|
75
|
-
'Software'), to deal in the Software without restriction, including
|
76
|
-
without limitation the rights to use, copy, modify, merge, publish,
|
77
|
-
distribute, sublicense, and/or sell copies of the Software, and to
|
78
|
-
permit persons to whom the Software is furnished to do so, subject to
|
79
|
-
the following conditions:
|
80
|
-
|
81
|
-
The above copyright notice and this permission notice shall be
|
82
|
-
included in all copies or substantial portions of the Software.
|
83
|
-
|
84
|
-
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
85
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
86
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
87
|
-
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
88
|
-
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
89
|
-
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
90
|
-
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
91
|
-
|
47
|
+
type: :development
|
48
|
+
version_requirements: *id002
|
49
|
+
description: see README
|
92
50
|
email: g.diemant@gmx.net
|
93
51
|
executables: []
|
94
52
|
|
95
53
|
extensions:
|
96
54
|
- ext/array/extconf.rb
|
97
|
-
- ext/binop/extconf.rb
|
98
55
|
- ext/monoid/extconf.rb
|
99
56
|
extra_rdoc_files:
|
100
57
|
- README
|
101
58
|
files:
|
102
|
-
-
|
103
|
-
-
|
59
|
+
- Rakefile
|
60
|
+
- Manifest
|
61
|
+
- README
|
62
|
+
- rlsm.gemspec
|
63
|
+
- lib/rlsm.rb
|
104
64
|
- lib/rlsm/helper.rb
|
105
65
|
- lib/rlsm/monoid.rb
|
66
|
+
- lib/rlsm/dfa.rb
|
106
67
|
- lib/rlsm/regexp.rb
|
107
68
|
- lib/rlsm/regexp_parser.rb
|
108
|
-
-
|
109
|
-
- ext/array/array_c_ext.c
|
110
|
-
- ext/binop/binop_c_ext.c
|
69
|
+
- ext/monoid/extconf.rb
|
111
70
|
- ext/monoid/monoid_c_ext.c
|
112
71
|
- ext/array/extconf.rb
|
113
|
-
- ext/
|
114
|
-
- ext/monoid/extconf.rb
|
72
|
+
- ext/array/array_c_ext.c
|
115
73
|
- test/helpers.rb
|
116
|
-
- test/test_binop.rb
|
117
|
-
- test/test_dfa.rb
|
118
74
|
- test/test_monoid.rb
|
75
|
+
- test/test_dfa.rb
|
119
76
|
- test/test_regexp.rb
|
120
|
-
-
|
121
|
-
-
|
77
|
+
- data/monoids.db
|
78
|
+
- examples/creating_db.rb
|
79
|
+
- examples/creating_lists.rb
|
80
|
+
- examples/presenting_monoids_in_tex.rb
|
81
|
+
- examples/regular_monoids.rb
|
82
|
+
- examples/order8.rb
|
83
|
+
- examples/benchmark.rb
|
84
|
+
- examples/numbers.rb
|
122
85
|
has_rdoc: true
|
123
86
|
homepage: http://github.com/asmodis/rlsm
|
124
87
|
licenses: []
|
@@ -130,26 +93,31 @@ rdoc_options:
|
|
130
93
|
require_paths:
|
131
94
|
- lib
|
132
95
|
required_ruby_version: !ruby/object:Gem::Requirement
|
96
|
+
none: false
|
133
97
|
requirements:
|
134
98
|
- - ">="
|
135
99
|
- !ruby/object:Gem::Version
|
100
|
+
hash: 3
|
101
|
+
segments:
|
102
|
+
- 0
|
136
103
|
version: "0"
|
137
|
-
version:
|
138
104
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
139
106
|
requirements:
|
140
107
|
- - ">="
|
141
108
|
- !ruby/object:Gem::Version
|
109
|
+
hash: 3
|
110
|
+
segments:
|
111
|
+
- 0
|
142
112
|
version: "0"
|
143
|
-
version:
|
144
113
|
requirements: []
|
145
114
|
|
146
115
|
rubyforge_project: rlsm
|
147
|
-
rubygems_version: 1.3.
|
116
|
+
rubygems_version: 1.3.7
|
148
117
|
signing_key:
|
149
118
|
specification_version: 3
|
150
119
|
summary: Library for investigating regular languages and syntactic monoids.
|
151
120
|
test_files:
|
152
|
-
- test/test_binop.rb
|
153
121
|
- test/test_dfa.rb
|
154
122
|
- test/test_monoid.rb
|
155
123
|
- test/test_regexp.rb
|