spec/support/base_tokenizer_spec.rb in rley-0.7.07 vs spec/support/base_tokenizer_spec.rb in rley-0.7.08

- old
+ new

@@ -23,29 +23,34 @@ end end # context context 'Provided services:' do + # Simplistic tokenizer. + # rubocop: disable Lint/ConstantDefinitionInBlock class PB_Tokenizer < BaseTokenizer @@lexeme2name = { '(' => 'LPAREN', ')' => 'RPAREN', '+' => 'PLUS' }.freeze protected - def recognize_token() - if (lexeme = scanner.scan(/[\(\)]/)) # Single characters + # rubocop: disable Lint/DuplicateBranch + def recognize_token + if (lexeme = scanner.scan(/[()]/)) # Single characters # Delimiters, separators => single character token build_token(@@lexeme2name[lexeme], lexeme) elsif (lexeme = scanner.scan(/(?:\+)(?=\s)/)) # Isolated char build_token(@@lexeme2name[lexeme], lexeme) elsif (lexeme = scanner.scan(/[+-]?[0-9]+/)) build_token('int', lexeme) end end + # rubocop: enable Lint/DuplicateBranch end # class + # rubocop: enable Lint/ConstantDefinitionInBlock # Basic tokenizer # @return [Array<Rley::Lexical::Token>] def tokenize(aText) tokenizer = PB_Tokenizer.new(aText)