lox 0.1.1 → 0.1.2

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: eee093a674788cd8852b35bd3f03ca9cd34f6b9a0c77f6de94703e35576391c4
4
- data.tar.gz: 3c81c1ef74d84ed48de1586c0cbd99a7958f6e57515d350ce46ffa014560862e
3
+ metadata.gz: 8a282d1192a69dc70810e083492488b88ad4f51f3a8ef750bb516c2dd534dbb3
4
+ data.tar.gz: 4d87bbf3ae3617495e047da25b1a51012a6b98e0682dc8601d9164c5540cec01
5
5
  SHA512:
6
- metadata.gz: f04f7feb7cc9c21273e2792c4727b33bf1bf97dd03c67df09b4f576bccc6116472cd32f1b7f1ddc576f16a285d30e3d84df62bf4c0e440e5bc9fff19aadc69c5
7
- data.tar.gz: ad4f8b8b5748afe42ee3b710e587db7e3ac421e8172857ba725d0bcb59afb885ff7d629ba824ebec4130673aa89eba884fcc83e8b0894c356854a980cf90e883
6
+ metadata.gz: 123095e88c8d3ff1f1996d9074a5f1d685c97beecb7c6ae9bec8e98408866f6ae1169004150cf8f8ca42866a722a4d2817ba9b3620c3eb843c911a872614ed87
7
+ data.tar.gz: 588654485485781f0fc8c84d73693b8e856e2d925dff40258a652fd5c7620d3175362821ec12230b7088f91c0848554f3242ee74acd13bb121641a1a7a8aed15
data/.rubocop.yml CHANGED
@@ -2,7 +2,7 @@ require: rubocop-rspec
2
2
 
3
3
  AllCops:
4
4
  EnabledByDefault: true
5
- TargetRubyVersion: 2.2
5
+ TargetRubyVersion: 2.4
6
6
 
7
7
  Metrics/BlockLength:
8
8
  Exclude:
data/.travis.yml CHANGED
@@ -3,8 +3,6 @@ sudo: false
3
3
  language: ruby
4
4
  cache: bundler
5
5
  rvm:
6
- - 2.2
7
- - 2.3
8
6
  - 2.4
9
7
  - 2.5
10
8
  before_install: gem install bundler -v 1.17.3
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source('https://rubygems.org')
2
4
 
3
5
  git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
data/Gemfile.lock CHANGED
@@ -1,24 +1,67 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- lox (0.1.1)
4
+ lox (0.1.2)
5
5
  thor
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
+ abstract_type (0.0.7)
11
+ adamantium (0.2.0)
12
+ ice_nine (~> 0.11.0)
13
+ memoizable (~> 0.4.0)
14
+ anima (0.3.0)
15
+ abstract_type (~> 0.0.7)
16
+ adamantium (~> 0.2)
17
+ equalizer (~> 0.0.11)
10
18
  ast (2.4.0)
11
19
  byebug (10.0.2)
12
20
  coderay (1.1.2)
21
+ concord (0.1.5)
22
+ adamantium (~> 0.2.0)
23
+ equalizer (~> 0.0.9)
13
24
  diff-lcs (1.3)
14
25
  docile (1.3.1)
26
+ equalizer (0.0.11)
27
+ ice_nine (0.11.2)
15
28
  jaro_winkler (1.5.1)
16
29
  json (2.1.0)
30
+ memoizable (0.4.2)
31
+ thread_safe (~> 0.3, >= 0.3.1)
17
32
  method_source (0.9.2)
