RegisterReadArg constructor Null safety

RegisterReadArg(
  1. {required int maxDigit,
  2. required void f(
    1. Model<ProgramOperation> m,
    2. Value v
    ),
  3. bool noParenI = false}
)

Implementation

RegisterReadArg(
    {required int maxDigit, required this.f, bool noParenI = false})
    : super(synonyms: Arg.registerISynonyms, children: [
        DigitArg(max: maxDigit, calc: (m, i) => f(m, m.memory.registers[i])),
        ...(noParenI
            ? const []
            : [
                KeyArg(
                    key: Arg.kParenI,
                    child: ArgDone(
                        (m) => f(m, m.memory.registers.indirectIndex))),
              ]),
        KeyArg(
            key: Arg.kI,
            child: ArgDone((m) => f(m, m.memory.registers.index))),
      ]);