dtr_to_rust 0.2.4 → 0.2.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/generator.rb +4 -0
- data/lib/instruction/create_list.rb +19 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b65d1e7c39791951dc4d806995143fd2df7e819680f865afcda770031b9315a6
|
4
|
+
data.tar.gz: 44526fcab24e6c2d2a1daae54321d962b3d99281f076d670288d2adfe5065534
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a2f2abf2a127d62c46b880774f49eeccf94dcbfd9ceda0f1e07698d046b843a51209bbac35f8924bea0b66bf31b88788076927686f6ec8e800d13a73f329e3ab
|
7
|
+
data.tar.gz: a9eb2c7dc8e95b98aa3fae998c59fe90199166c0e2a7b3ee8edfc4fbc5ddd55c03b90ade0a43abb1b89834127f68e0278f27a08fe92d407f05bc81b758299cc1
|
data/lib/generator.rb
CHANGED
@@ -5,9 +5,27 @@ module DTRToRust
|
|
5
5
|
# This class is responsible for generating Rust code for the AddAndAssign instruction.
|
6
6
|
class CreateList < Handler
|
7
7
|
def handle
|
8
|
-
form_rust_string("let #{@instruction[:assign]} = vec![#{
|
8
|
+
form_rust_string("let #{@instruction[:assign]} = vec![#{handle_inputs}];",
|
9
9
|
@instruction[:scope])
|
10
10
|
end
|
11
|
+
|
12
|
+
private
|
13
|
+
|
14
|
+
def handle_inputs
|
15
|
+
@instruction[:inputs].map { |input| handle_input(input) }.join(', ')
|
16
|
+
end
|
17
|
+
|
18
|
+
def handle_input(input)
|
19
|
+
decorated_input = Common::InputInterpreter.interpret(input)
|
20
|
+
|
21
|
+
if decorated_input[:type] == 'string'
|
22
|
+
"symbol_short!(#{input})"
|
23
|
+
elsif decorated_input[:needs_reference]
|
24
|
+
"&#{input}"
|
25
|
+
else
|
26
|
+
input
|
27
|
+
end
|
28
|
+
end
|
11
29
|
end
|
12
30
|
end
|
13
31
|
end
|