33
+ morpher (0.2.6)
34
+ abstract_type (~> 0.0.7)
35
+ adamantium (~> 0.2.0)
36
+ anima (~> 0.3.0)
37
+ ast (~> 2.2)
38
+ concord (~> 0.1.5)
39
+ equalizer (~> 0.0.9)
40
+ ice_nine (~> 0.11.0)
41
+ procto (~> 0.0.2)
42
+ mutant (0.8.24)
43
+ abstract_type (~> 0.0.7)
44
+ adamantium (~> 0.2.0)
45
+ anima (~> 0.3.0)
46
+ ast (~> 2.2)
47
+ concord (~> 0.1.5)
48
+ diff-lcs (~> 1.3)
49
+ equalizer (~> 0.0.9)
50
+ ice_nine (~> 0.11.1)
51
+ memoizable (~> 0.4.2)
52
+ morpher (~> 0.2.6)
53
+ parser (~> 2.5.1)
54
+ procto (~> 0.0.2)
55
+ regexp_parser (~> 1.2)
56
+ unparser (~> 0.4.2)
57
+ mutant-rspec (0.8.24)
58
+ mutant (~> 0.8.24)
59
+ rspec-core (>= 3.4.0, < 4.0.0)
18
60
  parallel (1.12.1)
19
61
  parser (2.5.3.0)
20
62
  ast (~> 2.4.0)
21
63
  powerpack (0.1.2)
64
+ procto (0.0.3)
22
65
  pry (0.12.2)
23
66
  coderay (~> 1.1.0)
24
67
  method_source (~> 0.9.0)
@@ -27,6 +70,7 @@ GEM
27
70
  pry (~> 0.10)
28
71
  rainbow (3.0.0)
29
72
  rake (12.3.2)
73
+ regexp_parser (1.3.0)
30
74
  rspec (3.8.0)
31
75
  rspec-core (~> 3.8.0)
32
76
  rspec-expectations (~> 3.8.0)
@@ -57,7 +101,16 @@ GEM
57
101
  simplecov-html (~> 0.10.0)
58
102
  simplecov-html (0.10.2)
59
103
  thor (0.20.3)
104
+ thread_safe (0.3.6)
60
105
  unicode-display_width (1.4.1)
106
+ unparser (0.4.2)
107
+ abstract_type (~> 0.0.7)
108
+ adamantium (~> 0.2.0)
109
+ concord (~> 0.1.5)
110
+ diff-lcs (~> 1.3)
111
+ equalizer (~> 0.0.9)
112
+ parser (>= 2.3.1.2, < 2.6)
113
+ procto (~> 0.0.2)
61
114
 
62
115
  PLATFORMS
63
116
  ruby
@@ -65,6 +118,8 @@ PLATFORMS
65
118
  DEPENDENCIES
66
119
  bundler
67
120
  lox!
121
+ mutant
122
+ mutant-rspec
68
123
  pry
69
124
  pry-byebug
70
125
  rake
data/Rakefile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require('bundler/gem_tasks')
2
4
  require('rspec/core/rake_task')
3
5
 
data/bin/console CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  require('bundler/setup')
4
5
  require('lox')
data/bin/mutant ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env bash
2
+
3
+ bundle exec mutant --use rspec "${@}"
data/bin/mutant-all ADDED
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env bash
2
+
3
+ ag --no-filename --no-break --only-matching '(?<=^RSpec\.describe\()\w+(::\w+)*(?=\))' spec \
4
+ | xargs bundle exec mutant --use rspec "${@}"
data/exe/lox CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  require('bundler/setup')
4
5
  require('lox/cli')
data/lib/lox.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require('lox/cli')
2
4
  require('lox/console')
3
5
  require('lox/formatter')
data/lib/lox/cli.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require('lox/console')
2
4
  require('lox/formatter')
3
5
  require('lox/lexical_analyzer')
data/lib/lox/console.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Lox
2
4
  class Console
3
5
  attr_reader :terminal
data/lib/lox/formatter.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Lox
2
4
  class Formatter
3
5
  attr_reader :objects
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require('lox/lexical_analyzer/invalid_character')
2
4
  require('lox/lexical_analyzer/invalid_state')
3
5
  require('lox/lexical_analyzer/unterminated_string')
@@ -37,7 +39,7 @@ module Lox
37
39
  [:identifier, character]
38
40
  when /[!=<>]/
39
41
  [:operator, character]
40
- when %r{[(){},.\-+;*\/]}
42
+ when %r{[(){},.\-+;*/]}
41
43
  yield([character])
42
44
  :default
43
45
  else
@@ -48,7 +50,7 @@ module Lox
48
50
  # rubocop:enable Metrics/MethodLength
