@configuredthings/rdp.js - v0.7.0
    Preparing search index...

    Type Alias RuleBody

    RuleBody:
        | { items: RuleBody[]; kind: "sequence" }
        | { items: RuleBody[]; kind: "alternation" }
        | { item: RuleBody; kind: "optional" }
        | { item: RuleBody; kind: "zeroOrMore" }
        | { item: RuleBody; kind: "oneOrMore" }
        | { kind: "nonTerminal"; name: string }
        | { kind: "terminal"; value: string }
        | { except: RuleBody; item: RuleBody; kind: "exception" }
        | { item: RuleBody; kind: "repetition"; max: number | null; min: number }
        | {
            codepoints: number[];
            encoding: "x" | "d" | "b";
            kind: "charValue";
            range?: [number, number];
        }
        | { kind: "coreRule"; name: CoreRuleName }

    A node in the body of a production rule. This is a discriminated union — inspect kind to narrow to a specific node type.

    Type Declaration

    • { items: RuleBody[]; kind: "sequence" }

      An ordered sequence of items that must all match in order.

    • { items: RuleBody[]; kind: "alternation" }

      Two or more alternatives; the first matching branch is taken.

    • { item: RuleBody; kind: "optional" }

      Matches the inner item zero or one times. EBNF: A?; ABNF: [A].

    • { item: RuleBody; kind: "zeroOrMore" }

      Matches the inner item zero or more times. EBNF: A*; ABNF: *A.

    • { item: RuleBody; kind: "oneOrMore" }

      Matches the inner item one or more times. EBNF: A+; ABNF: 1*A.

    • { kind: "nonTerminal"; name: string }

      A reference to another named production rule.

    • { kind: "terminal"; value: string }

      A literal string to match byte-for-byte.

    • { except: RuleBody; item: RuleBody; kind: "exception" }

      Set difference. ISO 14977: A - B. Matches item only when except would NOT match at the same position.

    • { item: RuleBody; kind: "repetition"; max: number | null; min: number }

      A bounded repetition. ABNF: 2*4A, *4A, 2*A. max: null means unbounded.

    • {
          codepoints: number[];
          encoding: "x" | "d" | "b";
          kind: "charValue";
          range?: [number, number];
      }

      A single character value or range specified by codepoint. ABNF: %x41, %d65, %b1000001, %x41-5A.

    • { kind: "coreRule"; name: CoreRuleName }

      A reference to one of the RFC 5234 core rules (ALPHA, DIGIT, etc.).