julializer 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/julializer +12 -10
- data/lib/julializer/version.rb +1 -1
- data/lib/julializer.rb +12 -6
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 70d8479457b323508c5464e36655e5114bd27d5a
|
4
|
+
data.tar.gz: cc5e118fd88d913e8d6e8ebec309d640c5cacf71
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a252661e9addce63fd307b232612f104936dd8a586a9d531d557eee1ea38f8cac733b1a1a87b2a51c08032bb1edc561e39c2abf7ab8f641ef44efb7a3bf3a21d
|
7
|
+
data.tar.gz: 43ca600965fc6f7847107152aceb5852fb3e5b4a2bfbc31ee684a915bce569bec90fd58a17744e2eeff1a060bb575a43e6fda9c5575e26ba3cbad758f4ee3660
|
data/bin/julializer
CHANGED
@@ -2,20 +2,22 @@
|
|
2
2
|
require 'optparse'
|
3
3
|
require 'julializer'
|
4
4
|
|
5
|
+
config = {}
|
5
6
|
Options = OptionParser.new do |opts|
|
6
|
-
|
7
|
+
opts.on("-v", "--version", "Print version") { |v| puts Julializer::VERSION; exit 0}
|
8
|
+
opts.on("-n", "--nullable", "Allow nil(Nullable) conversion") { |v| config[:nullable] = true}
|
7
9
|
end
|
8
10
|
Options.parse!(ARGV)
|
9
11
|
|
10
12
|
if ARGV.empty?
|
11
|
-
|
13
|
+
printf Julializer.ruby2julia($stdin.read, config)
|
12
14
|
else
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
15
|
+
ARGV.each do |file|
|
16
|
+
if File.exist? file
|
17
|
+
printf Julializer.ruby2julia(File.read(file), config)
|
18
|
+
else
|
19
|
+
puts "File was not found: #{file}"
|
20
|
+
exit
|
21
|
+
end
|
22
|
+
end
|
21
23
|
end
|
data/lib/julializer/version.rb
CHANGED
data/lib/julializer.rb
CHANGED
@@ -4,8 +4,11 @@ module Julializer
|
|
4
4
|
class << self
|
5
5
|
require "julializer/version"
|
6
6
|
|
7
|
-
def ruby2julia(source)
|
7
|
+
def ruby2julia(source, config={})
|
8
8
|
@globals = []
|
9
|
+
{:nullable=>false}.each do |k,v|
|
10
|
+
instance_variable_set("@#{k}", config[k] || v)
|
11
|
+
end
|
9
12
|
#File.write("./__julialize_debug.log", Ripper.sexp(source).pretty_inspect)
|
10
13
|
transpile(Ripper.sexp(source))
|
11
14
|
end
|
@@ -394,17 +397,20 @@ module Julializer
|
|
394
397
|
"#{transpile(s[1])}:#{transpile(s[2])}"
|
395
398
|
|
396
399
|
when :aref, :aref_field
|
400
|
+
aref_string = ->(type, list, index){
|
401
|
+
# using #get function for Nullable compatible access
|
402
|
+
type==:aref && @nullable ? "get(#{list}, #{index}, Nullable)" : list + "[#{index}]"
|
403
|
+
}
|
397
404
|
if !s[2].flatten.include?(:dot2) && !s[2].flatten.include?(:dot3) && s[2][1][0][0]!=:string_literal then
|
398
|
-
transpile(s[1])
|
405
|
+
aref_string.call(s[0], transpile(s[1]), transpile(s[2])+"+1")
|
399
406
|
else
|
400
407
|
if s[2].flatten.include?(:dot2)
|
401
|
-
|
408
|
+
transpile(s[1]) + "[#{transpile(s[2][1][0][1])}+1:#{transpile(s[2][1][0][2])}+1]"
|
402
409
|
elsif s[2].flatten.include?(:dot3)
|
403
|
-
|
410
|
+
transpile(s[1]) + "[#{transpile(s[2][1][0][1])}+1:#{transpile(s[2][1][0][2])}]"
|
404
411
|
else
|
405
|
-
|
412
|
+
aref_string.call(s[0], transpile(s[1]), transpile(s[2]))
|
406
413
|
end
|
407
|
-
transpile(s[1]) + "[" + range + "]"
|
408
414
|
end
|
409
415
|
|
410
416
|
when :const_path_ref
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: julializer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kei Sawada(@remore)
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-09-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|