File: posix_classes_spec.rb

package info (click to toggle)
ruby-regexp-parser 2.6.1-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 968 kB
  • sloc: ruby: 6,396; sh: 12; makefile: 6
file content (19 lines) | stat: -rw-r--r-- 757 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
require 'spec_helper'

RSpec.describe('PosixClass parsing') do
  include_examples 'parse', /[[:word:]]/,
    [0]    => [CharacterSet, count: 1],
    [0, 0] => [:posixclass,    :word, PosixClass, name: 'word', text: '[:word:]', negative?: false]
  include_examples 'parse', /[[:^word:]]/,
    [0]    => [CharacterSet, count: 1],
    [0, 0] => [:nonposixclass, :word, PosixClass, name: 'word', text: '[:^word:]', negative?: true]

  # cases treated as regular subsets by Ruby, not as (invalid) posix classes
  include_examples 'parse', '[[:ab]c:]',
    [0, 0]    => [CharacterSet, count: 3],
    [0, 0, 0] => [Literal, text: ':']

  include_examples 'parse', '[[:a[b]c:]]',
    [0, 0]    => [CharacterSet, count: 5],
    [0, 0, 0] => [Literal, text: ':']
end