rquark 0.1.2 → 0.1.3
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/lib/qeval.rb +6 -6
- data/lib/qrun.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2c9a10fb24ac8bdaec8170bff6f1ab76f4216d7d
|
4
|
+
data.tar.gz: 6a0bb87e2188b21bd2d2c93577b6e131e47d9cca
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1518e78f0b9e5c6dc4bc39e5de030895982f39c929c7179f2bf3096386d48c7946bcf1dbf799581c604fbd66cd2e79bfc4dcc39d7dc189c1c24506fad9326158
|
7
|
+
data.tar.gz: 30662b7ebba927eebbc94924bc73d7754e2e0b0dd053f3c3f411bca6600a1f03f4f23393226ec68a7a75a8353ec3e87d8ced5f65ca6c867e9819e7bbc6545c97
|
data/lib/qeval.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'qtypes'
|
2
|
+
require 'qparse'
|
2
3
|
|
3
4
|
## Boilerplate ##
|
4
5
|
|
@@ -12,10 +13,10 @@ def def_cf(name, type_sig, &code)
|
|
12
13
|
$core_func[name] = code
|
13
14
|
end
|
14
15
|
|
15
|
-
def apply_core_func(name, vm
|
16
|
+
def apply_core_func(name, vm)
|
16
17
|
eq, expected, got = type_check(vm.stack, $core_func_type[name])
|
17
18
|
raise(QuarkError, "Type error with function #{name}\n expected a stack of #{expected}\n but got #{got}") if not eq
|
18
|
-
$core_func[name].call(vm
|
19
|
+
$core_func[name].call(vm)
|
19
20
|
end
|
20
21
|
|
21
22
|
def apply_runtime_func(name, vm)
|
@@ -129,11 +130,10 @@ def_cf('def', [:Quote, :Sym]) do |vm|
|
|
129
130
|
vm.bindings[name] = quote
|
130
131
|
end
|
131
132
|
|
132
|
-
def_cf('
|
133
|
+
def_cf('parse', [:Str]) do |vm|
|
133
134
|
begin
|
134
|
-
|
135
|
-
|
136
|
-
vm.stack, vm.bindings = vm2.stack, vm2.bindings
|
135
|
+
parse_str = vm.stack.pop.val
|
136
|
+
vm.stack.push QQuote.new([], qparse(parse_str))
|
137
137
|
vm.stack.push QSym.new('ok')
|
138
138
|
rescue
|
139
139
|
vm.stack.push QSym.new('not-ok')
|
data/lib/qrun.rb
CHANGED
@@ -16,7 +16,7 @@ def qreduce vm
|
|
16
16
|
if item.is_a? QAtom
|
17
17
|
f_name = item.val.strip
|
18
18
|
if $core_func.has_key? f_name
|
19
|
-
apply_core_func(f_name, vm
|
19
|
+
apply_core_func(f_name, vm)
|
20
20
|
elsif vm.bindings.has_key? f_name
|
21
21
|
quote = vm.bindings[f_name]
|
22
22
|
vm.program.unshift(*[quote.dup, QAtom.new('call')])
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rquark
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- "⊥"
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-11-
|
11
|
+
date: 2015-11-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: parslet
|