spitewaste 0.1.002 → 0.1.003

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b185ba760bbddf427962b292046de239f29b6a13964c7182eea2da1a2bcc0d10
4
- data.tar.gz: 36991071a4e6bc98134d235a340dbaf90f082020ffc2e2bd8a67b83970b86e68
3
+ metadata.gz: 0b4f49809a688762a3b50dab64b93163e493aa75a33d2565b9892ec5ad8c9bc0
4
+ data.tar.gz: 6a06768b5a4edcf18ca0948900effd3c3fb01fbdea2e2da8d29080036870614f
5
5
  SHA512:
6
- metadata.gz: add4543eead4effe21e7eab4ff3bd18fc6f544889368c14b2b178953adddbb1f53913dc737ebcb95ce5f49ee144c81e1916072e2c9e72752c5cb9aab5d0313d5
7
- data.tar.gz: 1249b0e70507839d31c15f7fb29d084eb7b572dea51f5b398416e871b57e5d3eb621e2ed756cd5871a28a8a7ebd72bc59f1b65a8b884a441dc9de77a3e254271
6
+ metadata.gz: 99cc02efffe8e2ddecf76b1b8578c4eb5e3a6c96b0cf1d46d063b9268507120a718835822f906739962a0b36262ae08328c610db3b37b0a777b3ff84d5e2df02
7
+ data.tar.gz: fa3425ae1c074a9a34f78bf110a7d8bb645b15205bb78f68787060e61c018cf63925c2c32d67bbf5ab0d4552c37727555dfcdd384824af2b6087c665bf969233
data/Gemfile CHANGED
@@ -1,8 +1,3 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- # Specify your gem's dependencies in spitewaste.gemspec
4
-
5
- gem 'rake', '~> 12.0'
6
- gem 'minitest', '~> 5.0'
7
- gem 'thor', '~> 1.0'
8
- gem 'oily_png' # TODO: optionalize?
3
+ gemspec
data/Rakefile CHANGED
@@ -14,6 +14,7 @@ task :docs do |t|
14
14
  lib = File.basename path, '.spw'
15
15
  all_docs[lib] = extract_docs path
16
16
  end
17
+
17
18
  File.open('docs.json', ?w) { |f| JSON.dump all_docs, f }
18
19
  end
19
20
 
@@ -35,8 +36,6 @@ def extract_docs path
35
36
  docs
36
37
  end
37
38
 
38
- StackRx = /(?<=\[)[^\]]+(?=\])/
39
-
40
39
  def strpack s
41
40
  s.bytes.zip(0..).sum { |b, e| b * 128 ** e }
42
41
  end
@@ -46,6 +45,8 @@ def parse_stack s
46
45
  end
47
46
 
48
47
  def parse_doc doc
48
+ StackRx = /(?<=\[)[^\]]+(?=\])/ # match [.+], but don't capture the brackets
49
+
49
50
  # strip comment character and any implementation details
50
51
  doc.gsub!(/; */, '').gsub!(/^!.+\n/, '')
51
52
 
@@ -19,7 +19,7 @@ module Spitewaste
19
19
  @symbol_file = options['symbol_file']
20
20
 
21
21
  preprocess!
22
- eliminate_dead_code!
22
+ eliminate_dead_code! unless options[:keep_dead_code]
23
23
  end
24
24
 
25
25
  def parse
@@ -1,3 +1,3 @@
1
1
  module Spitewaste
2
- VERSION = '0.1.002'
2
+ VERSION = '0.1.003'
3
3
  end
@@ -1,17 +1,22 @@
1
1
  require_relative 'lib/spitewaste/version'
2
2
 
3
- Gem::Specification.new do |spec|
4
- spec.name = 'spitewaste'
5
- spec.version = Spitewaste::VERSION
6
- spec.author = 'Collided Scope (collidedscope)'
3
+ Gem::Specification.new do |s|
4
+ s.name = 'spitewaste'
5
+ s.version = Spitewaste::VERSION
6
+ s.author = 'Collided Scope (collidedscope)'
7
7
 
