final class TerminalSequence

Ordered terminal occurrences; rewriting preserves the original derivation.

Properties§

public list<TerminalOccurrence> $terminals
public list<TerminalOccurrence> $original = []
public list<string> $rewrites = []
public list<ProductionOccurrence> $productions = []
public list<array{rule: string, offset: int, removed: list<TerminalOccurrence>, inserted: list<TerminalOccurrence>}> $operations = []

Methods§

public function __construct(
    public list<TerminalOccurrence> $terminals,
    public list<TerminalOccurrence> $original = [],
    public list<string> $rewrites = [],
    public list<ProductionOccurrence> $productions = [],
    public list<array{rule: string, offset: int, removed: list<TerminalOccurrence>, inserted: list<TerminalOccurrence>}> $operations = [],
)

Parameters

$terminalslist<TerminalOccurrence>
$originallist<TerminalOccurrence>
$rewriteslist<string>
$productionslist<ProductionOccurrence>
$operationslist<array{rule: string, offset: int, removed: list<TerminalOccurrence>, inserted: list<TerminalOccurrence>}>
public static function fromNames(list<string> $names): self

Parameters

$nameslist<string>

Returns

self
Test cases 160
Called from 3
Calls 2
public function nameAt(int $index): ?string

Reads the current terminal name, returning null outside the sequence.

Parameters

$indexint

Returns

?string
Called from 59
public function names(): list<string>

Returns

list<string>
Test cases 4
Called from 10
Calls 1
public function replace(
    int $offset,
    int $length,
    list<TerminalOccurrence> $replacement,
    string $rule,
): self

Parameters

$offsetint
$lengthint
$replacementlist<TerminalOccurrence>
$rulestring

Returns

self
Test cases 7
Called from 13
Calls 3
public function range(int $production): array{int, int}|null

Locates the current output of a selected production, including nested children.

Parameters

$productionint

Returns

array{int, int}|null Inclusive start and exclusive end, or no emitted terminal
Test cases 1
Called from 127
Calls 1
public function occurrences(string $rule): list<int>

Lists original occurrences from the innermost/rightmost derivations first.

Parameters

$rulestring

Returns

list<int>
Called from 81
Calls 1
  • function-call array_reverse line 97
public function child(int $parent, string $rule): ?ProductionOccurrence

Finds a direct child production, preserving empty children that have no terminal range.

Parameters

$parentint
$rulestring
Test cases 1
Called from 82
public function inserted(
    string $name,
    TerminalOccurrence $anchor,
    string $rewrite,
    int $offset = 0,
): TerminalOccurrence

Creates a new occurrence with an identity outside the original nonnegative derivation IDs.

Parameters

$namestring
$anchorTerminalOccurrence
$rewritestring
$offsetint
Test cases 1
Called from 1
Calls 2
public function insertedFor(
    string $name,
    int $production,
    string $rewrite,
    int $offset = 0,
): TerminalOccurrence

Adds output to a specific production, including originally empty productions.

Parameters

$namestring
$productionint
$rewritestring
$offsetint
Test cases 2
Called from 22
Calls 3

Test cases 345§

Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.

Dedicated tests 9
Other tests reaching this symbol 336

Relations§

Instantiated in 2
Static calls 3
Method calls 394
Type declarations 207