italian-ruby 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +11 -0
- data/.rspec +3 -0
- data/.ruby-version +1 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +42 -0
- data/README.md +107 -0
- data/Rakefile +6 -0
- data/bin/italian-rspec +29 -0
- data/bin/italian-ruby +18 -0
- data/italian-ruby.gemspec +36 -0
- data/lib/italian/ruby/core_ext/array.rb +23 -0
- data/lib/italian/ruby/core_ext/hanami/interactor.rb +50 -0
- data/lib/italian/ruby/core_ext/hanami/mongoid.rb +14 -0
- data/lib/italian/ruby/core_ext/hash.rb +25 -0
- data/lib/italian/ruby/core_ext/kernel.rb +56 -0
- data/lib/italian/ruby/core_ext/main.rb +39 -0
- data/lib/italian/ruby/core_ext/mongoid/criteria.rb +19 -0
- data/lib/italian/ruby/core_ext/object.rb +31 -0
- data/lib/italian/ruby/core_ext/rspec/core.rb +27 -0
- data/lib/italian/ruby/core_ext/rspec/expectations.rb +18 -0
- data/lib/italian/ruby/core_ext/string.rb +8 -0
- data/lib/italian/ruby/core_ext.rb +13 -0
- data/lib/italian/ruby/richiedi_test.ir +5 -0
- data/lib/italian/ruby/ruby_parser_patches.rb +67 -0
- data/lib/italian/ruby/traduttore.rb +32 -0
- data/lib/italian/ruby/version.rb +5 -0
- data/lib/italian/ruby.rb +8 -0
- data/vscode/italianruby.tmGrammar.json +2019 -0
- metadata +133 -0
@@ -0,0 +1,67 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RubyParserStuff
|
4
|
+
class Keyword
|
5
|
+
expr_woot = EXPR_FNAME|EXPR_FITEM
|
6
|
+
|
7
|
+
italian_wordlist = [
|
8
|
+
["alias", [:kALIAS, :kALIAS ], expr_woot ],
|
9
|
+
["e", [:kAND, :kAND ], EXPR_BEG ],
|
10
|
+
["inizia", [:kBEGIN, :kBEGIN ], EXPR_BEG ],
|
11
|
+
["esci", [:kBREAK, :kBREAK ], EXPR_MID ],
|
12
|
+
["considera", [:kCASE, :kCASE ], EXPR_BEG ],
|
13
|
+
["classe", [:kCLASS, :kCLASS ], EXPR_CLASS ],
|
14
|
+
["def", [:kDEF, :kDEF ], EXPR_FNAME ],
|
15
|
+
["definisci", [:kDEF, :kDEF ], EXPR_FNAME ],
|
16
|
+
["definito?", [:kDEFINED, :kDEFINED ], EXPR_ARG ],
|
17
|
+
["definita?", [:kDEFINED, :kDEFINED ], EXPR_ARG ],
|
18
|
+
["esegui", [:kDO, :kDO ], EXPR_BEG ],
|
19
|
+
["fai", [:kDO, :kDO ], EXPR_BEG ],
|
20
|
+
["altrimenti", [:kELSE, :kELSE ], EXPR_BEG ],
|
21
|
+
["altrimenti_se", [:kELSIF, :kELSIF ], EXPR_BEG ],
|
22
|
+
["fine", [:kEND, :kEND ], EXPR_END ],
|
23
|
+
["assicura", [:kENSURE, :kENSURE ], EXPR_BEG ],
|
24
|
+
["no", [:kFALSE, :kFALSE ], EXPR_END ],
|
25
|
+
["falso", [:kFALSE, :kFALSE ], EXPR_END ],
|
26
|
+
["per", [:kFOR, :kFOR ], EXPR_BEG ],
|
27
|
+
["se", [:kIF, :kIF_MOD ], EXPR_BEG ],
|
28
|
+
["in", [:kIN, :kIN ], EXPR_BEG ],
|
29
|
+
["modulo", [:kMODULE, :kMODULE ], EXPR_BEG ],
|
30
|
+
["prossimo", [:kNEXT, :kNEXT ], EXPR_MID ],
|
31
|
+
["prossima", [:kNEXT, :kNEXT ], EXPR_MID ],
|
32
|
+
["nullo", [:kNIL, :kNIL ], EXPR_END ],
|
33
|
+
["nulla", [:kNIL, :kNIL ], EXPR_END ],
|
34
|
+
["non", [:kNOT, :kNOT ], EXPR_ARG ],
|
35
|
+
["o", [:kOR, :kOR ], EXPR_BEG ],
|
36
|
+
["rifai", [:kREDO, :kREDO ], EXPR_END ],
|
37
|
+
["riesegui", [:kREDO, :kREDO ], EXPR_END ],
|
38
|
+
["recupera", [:kRESCUE, :kRESCUE_MOD ], EXPR_MID ],
|
39
|
+
["riprova", [:kRETRY, :kRETRY ], EXPR_END ],
|
40
|
+
["ritorna", [:kRETURN, :kRETURN ], EXPR_MID ],
|
41
|
+
["istanza", [:kSELF, :kSELF ], EXPR_END ],
|
42
|
+
["se_stesso", [:kSELF, :kSELF ], EXPR_END ],
|
43
|
+
["se_stessa", [:kSELF, :kSELF ], EXPR_END ],
|
44
|
+
["super", [:kSUPER, :kSUPER ], EXPR_ARG ],
|
45
|
+
["allora", [:kTHEN, :kTHEN ], EXPR_BEG ],
|
46
|
+
["si", [:kTRUE, :kTRUE ], EXPR_END ],
|
47
|
+
["vero", [:kTRUE, :kTRUE ], EXPR_END ],
|
48
|
+
["undef", [:kUNDEF, :kUNDEF ], expr_woot ],
|
49
|
+
["a_meno_che", [:kUNLESS, :kUNLESS_MOD ], EXPR_BEG ],
|
50
|
+
["finché", [:kUNTIL, :kUNTIL_MOD ], EXPR_BEG ],
|
51
|
+
["quando", [:kWHEN, :kWHEN ], EXPR_BEG ],
|
52
|
+
["mentre", [:kWHILE, :kWHILE_MOD ], EXPR_BEG ],
|
53
|
+
["rilascia", [:kYIELD, :kYIELD ], EXPR_ARG ],
|
54
|
+
["INIZIA", [:klBEGIN, :klBEGIN ], EXPR_END ],
|
55
|
+
["FINE", [:klEND, :klEND ], EXPR_END ],
|
56
|
+
["__FILE__", [:k__FILE__, :k__FILE__ ], EXPR_END ],
|
57
|
+
["__LINE__", [:k__LINE__, :k__LINE__ ], EXPR_END ],
|
58
|
+
["__ENCODING__", [:k__ENCODING__, :k__ENCODING__], EXPR_END],
|
59
|
+
].map { |args| KWtable.new(*args) }
|
60
|
+
|
61
|
+
ITALIAN_WORDLIST = Hash[*italian_wordlist.map { |o| [o.name, o] }.flatten]
|
62
|
+
|
63
|
+
def self.keyword str
|
64
|
+
ITALIAN_WORDLIST[str]
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require "ruby2ruby"
|
3
|
+
require "ruby_parser"
|
4
|
+
require_relative "ruby_parser_patches"
|
5
|
+
|
6
|
+
module Italian
|
7
|
+
module Ruby
|
8
|
+
class Traduttore
|
9
|
+
|
10
|
+
class << self
|
11
|
+
|
12
|
+
def traduci(file)
|
13
|
+
begin
|
14
|
+
@@ruby2ruby ||= Ruby2Ruby.new
|
15
|
+
@@parser ||= RubyParser.new
|
16
|
+
|
17
|
+
codice = File.read file
|
18
|
+
sexp = @@parser.process("# encoding: utf-8\n#{codice}")
|
19
|
+
codice_ruby = @@ruby2ruby.process(sexp)
|
20
|
+
|
21
|
+
"# encoding: utf-8\n#{codice_ruby}"
|
22
|
+
rescue StandardError => error
|
23
|
+
raise "Errore nella traduzione del file #{file}.\n"\
|
24
|
+
"#{error.message}\n#{error.backtrace.join("\n")}"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|