dtr_to_rust 0.0.3 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 99cb5bd9bbecdd7e38955c2d2c15e8ad746a0a0384ded632a825265335923573
4
- data.tar.gz: a79bdec55b768d0bac92377e5ccd956dbd9ce6b5e206ebcd8a0da8091f0e1c3d
3
+ metadata.gz: 5e847ba23b85fbcb73f654a7204b136c7d22159da92f1c19834242382f0422e9
4
+ data.tar.gz: 02c903ad18bc3ee83024db1df4d838e36dcf58f8fef3e3cb50b1b912037f7da0
5
5
  SHA512:
6
- metadata.gz: 2fb2def5de76fdf1c470536ae88bac3d235e367d67b0681e9b21a28a656bd093558a055b0ca6dbe3653424591eaee4cc7b473afeeb2a7b478105932bb6f93aa9
7
- data.tar.gz: e92bce3301fe1f5b55b51031f61722d759bcd329958ab5cc1ac81f780deea8ba07d03174496a380aa478d1d82387fecffac4339cf039f1a67d7505b5d11e0b72
6
+ metadata.gz: 15801ee722bdc1d23650c2c37535e7a836250ec313a97cadc7b2830679dbd093901ab46f2ad4e1fa995710294d8a985c173db0d9667b11129ec2fac1bb3c8c3a
7
+ data.tar.gz: 5f113fe380f4e21f260dd7bfdf6600e0354e0b24f8896cda19f22dcd38d9b173d8dc53eb55962a97ae89b21dc39a36f479c817ccf404164c6be111c7d4b88fae
data/lib/generator.rb CHANGED
@@ -63,7 +63,7 @@ module DTRToRust
63
63
  end
64
64
 
65
65
  def generate_function_args(function)
66
- all_inputs = [{ name: 'env', type_name: 'Env' }] + function.inputs
66
+ all_inputs = [] + function.inputs
67
67
 
68
68
  all_inputs.map { |x| "#{x[:name]}: #{x[:type_name]}" }.join(', ')
69
69
  end
@@ -9,10 +9,14 @@ module DTRToRust
9
9
 
10
10
  def generate_rust
11
11
  case @instruction[:instruction]
12
- when 'AddSymbols'
13
- handle_add_symbols
14
12
  when 'Return'
15
13
  handle_return
14
+ when 'log_string'
15
+ handle_log_string
16
+ when 'add_and_assign'
17
+ handle_add_and_assign
18
+ when 'evaluate'
19
+ "foo bar"
16
20
  else
17
21
  raise "Unknown instruction type: #{@instruction[:instruction]}"
18
22
  end
@@ -22,14 +26,24 @@ module DTRToRust
22
26
 
23
27
  attr_reader :instruction
24
28
 
25
- def handle_add_symbols
26
- " let #{instruction[:assign]} " \
27
- '= vec![&env, ' \
28
- "symbol_short!(#{instruction[:inputs][0]}), #{instruction[:inputs][1]}];"
29
+ def spacing(scope)
30
+ " " * scope
31
+ end
32
+
33
+ def form_rust_string(instruction_string, scope)
34
+ "#{spacing(scope)}#{instruction_string}"
29
35
  end
30
36
 
31
37
  def handle_return
32
- " #{instruction[:inputs][0]}"
38
+ form_rust_string(instruction[:inputs][0], instruction[:scope])
39
+ end
40
+
41
+ def handle_log_string
42
+ form_rust_string("log!(#{instruction[:inputs].join(',')})", instruction[:scope])
43
+ end
44
+
45
+ def handle_add_and_assign
46
+ form_rust_string("#{instruction[:inputs][0]} += #{instruction[:inputs][1]}", instruction[:scope])
33
47
  end
34
48
  end
35
49
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dtr_to_rust
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rob Durst
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-06-01 00:00:00.000000000 Z
11
+ date: 2024-06-02 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Rust to DTR translator (Digicus Textual Representation).
14
14
  email: