srl_ruby 0.4.5 → 0.4.6
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 +5 -5
- data/CHANGELOG.md +13 -0
- data/Gemfile +2 -0
- data/README.md +1 -1
- data/Rakefile +2 -0
- data/appveyor.yml +14 -12
- data/bin/srl2ruby +5 -3
- data/bin/srl2ruby_cli_parser.rb +2 -0
- data/features/lib/step_definitions/srl_testing_steps.rb +2 -0
- data/features/lib/support/env..rb +2 -0
- data/lib/regex/abstract_method.rb +2 -0
- data/lib/regex/alternation.rb +2 -0
- data/lib/regex/anchor.rb +2 -0
- data/lib/regex/atomic_expression.rb +2 -0
- data/lib/regex/capturing_group.rb +2 -0
- data/lib/regex/char_class.rb +3 -1
- data/lib/regex/char_range.rb +2 -0
- data/lib/regex/char_shorthand.rb +2 -0
- data/lib/regex/character.rb +4 -2
- data/lib/regex/compound_expression.rb +2 -0
- data/lib/regex/concatenation.rb +3 -1
- data/lib/regex/expression.rb +3 -1
- data/lib/regex/lookaround.rb +2 -0
- data/lib/regex/match_option.rb +2 -0
- data/lib/regex/monadic_expression.rb +2 -0
- data/lib/regex/multiplicity.rb +2 -0
- data/lib/regex/non_capturing_group.rb +2 -0
- data/lib/regex/polyadic_expression.rb +2 -0
- data/lib/regex/quantifiable.rb +2 -0
- data/lib/regex/raw_expression.rb +2 -0
- data/lib/regex/repetition.rb +2 -0
- data/lib/regex/wildcard.rb +2 -0
- data/lib/srl_ruby.rb +2 -0
- data/lib/srl_ruby/ast_builder.rb +2 -1
- data/lib/srl_ruby/grammar.rb +2 -0
- data/lib/srl_ruby/regex_repr.rb +2 -0
- data/lib/srl_ruby/tokenizer.rb +4 -2
- data/lib/srl_ruby/version.rb +3 -1
- data/spec/acceptance/srl_test_suite_spec.rb +2 -0
- data/spec/acceptance/support/rule_file_ast_builder.rb +2 -0
- data/spec/acceptance/support/rule_file_grammar.rb +2 -0
- data/spec/acceptance/support/rule_file_nodes.rb +2 -0
- data/spec/acceptance/support/rule_file_parser.rb +2 -0
- data/spec/acceptance/support/rule_file_tokenizer.rb +4 -2
- data/spec/regex/atomic_expression_spec.rb +2 -0
- data/spec/regex/character_spec.rb +2 -0
- data/spec/regex/match_option_spec.rb +2 -0
- data/spec/regex/monadic_expression_spec.rb +2 -0
- data/spec/regex/multiplicity_spec.rb +2 -0
- data/spec/regex/repetition_spec.rb +2 -0
- data/spec/spec_helper.rb +2 -0
- data/spec/srl_ruby/srl_ruby_spec.rb +2 -0
- data/spec/srl_ruby/tokenizer_spec.rb +2 -0
- data/spec/srl_ruby_spec.rb +2 -0
- data/srl_ruby.gemspec +5 -3
- metadata +8 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: fb518e00a96315122ae3bcc125af089a37d9631dbb5c3af8ba10f244382acb8f
|
4
|
+
data.tar.gz: 4f9eb678fb49a30cd60a9d6b49f703de06e7d9fb993a9605b5c36c89cff92953
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ac09784a223162a0b2f5b1d4ec5a20a8b95efaa916ea1e7279a6dcdefd79f7b36488161abbba44fc2c619fa722096f5c705467236c66c39335b45e4415084dfb
|
7
|
+
data.tar.gz: daa15a338b751afc3ce2b9b0c5cd018eaae1e720d7d921da60be89264d01239c4f8504c44ebc37fa0cf32755cd7d2316e077bd487b6d9703ddde5acceb2039e8
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,16 @@
|
|
1
|
+
## [0.4.6] - 2019-08-17
|
2
|
+
- Code refactoring to use string frozen magic comments (as a consequence, srl_ruby runs only on Rubies 2.3 or newer).
|
3
|
+
- Code restyling to please rubocop 0.7.40.
|
4
|
+
### Changed
|
5
|
+
- File `README.md` updated note on compatibility with Rubies
|
6
|
+
|
7
|
+
|
8
|
+
## [0.4.5] - 2019-01-13
|
9
|
+
- Removed Ruby versions older than 2.3 in CI testing because of breaking changes by Bundler 2.0
|
10
|
+
|
11
|
+
### Changed
|
12
|
+
* Files `.travis.yml`, `appveyor.yml` updated.
|
13
|
+
|
1
14
|
## [0.4.5] - 2019-01-02
|
2
15
|
### Changed
|
3
16
|
- Minor code re-styling to please Rubocop 0.62.0.
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -15,7 +15,7 @@ With **srl_ruby** you can easily design your patterns in SRL and let *srl_ruby*
|
|
15
15
|
- Ruby API for integrating a SRL parser or compiler with your code.
|
16
16
|
- 100% pure Ruby with clean design (_not a port from some other language_)
|
17
17
|
- Minimal runtime dependency ([Rley](https://rubygems.org/gems/rley) gem). Won't drag a bunch of gems...
|
18
|
-
- Compatibility: works with 2.
|
18
|
+
- Compatibility: works with Ruby 2.3+ MRI, JRuby
|
19
19
|
- Portability: tested on both Linux and Windows,...
|
20
20
|
|
21
21
|
## Installation
|
data/Rakefile
CHANGED
data/appveyor.yml
CHANGED
@@ -1,26 +1,28 @@
|
|
1
1
|
version: '{build}'
|
2
|
-
max_jobs:
|
2
|
+
max_jobs: 5
|
3
3
|
environment:
|
4
4
|
matrix:
|
5
|
+
- Ruby_version: 26-x64
|
5
6
|
- Ruby_version: 25-x64
|
6
|
-
- Ruby_version: 24-x64
|
7
|
+
- Ruby_version: 24-x64
|
7
8
|
- Ruby_version: 23-x64
|
8
|
-
- Ruby_version:
|
9
|
-
- Ruby_version:
|
10
|
-
- Ruby_version:
|
11
|
-
- Ruby_version:
|
12
|
-
- Ruby_version: 23
|
13
|
-
- Ruby_version: 22
|
14
|
-
- Ruby_version: 21
|
15
|
-
# These are failing
|
16
|
-
# - Ruby_version: 26
|
17
|
-
# - Ruby_version: 26-x64
|
9
|
+
- Ruby_version: 26
|
10
|
+
- Ruby_version: 25
|
11
|
+
- Ruby_version: 24
|
12
|
+
- Ruby_version: 23
|
18
13
|
|
19
14
|
install:
|
20
15
|
- set PATH=C:\Ruby%Ruby_version%\bin;%PATH%
|
16
|
+
- gem update --system
|
17
|
+
- gem install bundler
|
21
18
|
- bundle install --retry=3 --clean --force
|
22
19
|
|
23
20
|
build: off
|
24
21
|
|
22
|
+
before_test:
|
23
|
+
- ruby -v
|
24
|
+
- gem -v
|
25
|
+
- bundle -v
|
26
|
+
|
25
27
|
test_script:
|
26
28
|
- bundle exec rake
|
data/bin/srl2ruby
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
2
4
|
require 'erb'
|
3
5
|
require 'rubygems'
|
4
6
|
require 'pathname'
|
@@ -7,9 +9,9 @@ require_relative '../lib/srl_ruby'
|
|
7
9
|
require_relative 'srl2ruby_cli_parser'
|
8
10
|
|
9
11
|
class Srl2RubyProg
|
10
|
-
DefaultSRLExtension = 'srl'
|
11
|
-
DefDirname = '/templates'
|
12
|
-
DefTemplate = 'base.erb'
|
12
|
+
DefaultSRLExtension = 'srl'
|
13
|
+
DefDirname = '/templates'
|
14
|
+
DefTemplate = 'base.erb'
|
13
15
|
attr_reader(:cli_options)
|
14
16
|
attr_reader(:template)
|
15
17
|
|
data/bin/srl2ruby_cli_parser.rb
CHANGED
data/lib/regex/alternation.rb
CHANGED
data/lib/regex/anchor.rb
CHANGED
data/lib/regex/char_class.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# File: char_class.rb
|
2
4
|
|
3
5
|
require_relative 'polyadic_expression' # Access the superclass
|
@@ -22,7 +24,7 @@ module Regex # This module is used as a namespace
|
|
22
24
|
# Conversion method re-definition.
|
23
25
|
# Purpose: Return the String representation of the character class.
|
24
26
|
def text_repr
|
25
|
-
result_children = children.inject('') do |sub_result, child|
|
27
|
+
result_children = children.inject(+'') do |sub_result, child|
|
26
28
|
if child.kind_of?(Regex::Character) && Metachars.include?(child.codepoint)
|
27
29
|
sub_result << '\\' # Escape meta-character...
|
28
30
|
end
|
data/lib/regex/char_range.rb
CHANGED
data/lib/regex/char_shorthand.rb
CHANGED
data/lib/regex/character.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# File: character.rb
|
2
4
|
|
3
5
|
require_relative 'atomic_expression' # Access the superclass
|
@@ -25,8 +27,8 @@ module Regex # This module is used as a namespace
|
|
25
27
|
'\7' => 7
|
26
28
|
}.freeze
|
27
29
|
|
28
|
-
MetaChars = '\^$.|+?*()[]{}'
|
29
|
-
MetaCharsInClass = '\^[]-'
|
30
|
+
MetaChars = '\^$.|+?*()[]{}'
|
31
|
+
MetaCharsInClass = '\^[]-' # Characters with special meaning in char. class
|
30
32
|
|
31
33
|
# The integer value that uniquely identifies the character.
|
32
34
|
attr_reader(:codepoint)
|
data/lib/regex/concatenation.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# File: concatenation.rb
|
2
4
|
|
3
5
|
require_relative 'polyadic_expression' # Access the superclass
|
@@ -17,7 +19,7 @@ module Regex # This module is used as a namespace
|
|
17
19
|
# Conversion method re-definition.
|
18
20
|
# Purpose: Return the String representation of the concatented expressions.
|
19
21
|
def text_repr
|
20
|
-
outcome = children.inject('') do |result, child|
|
22
|
+
outcome = children.inject(+'') do |result, child|
|
21
23
|
result << child.to_str
|
22
24
|
end
|
23
25
|
|
data/lib/regex/expression.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# File: expression.rb
|
2
4
|
|
3
5
|
require_relative 'abstract_method'
|
@@ -31,7 +33,7 @@ module Regex # This module is used as a namespace
|
|
31
33
|
# Template method.
|
32
34
|
# @return [String] text representation of the expression.
|
33
35
|
def to_str
|
34
|
-
result = ''
|
36
|
+
result = +''
|
35
37
|
result << prefix
|
36
38
|
result << text_repr
|
37
39
|
result << suffix
|
data/lib/regex/lookaround.rb
CHANGED
data/lib/regex/match_option.rb
CHANGED
data/lib/regex/multiplicity.rb
CHANGED
data/lib/regex/quantifiable.rb
CHANGED
data/lib/regex/raw_expression.rb
CHANGED
data/lib/regex/repetition.rb
CHANGED
data/lib/regex/wildcard.rb
CHANGED
data/lib/srl_ruby.rb
CHANGED
data/lib/srl_ruby/ast_builder.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'stringio'
|
2
4
|
require_relative 'regex_repr'
|
3
5
|
|
@@ -127,7 +129,6 @@ module SrlRuby
|
|
127
129
|
else
|
128
130
|
Regex::Concatenation.new(theChildren[0], theChildren[2])
|
129
131
|
end
|
130
|
-
|
131
132
|
end
|
132
133
|
|
133
134
|
# rule('pattern' => 'sub_pattern').as 'basic_pattern'
|
data/lib/srl_ruby/grammar.rb
CHANGED
data/lib/srl_ruby/regex_repr.rb
CHANGED
data/lib/srl_ruby/tokenizer.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# File: srl_tokenizer.rb
|
2
4
|
# Tokenizer for SRL (Simple Regex Language)
|
3
5
|
require 'strscan'
|
@@ -151,9 +153,9 @@ module SrlRuby
|
|
151
153
|
col = scanner.pos - aLexeme.size - @line_start + 1
|
152
154
|
pos = Rley::Lexical::Position.new(@lineno, col)
|
153
155
|
token = Rley::Lexical::Token.new(aLexeme, aSymbolName, pos)
|
154
|
-
rescue StandardError =>
|
156
|
+
rescue StandardError => e
|
155
157
|
puts "Failing with '#{aSymbolName}' and '#{aLexeme}'"
|
156
|
-
raise
|
158
|
+
raise e
|
157
159
|
end
|
158
160
|
|
159
161
|
return token
|
data/lib/srl_ruby/version.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# File: rule_tokenizer.rb
|
2
4
|
# Tokenizer for SimpleRegex Test-Rule files
|
3
5
|
# [File format](https://github.com/SimpleRegex/Test-Rules/blob/master/README.md)
|
@@ -111,9 +113,9 @@ module Acceptance
|
|
111
113
|
col = scanner.pos - aLexeme.size - @line_start + 1
|
112
114
|
pos = Rley::Lexical::Position.new(@lineno, col)
|
113
115
|
token = Rley::Lexical::Token.new(aLexeme, aSymbolName, pos)
|
114
|
-
rescue StandardError =>
|
116
|
+
rescue StandardError => e
|
115
117
|
puts "Failing with '#{aSymbolName}' and '#{aLexeme}'"
|
116
|
-
raise
|
118
|
+
raise e
|
117
119
|
end
|
118
120
|
|
119
121
|
return token
|
data/spec/spec_helper.rb
CHANGED
data/spec/srl_ruby_spec.rb
CHANGED
data/srl_ruby.gemspec
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
lib = File.expand_path('../lib', __FILE__)
|
2
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
5
|
require 'srl_ruby/version'
|
@@ -63,14 +65,14 @@ SUMMARY
|
|
63
65
|
spec.require_paths = ['lib']
|
64
66
|
PkgExtending.pkg_files(spec)
|
65
67
|
PkgExtending.pkg_documentation(spec)
|
66
|
-
spec.required_ruby_version = '>= 2.
|
68
|
+
spec.required_ruby_version = '>= 2.3.0'
|
67
69
|
|
68
70
|
# Runtime dependencies
|
69
71
|
spec.add_dependency 'rley', '~> 0.7.00'
|
70
72
|
|
71
73
|
# Development dependencies
|
72
|
-
spec.add_development_dependency 'bundler', '~>
|
74
|
+
spec.add_development_dependency 'bundler', '~> 2.0.0'
|
73
75
|
spec.add_development_dependency 'cucumber', '>= 2.2.0'
|
74
|
-
spec.add_development_dependency 'rake', '~>
|
76
|
+
spec.add_development_dependency 'rake', '~> 12.0'
|
75
77
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
76
78
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: srl_ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dimitri Geshef
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-08-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rley
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 2.0.0
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 2.0.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: cucumber
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -58,14 +58,14 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '12.0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
68
|
+
version: '12.0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rspec
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -199,15 +199,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
199
199
|
requirements:
|
200
200
|
- - ">="
|
201
201
|
- !ruby/object:Gem::Version
|
202
|
-
version: 2.
|
202
|
+
version: 2.3.0
|
203
203
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
204
204
|
requirements:
|
205
205
|
- - ">="
|
206
206
|
- !ruby/object:Gem::Version
|
207
207
|
version: '0'
|
208
208
|
requirements: []
|
209
|
-
|
210
|
-
rubygems_version: 2.6.13
|
209
|
+
rubygems_version: 3.0.3
|
211
210
|
signing_key:
|
212
211
|
specification_version: 4
|
213
212
|
summary: A parser for the [Simple Regex Language](https://simple-regex.com/). It translates
|