lox 0.1.1 → 0.1.2

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: 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
  - - ">="