fish.rb 1.0.2 → 1.0.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 (3) hide show
  1. checksums.yaml +8 -8
  2. data/fish.rb +4 -3
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MjhkODdkZWVjMjFlODExNGZiNmQ4Yjk4NzFkNmQ1N2I0NmNhZWI5Mw==
4
+ Yzg3YmIzOWQ3NTJhYzgzZGE1M2QxODMyYjUyZmExYmE4YTI1MWJjOQ==
5
5
  data.tar.gz: !binary |-
6
- MzNlMWE0MGQzZGQzZWQ1OTg3MWRkODczYjM1MzM0MGViNTg4ZmVjMg==
6
+ OGYyZGVjZDdkMzQ5OGY4MGYyNmJjOWZjM2M2ODA4MDZlM2Q2MDBjMQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ZmZiYWZlMGEzNDNhNWQxM2QxMmEzMmZkMDIxZTQyYTEzZDE4MzVhNmYzMWYw
10
- ZTQyZTM4YzZlMjY2YjNlZDNlYjk1M2MzNzA4MDkwMzY2M2U3M2ZjYmNmZjMw
11
- N2NkOTY1MDBhM2JmZTAxMjU3NGU3NWNjZjc0NTMzZGFjZTdhMDc=
9
+ NzJkMzQ4YTc3MjhmYjM5NGZjOGY2NjY1MGYyODIyYTBkZDQyOWI4Mzc4MzQz
10
+ NTFjOGM4ODQwYzA4MzAzMTg5NGMyMjkwMWZkYTU4ZDQxM2YxODkxMDA0ZjA2
11
+ OTUxNjRmZDY3NDhkMDllZWZmMWU3NmQ2OTYxZTQwOTZkNjhhNGU=
12
12
  data.tar.gz: !binary |-
13
- MWRhZGVhOTJhOGM5YTJkZGE2NWZkZDI3ODBkZDdkNjc3ZWU1MDdhZjhjOGE0
14
- Yzg4MjdjOGZjNzJlYTRmODgzZjg5YzQzZTE3NWNiMzg0ZjYzYTAwNzA3NWM2
15
- YWMzZDAxYmI2ZTcxMzcxNDE2MDg2MmE0MmI4MGE4ZTJiMTdiNTk=
13
+ MGM3YzdhYTFiZmQyNDU0OGY1NDJiZDhhY2YwN2JlYWYwNTQyZjJiOWQyZTFh
14
+ ZmE0NzEyNmJlYzNlYzAxM2Q2Y2YxNDkyOWI0ZTgwZGVkNjdiMDllZDQ4MmM0
15
+ OTMzMzlhNDNmYzRmNTZmYTEyMTVmNzA5YmI3ZGEwYmE5ZTAyZDM=
data/fish.rb CHANGED
@@ -46,6 +46,7 @@ class CodeBox
46
46
  pt.replace [pt[0], (tmp == [] ? ys.max : tmp.max)]
47
47
  at pt
48
48
  end
49
+ def self.print; pp @data end
49
50
  end
50
51
  end # class CodeBox
51
52
 
@@ -130,8 +131,8 @@ class Interpreter
130
131
  'n' => lambda { |pt, dir, stks, box, cntl| @@stdout.write (stks[-1].pop 1)[0].to_s },
131
132
  'i' => lambda { |pt, dir, stks, box, cntl| stks[-1].push (cntl[:ibuf].empty? ? -1 : cntl[:ibuf][0].ord); cntl[:ibuf] = cntl[:ibuf][1..-1] unless cntl[:ibuf].length < 1 },
132
133
  # reflection
133
- 'g' => lambda { |pt, dir, stks, box, cntl| stks[-1].push (box.at stks[-1].pop 2).ord },
134
- 'p' => lambda { |pt, dir, stks, box, cntl| box.set (stks[-1].pop 2), (stks[-1].pop 1) },
134
+ 'g' => lambda { |pt, dir, stks, box, cntl| stks[-1].push (box.at (stks[-1].pop 2).reverse).ord },
135
+ 'p' => lambda { |pt, dir, stks, box, cntl| v = (stks[-1].pop 1)[0]; box.set ((stks[-1].pop 2).reverse), v.chr },
135
136
  # miscellaneous
136
137
  '&' => lambda { |pt, dir, stks, box, cntl| stks[-1].reg },
137
138
  ';' => lambda { |pt, dir, stks, box, cntl| cntl[:done] = true },
@@ -168,7 +169,7 @@ class Interpreter
168
169
  op = ' ' if op.nil?
169
170
  if options[:debug] >= 3; puts op end
170
171
  func = @@ops[op]
171
- abort "\nsomething smells fishy... (invalid instruction)" if func.nil?
172
+ abort "\nsomething smells fishy... (invalid instruction #{op})" if func.nil?
172
173
  func.call @pt, @dir, @stks, @box, @cntl
173
174
  op = @box.send @dir, @pt
174
175
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fish.rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - ! 'floomby