8
- spec.summary = 'Make programming in Whitespace even better.'
9
- spec.description = 'Spitewaste is a collection of tools that makes it almost too easy to write Whitespace.'
10
- spec.homepage = 'https://github.com/collidedscope/spitewaste'
11
- spec.license = 'WTFPL'
8
+ s.summary = 'Make programming in Whitespace even better.'
9
+ s.description = 'Spitewaste is a collection of tools that makes it almost too easy to read and write Whitespace programs.'
10
+ s.homepage = 'https://github.com/collidedscope/spitewaste'
11
+ s.license = 'WTFPL'
12
12
 
13
- spec.files = `git ls-files`.split.reject { |f| f[/^test/] }
14
- spec.bindir = 'bin'
15
- spec.executables = ['spw']
16
- spec.require_paths = ['lib']
13
+ s.add_dependency 'rake', '~> 13.0.1'
14
+ s.add_dependency 'minitest', '~> 5.14.2'
15
+ s.add_dependency 'thor', '~> 1.0.1'
16
+ s.add_dependency 'oily_png', '~> 1.2.1'
17
+
18
+ s.files = `git ls-files`.split.reject { |f| f[/^(test|demo)/] }
19
+ s.bindir = 'bin'
20
+ s.executables = ['spw']
21
+ s.require_paths = ['lib']
17
22
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spitewaste
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.002
4
+ version: 0.1.003
5
5
  platform: ruby
6
6
  authors:
7
7
  - Collided Scope (collidedscope)
@@ -9,9 +9,65 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
  date: 2020-12-13 00:00:00.000000000 Z
12
- dependencies: []
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rake
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 13.0.1
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 13.0.1
27
+ - !ruby/object:Gem::Dependency
28
+ name: minitest
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 5.14.2
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 5.14.2
41
+ - !ruby/object:Gem::Dependency
42
+ name: thor
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 1.0.1
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 1.0.1
55
+ - !ruby/object:Gem::Dependency
56
+ name: oily_png
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 1.2.1
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 1.2.1
13
69
  description: Spitewaste is a collection of tools that makes it almost too easy to
14
- write Whitespace.
70
+ read and write Whitespace programs.
15
71
  email:
16
72
  executables:
17
73
  - spw
@@ -24,10 +80,6 @@ files:
24
80
  - Rakefile
25
81
  - TUTORIAL.md
26
82
  - bin/spw
27
- - demo/factorial-nicespace.png
28
- - demo/factorial.asm
29
- - demo/factorial.png
30
- - demo/factorial.wsa
31
83
  - lib/spitewaste.rb
32
84
  - lib/spitewaste/assembler.rb
33
85
  - lib/spitewaste/cli.rb
Binary file
@@ -1,47 +0,0 @@
1
- label 0
2
- push 6
3
- call 1
4
- onum
5
- exit
6
- label 1
7
- push 1
8
- swap
9
- call 4
10
- dup
11
- dup
12
- dup
13
- push 2
14
- sub
15
- jn 3
16
- pop
17
- push -9
18
- swap
19
- push 1
20
- sub
21
- store
22
- label 2
23
- mul
24
- push -9
25
- dup
26
- load
27
- push 1
28
- sub
29
- dup
30
- jz 3
31
- store
32
- jump 2
33
- label 3
34
- pop
35
- pop
36
- ret
37
- label 4
38
- copy 1
39
- push 1
40
- add
41
- swap
42
- copy 1
43
- copy 1
44
- sub
45
- jn 4
46
- pop
47
- ret
Binary file
@@ -1,5 +0,0 @@
1
- main: push 6 call factorial onum exit
2
- factorial: push 1 swap call range dup dup dup push 2 sub jn reduce_done_a pop push -9 swap push 1 sub store
3
- reduce_loop_a: mul push -9 dup load push 1 sub dup jz reduce_done_a store jump reduce_loop_a
4
- reduce_done_a: pop pop ret
5
- range: copy 1 push 1 add swap copy 1 copy 1 sub jn range pop ret