uCalc API Version: 5.7.0-preview.1 Released: 7/30/2026

Warning

uCalc API Preview Release Notice:This preview documentation describes the intended behavior of the API. It is not fully accurate or complete.The current preview build contains incomplete features, unoptimized performance, and is subject to breaking changes.Use of the preview version in your production code is not recommended.

{@End}

Product: 

Class: 

Remarks

End-of-String Anchor

Description: A structural anchor directive that restricts a pattern match to the very end of the source text.

The {@End} directive is used within a uCalc::Transformer to ensure that a specific pattern only succeeds if it is found at the absolute conclusion of the input string. Like {@Beginning}, it is a zero-width anchor; it doesn't "consume" tokens, but validates that no more tokens remain in the stream following the match.

Positional Logic

{@End} is essential for tasks that require document-level integrity. It is commonly used to:

  • Append footers or closing tags.

  • Validate that a file ends with a required delimiter (like a semicolon or closing brace).

  • Trigger a final "clean-up" calculation using {@@Eval} or {@Doc}.

  • Comparison to Regex: {@End} is functionally equivalent to the $ anchor in standard Regular Expressions.

  • Token Awareness: In a token-based engine, {@End} ensures that the preceding pattern accounts for the final token in the stream before the end-of-file (EOF) state is reached.


Examples

1. Succinct (Quick Start: EOF Identification)

Matching a specific keyword only if it is the very last thing in the document.

New(uCalc::Transformer, t)// Match 'DONE' only if it's at the very endt.FromTo("DONE {@End}", "[FINISH]")wl(t.Transform("Processing... DONE"))wl(t.Transform("DONE - continuing..."))

[Expected Output]Processing... [FINISH]DONE - continuing... (No change, since 'DONE' was not at the end)

Using {@End} to identify the last word of a document and automatically appending a generated timestamp or signature.

New(uCalc::Transformer, t)// Match the last word and append a footert.FromTo("{@Alpha:last} {@End}", "{last}\n--- End of Report ---")var(string, doc) = "Final summary text"wl(t.Transform(doc))

[Expected Output]

Final summary text--- End of Report ---

3. Internal Test (Boundary Integrity)

Verifying that {@End} handles various token types at the boundary correctly.

New(uCalc::Transformer, t)t.FromTo("{@End}", " [EOF]")wl(t.Transform("12345"))

[Expected Output]12345 [EOF]


Strategy & Critique

  • Logical Symmetry: {@End} provides the necessary symmetry to {@Beginning}, allowing developers to define rules for both boundaries of a document.
  • Performance: Just like its counterpart, {@End} allows for fast-fail logic. If a pattern contains {@End} but the current token is not the last one, the engine can move on immediately.
  • Naming: Consistent with {@Beginning}.
  • Critique: In many programming languages, a "newline" often follows the last meaningful character. Depending on engine settings, you may need to decide if your pattern matches before or after a final {@Newline}.
  • See Also: Refer to Topic 777 ({@Beginning}) for anchoring to the start of the source string.

Examples