Skip to main content

Module syntax

Module syntax 

Source
Expand description

The MIG syntax check a CONTRL reports: one message against its MIG alone.

No Prüfidentifikator, AHB or condition takes part. A CONTRL reports syntax errors only (CONTRL AHB 1.0 §2.1); a code wrong only in its context is an AHB matter and goes to the APERAK. What is checked:

  • UNH and UNT (UCM): their elements, the segment count (UNT 0074, code 29) and the message reference (UNT 0062 against UNH 0062, code 28). An error here stops the check of that message: nothing else is reported.
  • Segments (UCS): a segment the MIG marks M/R missing (13), one the MIG has no place for (15), more data elements than the MIG defines (16), a segment or group repeating beyond its MaxRep (35, 36).
  • Data elements (UCD): an M/R element or component empty (13), a value outside the MIG’s code list (12), too many components (16), a bad decimal notation (19), characters outside the syntax level (21), a letter in a numeric element (37), no digit before the decimal mark (38), too long (39), too short (40).

The codes are those the CONTRL MIG 2.0b allows in UCM/UCS/UCD 0085. Every finding carries its segment counter from UNH = 1 (UCS 0096); a missing segment or group is reported at its predecessor. Element positions follow S011: the segment tag is 0098 = 1, the first component 0104 = 1.

The message is placed with the assembler on the MIG with every segment number kept, i.e. as if a Prüfidentifikator allowed all the MIG allows.

Structs§

Accepted
What an element accepts beyond its MIG code list.
MigPlacements
The placements of a MIG the syntax check assembles a message on: the whole MIG kept apart, with its group variants merged, and with them apart. They depend on the MIG alone, and building them is most of the check’s cost (about 10 ms for UTILMD), so a caller checking many messages builds them once (check_message_syntax_prepared).
SyntaxFinding
One syntax error of a message.
SyntaxSettings
The interchange’s syntax settings a value is judged by.

Enums§

Charset
The character repertoire of a syntax level (UNB S001 0001).
SyntaxScope
Which CONTRL segment reports a finding.

Functions§

check_message_syntax
Check one message against mig.
check_message_syntax_prepared
check_message_syntax with the MIG’s placements built beforehand. placements must be MigPlacements::new of mig.

Type Aliases§

AcceptedCodes
Values accepted beyond the MIG’s own code lists, by MIG segment Number, element index and component index (0-based). A MIG’s code list can lag its AHBs — a Prüfidentifikator an AHB correction adds, an answer code an AHB takes from a Codeliste the MIG predates — and what an AHB allows is never a syntax error.