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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/qeval.rb +6 -6
  3. data/lib/qrun.rb +1 -1
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6f5ed59ebb0aa183f08891641442522607cacb41
4
- data.tar.gz: b88075ef7e13092632e133531951b0b04bcf0bc5
3
+ metadata.gz: 2c9a10fb24ac8bdaec8170bff6f1ab76f4216d7d
4
+ data.tar.gz: 6a0bb87e2188b21bd2d2c93577b6e131e47d9cca
5
5
  SHA512:
6
- metadata.gz: fbabfc4e5f510a525e5f5483c513b2df34fd5fe1eb8b3c49019dde65001074cdcbbe562fbcd8b852d5299dd793478b920e79751b85f3acc7f602fa60ce40309d
7
- data.tar.gz: d516b15258ac26248f64f71174259d74c223f72dac2d5872d909f5c89a3dbd316a0e1a7368f97a1eb78ca2668f0509aa119c823e8ed7e75bca89e08914633138
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, eval_func)
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, eval_func)
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('eval', [:Str]) do |vm, eval_func|
133
+ def_cf('parse', [:Str]) do |vm|
133
134
  begin
134
- eval_str = vm.stack.pop.val
135
- vm2 = eval_func.call(eval_str, vm.stack.dup, vm.bindings.dup)
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, ->(*x){qrun(*x)})
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.2
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-18 00:00:00.000000000 Z
11
+ date: 2015-11-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parslet