- Code refactoring.
- Refactoring class
SrlRuby::Tokenizer
: use of manifest constants, simplified newline and whitespace processing. - Updated of
.rubocop.yml
to integrate newer cops (from version 1.28) - Code refactoring: removal of redundant
return
- Fixed code breaking change in Ruby 3.1+: prime library is no longer part of stdlib.
- File
srl-ruby.gemspec
has a dependency toRley 0.8.11
. Necessary to fix change in CRuby 3.1:prime
library is no more part of stdlib.
- Minor style refactoring to please Runocop 1.27
- Code update to align with
Rley
v. 0.8.08
- File
ast_builder.rb
Updated somereduce_...
methods to cope with ? quantifier change - File
srl_ruby.gemspec
Updated the dependency towards Rley - File
.rubocop.yml
Added newest cops from 1.21 and 1.22
- File
grammar.rb
is now callingRley::grammar_builder
factory method. - File
rule_file_grammar.rb
is now callingRley::grammar_builder
factory method.
- Updated dependencies (Bundler >~ 2.2), (Rley >~ 0.8.03)
- Grammar refactoring to take profit of new Rley rule syntax.
- File
srl_ruby.gemspec
Updated the dependencies - File
grammar.rb
Grammar refactored (use ? * + modifiers in production rules) - class
ASTBuilder
updatedreduce_
to reflect new refactored production rules.
- Updated dependencies (Ruby >= 2.5), (Rley >= 0.8.02)
- Code restyling to please rubocop 1.19.1.
- File
srl_ruby.gemspec
Updated the dependencies - File
.rubocop.yml
Added configuration for newest cops
- Code refactoring to use string frozen magic comments (as a consequence, skeem runs only on Rubies 2.3 or newer).
- Code restyling to please rubocop 0.7.40.
- File
README.md
updated note on compatibility with Rubies
- Removed Ruby versions older than 2.3 in CI testing because of breaking changes by Bundler 2.0
- Files
.travis.yml
,appveyor.yml
updated.
- Minor code re-styling to please Rubocop 0.62.0.
- File
.travis.yml
Updated Ruby versions for CI builds - File
.appveyor.yml
Sequence of Ruby versions refactored - File
LICENSE.txt
: updated years in copyright text.
- Method
ASTBuilder#reduce_pattern_sequence
was broken for lookbehind assertions.
- File
srl_ruby.gemspec
Updated Rley dependency.
- Class
SrlRuby::SrlToken
since it became completely redundant withToken
class from Rley. - Class
Acceptance::RuleFileToken
since it became completely redundant withToken
class from Rley.
- Method
SrlRuby::Tokenizer#build_token
now instantiates aRley::Lexical::Token
- Method
Acceptance::RuleFileTokenizer#build_token
now instantiates aRley::Lexical::Token
- File
srl_ruby.gemspec
Updated Rley dependency.
- File
srl_ruby.gemspec
Updated Rley dependency.
- Command-line option -p, --pattern SRL_PATT, that allows users to enter directly short one-liner SRL patterns.
Thanks to
KarimGeiger
for suggesting me this enhancement. - Directory
examples
with SRL examples fromREADME
and more...
- File
README.md
updated with new text of command-line help.
Version bump: SrlRuby has a command-line compiler srl2ruby
- File
bin/srl2ruby
A compiler that parses SRL expressions and transform them into regular Regexp. - File
srl2ruby_cli_parser.rb
Implementation of the CLI of thesrl2ruby
compiler. - Directory
templates
contains ERB templates that can be used to formatsrl2ruby
output.
- File
README.md
vastly expanded in order to coversrl2ruby
compiler and a couple of SRL examples - File
.rubocop.yml
enabled some of the complaining cops
- File
srl_ruby
the previous binary of the gem is now replaced bysrl2ruby
.
- Method
Tokenizer#_next_token
failed to recognize digit or integer value immediately followed by a closing parenthesis ')'. - Many classes lightly refactored in order to please Rubocop.
- Support for SRL flags (i.e. 'case insensitive', 'multi line', 'all lazy'). This marks a milestone: all SRL can be, in principle, parsed and compiled.
- Methods
SrlRuby#load_file
,SrlRuby#parse
now return a Regexp object initialized with options parsed from SRL - New feature step defined in file
features/lib/step_definitions/srl_testing_steps.rb
- File
.rubocop.yml
enabled some of the complaining cops
- Method
Tokenizer#_next_token
failed to recognize digit or integer value immediately followed by a comma
- Binary
srl_ruby
now accepts a SRL filename as command-line argument. Command-line documentation updated.
- Method
Tokenizer#_next_token
failed to recognize single letter followed by a comma - Binary
srl_ruby
now loads source files from correct filepath - Module
SRL
is no more an ancestor of classMultiplicity
.
Cucumber
feature files are now part of the gem.- Added
floatingpoint.feature
as test and demo for validating flating point numbers
- Added
Cucumber
feature files both for additional testing and demo purposes.
Almost all examples from SRL websites are "featured".
- All regex node classes support the
done!
method. It signals the end of aprsing, this is the right moment to finalize/tune the parse tree or parse forest to build.
- Method
PolyadicExpression#done!
fixes an issue with lookbehind regex generation. The lookbehind expression precede the expression to be mathced/capture. In SRL, lookbehind syntax the expression to capture or match... - Class
SrlRuby::ASTBuilder
improved support "from ... to ..." syntax: supports the case when boundaries are swapped. If last captured subexpression is a repetition, then it is made lazy (instead of greedy).
Version bump: SrlRuby passes the complete official SRL test suite!
- File
acceptance/srl_test_suite_spec.rb
. 15 test files from official test suite are passing.
- Class
SrlRuby::ASTBuilder
Fixing the capture...until semantic. If last captured subexpression is a repetition, then it is made lazy (instead of greedy).
SrlRuby passes 13 tests out of 15 from standard SRL test suite.
- Class
SrlRuby#Tokenizer
added CHAR_CLASS literal and keywords EITHER, NONE, EITHER, - Grammar expanded to support 'CARRIAGE RETURN', 'VERTICAL TAB', 'WORD', 'NO WORD' expressions
- Class
SrlRuby::ASTBuilder
updates to reflect changes in the grammar. - File
acceptance/srl_test_suite_spec.rb
. 13 test files from official test suite are passing.
SrlRuby passes 12 tests out of 15 from standard SRL test suite.
- Class
SrlRuby#Tokenizer
added keywords CARRIAGE, RETURN, VERTICAL, WORD - Grammar expanded to support 'CARRIAGE RETURN', 'VERTICAL TAB', 'WORD', 'NO WORD' expressions
- Class
SrlRuby::ASTBuilder
updates to reflect changes in the grammar. - File
acceptance/srl_test_suite_spec.rb
. 12 test files from official test suite are passing.
SrlRuby passes 10 tests out of 15 from standard SRL test suite.
- File
lib/srl_ruby/grammar.rb
grammar refactoring. Added support for new 'no digit' SRL expression. - Class
SrlRuby::ASTBuilder
updates to reflect changes in the grammar. - Class
Regex::Lookaround
refactored: now inherits fromRegex::MonadicExpression
- File
spec/integration_spec
renamed tospec/srl_ruby_spec.rb
, ssytematic use of the API of SrlRuby module.
- Method
SrlRuby::ASTBuilder#reduce_one_of
now escapes character inside a character class.
- Fixed a number of Yard warnings.
- Fixed rley version dependency
SrlRuby passes 7 tests out of 15 from standard SRL test suite.
- File
acceptance/srl_test_suite_spec.rb
. More examples in spec file. - File
ast_builder.rb
updates to reflect grammar changes.
- SRL grammar now accepts a comma before 'must end' anchor
- SRL grammar now accepts a comma before an option
- Class
Tokenizer#_next_token
now recognizes correctly escaped quotes within string literal - File
ast_builder.rb
fixed anchor implementation.
SrlRuby passes 3 tests out of 15 from standard SRL test suite.
- Added
spec/acceptance/support
directory. It contains test harness to use the .rule files from standard SRL test suite. - Added
acceptance/srl_test_suite_spec.rb
file. Spec file designed to standard SRL test suite. At this date, SrlRuby passes 3 tests out of 15 tests in total.
- API Change. Method SrlRuby#parse returns a Regexp instance (previously it was a String)
- API Change. Method SrlRuby#load_file returns a Regexp instance (previously it was a String)
- SRL 'backslash' produces now 4 consecutive backslashes (required by the conversion into Regexp)
- Parse error location is now given in line number, column number position.
- Updated dependencies upon Rley parser.
- Version bump. Added new API methods
SrlRuby#load_file
andSrlRuby#parse
- File
README.md
vastly improved with examples and usage snippet.
- File
CHANGELOG.md
. This file. Adoptingkeepachangelog.com
recommended format. - File
appveyor.yml
. Configuration file for the AppVeyor CI (automated builds on Windows)
- File
README.md
added badges (Appveyor build status, Gem version, license)
- Initial working Github commit