matrix_dsl 1.0.0 → 1.1.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.
- data/.gitignore +1 -0
- data/README.markdown +3 -3
- data/Rakefile +56 -0
- data/VERSION +1 -0
- data/examples/simple_example.matrix_dsl +17 -0
- data/lib/matrix_dsl_def.treetop +5 -5
- data/lib/matrix_dsl_helpers.rb +2 -2
- data/matrix_dsl.gemspec +54 -0
- data/matrix_dsl_run.rb +3 -2
- data/tests/basic_test.rb +3 -3
- metadata +9 -5
- data/example.matrix_dsl +0 -11
data/.gitignore
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
pkg
|
data/README.markdown
CHANGED
@@ -11,8 +11,8 @@ You can execute script similar to:
|
|
11
11
|
]
|
12
12
|
|
13
13
|
Transform M1:
|
14
|
-
R2
|
15
|
-
C3
|
14
|
+
R2 -> 2R2 + R3
|
15
|
+
C3 -> C3 - C1
|
16
16
|
|
17
17
|
det_m1 = det M1
|
18
18
|
|
@@ -37,7 +37,7 @@ Usage
|
|
37
37
|
==========
|
38
38
|
|
39
39
|
gem install matrix_dsl
|
40
|
-
matrix_dsl_run < curl http://github.com/jasim/matrix_transformations/blob/master/
|
40
|
+
matrix_dsl_run < curl http://github.com/jasim/matrix_transformations/blob/master/examples/simple_example.matrix_dsl
|
41
41
|
|
42
42
|
To integrate Matrix DSL scripts into your code, please have a look at http://github.com/jasim/matrix_transformations/blob/master/tests/basic_test.rb
|
43
43
|
|
data/Rakefile
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake'
|
3
|
+
|
4
|
+
begin
|
5
|
+
require 'jeweler'
|
6
|
+
Jeweler::Tasks.new do |gem|
|
7
|
+
gem.name = "matrix_dsl"
|
8
|
+
gem.summary = %Q{A simple DSL for expressing and evaluating basic Matrix transformations and arithmetic operations}
|
9
|
+
gem.description = gem.summary
|
10
|
+
gem.email = "jasim.ab@gmail.com"
|
11
|
+
gem.homepage = "http://github.com/jasim/matrix_dsl"
|
12
|
+
gem.authors = ["Jasim A Basheer"]
|
13
|
+
gem.add_dependency "treetop"
|
14
|
+
gem.add_dependency "colorize"
|
15
|
+
end
|
16
|
+
rescue LoadError
|
17
|
+
puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
|
18
|
+
end
|
19
|
+
|
20
|
+
require 'rake/testtask'
|
21
|
+
Rake::TestTask.new(:test) do |test|
|
22
|
+
test.libs << 'lib' << 'test'
|
23
|
+
test.pattern = 'test/**/*_test.rb'
|
24
|
+
test.verbose = true
|
25
|
+
end
|
26
|
+
|
27
|
+
begin
|
28
|
+
require 'rcov/rcovtask'
|
29
|
+
Rcov::RcovTask.new do |test|
|
30
|
+
test.libs << 'test'
|
31
|
+
test.pattern = 'test/**/*_test.rb'
|
32
|
+
test.verbose = true
|
33
|
+
end
|
34
|
+
rescue LoadError
|
35
|
+
task :rcov do
|
36
|
+
abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
task :test => :check_dependencies
|
41
|
+
|
42
|
+
task :default => :test
|
43
|
+
|
44
|
+
require 'rake/rdoctask'
|
45
|
+
Rake::RDocTask.new do |rdoc|
|
46
|
+
if File.exist?('VERSION')
|
47
|
+
version = File.read('VERSION')
|
48
|
+
else
|
49
|
+
version = ""
|
50
|
+
end
|
51
|
+
|
52
|
+
rdoc.rdoc_dir = 'rdoc'
|
53
|
+
rdoc.title = "matrix_dsl #{version}"
|
54
|
+
rdoc.rdoc_files.include('README*')
|
55
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
56
|
+
end
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
1.1.0
|
data/lib/matrix_dsl_def.treetop
CHANGED
@@ -12,9 +12,9 @@ grammar MatrixTransformations
|
|
12
12
|
# === Matrix transformation grammar ===
|
13
13
|
# ie those inside the 'Transform' block:
|
14
14
|
# Transform M1:
|
15
|
-
# R1
|
16
|
-
# R3
|
17
|
-
# R4
|
15
|
+
# R1 -> R1 + R2
|
16
|
+
# R3 -> 3R3
|
17
|
+
# R4 -> R4/2
|
18
18
|
# etc.
|
19
19
|
|
20
20
|
rule transformation
|
@@ -30,7 +30,7 @@ grammar MatrixTransformations
|
|
30
30
|
end
|
31
31
|
|
32
32
|
rule transform_operator
|
33
|
-
space "
|
33
|
+
space "->" space
|
34
34
|
end
|
35
35
|
|
36
36
|
rule transform_expression
|
@@ -89,7 +89,7 @@ grammar MatrixTransformations
|
|
89
89
|
|
90
90
|
#-- Rest of the stuff:
|
91
91
|
rule number
|
92
|
-
[0-9]+ <MatrixDSL::NodeNumber>
|
92
|
+
[\-]? [0-9]+ <MatrixDSL::NodeNumber>
|
93
93
|
end
|
94
94
|
|
95
95
|
rule function
|
data/lib/matrix_dsl_helpers.rb
CHANGED
@@ -14,7 +14,7 @@ module MatrixDSL_Helpers
|
|
14
14
|
error_found=false
|
15
15
|
|
16
16
|
script.rstrip!
|
17
|
-
print "\
|
17
|
+
print "\nExecuting script:\n".yellow
|
18
18
|
puts script.blue
|
19
19
|
|
20
20
|
$matrix_dsl_vars.clear # Start with a fresh state.
|
@@ -46,7 +46,7 @@ module MatrixDSL_Helpers
|
|
46
46
|
|
47
47
|
|
48
48
|
puts "success".green
|
49
|
-
return
|
49
|
+
return true
|
50
50
|
end
|
51
51
|
|
52
52
|
# Displays given script, but highlights the character at supplied offset in red color.
|
data/matrix_dsl.gemspec
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{matrix_dsl}
|
8
|
+
s.version = "1.1.0"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Jasim A Basheer"]
|
12
|
+
s.date = %q{2010-10-26}
|
13
|
+
s.description = %q{A simple DSL for expressing and evaluating basic Matrix transformations and arithmetic operations}
|
14
|
+
s.email = %q{jasim.ab@gmail.com}
|
15
|
+
s.extra_rdoc_files = [
|
16
|
+
"LICENSE",
|
17
|
+
"README.markdown"
|
18
|
+
]
|
19
|
+
s.files = [
|
20
|
+
".gitignore",
|
21
|
+
"LICENSE",
|
22
|
+
"README.markdown",
|
23
|
+
"Rakefile",
|
24
|
+
"VERSION",
|
25
|
+
"examples/simple_example.matrix_dsl",
|
26
|
+
"lib/matrix_dsl.rb",
|
27
|
+
"lib/matrix_dsl_def.treetop",
|
28
|
+
"lib/matrix_dsl_helpers.rb",
|
29
|
+
"matrix_dsl.gemspec",
|
30
|
+
"matrix_dsl_run.rb",
|
31
|
+
"tests/basic_test.rb"
|
32
|
+
]
|
33
|
+
s.homepage = %q{http://github.com/jasim/matrix_dsl}
|
34
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
35
|
+
s.require_paths = ["lib"]
|
36
|
+
s.rubygems_version = %q{1.3.7}
|
37
|
+
s.summary = %q{A simple DSL for expressing and evaluating basic Matrix transformations and arithmetic operations}
|
38
|
+
|
39
|
+
if s.respond_to? :specification_version then
|
40
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
41
|
+
s.specification_version = 3
|
42
|
+
|
43
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
44
|
+
s.add_runtime_dependency(%q<treetop>, [">= 0"])
|
45
|
+
s.add_runtime_dependency(%q<colorize>, [">= 0"])
|
46
|
+
else
|
47
|
+
s.add_dependency(%q<treetop>, [">= 0"])
|
48
|
+
s.add_dependency(%q<colorize>, [">= 0"])
|
49
|
+
end
|
50
|
+
else
|
51
|
+
s.add_dependency(%q<treetop>, [">= 0"])
|
52
|
+
s.add_dependency(%q<colorize>, [">= 0"])
|
53
|
+
end
|
54
|
+
end
|
data/matrix_dsl_run.rb
CHANGED
@@ -2,8 +2,9 @@ require 'rubygems'
|
|
2
2
|
require 'ruby-debug'
|
3
3
|
require 'colorize'
|
4
4
|
|
5
|
-
|
6
|
-
require '
|
5
|
+
$:.unshift File.join(File.dirname(__FILE__),'lib')
|
6
|
+
require 'matrix_dsl.rb'
|
7
|
+
require 'matrix_dsl_helpers.rb'
|
7
8
|
include MatrixDSL
|
8
9
|
include MatrixDSL_Helpers
|
9
10
|
|
data/tests/basic_test.rb
CHANGED
@@ -67,9 +67,9 @@ class BasicTest < Test::Unit::TestCase
|
|
67
67
|
det2 = det M1
|
68
68
|
|
69
69
|
Transform M1:
|
70
|
-
R1
|
71
|
-
R3
|
72
|
-
R2
|
70
|
+
R1 -> R1 + R2
|
71
|
+
R3 -> R3 - R2
|
72
|
+
R2 -> 2R2
|
73
73
|
"
|
74
74
|
|
75
75
|
expected = {"M1"=>Matrix[[4.0, 4.0, 4.0], [6.0, 4.0, 2.0], [2.0, -1.0, 1.0]], "det1"=>-20.0, "det2"=>-20.0}
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: matrix_dsl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 19
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 1
|
8
|
+
- 1
|
8
9
|
- 0
|
9
|
-
|
10
|
-
version: 1.0.0
|
10
|
+
version: 1.1.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Jasim A Basheer
|
@@ -56,14 +56,18 @@ extra_rdoc_files:
|
|
56
56
|
- LICENSE
|
57
57
|
- README.markdown
|
58
58
|
files:
|
59
|
+
- .gitignore
|
60
|
+
- LICENSE
|
59
61
|
- README.markdown
|
60
|
-
-
|
62
|
+
- Rakefile
|
63
|
+
- VERSION
|
64
|
+
- examples/simple_example.matrix_dsl
|
61
65
|
- lib/matrix_dsl.rb
|
62
66
|
- lib/matrix_dsl_def.treetop
|
63
67
|
- lib/matrix_dsl_helpers.rb
|
68
|
+
- matrix_dsl.gemspec
|
64
69
|
- matrix_dsl_run.rb
|
65
70
|
- tests/basic_test.rb
|
66
|
-
- LICENSE
|
67
71
|
has_rdoc: true
|
68
72
|
homepage: http://github.com/jasim/matrix_dsl
|
69
73
|
licenses: []
|