@joergmittaglawo/dmvconfig
Version:
DMV Configuration scripts for Lawo V__matrix Distributed Multiviewers.
1 lines • 2.65 kB
JavaScript
Object.defineProperty(exports,"__esModule",{value:!0}),exports.keyword_iter=exports.subtree_iter_typewise=exports.subtree_iter=exports.branch_iter=exports.count_keywords=void 0;const e=require("assert"),t=require("./schema_annotated"),s=require("./vsocket");async function a(t){const a=async(s,a)=>{var i,n;if("subtree"===a.data_type)if("table_size"in a)if("allocated"===(null!==(i=t.include)&&void 0!==i?i:"allocated"))for(const e of await t.socket.root.table_rows(s))await r(e,a);else{e.strict("everything"===t.include),e.strict("number"==typeof a.table_size||"string"==typeof a.table_size);const i="number"==typeof a.table_size?a.table_size:null!==(n=t.socket.find_runtime_constant(a.table_size))&&void 0!==n?n:0;for(let e=0;e<i;++e)await r(`${s}[${e}]`,a)}else if("array_size"in a)for(let e=0;e<a.array_size;++e)await r(`${s}[${e}]`,a);else await r(s,a)},r=async(e,r)=>{if("recurse"===await t.handler(new s.Subtree(t.socket,e),r))for(const t of r.children)"subtree"===t.data_type&&await a(`${e}.${t.sys_name}`,t)};for(const e of t.socket.schema.keywords)t.socket.module_registry.is_disabled(e.sys_name)&&!0!==t.include_disabled||await a(e.sys_name,e)}exports.count_keywords=async function(t,s,a){let r=0;const i=async(e,t)=>{let r=0;for(let o of e.children)if(!a(o,t))switch(o.data_type){case"subtree":{const e=`${t}.${o.sys_name}`;if("table_size"in o){const t=await s.root.table_indices(e);for(const s of t)r+=await i(o,`${e}[${s}]`)}else if("array_size"in o)for(let t=0;t<o.array_size;++t)r+=await i(o,`${e}[${t}]`);else r+=await i(o,e)}break;default:r+=(n=o,(()=>{switch(n.kw_type){case"event":case"driver-owned event":return 0;case"command":case"status":return 1;case"duplex":return 2}})())}var n;return r};for(let s of t.keywords)a(s,null)||(e.strict(!("array_size"in s||"table_size"in s)),r+=await i(s,s.sys_name));return r},exports.branch_iter=async function(e){const s=async(a,r)=>{if("recurse"===await e.handler(a,r))for(const i of t.children_of_subtree(e.socket.schema,r))"subtree"===i.data_type&&await s(`${a}.${i.sys_name}`,i)};for(const t of e.socket.schema.keywords)e.socket.module_registry.is_disabled(t.sys_name)&&!0!==e.include_disabled||await s(t.sys_name,t)},exports.subtree_iter=a,exports.subtree_iter_typewise=async function(t,s,r,i,n){await a({socket:t,include:null!=n?n:"allocated",handler:async t=>(e.strict(!Array.isArray(t.description)),t.description.type_identifier===s&&await i(r(t)),"recurse")})},exports.keyword_iter=async function(e,t,s){await a({socket:e,include:null!=s?s:"allocated",handler:async s=>{for(const a of s.children)"subtree"!==a.data_type&&"atomic subtree"!==a.data_type&&await t(e,a);return"recurse"}})};