Files
stgsharp/src/Nitload.RegularAnalysis/Legacy/README.md
T

2.9 KiB

Frozen Text Regex implementation

Text Regex is archived following the NGRA transformation plan. It is no longer NGRA's execution architecture or an active development target.

Retained results and future string matching

Freezing development does not diminish the value of the work already completed. The project produced reusable AST/token infrastructure, the five-link tree model and its normalization, rotation, and merging techniques, as well as tested fixed-width COUNT retry logic. The archived generator also records useful engineering lessons about continuations, group boundaries, label ownership, and rollback. These are reference material for the new architecture, not a claim that the old matcher is feature-complete.

Future string-regex functionality will use .NET GeneratedRegex. Further research into custom Span<char> and SIMD optimizations for the Text Regex matcher is discontinued. This boundary applies to the string-regex implementation, not to SIMD work elsewhere in Nitload.

Contents

  • Text/: the text tokenizer/parser, regex-specific AST and optimizers, matcher contract, attribute, and all source-generator files.
  • GroupIndex.cs: the former group index/name record.
  • SourceGenerate.cs: the unused source-generation entry stub.
  • Archived debug routines: the original AST inspection and generated-source preview programs.

Source contents and namespaces are preserved. The generic infrastructure in ../Abstraction/ remains active, including the five-link node interface, generic AST, token abstractions, compilation stack, and sequence emitter. Text-specific tree transformations remain here as source material for future Pattern-to-NFA lowering.

Build boundary

The project excludes Legacy/**/*.cs from Compile and retains the files as None items. They are not copied to build/publish output or packed. The active project no longer references Roslyn or packages its assembly as a source generator. Debug routines have the same exclusion in their own project and are not called from Main.

To investigate this implementation again, use a separate experimental project that explicitly includes the archived files and supplies the former Roslyn dependencies: Microsoft.CodeAnalysis.CSharp 4.13.0 and Microsoft.CodeAnalysis.Analyzers 3.11.0. The debug preview also required Roslyn at runtime and the StgSharpDebug friend assembly. Re-enabling files is not sufficient to make the unfinished matcher complete.

Historical notes remain in IR_RETIRED.md and regex_node_transaction.md. They describe earlier experiments, not the new NFA execution contract. Older .discard material is unchanged.

The next runtime is planned around generic sequence input and Boolean ε-NFA execution; weighted automata and NGRA-Tensor remain later development/research stages.