Skip to content
ChartForgeX
Class

RailroadDiagramBlock

ChartForgeX.VisualBlocks

Namespace
ChartForgeX.VisualBlocks
Assembly
ChartForgeX
Modifiers
sealed

A generic grammar diagram with symbolic references and native recursive railroad geometry.

Inheritance

Remarks

Native layout accepts up to 512 rules, 32768 expression occurrences and 128 nesting levels. References and repetition counts remain symbolic. Measure or call WithNaturalSize after changing rules, padding or typography; a smaller explicit frame is rejected instead of clipping grammar.

Usage

Explore 16 API references to this type

This type appears in these public API surfaces even when no hand-authored example is attached directly to the page.

Constructors

public RailroadDiagramBlock() #

Initializes an empty grammar diagram.

Methods

public RailroadDiagramBlock AddRule(string id, RailroadExpression expression, string? label = null) #

Adds a rule without expanding references or repeat counts.

Parameters

id string required
expression ChartForgeX.VisualBlocks.RailroadExpression required
label string? = null optional
public static RailroadDiagramBlock Create() #

Creates an empty grammar diagram.

public ChartSize MeasureNaturalSize() #

Measures the complete natural frame before any raster allocation.

Returns

ChartSize
public RailroadDiagramBlock WithNaturalSize(int minimumWidth = 0, int minimumHeight = 0) #

Sets the complete natural frame, retaining optional minimum dimensions.

Parameters

minimumWidth int = 0 optional
minimumHeight int = 0 optional

Properties

public IReadOnlyList<RailroadRule> Rules { get; } #

Gets rules in authored order.

public RailroadRuleComparison RuleComparison { get; set; } #

Gets or sets rule-identity comparison without changing displayed rule IDs.

public override string AccessibleName { get; } #

Gets a concise accessible grammar name.