File: escape_sequence.rb

package info (click to toggle)
ruby-regexp-parser 2.11.3-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,092 kB
  • sloc: ruby: 6,891; makefile: 6; sh: 3
file content (33 lines) | stat: -rw-r--r-- 1,177 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# frozen_string_literal: true

module Regexp::Expression
  module EscapeSequence
    Base        = Class.new(Regexp::Expression::Base)

    AsciiEscape = Class.new(Base) # \e
    Backspace   = Class.new(Base) # \b
    Bell        = Class.new(Base) # \a
    FormFeed    = Class.new(Base) # \f
    Newline     = Class.new(Base) # \n
    Return      = Class.new(Base) # \r
    Tab         = Class.new(Base) # \t
    VerticalTab = Class.new(Base) # \v

    Literal     = Class.new(Base) # e.g. \j, \@, \😀 (ineffectual escapes)

    Octal       = Class.new(Base) # e.g. \012
    Hex         = Class.new(Base) # e.g. \x0A
    Codepoint   = Class.new(Base) # e.g. \u000A

    CodepointList = Class.new(Base) # e.g. \u{A B}
    UTF8Hex       = Class.new(Base) # e.g. \xE2\x82\xAC

    AbstractMetaControlSequence = Class.new(Base)
    Control                     = Class.new(AbstractMetaControlSequence) # e.g. \cB
    Meta                        = Class.new(AbstractMetaControlSequence) # e.g. \M-Z
    MetaControl                 = Class.new(AbstractMetaControlSequence) # e.g. \M-\cX
  end

  # alias for symmetry between Token::* and Expression::*
  Escape = EscapeSequence
end