rquark 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
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