diff --git a/dist/datamodel/parser/BinarySlddParser.d.ts.map b/dist/datamodel/parser/BinarySlddParser.d.ts.map index 6723d8b5..feac42ca 100644 --- a/dist/datamodel/parser/BinarySlddParser.d.ts.map +++ b/dist/datamodel/parser/BinarySlddParser.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"BinarySlddParser.d.ts","sourceRoot":"","sources":["../../../src/datamodel/parser/BinarySlddParser.ts"],"names":[],"mappings":"AAgDA,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AA6BhE,OAAO,EAA2E,KAAK,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAgCtH;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAkBrD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAC7B,WAAW,EAAE,WAAW,EACxB,QAAQ,CAAC,EAAE,YAAY,EAAE,GACxB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAoDzB;AAQD,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,EACvC,QAAQ,CAAC,EAAE,YAAY,EAAE,GACxB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAiKzB;AAuLD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAuIvG;AAwsBD,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,CAExE"} \ No newline at end of file +{"version":3,"file":"BinarySlddParser.d.ts","sourceRoot":"","sources":["../../../src/datamodel/parser/BinarySlddParser.ts"],"names":[],"mappings":"AAgDA,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AA8BhE,OAAO,EAA2E,KAAK,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAgCtH;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAkBrD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAC7B,WAAW,EAAE,WAAW,EACxB,QAAQ,CAAC,EAAE,YAAY,EAAE,GACxB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAoDzB;AAQD,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,EACvC,QAAQ,CAAC,EAAE,YAAY,EAAE,GACxB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAiKzB;AAuLD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAuIvG;AAsmBD,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,CAExE"} \ No newline at end of file diff --git a/dist/datamodel/parser/BinarySlddParser.js b/dist/datamodel/parser/BinarySlddParser.js index e059c513..207c61f1 100644 --- a/dist/datamodel/parser/BinarySlddParser.js +++ b/dist/datamodel/parser/BinarySlddParser.js @@ -51,6 +51,7 @@ import { DATA_PART_KEY, DATA_PART_XML, TEXT_CONTENT, TEXT_PARTS } from './SlddPa import { encodedStream, encodedValueOf, isEncodedValue } from './EncodedValue.js'; import { charFromDecimal, charNeedsShape, complexClassTag, formatMatrixSerial, formatMxCharSerial, formatNumLiteral, needsExactInt, parseExactBody, parseMatlabNum, parseNumericBody, transposeFromColumnMajorND, BINARY_EMPTY_KEY, ENUM_KEY, ENUMERATION_KEY, PROPERTY_SOURCE_KEY, SAVEOBJ_KEY, } from './XmlUtils.js'; import { setOwn } from './ownKeys.js'; +import { arrayClassOf, componentsBaseOf } from './objectArrayClass.js'; import { headerDigits } from './Size.js'; import { recordPackageStamps, recordReadFrame, recordReadSource } from './EntrySource.js'; /** @@ -836,7 +837,8 @@ function cellValue(elements, dimParts) { // unclassed element set decodes as the struct array it is. // // `base` is the class the array's place names, where it names one (componentsBaseOf): it is -// the array's class whatever its elements are. +// the array's class whatever its elements are. Both rules are objectArrayClass.ts's, which the +// MCOS reader (McosParser) names a .mat's and a model workspace's object arrays by too. function objectArrayValue(elements, dimParts, base) { const first = elements.length > 0 ? elements[0]['@_Class'] || '' : ''; if (!first) { @@ -899,98 +901,6 @@ function propertySources(el) { } return sources; } -/** - * The class an object array of elements of `classes` is, as MATLAB's text format names it in - * `_array_class`: the class every element shares; for elements of several classes, the common - * base class where it can be derived (heterogeneousBaseOf); and otherwise the first element's, - * which is what this reader named every such array before it kept the elements' own. A config - * set's Components does not come here: its place names its class (componentsBaseOf). - * - * The first element's class is still what an array of no derivable base reads as: of the 71 - * mixed arrays the binary dictionaries of the test fixtures, the parity artifacts and the local - * corpus hold, one, a simmechanics.ConfigurationSet's Components of two simmechanics classes. - */ -function arrayClassOf(classes) { - if (classes.every((c) => c === classes[0])) { - return classes[0]; - } - return heterogeneousBaseOf(classes) ?? classes[0]; -} -/** - * The common base class of an array mixing `classes`, where this reader can derive one, or - * undefined. - * - * A binary dictionary does not state it: its `
` carries - * no Class, and each element names only its own. A text dictionary does, and two rules give the - * base it names from the classes alone: - * - Simulink.ConfigComponent, for an array whose classes each belong to CONFIG_COMPONENTS: every - * Components array of a Simulink.ConfigSet and of a Simulink.RTWCC that MATLAB wrote into a - * text dictionary is `_array_class` Simulink.ConfigComponent (30 of 30, in five - * dictionaries), over classes each listed there. - * - The one known MathWorks class (isMathWorksClass) of an array mixing it with classes that are - * not: a user's class can derive from a MathWorks class and a MathWorks class never from a - * user's, so the MathWorks class is the base the user classes extend. A text dictionary MATLAB - * wrote names a Simulink.Signal subclass beside a Simulink.Signal `{"_array_class": - * "Simulink.Signal", …}`, and this reader read the binary twin of that array, in two - * dictionaries, as the subclass, the first element's class. - * Of two MathWorks classes or more beside other classes, or of none, it names no base. - */ -function heterogeneousBaseOf(classes) { - if (classes.every((c) => c === CONFIG_COMPONENT || CONFIG_COMPONENTS.has(c))) { - return CONFIG_COMPONENT; - } - const known = new Set(classes.filter(isMathWorksClass)); - return known.size === 1 ? [...known][0] : undefined; -} -/** - * Whether `cls` is a known MathWorks class: a class of a package whose classes this package - * already names as MathWorks' (MATHWORKS_PACKAGES). Simulink and mpt are the packages of every - * class the node registry, the schema and the Kind column name (NodeClassMap, schema/index, - * kindMap), and the two the test suite tells MATLAB's own objects from custom ones by; SlCovCC, - * Sldv and hdlcoderui are the packages of the config components CONFIG_COMPONENTS names. A class - * of any other package, MathWorks' or not (CoderTarget, SSC, simmechanics, AUTOSAR among them), - * is not known here, and counts as one that is not MathWorks' (heterogeneousBaseOf). - */ -function isMathWorksClass(cls) { - const dot = cls.indexOf('.'); - return dot > 0 && MATHWORKS_PACKAGES.has(cls.slice(0, dot)); -} -/** The packages of the known MathWorks classes (isMathWorksClass). */ -const MATHWORKS_PACKAGES = new Set(['Simulink', 'mpt', 'SlCovCC', 'Sldv', 'hdlcoderui']); -/** - * The class the place of a property named `name` of an object of `ownerClass` names for an - * object array there, or undefined where it names none: Simulink.ConfigComponent, for the - * Components of a Simulink.ConfigSet or a Simulink.RTWCC, whatever components it holds. - * - * Every such array MATLAB wrote into a text dictionary is `_array_class` - * Simulink.ConfigComponent (30 of 30, in five dictionaries). A binary dictionary names no base - * for it, and can hold components no text dictionary has shown, so that CONFIG_COMPONENTS does - * not list them: a CoderTarget.SettingsController, in seven config sets of a corpus dictionary, - * and an SSC.SimscapeCC, in one of another. Those arrays used to read under their first - * component's class, a Simulink.SolverCC. - */ -function componentsBaseOf(ownerClass, name) { - return name === 'Components' && (ownerClass === 'Simulink.ConfigSet' || ownerClass === 'Simulink.RTWCC') ? CONFIG_COMPONENT : undefined; -} -const CONFIG_COMPONENT = 'Simulink.ConfigComponent'; -/** Each class MATLAB's text format lists as an element of a Simulink.ConfigComponent array (see heterogeneousBaseOf). */ -const CONFIG_COMPONENTS = new Set([ - 'Simulink.SolverCC', - 'Simulink.DataIOCC', - 'Simulink.OptimizationCC', - 'Simulink.DebuggingCC', - 'Simulink.HardwareCC', - 'Simulink.ModelReferenceCC', - 'Simulink.SFSimCC', - 'Simulink.RTWCC', - 'Simulink.CodeAppCC', - 'Simulink.GRTTargetCC', - 'Simulink.ERTTargetCC', - 'Simulink.STFCustomTargetCC', - 'SlCovCC.ConfigComp', - 'Sldv.ConfigComp', - 'hdlcoderui.hdlcc', -]); /** * A classed or shaped empty, as every place a value is read holds one, an entry's Value, an * object's property or a struct's field, and a cell's element: its class under the bare header diff --git a/dist/datamodel/parser/BinarySlddParser.js.map b/dist/datamodel/parser/BinarySlddParser.js.map index e80b30de..91d3a461 100644 --- a/dist/datamodel/parser/BinarySlddParser.js.map +++ b/dist/datamodel/parser/BinarySlddParser.js.map @@ -1 +1 @@ -{"version":3,"file":"BinarySlddParser.js","sourceRoot":"","sources":["../../../src/datamodel/parser/BinarySlddParser.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"BinarySlddParser.js","sourceRoot":"","sources":["../../../src/datamodel/parser/BinarySlddParser.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/datamodel/parser/MatParser.d.ts.map b/dist/datamodel/parser/MatParser.d.ts.map index 8304e08a..ba2c60fe 100644 --- a/dist/datamodel/parser/MatParser.d.ts.map +++ b/dist/datamodel/parser/MatParser.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"MatParser.d.ts","sourceRoot":"","sources":["../../../src/datamodel/parser/MatParser.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAgC,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AA+BhF,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IAGb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IAKnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAOnB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;IAGf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,EAAE,CAAC,GAAG,IAAI,CAAC;IAC3D,SAAS,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;IAIpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAWnB,UAAU,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAAC,GAAG,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,IAAI,CAAC;IAkBtD,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,WAAW,EAAE,CAAC;IAYzB,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC5B;AAwKD,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAK9E;AAwCD,eAAO,MAAM,WAAW,MAAM,CAAC;AAE/B;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,WAAW,GAAG,OAAO,CAS3D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,WAAW,GAAG,MAAM,CAWzD;AAwMD,+FAA+F;AAC/F,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,WAAW,GAAG,WAAW,GAAG,SAAS,CAEpF;AAmBD;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAK5E;AAQD,+EAA+E;AAC/E,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,WAAW,GAAG;IAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,SAAS,CAE3F;AA4GD,wBAAgB,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,WAAW,CA0ZtG;AAED,wBAAgB,QAAQ,CAAC,WAAW,EAAE,WAAW,GAAG,SAAS,CA6L5D;AA8ID,uFAAuF;AACvF,MAAM,MAAM,SAAS,GACf;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,WAAW,CAAC;IAAC,gBAAgB,EAAE,UAAU,EAAE,CAAA;CAAE,GACnE;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAYpC;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,UAAQ,GAAG,MAAM,GAAG,IAAI,CAiChF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,SAAS,CA+B/F"} \ No newline at end of file +{"version":3,"file":"MatParser.d.ts","sourceRoot":"","sources":["../../../src/datamodel/parser/MatParser.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAgC,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAkChF,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IAGb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IAKnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAOnB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;IAGf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,EAAE,CAAC,GAAG,IAAI,CAAC;IAC3D,SAAS,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;IAIpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAWnB,UAAU,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAAC,GAAG,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,IAAI,CAAC;IAkBtD,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,WAAW,EAAE,CAAC;IAYzB,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC5B;AA8RD,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAK9E;AAwCD,eAAO,MAAM,WAAW,MAAM,CAAC;AAE/B;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,WAAW,GAAG,OAAO,CAS3D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,WAAW,GAAG,MAAM,CAWzD;AA2MD,+FAA+F;AAC/F,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,WAAW,GAAG,WAAW,GAAG,SAAS,CAEpF;AAmBD;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAK5E;AAQD,+EAA+E;AAC/E,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,WAAW,GAAG;IAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,SAAS,CAE3F;AA4GD,wBAAgB,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,WAAW,CA0ZtG;AAED,wBAAgB,QAAQ,CAAC,WAAW,EAAE,WAAW,GAAG,SAAS,CA6L5D;AA8ID,uFAAuF;AACvF,MAAM,MAAM,SAAS,GACf;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,WAAW,CAAC;IAAC,gBAAgB,EAAE,UAAU,EAAE,CAAA;CAAE,GACnE;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAYpC;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,UAAQ,GAAG,MAAM,GAAG,IAAI,CAiChF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,SAAS,CA+B/F"} \ No newline at end of file diff --git a/dist/datamodel/parser/MatParser.js b/dist/datamodel/parser/MatParser.js index edc892ee..12ffa55d 100644 --- a/dist/datamodel/parser/MatParser.js +++ b/dist/datamodel/parser/MatParser.js @@ -25,6 +25,9 @@ const MI_MATRIX = 14; const MI_COMPRESSED = 15; const MI_UTF8 = 16; const MI_UTF16 = 17; +// The array class of a single (mxSINGLE_CLASS), whose elements are read as MATLAB spells them +// (singleDigits). +const MX_SINGLE_CLASS = 7; function align8(n) { return n + ((8 - (n % 8)) % 8); } @@ -76,7 +79,12 @@ const ELEMENT_WIDTH = { // four UTF-16 code units share one uint64 and the rounding lands in the LOW bits — that // is, on the FIRST character of every group of four ("café" -> "`afé"). See // test/parity/matlab/STRING_MCOS.md. -function readNumericArray(view, sub, count) { +// +// `single` is whether the array is of class single (C-033): each miSINGLE element is then the +// decimal MATLAB spells that float32 with (singleDigits), and not the double getFloat32 widens +// it to. Any other class reads an miSINGLE element as that double, which for a double stored +// in four bytes is its value. +function readNumericArray(view, sub, count, single = false) { const values = []; const off = sub.dataOffset; // `count` comes from the array's DECLARED dimensions, which a truncated or @@ -103,9 +111,11 @@ function readNumericArray(view, sub, count) { case MI_DOUBLE: values.push(view.getFloat64(off + i * 8, true)); break; - case MI_SINGLE: - values.push(view.getFloat32(off + i * 4, true)); + case MI_SINGLE: { + const x = view.getFloat32(off + i * 4, true); + values.push(single ? singleDigits(x) : x); break; + } case MI_INT8: values.push(view.getInt8(off + i)); break; @@ -134,6 +144,111 @@ function readNumericArray(view, sub, count) { } return values; } +/** + * A single as the decimal MATLAB spells it with, measured (R2027a): C's `%.6g` where that is + * the same float32, and otherwise `%.9g`, which always is — or `%.10g` for realmax('single'), + * whose `%.9g` is past it. Six is FLT_DIG, the digits every float32 holds, and nine + * FLT_DECIMAL_DIG, the digits that name any one; MATLAB writes a double by the same rule at + * fifteen and seventeen (a binary dictionary holds 1/3 as 0.33333333333333331). + * + * getFloat32 hands back the double of the same value, and every number here prints as the + * shortest text of its DOUBLE: single(3.3) is the double 3.299999952316284, and showed so, + * where both dictionaries hold MATLAB's own text for the same value, `3.3` (the corpus + * twins param_vars.mat / param_json.sldd, P30_TypeMaxUnitDesc; DESIGN.md recorded the + * difference as a limitation). It is not "the shortest decimal that is the same float32": + * MATLAB writes single(1/3) as 0.333333343, where 0.33333334 would do, and the smallest + * subnormal as 1.4013e-45, where 1e-45 would. make_typed_fixtures.m's sSingleSweep, 4,082 + * float32 bit patterns from the smallest subnormal to realmax, holds MATLAB's text for each + * in a text dictionary (its binary format writes the same digits, measured), and this rule + * gives every one, where the shortest would differ on 3,520 (typedMcosFixtures.test.ts). It + * also gives every one of the 127,743 non-zero singles a customer text dictionary in the + * corpus holds. + * + * Lossless: the number is the same float32, so MatWriter's setFloat32 writes back the bits + * that were read, and a text dictionary's `0.333333343F` names them too. An infinity, a NaN + * and either zero are themselves. + */ +function singleDigits(x) { + if (!Number.isFinite(x) || x === 0) { + return x; + } + const ax = Math.abs(x); + let six = roundedDigits(ax, 6); + if (Number.isNaN(six)) { + six = Math.abs(Number(x.toPrecision(6))); + } + if (Math.fround(six) === ax) { + return x < 0 ? -six : six; + } + const nine = roundedDigits(ax, 9); + if (!Number.isNaN(nine)) { + return x < 0 ? -nine : nine; + } + const text = toPrecisionHalfEven(x, 9); + return Math.abs(text) > FLT_MAX ? toPrecisionHalfEven(x, 10) : text; +} +// The largest finite single, realmax('single'). +const FLT_MAX = 3.4028234663852886e38; +const POWERS_OF_TEN = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12]; +/** + * The positive single `ax` to `p` significant digits, an exact tie to the even digit, by + * arithmetic that is exact: `ax * 10^j` is, for a float32 and 0 <= j <= 12 (24 bits of + * mantissa by at most 28 of 5^12 fit a double's 53), so it is rounded as the exact value is, + * and `n / 10^j` is the double nearest that decimal. NaN where `j` would fall outside that + * range — a single of 1e9 or more, or under 1e-4 for nine digits and 1e-7 for six — which + * toPrecisionHalfEven reads instead. The same numbers (every 31st float32 bit pattern, both + * signs, compared), in a fifth of the time: singleDigits runs once per element, and a million + * singles took 400 ms by toPrecision alone and take 75 ms so, against 8 ms for the bare read. + */ +function roundedDigits(ax, p) { + let j = p - 1 - Math.floor(Math.log10(ax)); + if (j < 0 || j > 12) { + return NaN; + } + let y = ax * POWERS_OF_TEN[j]; + // log10 can land a hair either side of an exponent: then `y` has a digit too many or too + // few, and the scale moves one place. + if (y >= POWERS_OF_TEN[p]) { + if (j === 0) { + return NaN; + } + y = ax * POWERS_OF_TEN[--j]; + } + else if (y < POWERS_OF_TEN[p - 1]) { + if (j === 12) { + return NaN; + } + y = ax * POWERS_OF_TEN[++j]; + } + const whole = Math.floor(y); + const rest = y - whole; + const n = rest > 0.5 || (rest === 0.5 && whole % 2 === 1) ? whole + 1 : whole; + return n / POWERS_OF_TEN[j]; +} +/** + * `x` to `p` significant digits as C's printf rounds it: to the nearer, and an exact tie to + * the EVEN digit. toPrecision takes the one farther from zero at a tie, so single(1000000.125) + * came out 1000000.13 where MATLAB writes 1000000.12 (typed_mcos.sldd's sSingleTies). Only a + * value of exactly `p + 1` significant digits, the last a 5, is a tie; toPrecision's own text + * of it at `p + 1` digits is then that 5, which is what is looked for before the exact digits + * are. + */ +function toPrecisionHalfEven(x, p) { + const away = x.toPrecision(p); + if (!/5(?:e|$)/.test(x.toPrecision(p + 1))) { + return Number(away); + } + // Every significant digit of `x` up to a hundred, which a tie at ten has all of. + const digits = x.toPrecision(100).replace(/e.*$/, '').replace(/[-.]/g, '').replace(/^0+/, ''); + if (digits[p] !== '5' || !/^0*$/.test(digits.slice(p + 1))) { + return Number(away); + } + // An exact tie, which goes to the even neighbour: the one nearer zero, `x` cut to `p` + // digits, when the last of those is even, and `away` when it is odd. The nearer one is + // read off a number just inside the tie: 2^-45 of `x` moves a double, and is far less + // than half a unit in a tenth digit. + return Number(digits[p - 1]) % 2 === 0 ? Number((x * (1 - 2 ** -45)).toPrecision(p)) : Number(away); +} // Why the numeric part whose tag is at `at` holds none of the `count` elements its array // declares, or null when it holds what its bytes do. Either its tag is cut short by the end of // the bytes, which readSubelement reports as a tag of type 0, or its type has no width: in both @@ -325,7 +440,9 @@ export function structElementsHeld(v) { // outside the declared rows is dropped, rows repeated within a column keep the LAST value // (as the dense scatter this replaced had it), rows out of order are sorted, and a stored // zero is not a non-zero. -function readSparse(view, offset, end, dimensions, isComplex, nzmax) { +// `single` is whether the array is of class single, whose non-zeros are read as a full +// single array's are (readNumericArray). +function readSparse(view, offset, end, dimensions, isComplex, nzmax, single) { const rows = Math.max(0, dimensions[0] || 0); const cols = Math.max(0, dimensions[1] || 0); // Each of the four reads is guarded by the END OF THIS ELEMENT, the same way the @@ -362,13 +479,13 @@ function readSparse(view, offset, end, dimensions, isComplex, nzmax) { if (offset < end) { const prSub = readSubelement(view, offset); offset += prSub.totalSize; - pr = readNumericArray(view, prSub, nnz); + pr = readNumericArray(view, prSub, nnz, single); } let pi = []; if (isComplex && offset < end) { const piSub = readSubelement(view, offset); offset += piSub.totalSize; - pi = readNumericArray(view, piSub, nnz); + pi = readNumericArray(view, piSub, nnz, single); } // At most nnz entries, which ir's own bytes bound. const rowOut = new Int32Array(nnz); @@ -795,7 +912,7 @@ export function parseMatrix(view, baseOffset, length, depth = 0) { // read: a host that renders values without knowing about `sparse` still shows // something true. A 1x1 is not unwrapped to a scalar: it has no list to unwrap. const nzmax = flagsSub.bytes >= 8 ? view.getUint32(flagsSub.dataOffset + 4, true) : 0; - result.sparse = offset < end ? readSparse(view, offset, end, dimensions, isComplex, nzmax) : emptySparse(isComplex, 0); + result.sparse = offset < end ? readSparse(view, offset, end, dimensions, isComplex, nzmax, arrayClass === MX_SINGLE_CLASS) : emptySparse(isComplex, 0); result.value = sparseValue(dimensions, className); } else if (arrayClass >= 6 && arrayClass <= 15) { @@ -814,10 +931,10 @@ export function parseMatrix(view, baseOffset, length, depth = 0) { result.undecoded = unread; return result; } - const realValues = readNumericArray(view, realSub, totalElements); + const realValues = readNumericArray(view, realSub, totalElements, arrayClass === MX_SINGLE_CLASS); if (imagSub) { offset += imagSub.totalSize; - const imagValues = readNumericArray(view, imagSub, totalElements); + const imagValues = readNumericArray(view, imagSub, totalElements, arrayClass === MX_SINGLE_CLASS); const colMajor = realValues.map((r, i) => ({ re: r, im: imagValues[i] })); result.value = transposeFromColMajor(colMajor, dimensions); } diff --git a/dist/datamodel/parser/MatParser.js.map b/dist/datamodel/parser/MatParser.js.map index 7f0cb86f..41c11718 100644 --- a/dist/datamodel/parser/MatParser.js.map +++ b/dist/datamodel/parser/MatParser.js.map @@ -1 +1 @@ -{"version":3,"file":"MatParser.js","sourceRoot":"","sources":["../../../src/datamodel/parser/MatParser.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"MatParser.js","sourceRoot":"","sources":["../../../src/datamodel/parser/MatParser.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/datamodel/parser/McosParser.d.ts.map b/dist/datamodel/parser/McosParser.d.ts.map index ad3562dc..85fdb42b 100644 --- a/dist/datamodel/parser/McosParser.d.ts.map +++ b/dist/datamodel/parser/McosParser.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"McosParser.d.ts","sourceRoot":"","sources":["../../../src/datamodel/parser/McosParser.ts"],"names":[],"mappings":"AAEA,OAAO,EAML,WAAW,EACZ,MAAM,gBAAgB,CAAC;AA+DxB,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IAOvB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAGpC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACpC,UAAU,EAAE,MAAM,EAAE,CAAC;IAErB,KAAK,EAAE,OAAO,CAAC;IAKf,cAAc,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;IAG1C,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAqDD;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAUD,eAAO,MAAM,aAAa,oBAAoB,CAAC;AAK/C,eAAO,MAAM,iBAAiB,WAAW,CAAC;AA0N1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAwB3F;AAokBD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;CAC9B;AAKD,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,GAAG,YAAY,GAAG,WAAW,CAAC,CAAC;AAenG,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,eAAe,EAC3D,YAAY,EAAE,UAAU,EACxB,SAAS,EAAE,SAAS,CAAC,EAAE,EACvB,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,eAAe,CAAC,GAC/B,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,CAuHxB;AAKD,wBAAgB,cAAc,CAAC,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAShH"} \ No newline at end of file +{"version":3,"file":"McosParser.d.ts","sourceRoot":"","sources":["../../../src/datamodel/parser/McosParser.ts"],"names":[],"mappings":"AAEA,OAAO,EAML,WAAW,EACZ,MAAM,gBAAgB,CAAC;AAiExB,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IASvB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAGpC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACpC,UAAU,EAAE,MAAM,EAAE,CAAC;IAErB,KAAK,EAAE,OAAO,CAAC;IAKf,cAAc,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;IAG1C,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAqDD;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAUD,eAAO,MAAM,aAAa,oBAAoB,CAAC;AAK/C,eAAO,MAAM,iBAAiB,WAAW,CAAC;AAsO1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAwB3F;AA+oBD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;CAC9B;AAKD,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,GAAG,YAAY,GAAG,WAAW,CAAC,CAAC;AAenG,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,eAAe,EAC3D,YAAY,EAAE,UAAU,EACxB,SAAS,EAAE,SAAS,CAAC,EAAE,EACvB,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,eAAe,CAAC,GAC/B,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,CAuHxB;AAKD,wBAAgB,cAAc,CAAC,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAShH"} \ No newline at end of file diff --git a/dist/datamodel/parser/McosParser.js b/dist/datamodel/parser/McosParser.js index a3f23afc..52c6fff8 100644 --- a/dist/datamodel/parser/McosParser.js +++ b/dist/datamodel/parser/McosParser.js @@ -4,7 +4,8 @@ import { isObjectHandle, objectHandleFromRaw, objectHandleFromValue } from './Mc import { matStreamOfElement } from './MatWriter.js'; import { uuencode } from './CdataCodec.js'; import { setOwn } from './ownKeys.js'; -import { complexClassTag, ENUM_KEY, ENUMERATION_KEY, formatComplexNum, formatMatlabNum, formatMatrixSerial, isExactToken, transposeToColumnMajorND, } from './XmlUtils.js'; +import { arrayClassOf, componentsBaseOf } from './objectArrayClass.js'; +import { complexClassTag, ENUM_KEY, ENUMERATION_KEY, formatComplexNum, formatMatlabNum, formatMatrixSerial, formatNumLiteral, isExactToken, transposeToColumnMajorND, } from './XmlUtils.js'; const MI_MATRIX = 14; const MAX_RECURSION_DEPTH = 32; // A MATLAB `string`-typed value is stored as its own MCOS object whose text lives in @@ -205,9 +206,20 @@ function parseMetaTable(cells) { // joined by newlines, the form MATLAB reads as an empty [] — so a Simulink.Parameter's // matrix Value copied out of a .mat, a workspace or a binary dictionary's hex into a text // dictionary came back empty. Inf and NaN are spelled as MATLAB spells them. -function buildMatrixValue(dims, elements) { - return { _type: 'double', _value: formatMatrixSerial(elements, dims, 'double') }; +// +// Of the array's own class (C-033): `double` for a double, and for any other numeric class +// the class itself, as BinarySlddParser.formatMatrix gives a binary dictionary's matrix of +// that class. A 1xN row of such a class takes formatMatrixSerial's bare `[a, b, c]`, which +// is BinarySlddParser.formatTypedVector's spelling of it. +function buildMatrixValue(dims, elements, cls = 'double') { + return { _type: cls, _value: formatMatrixSerial(elements, dims, cls) }; } +// The real numeric classes other than double, each of which a binary dictionary's reader +// hands the node layer typed (BinarySlddParser.formatTypedScalar, formatTypedVector, +// formatMatrix) and this decoder used to hand over bare, which the node layer reads as a +// double (MatlabVariableNode.parseFlatArray serves a text dictionary's bare JSON list too, +// where double is right, so the class cannot be recovered there). +const NON_DOUBLE_NUMERIC = new Set(['single', 'int8', 'uint8', 'int16', 'uint16', 'int32', 'uint32', 'int64', 'uint64']); const isComplexPair = (x) => x !== null && typeof x === 'object' && 're' in x && 'im' in x; /** * A complex numeric property in the form a compressed-binary dictionary gives the same @@ -275,7 +287,12 @@ const isFinitePart = (x) => typeof x !== 'number' || Number.isFinite(x); // data model expects. Object handles recurse into nested { _object_class, // _properties }; structs and cells recurse into { _array_type: 'Struct'|'Cell', … }. // Unresolvable values return undefined (dropped). -function resolveValue(cell, ctx, path, depth) { +// +// `owner` and `propName` are the class of the object whose property this is and the +// property's name, where the value is a property's (buildProperties): the place an object +// array sits can name its class (componentsBaseOf). A struct's field and a cell's element +// pass neither, as the binary reader names no place for them either. +function resolveValue(cell, ctx, path, depth, owner, propName) { if (!cell) return undefined; if (isObjectHandle(cell)) { @@ -290,7 +307,23 @@ function resolveValue(cell, ctx, path, depth) { // BusElements): expand EVERY id into its own element, producing the same // value-object array shape the SLDD path emits so the data model builds one // child node per element instead of dropping all but the first. - const cls = ctx.meta.classes[ctx.meta.objects[handle.ids[0]]?.classId]; + // + // The array is under the class MATLAB's text format names it by, and each element + // of another class carries its own `_object_class`, as the binary reader reads one: + // both readers use objectArrayClass.ts. This used to read the first element's class + // for the whole array and give no element a class of its own. So a config set's + // Components in a .mat read as a Simulink.SolverCC array of nine SolverCCs, and a + // copy of the config set wrote every component as one. A dexdata.DerivedSignal + // beside a Simulink.Signal read as two DerivedSignals, where MATLAB says a + // Simulink.Signal array of the two (test/fixtures/mcos/configset.mat). + // + // A later element whose object names no class row is one of the first element's + // class, as the binary reader reads a classless later element: in the class the + // array is named by, and as the class it is marked with. Where the first names none + // either, the array has no class, as before. + const own = handle.ids.map((id) => ctx.meta.classes[ctx.meta.objects[id]?.classId]?.fullName ?? ''); + const classes = own.map((c) => c || own[0]); + const arrayClass = componentsBaseOf(owner, propName) ?? (classes[0] ? arrayClassOf(classes) : ''); // Every extent, as at the root-variable site below: a property holding a 2x3x2 // object array (ndNested.mat's h.Kids) reported [2, 3] over twelve elements, so // the container printed a shape MATLAB never had and the element subscripts ran @@ -298,11 +331,14 @@ function resolveValue(cell, ctx, path, depth) { // holds, which is why nothing here noticed. const dims = handle.dims.length >= 2 ? handle.dims.slice() : [1, handle.ids.length]; return { - _array_class: cls ? cls.fullName : '', + _array_class: arrayClass, _array_type: 'MATLABArray', _dimensions: dims, _mw_element_type: 'MATLABArray', - _elements: handle.ids.map((id) => ({ _properties: buildProperties(id, ctx, path, depth + 1) })), + _elements: handle.ids.map((id, k) => ({ + ...(classes[k] && classes[k] !== arrayClass ? { _object_class: classes[k] } : {}), + _properties: buildProperties(id, ctx, path, depth + 1), + })), }; } const cls = cell.className; @@ -326,7 +362,7 @@ function resolveValue(cell, ctx, path, depth) { if (cls === 'cell') { const elems = Array.isArray(val) ? val : []; const resolved = elems.map((e) => resolveValue(e, ctx, path, depth)); - const handle = functionHandleText(resolved); + const handle = functionHandleText(elems[0] ?? null, resolved); if (handle !== null) { return { _type: 'function_handle', _value: handle }; } @@ -365,18 +401,26 @@ function resolveValue(cell, ctx, path, depth) { } if (cell.isLogical) { if (Array.isArray(val)) { - // A logical MATRIX states its shape, in the typed literal BinarySlddParser reads a - // binary dictionary's own logical matrix into (logicalValue): a bare list of + // In the typed literal BinarySlddParser reads a binary dictionary's own logical array + // into (logicalValue), at every shape. A MATRIX states its shape: a bare list of // booleans is a row, so a 2x2 logical Value came back a 1x4 — MATLAB's // sparse([2;1], [1;2], [true;true], 2, 2) in a Simulink.Parameter showed // `[false true true false]`, where the text dictionary's twin of it showed // `[false true; true false]`. A rank-2 COLUMN states its shape for the same reason - // (an Nx1 came back 1xN); a row is still the bare list it always was. + // (an Nx1 came back 1xN). And a ROW states its class (C-033): the node layer reads a + // bare list of booleans as a DOUBLE row, so a logical([1 0 1]) Value showed class + // double, where both dictionaries show logical. formatMatrixSerial spells a 1xN + // logical `[1, 0, 1]`, as typed_binary.sldd's lglVec is held. + // + // An EMPTY logical is the `[]` it was before C-033 (a double 0x0: DESIGN.md records it), + // except where it was typed then too, which is wherever its shape alone says so: at rank + // 3 or more, a 2x0x2 is `Matrix(2,0,2)` and shows as a <2x0x2 logical> + // (mcosEmptyLogical.test.ts). const dims = cell.dimensions && cell.dimensions.length >= 2 ? cell.dimensions : [1, val.length]; - if (dims.length > 2 || (dims[0] > 1 && dims[1] > 1) || (dims.length === 2 && dims[0] > 1 && dims[1] === 1)) { - return { _type: 'logical', _value: formatMatrixSerial(val.map((x) => (x ? '1' : '0')), dims, 'logical') }; - } - return val.map((x) => !!x); + const shaped = dims.length > 2 || (dims[0] > 1 && dims[1] > 1) || (dims.length === 2 && dims[0] > 1 && dims[1] === 1); + if (val.length === 0 && !shaped) + return []; + return { _type: 'logical', _value: formatMatrixSerial(val.map((x) => (x ? '1' : '0')), dims, 'logical') }; } return !!val; } @@ -384,15 +428,27 @@ function resolveValue(cell, ctx, path, depth) { // double cannot hold arrives as its own decimal TEXT (MatParser via XmlUtils.exactInt), // so a scalar one is a string here — accepting only `typeof 'number'` would drop such a // property out of the object entirely rather than merely rounding it. + // + // A class other than double keeps its class (C-033), in the binary dictionary's typed + // spelling of the same value: a Simulink.Parameter whose Value is int8(-42) is + // `{_type: 'int8', _value: '-42'}`, as BinarySlddParser.formatTypedScalar gives it, and + // not the bare -42, which the node layer reads as a double. A double is bare, as it was. + const typed = NON_DOUBLE_NUMERIC.has(cls) ? cls : null; if (typeof val === 'number' || isExactToken(val)) { - return val; + return typed ? { _type: typed, _value: formatNumLiteral(val, typed) } : val; } if (Array.isArray(val)) { if (val.length === 0) return []; const dims = cell.dimensions || [1, val.length]; + // Of a class other than double, every shape is typed, a row as + // BinarySlddParser.formatTypedVector spells one (formatMatrixSerial's bare `[a, b]`) + // and anything else in the Matrix() literal of that class. + if (typed) { + return buildMatrixValue(dims, val, typed); + } // A rank-2 column goes out typed as well: a bare list is a row, so a Value of - // [10; 20; 30] showed, and copied out, as [10 20 30]. A row stays bare. + // [10; 20; 30] showed, and copied out, as [10 20 30]. A double row stays bare. if (dims.length >= 2 && dims[0] > 1 && (dims[1] > 1 || (dims.length === 2 && dims[1] === 1))) { return buildMatrixValue(dims, val); } @@ -400,6 +456,17 @@ function resolveValue(cell, ctx, path, depth) { } return undefined; } +// The number a non-double numeric SCALAR stands for, as text, when `v` is resolveValue's +// typed spelling of one (`{_type: 'int32', _value: '2'}`, `'2U'`, `'3.3F'`), or null. +function typedScalarText(v) { + if (v === null || typeof v !== 'object' || Array.isArray(v)) + return null; + const { _type: type, _value: text } = v; + if (typeof type !== 'string' || !NON_DOUBLE_NUMERIC.has(type) || typeof text !== 'string' || /^(\[|Matrix\()/.test(text)) { + return null; + } + return text.replace(/[FU]$/, ''); +} // The tag MATLAB writes at the head of an enumeration instance struct (MatParser.enumerationInstanceOf). const ENUMERATION_INSTANCE_TAG = 0xdd000000; /** @@ -454,6 +521,12 @@ function enumerationValue(instance, ctx, className) { if (m && (typeof v === 'number' || typeof v === 'boolean' || isExactToken(v))) { return { name: names[k], type: m[1], value: typeof v === 'boolean' ? (v ? '1' : '0') : typeof v === 'number' ? formatMatlabNum(v) : v }; } + // The `int32.Data` of an enumeration derived from int32 (Simulink.IntEnumType): its + // number, which resolveValue spells typed, as every non-double numeric (C-033). + const typedText = m ? typedScalarText(v) : null; + if (m && typedText !== null) { + return { name: names[k], type: m[1], value: typedText }; + } } return { name: names[k], value: '' }; }); @@ -503,9 +576,14 @@ const FUNCTION_HANDLE_MARKER = 0xdd000000; * text one and a .mat). Shown as it stood, it read `@sf%0@(y)y*2`. The prefix goes, and * the `@` that opens the anonymous function's own text stays; nothing else is rewritten * (MatParser.functionHandleText, which a .mat's own function handle is read with too). + * + * The marker is read off the cell's own first element (`marker`), not off what it resolves + * to: the word is a uint32, which resolves to its typed spelling, `{_type: 'uint32', _value: + * '3707764736U'}` (C-033). A number of any class whose value is the word is the marker, as it + * was when this compared the resolved number. */ -function functionHandleText(elements) { - if (elements.length !== 2 || elements[0] !== FUNCTION_HANDLE_MARKER) { +function functionHandleText(marker, elements) { + if (elements.length !== 2 || !marker || marker.isLogical || marker.value !== FUNCTION_HANDLE_MARKER) { return null; } const outer = elements[1]; @@ -572,11 +650,14 @@ function buildProperties(objId, ctx, path, depth) { // 1) Class defaults FIRST, so every property this class declares surfaces by name // (and value) even when the instance left it at its default and the instance // block omits it. Then the instance block overrides those it mutated. + // The class whose properties these are: an object array's place is named by it + // (resolveValue's `owner`). + const owner = ctx.meta.classes[obj.classId]?.fullName; const dflt = ctx.defaults[obj.classId]; if (dflt && dflt.className === 'struct' && dflt.fields) { for (const [fieldName, fieldVar] of Object.entries(dflt.fields)) { const fv = Array.isArray(fieldVar) ? fieldVar[0] : fieldVar; - const resolved = resolveValue(fv, ctx, path, depth); + const resolved = resolveValue(fv, ctx, path, depth, owner, fieldName); if (resolved !== undefined) { setOwn(props, fieldName, resolved); } @@ -596,7 +677,7 @@ function buildProperties(objId, ctx, path, depth) { continue; let resolved; if (flag === 1) { - resolved = resolveValue(ctx.cells[value + 2] || null, ctx, path, depth); + resolved = resolveValue(ctx.cells[value + 2] || null, ctx, path, depth, owner, name); } else if (flag === 0) { // An index past the string table names no string: drop the property, as an diff --git a/dist/datamodel/parser/McosParser.js.map b/dist/datamodel/parser/McosParser.js.map index 2295b4f6..e7fada3a 100644 --- a/dist/datamodel/parser/McosParser.js.map +++ b/dist/datamodel/parser/McosParser.js.map @@ -1 +1 @@ -{"version":3,"file":"McosParser.js","sourceRoot":"","sources":["../../../src/datamodel/parser/McosParser.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"McosParser.js","sourceRoot":"","sources":["../../../src/datamodel/parser/McosParser.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/datamodel/parser/objectArrayClass.d.ts b/dist/datamodel/parser/objectArrayClass.d.ts new file mode 100644 index 00000000..61ccbd51 --- /dev/null +++ b/dist/datamodel/parser/objectArrayClass.d.ts @@ -0,0 +1,51 @@ +/** + * The class an object array of elements of `classes` is, as MATLAB's text format names it in + * `_array_class`: the class every element shares; for elements of several classes, the common + * base class where it can be derived (heterogeneousBaseOf); and otherwise the first element's, + * which is what each reader named every such array before it kept the elements' own. A config + * set's Components does not come here: its place names its class (componentsBaseOf). + * + * The first element's class is still what an array of no derivable base reads as: of the 71 + * mixed arrays the binary dictionaries of the test fixtures, the parity artifacts and the local + * corpus hold, one, a simmechanics.ConfigurationSet's Components of two simmechanics classes. + */ +export declare function arrayClassOf(classes: string[]): string; +/** + * The common base class of an array mixing `classes`, where the readers can derive one, or + * undefined. + * + * Neither a binary dictionary nor an MCOS blob states it: a binary dictionary's `
` carries no Class, an MCOS object array is a list of + * object ids, and in both each element names only its own. A text dictionary does, and two + * rules give the base it names from the classes alone: + * - Simulink.ConfigComponent, for an array whose classes each belong to CONFIG_COMPONENTS: every + * Components array of a Simulink.ConfigSet and of a Simulink.RTWCC that MATLAB wrote into a + * text dictionary is `_array_class` Simulink.ConfigComponent (30 of 30, in five + * dictionaries), over classes each listed there. + * - The one known MathWorks class (isMathWorksClass) of an array mixing it with classes that are + * not: a user's class can derive from a MathWorks class and a MathWorks class never from a + * user's, so the MathWorks class is the base the user classes extend. A text dictionary MATLAB + * wrote names a Simulink.Signal subclass beside a Simulink.Signal `{"_array_class": + * "Simulink.Signal", …}`, and the binary reader read the binary twin of that array, in two + * dictionaries, as the subclass, the first element's class. MATLAB's class() of a + * dexdata.DerivedSignal beside a Simulink.Signal, read out of a .mat, is Simulink.Signal + * (test/fixtures/mcos/configset.truth.json). + * Of two MathWorks classes or more beside other classes, or of none, it names no base. + */ +export declare function heterogeneousBaseOf(classes: string[]): string | undefined; +/** + * The class the place of a property named `name` of an object of `ownerClass` names for an + * object array there, or undefined where it names none: Simulink.ConfigComponent, for the + * Components of a Simulink.ConfigSet or a Simulink.RTWCC, whatever components it holds. + * + * Every such array MATLAB wrote into a text dictionary is `_array_class` + * Simulink.ConfigComponent (30 of 30, in five dictionaries), and MATLAB's class() of one read + * out of a .mat is the same (test/fixtures/mcos/configset.truth.json). A binary dictionary and + * an MCOS blob name no base for it, and a binary dictionary can hold components no text + * dictionary has shown, so that CONFIG_COMPONENTS does not list them: a + * CoderTarget.SettingsController, in seven config sets of a corpus dictionary, and an + * SSC.SimscapeCC, in one of another. Those arrays used to read under their first component's + * class, a Simulink.SolverCC. + */ +export declare function componentsBaseOf(ownerClass: string | undefined, name: string | undefined): string | undefined; +//# sourceMappingURL=objectArrayClass.d.ts.map \ No newline at end of file diff --git a/dist/datamodel/parser/objectArrayClass.d.ts.map b/dist/datamodel/parser/objectArrayClass.d.ts.map new file mode 100644 index 00000000..3c4c3a12 --- /dev/null +++ b/dist/datamodel/parser/objectArrayClass.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"objectArrayClass.d.ts","sourceRoot":"","sources":["../../../src/datamodel/parser/objectArrayClass.ts"],"names":[],"mappings":"AAWA;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAKtD;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAMzE;AAmBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAE7G"} \ No newline at end of file diff --git a/dist/datamodel/parser/objectArrayClass.js b/dist/datamodel/parser/objectArrayClass.js new file mode 100644 index 00000000..cdcebb9c --- /dev/null +++ b/dist/datamodel/parser/objectArrayClass.js @@ -0,0 +1,107 @@ +// Copyright 2026 The MathWorks, Inc. +// The class of an object array whose elements are of more than one class, as MATLAB's text +// format names it, for the readers whose format does not state it: a binary dictionary +// (BinarySlddParser), and a .mat or a model workspace's MCOS blob (McosParser). Both used to +// name such an array after its first element; one rule here keeps the two from drifting +// apart again. +// +// Each element of another class than the array's keeps its own, as `_object_class`; that is +// the readers' half. This is the class the array itself is, `_array_class`. +/** + * The class an object array of elements of `classes` is, as MATLAB's text format names it in + * `_array_class`: the class every element shares; for elements of several classes, the common + * base class where it can be derived (heterogeneousBaseOf); and otherwise the first element's, + * which is what each reader named every such array before it kept the elements' own. A config + * set's Components does not come here: its place names its class (componentsBaseOf). + * + * The first element's class is still what an array of no derivable base reads as: of the 71 + * mixed arrays the binary dictionaries of the test fixtures, the parity artifacts and the local + * corpus hold, one, a simmechanics.ConfigurationSet's Components of two simmechanics classes. + */ +export function arrayClassOf(classes) { + if (classes.every((c) => c === classes[0])) { + return classes[0]; + } + return heterogeneousBaseOf(classes) ?? classes[0]; +} +/** + * The common base class of an array mixing `classes`, where the readers can derive one, or + * undefined. + * + * Neither a binary dictionary nor an MCOS blob states it: a binary dictionary's `
` carries no Class, an MCOS object array is a list of
+ * object ids, and in both each element names only its own. A text dictionary does, and two
+ * rules give the base it names from the classes alone:
+ * - Simulink.ConfigComponent, for an array whose classes each belong to CONFIG_COMPONENTS: every
+ * Components array of a Simulink.ConfigSet and of a Simulink.RTWCC that MATLAB wrote into a
+ * text dictionary is `_array_class` Simulink.ConfigComponent (30 of 30, in five
+ * dictionaries), over classes each listed there.
+ * - The one known MathWorks class (isMathWorksClass) of an array mixing it with classes that are
+ * not: a user's class can derive from a MathWorks class and a MathWorks class never from a
+ * user's, so the MathWorks class is the base the user classes extend. A text dictionary MATLAB
+ * wrote names a Simulink.Signal subclass beside a Simulink.Signal `{"_array_class":
+ * "Simulink.Signal", …}`, and the binary reader read the binary twin of that array, in two
+ * dictionaries, as the subclass, the first element's class. MATLAB's class() of a
+ * dexdata.DerivedSignal beside a Simulink.Signal, read out of a .mat, is Simulink.Signal
+ * (test/fixtures/mcos/configset.truth.json).
+ * Of two MathWorks classes or more beside other classes, or of none, it names no base.
+ */
+export function heterogeneousBaseOf(classes) {
+ if (classes.every((c) => c === CONFIG_COMPONENT || CONFIG_COMPONENTS.has(c))) {
+ return CONFIG_COMPONENT;
+ }
+ const known = new Set(classes.filter(isMathWorksClass));
+ return known.size === 1 ? [...known][0] : undefined;
+}
+/**
+ * Whether `cls` is a known MathWorks class: a class of a package whose classes this package
+ * already names as MathWorks' (MATHWORKS_PACKAGES). Simulink and mpt are the packages of every
+ * class the node registry, the schema and the Kind column name (NodeClassMap, schema/index,
+ * kindMap), and the two the test suite tells MATLAB's own objects from custom ones by; SlCovCC,
+ * Sldv and hdlcoderui are the packages of the config components CONFIG_COMPONENTS names. A class
+ * of any other package, MathWorks' or not (CoderTarget, SSC, simmechanics, AUTOSAR among them),
+ * is not known here, and counts as one that is not MathWorks' (heterogeneousBaseOf).
+ */
+function isMathWorksClass(cls) {
+ const dot = cls.indexOf('.');
+ return dot > 0 && MATHWORKS_PACKAGES.has(cls.slice(0, dot));
+}
+/** The packages of the known MathWorks classes (isMathWorksClass). */
+const MATHWORKS_PACKAGES = new Set(['Simulink', 'mpt', 'SlCovCC', 'Sldv', 'hdlcoderui']);
+/**
+ * The class the place of a property named `name` of an object of `ownerClass` names for an
+ * object array there, or undefined where it names none: Simulink.ConfigComponent, for the
+ * Components of a Simulink.ConfigSet or a Simulink.RTWCC, whatever components it holds.
+ *
+ * Every such array MATLAB wrote into a text dictionary is `_array_class`
+ * Simulink.ConfigComponent (30 of 30, in five dictionaries), and MATLAB's class() of one read
+ * out of a .mat is the same (test/fixtures/mcos/configset.truth.json). A binary dictionary and
+ * an MCOS blob name no base for it, and a binary dictionary can hold components no text
+ * dictionary has shown, so that CONFIG_COMPONENTS does not list them: a
+ * CoderTarget.SettingsController, in seven config sets of a corpus dictionary, and an
+ * SSC.SimscapeCC, in one of another. Those arrays used to read under their first component's
+ * class, a Simulink.SolverCC.
+ */
+export function componentsBaseOf(ownerClass, name) {
+ return name === 'Components' && (ownerClass === 'Simulink.ConfigSet' || ownerClass === 'Simulink.RTWCC') ? CONFIG_COMPONENT : undefined;
+}
+const CONFIG_COMPONENT = 'Simulink.ConfigComponent';
+/** Each class MATLAB's text format lists as an element of a Simulink.ConfigComponent array (see heterogeneousBaseOf). */
+const CONFIG_COMPONENTS = new Set([
+ 'Simulink.SolverCC',
+ 'Simulink.DataIOCC',
+ 'Simulink.OptimizationCC',
+ 'Simulink.DebuggingCC',
+ 'Simulink.HardwareCC',
+ 'Simulink.ModelReferenceCC',
+ 'Simulink.SFSimCC',
+ 'Simulink.RTWCC',
+ 'Simulink.CodeAppCC',
+ 'Simulink.GRTTargetCC',
+ 'Simulink.ERTTargetCC',
+ 'Simulink.STFCustomTargetCC',
+ 'SlCovCC.ConfigComp',
+ 'Sldv.ConfigComp',
+ 'hdlcoderui.hdlcc',
+]);
+//# sourceMappingURL=objectArrayClass.js.map
\ No newline at end of file
diff --git a/dist/datamodel/parser/objectArrayClass.js.map b/dist/datamodel/parser/objectArrayClass.js.map
new file mode 100644
index 00000000..b2ef3a98
--- /dev/null
+++ b/dist/datamodel/parser/objectArrayClass.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"objectArrayClass.js","sourceRoot":"","sources":["../../../src/datamodel/parser/objectArrayClass.ts"],"names":[],"mappings":"AAAA,qCAAqC;AAErC,2FAA2F;AAC3F,uFAAuF;AACvF,6FAA6F;AAC7F,wFAAwF;AACxF,eAAe;AACf,EAAE;AACF,4FAA4F;AAC5F,4EAA4E;AAE5E;;;;;;;;;;GAUG;AACH,MAAM,UAAU,YAAY,CAAC,OAAiB;IAC5C,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IACD,OAAO,mBAAmB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAiB;IACnD,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,gBAAgB,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACxD,OAAO,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACtD,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,gBAAgB,CAAC,GAAW;IACnC,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7B,OAAO,GAAG,GAAG,CAAC,IAAI,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,sEAAsE;AACtE,MAAM,kBAAkB,GAAwB,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;AAE9G;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,gBAAgB,CAAC,UAA8B,EAAE,IAAwB;IACvF,OAAO,IAAI,KAAK,YAAY,IAAI,CAAC,UAAU,KAAK,oBAAoB,IAAI,UAAU,KAAK,gBAAgB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1I,CAAC;AAED,MAAM,gBAAgB,GAAG,0BAA0B,CAAC;AAEpD,yHAAyH;AACzH,MAAM,iBAAiB,GAAwB,IAAI,GAAG,CAAC;IACrD,mBAAmB;IACnB,mBAAmB;IACnB,yBAAyB;IACzB,sBAAsB;IACtB,qBAAqB;IACrB,2BAA2B;IAC3B,kBAAkB;IAClB,gBAAgB;IAChB,oBAAoB;IACpB,sBAAsB;IACtB,sBAAsB;IACtB,4BAA4B;IAC5B,oBAAoB;IACpB,iBAAiB;IACjB,kBAAkB;CACnB,CAAC,CAAC"}
\ No newline at end of file
diff --git a/src/datamodel/parser/BinarySlddParser.ts b/src/datamodel/parser/BinarySlddParser.ts
index c1912094..846613d5 100644
--- a/src/datamodel/parser/BinarySlddParser.ts
+++ b/src/datamodel/parser/BinarySlddParser.ts
@@ -74,6 +74,7 @@ import {
type PropertySource,
} from './XmlUtils.js';
import { setOwn } from './ownKeys.js';
+import { arrayClassOf, componentsBaseOf } from './objectArrayClass.js';
import { headerDigits } from './Size.js';
import { recordPackageStamps, recordReadFrame, recordReadSource, type ChunkFrame, type Span } from './EntrySource.js';
@@ -936,7 +937,8 @@ function cellValue(elements: XmlNode[], dimParts: number[]): Record ` carries
- * no Class, and each element names only its own. A text dictionary does, and two rules give the
- * base it names from the classes alone:
- * - Simulink.ConfigComponent, for an array whose classes each belong to CONFIG_COMPONENTS: every
- * Components array of a Simulink.ConfigSet and of a Simulink.RTWCC that MATLAB wrote into a
- * text dictionary is `_array_class` Simulink.ConfigComponent (30 of 30, in five
- * dictionaries), over classes each listed there.
- * - The one known MathWorks class (isMathWorksClass) of an array mixing it with classes that are
- * not: a user's class can derive from a MathWorks class and a MathWorks class never from a
- * user's, so the MathWorks class is the base the user classes extend. A text dictionary MATLAB
- * wrote names a Simulink.Signal subclass beside a Simulink.Signal `{"_array_class":
- * "Simulink.Signal", …}`, and this reader read the binary twin of that array, in two
- * dictionaries, as the subclass, the first element's class.
- * Of two MathWorks classes or more beside other classes, or of none, it names no base.
- */
-function heterogeneousBaseOf(classes: string[]): string | undefined {
- if (classes.every((c) => c === CONFIG_COMPONENT || CONFIG_COMPONENTS.has(c))) {
- return CONFIG_COMPONENT;
- }
- const known = new Set(classes.filter(isMathWorksClass));
- return known.size === 1 ? [...known][0] : undefined;
-}
-
-/**
- * Whether `cls` is a known MathWorks class: a class of a package whose classes this package
- * already names as MathWorks' (MATHWORKS_PACKAGES). Simulink and mpt are the packages of every
- * class the node registry, the schema and the Kind column name (NodeClassMap, schema/index,
- * kindMap), and the two the test suite tells MATLAB's own objects from custom ones by; SlCovCC,
- * Sldv and hdlcoderui are the packages of the config components CONFIG_COMPONENTS names. A class
- * of any other package, MathWorks' or not (CoderTarget, SSC, simmechanics, AUTOSAR among them),
- * is not known here, and counts as one that is not MathWorks' (heterogeneousBaseOf).
- */
-function isMathWorksClass(cls: string): boolean {
- const dot = cls.indexOf('.');
- return dot > 0 && MATHWORKS_PACKAGES.has(cls.slice(0, dot));
-}
-
-/** The packages of the known MathWorks classes (isMathWorksClass). */
-const MATHWORKS_PACKAGES: ReadonlySet ` carries no Class, an MCOS object array is a list of
+ * object ids, and in both each element names only its own. A text dictionary does, and two
+ * rules give the base it names from the classes alone:
+ * - Simulink.ConfigComponent, for an array whose classes each belong to CONFIG_COMPONENTS: every
+ * Components array of a Simulink.ConfigSet and of a Simulink.RTWCC that MATLAB wrote into a
+ * text dictionary is `_array_class` Simulink.ConfigComponent (30 of 30, in five
+ * dictionaries), over classes each listed there.
+ * - The one known MathWorks class (isMathWorksClass) of an array mixing it with classes that are
+ * not: a user's class can derive from a MathWorks class and a MathWorks class never from a
+ * user's, so the MathWorks class is the base the user classes extend. A text dictionary MATLAB
+ * wrote names a Simulink.Signal subclass beside a Simulink.Signal `{"_array_class":
+ * "Simulink.Signal", …}`, and the binary reader read the binary twin of that array, in two
+ * dictionaries, as the subclass, the first element's class. MATLAB's class() of a
+ * dexdata.DerivedSignal beside a Simulink.Signal, read out of a .mat, is Simulink.Signal
+ * (test/fixtures/mcos/configset.truth.json).
+ * Of two MathWorks classes or more beside other classes, or of none, it names no base.
+ */
+export function heterogeneousBaseOf(classes: string[]): string | undefined {
+ if (classes.every((c) => c === CONFIG_COMPONENT || CONFIG_COMPONENTS.has(c))) {
+ return CONFIG_COMPONENT;
+ }
+ const known = new Set(classes.filter(isMathWorksClass));
+ return known.size === 1 ? [...known][0] : undefined;
+}
+
+/**
+ * Whether `cls` is a known MathWorks class: a class of a package whose classes this package
+ * already names as MathWorks' (MATHWORKS_PACKAGES). Simulink and mpt are the packages of every
+ * class the node registry, the schema and the Kind column name (NodeClassMap, schema/index,
+ * kindMap), and the two the test suite tells MATLAB's own objects from custom ones by; SlCovCC,
+ * Sldv and hdlcoderui are the packages of the config components CONFIG_COMPONENTS names. A class
+ * of any other package, MathWorks' or not (CoderTarget, SSC, simmechanics, AUTOSAR among them),
+ * is not known here, and counts as one that is not MathWorks' (heterogeneousBaseOf).
+ */
+function isMathWorksClass(cls: string): boolean {
+ const dot = cls.indexOf('.');
+ return dot > 0 && MATHWORKS_PACKAGES.has(cls.slice(0, dot));
+}
+
+/** The packages of the known MathWorks classes (isMathWorksClass). */
+const MATHWORKS_PACKAGES: ReadonlySet