Skip to content

1. Notation

1.1 Conformance Keywords

The key words MUST, MUST NOT, SHOULD, SHOULD NOT, and MAY are to be interpreted as requirement levels:

  1. MUST: absolute requirement for conforming implementations.
  2. MUST NOT: absolute prohibition.
  3. SHOULD: recommended behavior; deviations require explicit rationale.
  4. SHOULD NOT: discouraged behavior; exceptions require explicit rationale.
  5. MAY: optional behavior.

1.2 Grammar Notation

Unless otherwise stated, grammar snippets use a compact EBNF-like notation:

ebnf
RuleName   := production
production := term { term } [ term ] (alt1 | alt2)

Notation elements:

  1. := introduces a definition.
  2. { ... } means zero or more repetitions.
  3. [ ... ] means optional.
  4. (a | b) means alternatives.
  5. Quoted text (for example "protocol") denotes literal tokens.

Source-surface grammar is specified in Chapter 4. Implementation grammar files and parser tests are conformance evidence for that surface, not independent language definitions.

1.3 Character and Text Notation

Unless explicitly stated:

  1. Source text is UTF-8 encoded.
  2. Keyword matching is case-sensitive.
  3. LF denotes line feed (\n).
  4. CRLF is accepted where line endings are environment-dependent.

1.4 Identifier Meta-Notation

Meta-symbol names:

  1. IDENTIFIER: user-defined name token.
  2. STRING: double-quoted string literal.
  3. BOOLEAN: true or false.
  4. QUANTITY: numeric literal optionally followed by a unit suffix.

Concrete lexical definitions are specified in Chapter 2.

1.5 Examples and Non-Normative Blocks

Unless a block is explicitly labeled as requirement text:

  1. Code examples are explanatory only.
  2. Notes and rationale paragraphs are non-normative.
  3. Requirement statements are introduced using conformance keywords.

Public language reference for the current Culsma surface.