spitewaste 0.1.002 → 0.1.003

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