parseLookupList method

dynamic parseLookupList(
  1. dynamic lookupTableParsers
)

Implementation

parseLookupList(lookupTableParsers) {
  // print("parseLookupList ...offset: ${this.offset} relativeOffset: ${this.relativeOffset}  ");
    return this.parsePointer(
      Parser.list(
        Parser.pointer((scope) {
          // print(" parseLookupList parsePointer... offset: ${scope.offset} relativeOffset: ${scope.relativeOffset} ");

          var lookupType = scope.parseUShort();
          argument(1 <= lookupType && lookupType <= 9, 'GPOS/GSUB lookup type ${lookupType} unknown.');
          var lookupFlag = scope.parseUShort();
          bool useMarkFilteringSet = (lookupFlag & 0x10) != 0;

          // print(" lookupType: ${lookupType} ");

          return {
            "lookupType": lookupType,
            "lookupFlag": lookupFlag,
            "subtables": scope.parseList(Parser.pointer(lookupTableParsers[lookupType]), null),
            "markFilteringSet": useMarkFilteringSet ? scope.parseUShort() : null
          };
        }),
        null
      )
    ) ?? [];
}