49
51
 
50
52
  def comment(_lexeme, character)
51
- if character =~ /./
53
+ if character.match?(/./)
52
54
  :comment
53
55
  else
54
56
  :default
@@ -56,7 +58,7 @@ module Lox
56
58
  end
57
59
 
58
60
  def integer(lexeme, character, &block)
59
- if character =~ /\d/
61
+ if character.match?(/\d/)
60
62
  [:integer, lexeme + character]
61
63
  else
62
64
  yield([:integer, Integer(lexeme)])
@@ -65,7 +67,7 @@ module Lox
65
67
  end
66
68
 
67
69
  def string(lexeme, character)
68
- if character =~ /["]/
70
+ if character.match?(/["]/)
69
71
  yield([:string, lexeme[1..-1]])
70
72
  :default
71
73
  else
@@ -74,7 +76,7 @@ module Lox
74
76
  end
75
77
 
76
78
  def identifier(lexeme, character, &block)
77
- if character =~ /\w/
79
+ if character.match?(/\w/)
78
80
  [:identifier, lexeme + character]
79
81
  else
80
82
  yield([:identifier, lexeme])
@@ -83,7 +85,7 @@ module Lox
83
85
  end
84
86
 
85
87
  def operator(lexeme, character, &block)
86
- if character =~ /[=]/
88
+ if character.match?(/[=]/)
87
89
  yield([lexeme + character])
88
90
  :default
89
91
  else
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Lox
2
4
  class LexicalAnalyzer
3
5
  class InvalidCharacter < StandardError
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Lox
2
4
  class LexicalAnalyzer
3
5
  class InvalidState < StandardError
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Lox
2
4
  class LexicalAnalyzer
3
5
  class UnterminatedString < StandardError
data/lib/lox/scanner.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Lox
2
4
  class Scanner
3
5
  attr_reader :input
data/lib/lox/version.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Lox
2
- VERSION = '0.1.1'.freeze
4
+ VERSION = '0.1.2'
3
5
  end
data/lib/lox/write.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Lox
2
4
  class Write
3
5
  attr_reader :objects
data/lox.gemspec CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  lib = File.expand_path('lib', __dir__)
2
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
5
  require('lox/version')
@@ -29,6 +31,8 @@ Gem::Specification.new do |spec|
29
31
  spec.add_dependency('thor')
30
32
 
31
33
  spec.add_development_dependency('bundler')
34
+ spec.add_development_dependency('mutant')
35
+ spec.add_development_dependency('mutant-rspec')
32
36
  spec.add_development_dependency('pry')
33
37
  spec.add_development_dependency('pry-byebug')
34
38
  spec.add_development_dependency('rake')
@@ -37,5 +41,5 @@ Gem::Specification.new do |spec|
37
41
  spec.add_development_dependency('rubocop-rspec')
38
42
  spec.add_development_dependency('simplecov')
39
43
 
40
- spec.required_ruby_version = '>= 2.2.0'
44
+ spec.required_ruby_version = '~> 2.4'
41
45
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lox
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Richard E. Dodson
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-01-02 00:00:00.000000000 Z
11
+ date: 2019-01-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -38,6 +38,34 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: mutant
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: mutant-rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
41
69
  - !ruby/object:Gem::Dependency
42
70
  name: pry
43
71
  requirement: !ruby/object:Gem::Requirement
@@ -157,6 +185,8 @@ files:
157
185
  - README.md
158
186
  - Rakefile
159
187
  - bin/console
188
+ - bin/mutant
189
+ - bin/mutant-all
160
190
  - bin/setup
161
191
  - exe/lox
162
192
  - lib/lox.rb
@@ -181,9 +211,9 @@ require_paths:
181
211
  - lib
182
212
  required_ruby_version: !ruby/object:Gem::Requirement
183
213
  requirements:
184
- - - ">="
214
+ - - "~>"
185
215
  - !ruby/object:Gem::Version
186
- version: 2.2.0
216
+ version: '2.4'
187
217
  required_rubygems_version: !ruby/object:Gem::Requirement
188
218
  requirements:
189
219
  - - ">="