class Regexp::Expression::Sequence

A sequence of expressions. Differs from a Subexpressions by how it handles quantifiers, as it applies them to its last element instead of itself as a whole subexpression.

Used as the base class for the Alternation alternatives, Conditional branches, and CharacterSet::Intersection intersected sequences.

Public Class Methods

add_to(exp, params = {}, active_opts = {}) click to toggle source
# File lib/regexp_parser/expression/sequence.rb, line 10
def add_to(exp, params = {}, active_opts = {})
  sequence = construct(
    level:             exp.level,
    set_level:         exp.set_level,
    conditional_level: params[:conditional_level] || exp.conditional_level,
    ts:                params[:ts],
  )
  sequence.options = active_opts
  exp.expressions << sequence
  sequence
end

Public Instance Methods

quantify(token, *args) click to toggle source
# File lib/regexp_parser/expression/sequence.rb, line 27
def quantify(token, *args)
  extract_quantifier_target(token.text).quantify(token, *args)
end
ts() click to toggle source
# File lib/regexp_parser/expression/sequence.rb, line 23
def ts
  (head = expressions.first) ? head.ts : @ts
end