Node
A node in the regex AST.
indirect enum Node
A node in the regex AST.
indirect enum Node
import _RegexParser
struct AST
A regex abstract syntax tree.
case absentFunction(AST.AbsentFunction)
case alternation(AST.Alternation)
… | … | …
case atom(AST.Atom)
case concatenation(AST.Concatenation)
… …
case conditional(AST.Conditional)
(?(cond) true-branch | false-branch)
case customCharacterClass(AST.CustomCharacterClass)
case empty(AST.Empty)
case group(AST.Group)
(…)
case interpolation(AST.Interpolation)
Intepolation <{...}>
, currently reserved for future use.
case quantification(AST.Quantification)
case quote(AST.Quote)
\Q…\E
case trivia(AST.Trivia)
Comments, non-semantic whitespace, etc
init(_ root: AST.Node, globalOptions: AST.GlobalMatchingOptionSequence?, diags: Diagnostics)
var captureList: CaptureList { get }
The capture list (including the whole match) of this AST.
var diags: Diagnostics
var globalOptions: AST.GlobalMatchingOptionSequence?
var hasCapture: Bool { get }
Whether this AST tree contains at least one capture nested inside of it.
var isInvalid: Bool { get }
Whether this AST tree is either syntactically or semantically invalid.
var root: AST.Node
@discardableResult func ensureValid() throws -> AST
If the AST is invalid, throws an error. Otherwise, returns self.
func renderAsCanonical(showDelimiters delimiters: Bool = false, terminateLine: Bool = false) -> String
Renders using Swift’s preferred regex literal syntax.
struct AbsentFunction
An Oniguruma absent function.
struct Alternation
struct Atom
struct Concatenation
struct Conditional
struct CustomCharacterClass
struct Empty
struct GlobalMatchingOption
Global matching option specifiers.
struct GlobalMatchingOptionSequence
A set of global matching options in a regular expression literal.
struct Group
struct Interpolation
struct MatchingOption
An option, written in source, that changes matching semantics.
struct MatchingOptionSequence
A sequence of matching options, written in source.
struct Quantification
struct Quote
struct Reference
struct Trivia
typealias Located = Source.Located
protocol Copyable
A type whose values can be implicitly or explicitly copied.
protocol CustomDebugStringConvertible
A type with a customized textual representation suitable for debugging purposes.
protocol CustomStringConvertible
A type with a customized textual representation.
protocol Equatable
A type that can be compared for value equality.
protocol Escapable
protocol Hashable : Equatable
A type that can be hashed into a Hasher
to produce an integer hash value.
var children: [AST.Node]? { get }
The child nodes of this node.
var hasCapture: Bool { get }
Whether this node contains at least one capture nested inside of it.
var isQuantifiable: Bool { get }
Whether this node may be used as the operand of a quantifier such as ?
, +
or *
.
var isTrivia: Bool { get }
Whether this node is trivia or non-semantic, like comments.
var literalStringValue: String? { get }
var location: SourceLocation { get }
func `as`<T>(_ t: T.Type = T.self) -> T? where T : _ASTNode
func renderAsCanonical(showDelimiters delimiters: Bool = false, terminateLine: Bool = false) -> String
Renders using Swift’s preferred regex literal syntax.
var halfWidthCornerQuoted: String { get }
static func != (lhs: Self, rhs: Self) -> Bool
Returns a Boolean value indicating whether two values are not equal.