Table of Contents

Namespace Hi.Numerical.CsvParsers

Classes

CsvRowSemantic

Final-stage semantic that turns each row JSON stamped by CsvRowSyntax into the same IAct sequence the legacy CsvRunner produced: optional ActLineCsScript (begin), ActActualTime, ActToolingTeleport, ActFeedrate, ActSpindleDirection, ActSpindleSpeed, ActMcXyzabcStep / ActMcXyzabcLinearContour, ActData, and optional ActLineCsScript (end).

Stateless — the previous machine coordinate is recovered by walking back through the SyntaxPiece chain and reading the typed double cells CsvRowSyntax already stamped, so no carry-state lives on the semantic instance or in extra JSON sections. The previous actual time is recovered the same way; that cell stays as a string (the source format may be TimeSpan or DateTime) and is re-parsed on demand — at most once per row.

CsvRowSyntax

Per-row CSV parsing syntax for the soft NC runner. Reads the active TitleList via SegmenterDependency, splits the row text using GetCsvDictionary(IList<string>, string), and stamps the resulting column→value map into JsonObject under the CsvRowKey property for CsvRowSemantic to consume.

Numeric cells are pre-typed to double (or bool) at this stage so downstream readers — including CsvRowSemantic's backwards walk for the previous machine coordinate — touch native JSON numbers instead of re-parsing strings on every visit. Columns kept as strings: the script / time / spindle-direction tags whose semantic interpretation is non-numeric, plus any column whose key appears in ParsingDictionary (the caller-supplied parsing function expects the raw cell text).

CsvRunnerConfig

Configuration class for CSV Runner. Lives in NcDependencyList when wired with CsvSoftRunner; consumed by CsvRowSyntax and CsvRowSemantic for tag-name lookup and custom-field parsing.

CsvSegmenter

Segments a CSV stream for the SoftNcRunner pipeline. Consumes the first IndexedFileLine as the title row (populating TitleList and registering any new columns as step variables via StepPropertyAccessDictionaryDependency), then yields each subsequent line as a one-line Sentence for CsvRowSyntax to parse.

CsvSoftRunner

Factory for a SoftNcRunner wired to replay CSV files (deprecates the legacy CsvRunner). The returned runner has a single-syntax pipeline: CsvSegmenterCsvRowSyntaxCsvRowSemantic.

Default NcDependencyList:

MachiningServiceDependency is intentionally not included by default; clients that build custom syntaxes around CsvSoftRunner can append it themselves.