italian-ruby 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
@@ -0,0 +1,5 @@
1
+ module Italian
2
+ module Ruby
3
+ VERSION = "0.1.2"
4
+ end
5
+ end
@@ -0,0 +1,8 @@
1
+ require "italian/ruby/version"
2
+ require "italian/ruby/traduttore"
3
+ require "italian/ruby/core_ext"
4
+
5
+ module Italian
6
+ module Ruby
7
+ end
8
+ end