sardonyx 0.3.3 → 0.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/bin/sdx +2 -2
- data/lib/sdx/vm/vm.rb +12 -8
- 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: 5d369226413f552c8f1cb2fc20675a4364c2d4ec03f7b22897c341567a6da09e
|
|
4
|
+
data.tar.gz: a39fb4fb82a76ea92c4799e3a5b51f52c62d7dfd853402a0e83877b790bda36c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9714fee82b1115876a3533a4e9cf9cb82875f6c0b4e2749ceeb1fc63218b262364e52cfd0e4649c8b1f825206a1772572033fe2d6f569f88fa1def58477f3e30
|
|
7
|
+
data.tar.gz: 858e1cffdf236a2ef9fb14e7af794d68b6ca83c9724ef05b02c65d7ce2ba73954e808ace033d8423fe52f9dde6ebbc54c56adc6036bc177b6a9ce4888711ae69
|
data/bin/sdx
CHANGED
|
@@ -22,7 +22,7 @@ if ARGV.size == 1
|
|
|
22
22
|
else
|
|
23
23
|
path = [(File.expand_path Dir.pwd), *(ENV.fetch("SDX_PATH", "").split ":")]
|
|
24
24
|
vm = VM.new StringIO.new ""
|
|
25
|
-
puts "Sardonyx v0.3.
|
|
25
|
+
puts "Sardonyx v0.3.4"
|
|
26
26
|
puts "Type :help for help, or :exit to exit"
|
|
27
27
|
loop do
|
|
28
28
|
begin
|
|
@@ -51,7 +51,7 @@ else
|
|
|
51
51
|
val = vm.stack[-1]
|
|
52
52
|
vm.clear
|
|
53
53
|
if val
|
|
54
|
-
puts
|
|
54
|
+
puts stringify val
|
|
55
55
|
end
|
|
56
56
|
end
|
|
57
57
|
end
|
data/lib/sdx/vm/vm.rb
CHANGED
|
@@ -14,6 +14,18 @@ def codify(val)
|
|
|
14
14
|
end
|
|
15
15
|
end
|
|
16
16
|
|
|
17
|
+
def stringify(val)
|
|
18
|
+
if val.value.fields["__as_string"]
|
|
19
|
+
if val.value.fields["__as_string"].respond_to? :fields
|
|
20
|
+
(val.value.fields["__as_string"].fields["__call"].call [], val.scope).internal
|
|
21
|
+
else
|
|
22
|
+
(val.value.fields["__as_string"]).call.internal
|
|
23
|
+
end
|
|
24
|
+
else
|
|
25
|
+
val.value.to_s
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
17
29
|
class VM
|
|
18
30
|
attr_accessor :bc_io
|
|
19
31
|
|
|
@@ -28,14 +40,6 @@ class VM
|
|
|
28
40
|
return true
|
|
29
41
|
end
|
|
30
42
|
end
|
|
31
|
-
|
|
32
|
-
def stringify(val)
|
|
33
|
-
if val.value.fields["__as_string"]
|
|
34
|
-
(call val.value.fields["__as_string"], [], val.scope).internal
|
|
35
|
-
else
|
|
36
|
-
val.value.to_s
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
43
|
|
|
40
44
|
def call(val, *args)
|
|
41
45
|
if val.respond_to? :value and val.value.respond_to? :fields
|