mol_tree2 1.0.707 → 1.0.708

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/web.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["-","../../../../mam.ts","../../../../mol/ambient/ambient.ts","../../../../mol/delegate/delegate.ts","../../../../mol/owning/owning.ts","../../../../mol/fail/fail.ts","../../../../mol/fail/hidden/hidden.ts","../../../../mol/func/name/name.ts","../../../../mol/object2/object2.ts","../../../../mol/span/span.ts","../../../../mol/error/syntax/syntax.ts","../../../../mol/tree2/from/string/string.ts","../../../../mol/tree2/to/string/string.ts","../../../../mol/tree2/tree2.ts","../../../../mol/tree2/from/json/json.ts","../../../../mol/view/tree2/error.ts","../../../../mol/view/tree2/child.ts","../../../../mol/view/tree2/classes.ts","../../../../mol/view/tree2/normalize.ts","../../../../mol/regexp/regexp.ts","../../../../mol/view/tree2/prop/signature.ts","../../../../mol/view/tree2/prop/parts.ts","../../../../mol/view/tree2/prop/quote.ts","../../../../mol/view/tree2/class/match.ts","../../../../mol/view/tree2/class/super.ts","../../../../mol/view/tree2/class/props.ts","../../../../mol/view/tree2/value/type.ts","../../../../mol/view/tree2/value/value.ts","../../../../mol/view/tree2/value/number.ts","../../../../mol/tree2/js/to/text/text.ts","../../../../mol/tree2/span/imprint/imprint.ts","../../../../mol/tree2/span/reuse/reuse.ts","../../../../mol/tree2/text/to/string/string.ts","../../../../mol/vlq/vlq.ts","../../../../mol/tree2/text/to/sourcemap/sourcemap.ts","../../../../mol/sourcemap/url/url.ts","../../../../mol/sourcemap/dataurl/dataurl.ts","../../../../mol/tree2/text/to/string/mapped/mapped.ts","../../../../mol/guard/defined.ts","../../../../mol/tree2/text/to/sourcemap/vis/vis.ts","../../../../mol/tree2/to/json/json.ts","../../../../mol/tree2/to/stream/stream.ts","../../../../mol/tree2/xml/from/dom/dom.ts","../../../../mol/html/encode/encode.ts","../../../../mol/tree2/xml/to/text/text.ts"],"names":[],"mappings":"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","sourcesContent":[null,"Error.stackTraceLimit = 50;\n\ndeclare let _$_: { new(): {} } & typeof globalThis\ndeclare class $ extends _$_ {}\n\nnamespace $ {\n\texport type $ = typeof $$\n\texport declare class $$ extends $ {}\n\tnamespace $$ {\n\t\texport type $$ = $\n\t}\n}\n\nmodule.exports = $\n","namespace $ {\n\n\texport const $mol_ambient_ref : unique symbol = Symbol( '$mol_ambient_ref' )\n\n\t/** @deprecated use $ instead */\n\texport type $mol_ambient_context = $\n\n\texport function $mol_ambient( this : $ | void , overrides : Partial< $ > ) : $ {\n\t\treturn Object.setPrototypeOf( overrides , this || $ )\n\t}\n\n}\n","namespace $ {\n\n\tconst instances = new WeakSet< any >()\n\n\t/**\n\t * Proxy that delegates all to lazy returned target.\n\t * \n\t * \t$mol_delegate( Array.prototype , ()=> fetch_array() )\n\t */\n export function $mol_delegate< Value extends object >(\n\t\tproto : Value ,\n\t\ttarget : ()=> Value ,\n\t) {\n\n\t\tconst proxy = new Proxy( proto , {\n\n\t\t\tget: ( _ , field )=> {\n\t\t\t\tconst obj = target()\n\t\t\t\tlet val = Reflect.get( obj , field )\n\t\t\t\tif( typeof val === 'function' ) {\n\t\t\t\t\tval = val.bind( obj )\n\t\t\t\t} \n\t\t\t\treturn val\n\t\t\t},\n\t\t\thas: ( _ , field )=> Reflect.has( target(), field ),\n\t\t\tset: ( _ , field , value )=> Reflect.set( target() , field , value ),\n\t\t\t\n\t\t\tgetOwnPropertyDescriptor: ( _ , field )=> Reflect.getOwnPropertyDescriptor( target() , field ),\n\t\t\townKeys: ()=> Reflect.ownKeys( target() ),\n\t\t\t\n\t\t\tgetPrototypeOf: ()=> Reflect.getPrototypeOf( target() ),\n\t\t\tsetPrototypeOf: ( _ , donor )=> Reflect.setPrototypeOf( target() , donor ),\n\t\t\t\n\t\t\tisExtensible: ()=> Reflect.isExtensible( target() ),\n\t\t\tpreventExtensions: ()=> Reflect.preventExtensions( target() ),\n\t\t\t\n\t\t\tapply: ( _ , self , args )=> Reflect.apply( target() as Function , self , args ),\n\t\t\tconstruct: ( _ , args , retarget )=> Reflect.construct( target() as Function , args , retarget ),\n\t\t\t\n\t\t\tdefineProperty: ( _ , field , descr )=> Reflect.defineProperty( target() , field , descr ),\n\t\t\tdeleteProperty: ( _ , field )=> Reflect.deleteProperty( target() , field ),\n\n\t\t} )\n\n\t\tinstances.add( proxy )\n\n\t\treturn proxy\n\n\t}\n\n\tReflect.defineProperty(\n\t\t$mol_delegate ,\n\t\tSymbol.hasInstance ,\n\t\t{\n\t\t\tvalue : ( obj : object )=> instances.has( obj ),\n\t\t},\n\t)\n\n}\n","namespace $ {\n\n\texport const $mol_owning_map = new WeakMap< any , any >()\n\n\texport function $mol_owning_allow< Having >(\n\t\thaving : Having ,\n\t) : having is Having & {\n\t\tdestructor() : void\n\t} {\n\t\ttry {\n\t\t\tif( !having ) return false\n\t\t\tif( typeof having !== 'object' && typeof having !== 'function' ) return false\n\t\t\tif( having instanceof $mol_delegate ) return false\n\t\t\tif( typeof (having as any)['destructor'] !== 'function' ) return false\n\t\t\treturn true\n\t\t} catch {\n\t\t\treturn false\n\t\t}\n\t}\n\n\texport function $mol_owning_get< Having , Owner extends object >( having : Having , Owner? : { new() : Owner } ) : Owner | null {\n\t\n\t\tif( !$mol_owning_allow( having ) ) return null\n\n\t\twhile( true ) {\n\n\t\t\tconst owner = $mol_owning_map.get( having )\n\t\t\tif( !owner ) return owner\n\t\t\tif( !Owner ) return owner\n\t\t\t\n\t\t\tif( owner instanceof Owner ) return owner\n\n\t\t\thaving = owner\n\t\t}\n\n\t}\n\t\n\texport function $mol_owning_check< Owner , Having >(\n\t\towner : Owner ,\n\t\thaving : Having ,\n\t) : having is Having & { destructor() : void } {\n\t\tif( !$mol_owning_allow( having ) ) return false\n\t\tif( $mol_owning_map.get( having ) !== owner ) return false\n\t\treturn true\n\t}\n\t\n\texport function $mol_owning_catch< Owner , Having >(\n\t\towner : Owner ,\n\t\thaving : Having ,\n\t) {\n\t\tif( !$mol_owning_allow( having ) ) return false\n\t\tif( $mol_owning_map.get( having ) ) return false\n\n\t\t$mol_owning_map.set( having , owner )\n\t\treturn true\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_fail( error : any ) : never {\n\t\tthrow error\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_fail_hidden( error : any ) : never {\n\t\tthrow error /// Use 'Never Pause Here' breakpoint in DevTools or simply blackbox this script\n\t}\n\n}\n","namespace $ {\n\t\n\tconst named = new WeakSet< Function >()\n\t\n\texport function $mol_func_name( this : $ , func : Function ) : string {\n\t\t\n\t\tlet name = func.name\n\t\tif( name?.length > 1 ) return name\n\t\tif( named.has( func ) ) return name\n\n\t\tfor( let key in this ) {\n\t\t\ttry {\n\t\t\t\tif( (this as any)[ key ] !== func ) continue\n\t\t\t\tname = key\n\t\t\t\tObject.defineProperty( func , 'name' , { value : name } )\n\t\t\t\tbreak\n\t\t\t} catch {}\n\t\t}\n\n\t\tnamed.add( func )\n\t\treturn name\n\t\t\n\t}\n\n\texport function $mol_func_name_from< Target extends Function >( target : Target , source : Function ) {\n\t\tObject.defineProperty( target , 'name' , { value : source.name } )\n\t\treturn target\n\t}\n\n}\n","namespace $ {\n\n\texport class $mol_object2 {\n\t\t\n\t\tstatic $ = $ as any as $\n\t\t\n\t\t[Symbol.toStringTag]!: string\n\n\t\t[ $mol_ambient_ref ] = null as any as $\n\t\tget $() {\n\t\t\tif( this[ $mol_ambient_ref ] ) return this[ $mol_ambient_ref ]\n\t\t\tconst owner = $mol_owning_get( this ) as any\n\t\t\treturn this[ $mol_ambient_ref ] = owner?.$ || $mol_object2.$ as $\n\t\t}\n\t\tset $( next : $ ) {\n\t\t\tif( this[ $mol_ambient_ref ] ) $mol_fail_hidden( new Error( 'Context already defined' ) )\n\t\t\tthis[ $mol_ambient_ref ] = next\n\t\t}\n\n\t\tpublic static create< Instance >(\n\t\t\tthis : new( init? : ( instance : any )=> void )=> Instance ,\n\t\t\tinit? : ( instance : $mol_type_writable<Instance> )=> void\n\t\t) : Instance {\n\t\t\tconst obj = new this\n\t\t\tif( init ) init( obj )\n\t\t\treturn obj\n\t\t}\n\t\t\n\t\tstatic [ Symbol.toPrimitive ]() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\tstatic toString() {\n\t\t\treturn ( this as any )[ Symbol.toStringTag ] || this.$.$mol_func_name( this )\n\t\t}\n\t\t\n\t\tstatic toJSON() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\tdestructor() { }\n\t\tstatic destructor() { }\n\t\t\n\t\t//[ Symbol.toPrimitive ]( hint: string ) {\n\t\t//\treturn hint === 'number' ? this.valueOf() : this.toString()\n\t\t//}\n\t\t\n\t\ttoString(): string {\n\t\t\treturn this[ Symbol.toStringTag ] || this.constructor.name + '<>'\n\t\t}\n\t\t\n\t\t// toJSON(): any {\n\t\t// \treturn this.toString()\n\t\t// }\n\n\t}\n}\n","namespace $ {\n\n\t/** Position in any resource. */\n\texport class $mol_span extends $mol_object2 {\n\n\t\tconstructor(\n\t\t\treadonly uri: string ,\n\t\t\treadonly source: string ,\n\t\t\treadonly row: number ,\n\t\t\treadonly col: number ,\n\t\t\treadonly length: number ,\n\t\t) {\n\t\t\tsuper()\n\t\t\tthis[ Symbol.toStringTag ] = `${ this.uri }#${ this.row }:${ this.col }/${ this.length }`\n\t\t}\n\n\t\t/** Span for begin of unknown resource */\n\t\tstatic unknown = $mol_span.begin('?')\n\n\t\t/** Makes new span for begin of resource. */\n\t\tstatic begin( uri: string, source = '' ) {\n\t\t\treturn new $mol_span( uri , source, 1 , 1 , 0 )\n\t\t}\n\n\t\t/** Makes new span for end of resource. */\n\t\tstatic end( uri: string , source: string ) {\n\t\t\treturn new $mol_span( uri , source, 1 , source.length + 1 , 0 )\n\t\t}\n\n\t\t/** Makes new span for entire resource. */\n\t\tstatic entire( uri: string , source: string ) {\n\t\t\treturn new $mol_span( uri , source, 1 , 1 , source.length )\n\t\t}\n\n\t\ttoString() {\n\t\t\treturn this[ Symbol.toStringTag ]\n\t\t}\n\n\t\ttoJSON() {\n\t\t\treturn {\n\t\t\t\turi: this.uri,\n\t\t\t\trow: this.row,\n\t\t\t\tcol: this.col,\n\t\t\t\tlength: this.length\n\t\t\t}\n\t\t}\n\n\t\t/** Makes new error for this span. */\n\t\terror( message : string , Class = Error ) {\n\t\t\treturn new Class( `${message} (${this})` )\n\t\t}\n\n\t\t/** Makes new span for same uri. */\n\t\tspan( row : number , col : number , length : number ) {\n\t\t\treturn new $mol_span( this.uri , this.source, row , col , length )\n\t\t}\n\n\t\t/** Makes new span after end of this. */\n\t\tafter( length = 0 ) {\n\t\t\treturn new $mol_span( this.uri , this.source, this.row , this.col + this.length , length )\n\t\t}\n\n\t\t/** Makes new span between begin and end. */\n\t\tslice( begin: number, end = -1 ) {\n\t\t\tlet len = this.length\n\t\t\t\n\t\t\tif( begin < 0 ) begin += len\n\t\t\tif( end < 0 ) end += len\n\n\t\t\tif (begin < 0 || begin > len) this.$.$mol_fail( this.error( `Begin value '${begin}' out of range`, RangeError ) )\n\t\t\tif (end < 0 || end > len) this.$.$mol_fail( this.error( `End value '${end}' out of range`, RangeError ) )\n\t\t\tif (end < begin) this.$.$mol_fail( this.error( `End value '${end}' can't be less than begin value`, RangeError ) )\n\n\t\t\treturn this.span( this.row , this.col + begin , end - begin )\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\t/** Syntax error with cordinates and source line snippet. */\n\texport class $mol_error_syntax extends SyntaxError {\n\t\tconstructor (\n\t\t\tpublic reason: string,\n\t\t\tpublic line: string,\n\t\t\tpublic span: $mol_span,\n\t\t) {\n\t\t\tsuper(`${ reason }\\n${ span }\\n${ line.substring( 0 , span.col - 1 ).replace( /\\S/g, ' ' ) }${ ''.padEnd( span.length, '!' ) }\\n${ line }`)\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\t/** Parses tree format from string. */\n\texport function $mol_tree2_from_string(\n\t\tthis: $,\n\t\tstr: string,\n\t\turi = '?',\n\t) : $mol_tree2 {\n\n\t\tconst span = $mol_span.entire( uri, str )\n\n\t\tvar root = $mol_tree2.list( [], span )\n\t\tvar stack = [ root ]\n\n\t\tvar pos = 0, row = 0, min_indent = 0\n\t\t\n\t\twhile( str.length > pos ) {\n\n\t\t\tvar indent = 0\n\t\t\tvar line_start = pos\n\n\t\t\trow++\n\n\t\t\t// read indent\n\t\t\twhile( str.length > pos && str[ pos ] == '\\t' ) {\n\t\t\t\tindent++\n\t\t\t\tpos++\n\t\t\t}\n\n\t\t\tif( ! root.kids.length ) {\n\t\t\t\tmin_indent = indent\n\t\t\t}\n\n\t\t\tindent -= min_indent\n\n\t\t\t// invalid tab size\n\t\t\tif( indent < 0 || indent >= stack.length ) {\n\n\t\t\t\tconst sp = span.span( row, 1, pos - line_start )\n\n\t\t\t\t// skip error line\n\t\t\t\twhile( str.length > pos && str[ pos ] != '\\n' ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\n\t\t\t\tif( indent < 0 ) {\n\t\t\t\t\tif( str.length > pos ) {\n\t\t\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t\t\t`Too few tabs`,\n\t\t\t\t\t\t\tstr.substring( line_start, pos ),\n\t\t\t\t\t\t\tsp,\n\t\t\t\t\t\t) )\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t\t`Too many tabs`,\n\t\t\t\t\t\tstr.substring( line_start, pos ),\n\t\t\t\t\t\tsp,\n\t\t\t\t\t) )\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tstack.length = indent + 1\n\t\t\tvar parent = stack[ indent ]\n\n\t\t\t// parse types\n\t\t\twhile( str.length > pos && str[ pos ] != '\\\\' && str[ pos ] != '\\n' ) {\n\n\t\t\t\t// type can not contain space and tab\n\t\t\t\tvar error_start = pos\n\t\t\t\twhile( str.length > pos && ( str[ pos ] == ' ' || str[ pos ] == '\\t' ) ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\n\t\t\t\tif( pos > error_start ) {\n\t\t\t\t\tlet line_end = str.indexOf( '\\n' , pos )\n\t\t\t\t\tif( line_end === -1 ) line_end = str.length\n\t\t\t\t\tconst sp = span.span( row, error_start - line_start + 1, pos - error_start )\n\t\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t\t`Wrong nodes separator`,\n\t\t\t\t\t\tstr.substring( line_start, line_end ),\n\t\t\t\t\t\tsp,\n\t\t\t\t\t) )\n\t\t\t\t}\n\n\t\t\t\t// read type\n\t\t\t\tvar type_start = pos\n\t\t\t\twhile( \n\t\t\t\t\tstr.length > pos && \n\t\t\t\t\tstr[ pos ] != '\\\\' && \n\t\t\t\t\tstr[ pos ] != ' ' && \n\t\t\t\t\tstr[ pos ] != '\\t' && \n\t\t\t\t\tstr[ pos ] != '\\n'\n\t\t\t\t) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\t\t\t\tif( pos > type_start ) {\n\t\t\t\t\tlet next = new $mol_tree2(\n\t\t\t\t\t\tstr.slice( type_start , pos ),\n\t\t\t\t\t\t'',\n\t\t\t\t\t\t[],\n\t\t\t\t\t\tspan.span( row, type_start - line_start + 1, pos - type_start ),\n\t\t\t\t\t)\n\t\t\t\t\tconst parent_kids = parent.kids as $mol_tree2[]\n\t\t\t\t\tparent_kids.push( next )\n\t\t\t\t\tparent = next\n\t\t\t\t}\n\n\t\t\t\t// read one space if exists\n\t\t\t\tif( str.length > pos && str[ pos ] == ' ' ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// read data\n\t\t\tif( str.length > pos && str[ pos ] == '\\\\' ) {\n\t\t\t\tvar data_start = pos\n\t\t\t\twhile( str.length > pos && str[ pos ] != '\\n' ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\t\t\t\tlet next = new $mol_tree2(\n\t\t\t\t\t'',\n\t\t\t\t\tstr.slice( data_start + 1 , pos ),\n\t\t\t\t\t[],\n\t\t\t\t\tspan.span( row, data_start - line_start + 2, pos - data_start - 1 ),\n\t\t\t\t)\n\t\t\t\tconst parent_kids = parent.kids as $mol_tree2[]\n\t\t\t\tparent_kids.push( next )\n\t\t\t\tparent = next\n\t\t\t}\n\n\t\t\t// now must be end of text\n\t\t\tif( str.length === pos && stack.length > 0 ) {\n\t\t\t\tconst sp = span.span( row, pos - line_start + 1, 1 )\n\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t`Unexpected EOF, LF required`,\n\t\t\t\t\tstr.substring( line_start, str.length ),\n\t\t\t\t\tsp,\n\t\t\t\t) )\n\t\t\t}\n\n\t\t\tstack.push( parent )\n\t\t\tpos++\n\t\t}\n\n\t\treturn root\n\t}\n\n}\n","namespace $ {\n\n\t/** Serializes tree to string in tree format. */\n\texport function $mol_tree2_to_string(\n\t\tthis: $,\n\t\ttree: $mol_tree2,\n\t) : string {\n\n\t\tlet output = [] as string[]\n\t\t\n\t\tfunction dump(\n\t\t\ttree: $mol_tree2,\n\t\t\tprefix = '',\n\t\t) {\n\n\t\t\tif( tree.type.length ) {\n\t\t\t\t\n\t\t\t\tif( !prefix.length ) {\n\t\t\t\t\tprefix = \"\\t\";\n\t\t\t\t}\n\n\t\t\t\toutput.push( tree.type )\n\n\t\t\t\tif( tree.kids.length == 1 ) {\n\t\t\t\t\toutput.push( ' ' )\n\t\t\t\t\tdump( tree.kids[ 0 ], prefix )\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\toutput.push( \"\\n\" )\n\n\t\t\t} else if( tree.value.length || prefix.length ) {\n\n\t\t\t\toutput.push( \"\\\\\" + tree.value + \"\\n\" )\n\n\t\t\t}\n\n\t\t\tfor( const kid of tree.kids ) {\n\t\t\t\toutput.push( prefix )\n\t\t\t\tdump( kid, prefix + \"\\t\" )\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tdump( tree )\n\n\t\treturn output.join('')\n\t}\n\t\t\n}\n","namespace $ {\n\n\t/** Path by types in tree. */\n\texport type $mol_tree2_path =\n\t\tArray< string | number | null >\n\t\n\t/** Hask tool for processing node. */\n\texport type $mol_tree2_hack< Context > =\n\t\t(\n\t\t\tinput : $mol_tree2 ,\n\t\t\tbelt : $mol_tree2_belt< Context > ,\n\t\t\tcontext : Context ,\n\t\t)=> readonly $mol_tree2[]\n\n\t/** Collection of hask tools for processing tree. */\n\texport type $mol_tree2_belt< Context > =\n\t\tRecord< string , $mol_tree2_hack< Context > >\n\n\t/**\n\t * Abstract Syntax Tree with human readable serialization.\n\t * Avoid direct instantiation. Use static factories instead.\n\t * @see https://github.com/nin-jin/tree.d\n\t */\n\texport class $mol_tree2 extends Object {\n\t\t\n\t\tconstructor(\n\n\t\t\t/** Type of structural node, `value` should be empty */\n\t\t\treadonly type : string,\n\t\t\t\n\t\t\t/** Content of data node, `type` should be empty */\n\t\t\treadonly value : string,\n\n\t\t\t/** Child nodes */\n\t\t\treadonly kids : readonly $mol_tree2[],\n\t\t\t\n\t\t\t/** Position in most far source resource */\n\t\t\treadonly span : $mol_span,\n\n\t\t) {\n\t\t\tsuper()\n\t\t\t;(this as any)[ Symbol.toStringTag ] = type || '\\\\' + value\n\t\t}\n\n\t\t/** Makes collection node. */\n\t\tstatic list(\n\t\t\tkids : readonly $mol_tree2[] ,\n\t\t\tspan = $mol_span.unknown ,\n\t\t) {\n\t\t\treturn new $mol_tree2( '' , '' , kids , span )\n\t\t}\n\t\t\n\t\t/** Makes new derived collection node. */\n\t\tlist(\n\t\t\tkids : readonly $mol_tree2[] ,\n\t\t) {\n\t\t\treturn $mol_tree2.list( kids , this.span )\n\t\t}\n\n\t\t/** Makes data node for any string. */\n\t\tstatic data(\n\t\t\tvalue : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t\tspan = $mol_span.unknown ,\n\t\t) {\n\n\t\t\tconst chunks = value.split( '\\n' )\n\n\t\t\tif( chunks.length > 1 ) {\n\t\t\t\n\t\t\t\tlet kid_span = span.span( span.row , span.col , 0 )\n\n\t\t\t\tconst data = chunks.map( chunk => {\n\t\t\t\t\tkid_span = kid_span.after( chunk.length )\n\t\t\t\t\treturn new $mol_tree2( '' , chunk , [] , kid_span )\n\t\t\t\t} )\n\n\t\t\t\tkids = [ ... data , ... kids ]\n\n\t\t\t\tvalue = ''\n\n\t\t\t}\n\n\t\t\treturn new $mol_tree2( '' , value , kids , span )\n\n\t\t}\n\t\t\n\t\t/** Makes new derived data node. */\n\t\tdata(\n\t\t\tvalue : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t) {\n\t\t\treturn $mol_tree2.data( value , kids , this.span )\n\t\t}\n\t\t\n\t\t/** Makes struct node. */\n\t\tstatic struct(\n\t\t\ttype : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t\tspan = $mol_span.unknown ,\n\t\t) {\n\n\t\t\tif( /[ \\n\\t\\\\]/.test( type ) ) {\n\t\t\t\t$$.$mol_fail( span.error( `Wrong type ${ JSON.stringify( type ) }` ) )\n\t\t\t}\n\n\t\t\treturn new $mol_tree2( type , '' , kids , span )\n\n\t\t}\n\t\t\n\t\t/** Makes new derived structural node. */\n\t\tstruct(\n\t\t\ttype : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t) {\n\t\t\treturn $mol_tree2.struct( type , kids , this.span )\n\t\t}\n\n\t\t/** Makes new derived node with different kids id defined. */\n\t\tclone( kids : readonly $mol_tree2[], span = this.span ) {\n\t\t\treturn new $mol_tree2( this.type , this.value , kids , span )\n\t\t}\n\n\t\t/** Returns multiline text content. */\n\t\ttext() {\n\n\t\t\tvar values : string[] = []\n\t\t\t\n\t\t\tfor( var kid of this.kids ) {\n\t\t\t\tif( kid.type ) continue\n\t\t\t\tvalues.push( kid.value )\n\t\t\t}\n\t\t\t\n\t\t\treturn this.value + values.join( '\\n' )\n\n\t\t}\n\t\t\n\t\t/** Parses tree format. */\n\t\t/** @deprecated Use $mol_tree2_from_string */\n\t\tstatic fromString( str : string , uri = 'unknown' ) {\n\t\t\treturn $$.$mol_tree2_from_string( str, uri )\n\t\t}\n\n\t\t/** Serializes to tree format. */\n\t\ttoString() : string {\n\t\t\treturn $$.$mol_tree2_to_string( this )\n\t\t}\n\t\t\n\t\t/** Makes new tree with node overrided by path. */\n\t\tinsert( value : $mol_tree2 | null , ...path : $mol_tree2_path ) : $mol_tree2 {\n\n\t\t\tif( path.length === 0 ) return value!\n\t\t\t\n\t\t\tconst type = path[0]\n\t\t\tif( typeof type === 'string' ) {\n\n\t\t\t\tlet replaced = false\n\t\t\t\tconst sub = this.kids.map( ( item , index )=> {\n\t\t\t\t\tif( item.type !== type ) return item\n\t\t\t\t\treplaced = true\n\t\t\t\t\treturn item.insert( value , ... path.slice( 1 ) )\n\t\t\t\t} ).filter( Boolean )\n\t\t\t\t\n\t\t\t\tif( !replaced && value ) {\n\t\t\t\t\tsub.push( this.struct( type , [] ).insert( value , ... path.slice( 1 ) ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn this.clone( sub )\n\n\t\t\t} else if( typeof type === 'number' ) {\n\t\t\t\t\n\t\t\t\tconst sub = this.kids.slice()\n\t\t\t\tsub[ type ] = ( sub[ type ] || this.list([]) )\n\t\t\t\t\t.insert( value , ... path.slice( 1 ) )\n\t\t\t\t\n\t\t\t\treturn this.clone( sub.filter( Boolean ) )\n\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tconst kids = ( ( this.kids.length === 0 ) ? [ this.list([]) ] : this.kids )\n\t\t\t\t.map( item => item.insert( value , ... path.slice( 1 ) ) )\n\t\t\t\t.filter( Boolean )\n\n\t\t\t\treturn this.clone( kids )\n\n\t\t\t}\n\n\t\t}\n\n\t\t/** Query nodes by path. */\n\t\tselect( ...path : $mol_tree2_path ) {\n\n\t\t\tlet next = [ this as $mol_tree2 ]\n\n\t\t\tfor( const type of path ) {\n\n\t\t\t\tif( !next.length ) break\n\t\t\t\t\n\t\t\t\tconst prev = next\n\t\t\t\tnext = []\n\n\t\t\t\tfor( var item of prev ) {\n\n\t\t\t\t\tswitch( typeof( type ) ) {\n\n\t\t\t\t\t\tcase 'string' :\n\n\t\t\t\t\t\t\tfor( var child of item.kids ) {\n\t\t\t\t\t\t\t\tif( child.type == type ) {\n\t\t\t\t\t\t\t\t\tnext.push( child )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\n\t\t\t\t\t\tcase 'number' :\n\n\t\t\t\t\t\t\tif( type < item.kids.length ) next.push( item.kids[ type ] )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\n\t\t\t\t\t\tdefault : next.push( ... item.kids )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this.list( next )\n\t\t\t\n\t\t}\n\t\t\n\t\t/** Filter kids by path or value. */\n\t\tfilter( path : string[] , value? : string ) {\n\n\t\t\tconst sub = this.kids.filter( item => {\n\t\t\t\t\t\n\t\t\t\tvar found = item.select( ...path )\n\t\t\t\t\n\t\t\t\tif( value === undefined ) {\n\t\t\t\t\treturn Boolean( found.kids.length )\n\t\t\t\t} else {\n\t\t\t\t\treturn found.kids.some( child => child.value == value )\n\t\t\t\t}\n\t\t\t\n\t\t\t} )\n\t\t\t\n\t\t\treturn this.clone( sub )\n\n\t\t}\n\n\t\thack_self< Context extends { span?: $mol_span; [ key: string ]: unknown } = {} >(\n\t\t\tbelt: $mol_tree2_belt< Context >,\n\t\t\tcontext = {} as Context,\n\t\t) {\n\t\t\tlet handle = belt[ this.type ] || belt[ '' ]\n\t\t\t\t\n\t\t\tif( !handle || handle === Object.prototype[ this.type as keyof Object ] ) {\n\t\t\t\thandle = ( input, belt, context )=> [\n\t\t\t\t\tinput.clone( input.hack( belt, context ), context.span )\n\t\t\t\t]\n\t\t\t}\n\t\t\t\n\t\t\ttry {\n\t\t\t\treturn handle( this , belt , context! )\n\t\t\t} catch( error: any ) {\n\t\t\t\terror.message += `\\n${ this.clone([]) }${ this.span }`\n\t\t\t\t$mol_fail_hidden( error )\n\t\t\t}\n\t\t}\n\n\t\t/** Transform tree through context with transformers */\n\t\thack< Context extends { span?: $mol_span; [ key: string ]: unknown } = {} >(\n\t\t\tbelt: $mol_tree2_belt< Context >,\n\t\t\tcontext = {} as Context,\n\t\t) {\n\t\t\treturn ( [] as readonly $mol_tree2[] ).concat(\n\t\t\t\t... this.kids.map( child => child.hack_self(belt, context) )\n\t\t\t)\n\n\t\t}\n\n\t\t/** Makes Error with node coordinates. */\n\t\terror( message : string , Class = Error ) {\n\t\t\treturn this.span.error( `${ message }\\n${ this.clone([]) }` , Class )\n\t\t}\n\n\t}\n\n\texport class $mol_tree2_empty extends $mol_tree2 {\n\t\tconstructor() {\n\t\t\tsuper( '' , '' , [] , $mol_span.unknown )\n\t\t}\n\t}\n\t\n}\n","namespace $ {\n\n\texport function $mol_tree2_from_json( json: any, span = $mol_span.unknown ): $mol_tree2 {\n\n\t\tif( typeof json === 'boolean' || typeof json === 'number' || json === null ) {\n\t\t\treturn new $mol_tree2( String( json ) , '' , [] , span )\n\t\t}\n\t\t\n\t\tif( typeof json === 'string' ) {\n\t\t\treturn $mol_tree2.data( json , [], span )\n\t\t}\n\n\t\tif( Array.isArray( json ) ) {\n\t\t\tconst sub = json.map( json => $mol_tree2_from_json( json , span ) )\n\t\t\treturn new $mol_tree2( '/' , '', sub, span )\n\t\t}\n\t\t\n\t\tif( ArrayBuffer.isView( json ) ) {\n\t\t\tconst buf = new Uint8Array( json.buffer, json.byteOffset, json.byteLength )\n\t\t\treturn $mol_tree2.data( String.fromCharCode( ... buf ) , [], span )\n\t\t}\n\t\t\t\n\t\tif( json instanceof Date ) {\n\t\t\treturn new $mol_tree2( '', json.toISOString() , [] , span )\n\t\t}\n\n\t\tif( typeof json.toJSON === 'function' ) {\n\t\t\treturn $mol_tree2_from_json( json.toJSON() )\n\t\t}\n\n\t\tif( json.toString !== Object.prototype.toString ) {\n\t\t\treturn $mol_tree2.data( json.toString() , [], span )\n\t\t}\n\n\t\tif( json instanceof Error ) {\n\t\t\tconst { name , message , stack } = json\n\t\t\tjson = { ... json, name, message, stack }\n\t\t}\n\n\t\tconst sub = [] as $mol_tree2[]\n\t\t\n\t\tfor( var key in json ) {\n\n\t\t\tconst val = json[ key ]\n\n\t\t\tif( val === undefined ) continue\n\n\t\t\tconst subsub = $mol_tree2_from_json( val, span )\n\t\t\t\n\t\t\tif( /^[^\\n\\t\\\\ ]+$/.test( key ) ) {\n\t\t\t\tsub.push( new $mol_tree2( key, '', [ subsub ], span ) )\n\t\t\t} else {\n\t\t\t\tsub.push( $mol_tree2.data( key, [ subsub ], span ) )\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\treturn new $mol_tree2( '*' , '', sub , span )\n\t\t\t\n\t}\n\n}\n","namespace $ {\n\texport class $mol_view_tree2_error extends Error {\n\t\tconstructor(\n\t\t\tmessage: string,\n\t\t\treadonly spans: readonly $mol_span[]\n\t\t) {\n\t\t\tsuper(message)\n\t\t}\n\n\t\ttoJSON() {\n\t\t\treturn {\n\t\t\t\tmessage: this.message,\n\t\t\t\tspans: this.spans\n\t\t\t}\n\t\t}\n\t}\n\n\texport class $mol_view_tree2_error_suggestions {\n\t\tconstructor(\n\t\t\treadonly suggestions: readonly string[]\n\t\t) {}\n\n\t\ttoString() {\n\t\t\treturn this.suggestions.map(suggestion => `\\`${suggestion}\\``).join(', ')\n\t\t}\n\n\t\ttoJSON() {\n\t\t\treturn this.suggestions\n\t\t}\n\t}\n\n\texport function $mol_view_tree2_error_str(\n\t\tstrings: readonly string[],\n\t\t...parts: readonly ($mol_span | readonly $mol_span[] | string | number | $mol_view_tree2_error_suggestions)[]\n\t) {\n\t\tconst spans: $mol_span[] = []\n\n\t\tfor (const part of parts) {\n\t\t\tif (part instanceof $mol_span) spans.push(part)\n\t\t\tif (Array.isArray(part) && part.length > 0 && part[0] instanceof $mol_span) spans.push(...part)\n\t\t}\n\n\t\treturn new $mol_view_tree2_error(join(strings, parts), spans)\n\t}\n\n\tfunction join(strings: readonly string[], objects: readonly unknown[]) {\n\t\tlet result = ''\n\t\tlet obj_pos = 0\n\t\tlet obj_len = objects.length\n\n\t\tfor (const str of strings) {\n\t\t\tresult += str\n\t\t\tif (obj_pos < obj_len) {\n\t\t\t\tconst obj = objects[obj_pos++]\n\t\t\t\tif (Array.isArray(obj)) result += obj.map(item => `\\`${item}\\``).join(', ')\n\t\t\t\telse result += `\\`${String(obj)}\\``\n\t\t\t}\n\t\t}\n\n\t\treturn result\n\t}\n}\n","namespace $ {\n\n\texport function $mol_view_tree2_child(\n\t\tthis: $,\n\t\ttree: $mol_tree2,\n\t) {\n\n\t\tif( tree.kids.length === 0 ) {\n\t\t\treturn this.$mol_fail(\n\t\t\t\t$mol_view_tree2_error_str\n\t\t\t\t`Required one child at ${tree.span}`\n\t\t\t)\n\t\t}\n\n\t\tif( tree.kids.length > 1 ) {\n\t\t\treturn this.$mol_fail(\n\t\t\t\t$mol_view_tree2_error_str\n\t\t\t\t`Should be only one child at ${tree.span}`\n\t\t\t)\n\t\t}\n\n\t\treturn tree.kids[0]\n\t}\n\n}\n","namespace $ {\n\texport function $mol_view_tree2_classes( defs : $mol_tree2 ) {\n\t\treturn defs.clone(defs.hack({\n\t\t\t'-': () => []\n\t\t}))\n\t}\n}\n","namespace $ {\n\t\n\texport function $mol_view_tree2_normalize( this: $, defs : $mol_tree2 ) {\n\t\treturn defs.clone(\n\t\t\t$mol_view_tree2_classes( defs ).kids.map( cl => cl.clone([\n\t\t\t\tthis.$mol_view_tree2_class_super( cl ).clone(\n\t\t\t\t\tthis.$mol_view_tree2_class_props( cl )\n\t\t\t\t)\n\t\t\t]) )\n\t\t)\n\t}\n\t\n}\n","interface String {\n\t\n\tmatch< RE extends RegExp >( regexp: RE ): ReturnType<\n\t\tRE[ typeof Symbol.match ]\n\t>\n\t\n matchAll< RE extends RegExp >( regexp: RE ): ReturnType<\n\t\tRE[ typeof Symbol.matchAll ]\n\t>\n\t\n}\n\nnamespace $ {\n\t\n\ttype Groups_to_params<T> = {\n\t\t[P in keyof T]?: T[P] | boolean | undefined;\n\t};\t\n\n\texport type $mol_regexp_source =\n\t| number\n\t| string\n\t| RegExp\n\t| { [ key in string ] : $mol_regexp_source }\n\t| readonly[ $mol_regexp_source , ... $mol_regexp_source[] ]\n\n\texport type $mol_regexp_groups< Source extends $mol_regexp_source >\n\t\n\t\t= Source extends number\n\t\t? {}\n\t\t\n\t\t: Source extends string\n\t\t? {}\n\t\t\n\t\t: Source extends $mol_regexp_source[]\n\t\t? $mol_type_merge< $mol_type_intersect< {\n\t\t\t[ key in Extract< keyof Source , number > ] : $mol_regexp_groups< Source[ key ] >\n\t\t}[ Extract< keyof Source , number > ] > >\n\t\t\n\t\t: Source extends RegExp\n\t\t? Record< string, string > extends NonNullable< NonNullable< ReturnType< Source['exec'] > >[ 'groups' ] >\n\t\t\t? {}\n\t\t\t: NonNullable< NonNullable< ReturnType< Source['exec'] > >[ 'groups' ] >\n\t\t\n\t\t: Source extends { readonly [ key in string ] : $mol_regexp_source }\n\t\t? $mol_type_merge< $mol_type_intersect< {\n\t\t\t[ key in keyof Source ] :\n\t\t\t\t$mol_type_merge<\n\t\t\t\t\t& $mol_type_override<\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\treadonly [ k in Extract< keyof Source , string > ]: string\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\treadonly [ k in key ]:\n\t\t\t\t\t\t\t\tSource[ key ] extends string\n\t\t\t\t\t\t\t\t\t? Source[ key ]\n\t\t\t\t\t\t\t\t\t: string\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t& $mol_regexp_groups< Source[ key ] >\n\t\t\t\t>\n\t\t}[ keyof Source ] > >\n\n\t\t: never\n\t\t\n\t/** Type safe reguar expression builder */\n\texport class $mol_regexp< Groups extends Record< string , string > > extends RegExp {\n\t\t\n\t\t/** Prefer to use $mol_regexp.from */\n\t\tconstructor( source : string , flags : string = 'gsu' , readonly groups : ( Extract< keyof Groups , string > )[] = [] ) {\n\t\t\tsuper( source , flags )\n\t\t}\n\t\t\n\t\t*[Symbol.matchAll] (str:string): IterableIterator< RegExpMatchArray & $mol_type_override< RegExpMatchArray, { groups?: { [ key in keyof Groups ] : string } } > > {\n\t\t\tconst index = this.lastIndex\n\t\t\tthis.lastIndex = 0\n\t\t\ttry {\n\t\t\t\twhile ( this.lastIndex < str.length ) {\n\t\t\t\t\tconst found = this.exec(str)\n\t\t\t\t\tif( !found ) break\n\t\t\t\t\tyield found\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tthis.lastIndex = index\n\t\t\t}\n\t\t}\n\t\t\n\t\t/** Parses input and returns found capture groups or null */\n\t\t[ Symbol.match ]( str : string ): null | RegExpMatchArray {\n\t\t\tconst res = [ ... this[Symbol.matchAll]( str ) ].filter( r => r.groups ).map( r => r[0] )\n\t\t\tif( !res.length ) return null\n\t\t\treturn res as RegExpMatchArray\n\t\t}\n\t\t\n\t\t/** Splits string by regexp edges */\n\t\t[ Symbol.split ]( str : string ): string[] {\n\t\t\t\n\t\t\tconst res = [] as string[]\n\t\t\tlet token_last = null\n\t\t\t\n\t\t\tfor( let token of this[Symbol.matchAll]( str ) ) {\n\t\t\t\tif( token.groups && ( token_last ? token_last.groups : true ) ) res.push( '' )\n\t\t\t\tres.push( token[0] )\n\t\t\t\ttoken_last = token\n\t\t\t}\n\t\t\t\n\t\t\tif( !res.length ) res.push( '' )\n\t\t\t\n\t\t\treturn res\n\t\t}\n\t\t\n\t\ttest( str : string ): boolean {\n\t\t\treturn Boolean( str.match( this) )\n\t\t}\n\t\t\n\t\texec( str : string ): RegExpExecArray & $mol_type_override< RegExpExecArray , { groups?: { [ key in keyof Groups ] : string } } > | null {\n\t\t\t\n\t\t\tconst from = this.lastIndex\n\t\t\tif( from >= str.length ) return null\n\t\t\t\n\t\t\tconst res = super.exec( str )\n\t\t\tif( res === null ) {\n\t\t\t\tthis.lastIndex = str.length\n\t\t\t\tif( !str ) return null\n\t\t\t\treturn Object.assign( [ str.slice( from ) ], {\n\t\t\t\t\tindex: from,\n\t\t\t\t\tinput: str,\n\t\t\t\t} ) as any\n\t\t\t}\n\n\t\t\tif( from === this.lastIndex ) {\n\t\t\t\t$mol_fail( new Error( 'Captured empty substring' ) )\n\t\t\t}\n\n\t\t\ttype Token = { [ key in keyof Groups ] : string } & { [ key : number ] : string }\n\t\t\tconst groups = {} as Token\n\t\t\t\n\t\t\tconst skipped = str.slice( from , this.lastIndex - res[0].length )\n\t\t\tif( skipped ) {\n\t\t\t\tthis.lastIndex = this.lastIndex - res[0].length\n\t\t\t\treturn Object.assign( [ skipped ], {\n\t\t\t\t\tindex: from,\n\t\t\t\t\tinput: res.input,\n\t\t\t\t} ) as any\n\t\t\t}\n\t\t\t\n\t\t\tfor( let i = 0 ; i < this.groups.length ; ++i ) {\n\t\t\t\tconst group = this.groups[ i ]\n\t\t\t\tgroups[ group ] = groups[ group ] || res[ i + 1 ] || '' as any\n\t\t\t}\n\n\t\t\treturn Object.assign( res, { groups } )\n\t\t}\n\t\t\n\t\tgenerate(\n\t\t\tparams: Groups_to_params< Groups >\n\t\t): string | null {\n\t\t\treturn null\n\t\t}\n\t\t\n\t\tget native() {\n\t\t\treturn new RegExp( this.source, this.flags )\n\t\t}\n\n\t\t/** Makes regexp that non-greedy repeats this pattern from min to max count */\n\t\tstatic repeat<\n\t\t\tSource extends $mol_regexp_source\n\t\t>(\n\t\t\tsource : Source ,\n\t\t\tmin = 0 ,\n\t\t\tmax = Number.POSITIVE_INFINITY ,\n\t\t) : $mol_regexp< $mol_regexp_groups< Source > > {\n\t\n\t\t\tconst regexp = $mol_regexp.from( source )\n\t\t\tconst upper = Number.isFinite( max ) ? max : ''\n\t\t\t\n\t\t\tconst str = `(?:${ regexp.source }){${ min },${ upper }}?`\n\t\t\tconst regexp2 = new $mol_regexp( str , regexp.flags , regexp.groups )\n\t\t\t\n\t\t\tregexp2.generate = params => {\n\t\t\t\tconst res = regexp.generate( params )\n\t\t\t\tif( res ) return res\n\t\t\t\tif( min > 0 ) return res\n\t\t\t\treturn ''\n\t\t\t}\n\t\n\t\t\treturn regexp2\n\t\n\t\t}\n\n\t\t/** Makes regexp that greedy repeats this pattern from min to max count */\n\t\tstatic repeat_greedy<\n\t\t\tSource extends $mol_regexp_source\n\t\t>(\n\t\t\tsource : Source ,\n\t\t\tmin = 0 ,\n\t\t\tmax = Number.POSITIVE_INFINITY ,\n\t\t) : $mol_regexp< $mol_regexp_groups< Source > > {\n\t\n\t\t\tconst regexp = $mol_regexp.from( source )\n\t\t\tconst upper = Number.isFinite( max ) ? max : ''\n\t\t\t\n\t\t\tconst str = `(?:${ regexp.source }){${ min },${ upper }}`\n\t\t\tconst regexp2 = new $mol_regexp( str , regexp.flags , regexp.groups )\n\t\t\t\n\t\t\tregexp2.generate = params => {\n\t\t\t\tconst res = regexp.generate( params )\n\t\t\t\tif( res ) return res\n\t\t\t\tif( min > 0 ) return res\n\t\t\t\treturn ''\n\t\t\t}\n\t\n\t\t\treturn regexp2\n\t\t}\n\n\t\t/** Makes regexp that match any of options */\n\t\tstatic vary<\n\t\t\tSources extends readonly $mol_regexp_source[]\n\t\t>(\n\t\t\tsources : Sources ,\n\t\t) {\n\t\t\t\n\t\t\tconst groups = [] as string[]\n\t\t\t\n\t\t\tconst chunks = sources.map( source => {\n\n\t\t\t\tconst regexp = $mol_regexp.from( source )\n\t\t\t\tgroups.push( ... regexp.groups )\n\t\t\t\t\n\t\t\t\treturn regexp.source\n\n\t\t\t} ) as any as readonly[ $mol_regexp_source , ... $mol_regexp_source[] ]\n\t\t\t\n\t\t\treturn new $mol_regexp< $mol_regexp_groups< Sources[number] > >(\n\t\t\t\t`(?:${ chunks.join('|') })` ,\n\t\t\t\t'' ,\n\t\t\t\tgroups as any[] ,\n\t\t\t)\n\t\t\t\n\t\t}\n\n\t\t/** Makes regexp that allow absent of this pattern */\n\t\tstatic optional<\n\t\t\tSource extends $mol_regexp_source\n\t\t>( source : Source ) {\n\t\t\treturn $mol_regexp.repeat_greedy( source , 0 , 1 )\n\t\t}\n\n\t\t/** Makes regexp that look ahead for pattern */\n\t\tstatic force_after( source : $mol_regexp_source ) {\n\n\t\t\tconst regexp = $mol_regexp.from( source )\n\t\t\t\n\t\t\treturn new $mol_regexp(\n\t\t\t\t`(?=${ regexp.source })` ,\n\t\t\t\tregexp.flags ,\n\t\t\t\tregexp.groups ,\n\t\t\t)\n\n\t\t}\n\n\t\t/** Makes regexp that look ahead for pattern */\n\t\tstatic forbid_after( source : $mol_regexp_source ) {\n\n\t\t\tconst regexp = $mol_regexp.from( source )\n\t\t\t\n\t\t\treturn new $mol_regexp(\n\t\t\t\t`(?!${ regexp.source })` ,\n\t\t\t\tregexp.flags ,\n\t\t\t\tregexp.groups ,\n\t\t\t)\n\n\t\t}\n\n\t\t/** Converts some js values to regexp */\n\t\tstatic from<\n\t\t\tSource extends $mol_regexp_source\n\t\t>(\n\t\t\tsource : Source ,\n\t\t\t{ ignoreCase , multiline } : Partial< Pick< RegExp , 'ignoreCase' | 'multiline' > > = {\n\t\t\t\tignoreCase : false ,\n\t\t\t\tmultiline : false ,\n\t\t\t} ,\n\t\t) : $mol_regexp< $mol_regexp_groups< Source > > {\n\n\t\t\tlet flags = 'gsu'\n\t\t\tif( multiline ) flags += 'm'\n\t\t\tif( ignoreCase ) flags += 'i'\n\n\t\t\tif( typeof source === 'number' ) {\n\n\t\t\t\tconst src = `\\\\u{${ source.toString(16) }}`\n\t\t\t\tconst regexp = new $mol_regexp< $mol_regexp_groups< Source > >( src , flags )\n\t\t\t\tregexp.generate = ()=> src\n\t\t\t\treturn regexp\n\n\t\t\t} if( typeof source === 'string' ) {\n\n\t\t\t\tconst src = source.replace( /[.*+?^${}()|[\\]\\\\]/g , '\\\\$&' ) \n\t\t\t\tconst regexp = new $mol_regexp< $mol_regexp_groups< Source > >( src , flags )\n\t\t\t\tregexp.generate = ()=> source\n\t\t\t\treturn regexp\n\n\t\t\t} else if( source instanceof $mol_regexp ) {\n\t\t\t\t\n\t\t\t\tconst regexp = new $mol_regexp<any>( source.source, flags, source.groups )\n\t\t\t\tregexp.generate = params => source.generate( params )\n\t\t\t\treturn regexp\n\t\t\t\t\n\t\t\t} if( source instanceof RegExp ) {\n\n\n\t\t\t\tconst test = new RegExp( '|' + source.source )\n\t\t\t\tconst groups = Array.from(\n\t\t\t\t\t{ length : test.exec('')!.length - 1 } ,\n\t\t\t\t\t( _ , i )=> String( i + 1 ) ,\n\t\t\t\t)\n\n\t\t\t\tconst regexp = new $mol_regexp< $mol_regexp_groups< Source > >(\n\t\t\t\t\tsource.source ,\n\t\t\t\t\tsource.flags ,\n\t\t\t\t\tgroups as any ,\n\t\t\t\t)\n\t\t\t\t\n\t\t\t\tregexp.generate = ()=> ''\n\n\t\t\t\treturn regexp\n\n\t\t\t} if( Array.isArray( source ) ) {\n\n\t\t\t\tconst patterns = source.map( src => Array.isArray( src )\n\t\t\t\t\t? $mol_regexp.optional( src as any )\n\t\t\t\t\t: $mol_regexp.from( src )\n\t\t\t\t)\n\t\t\t\t\n\t\t\t\tconst chunks = patterns.map( pattern => pattern.source )\n\t\t\t\t\n\t\t\t\tconst groups = [] as ( Extract< keyof $mol_regexp_groups< Source > , string > )[]\n\n\t\t\t\tlet index = 0\n\t\t\n\t\t\t\tfor( const pattern of patterns ) {\n\t\t\t\t\t\n\t\t\t\t\tfor( let group of pattern.groups ) {\n\t\t\t\t\t\tif( Number( group ) >= 0 ) {\n\t\t\t\t\t\t\tgroups.push( String( index ++ ) as any )\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tgroups.push( group )\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst regexp = new $mol_regexp( chunks.join( '' ) , flags , groups )\n\t\t\t\t\n\t\t\t\tregexp.generate = params => {\n\t\t\t\t\tlet res = ''\n\t\t\t\t\tfor( const pattern of patterns ) {\n\t\t\t\t\t\tlet sub = pattern.generate( params )\n\t\t\t\t\t\tif( sub === null ) return ''\n\t\t\t\t\t\tres += sub\n\t\t\t\t\t}\n\t\t\t\t\treturn res\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn regexp\n\t\t\n\t\t\t} else {\n\n\t\t\t\tconst groups = [] as string[]\n\n\t\t\t\tconst chunks = Object.keys( source ).map( name => {\n\n\t\t\t\t\tgroups.push( name )\n\n\t\t\t\t\tconst regexp = $mol_regexp.from( (source as any)[ name ] )\n\t\t\t\t\tgroups.push( ... regexp.groups )\n\t\t\t\t\t\n\t\t\t\t\treturn `(${regexp.source})`\n\n\t\t\t\t} ) as any as readonly[ $mol_regexp_source , ... $mol_regexp_source[] ]\n\n\t\t\t\tconst regexp = new $mol_regexp< $mol_regexp_groups< Source > >(\n\t\t\t\t\t`(?:${ chunks.join('|') })` ,\n\t\t\t\t\tflags ,\n\t\t\t\t\tgroups as any[] ,\n\t\t\t\t)\n\t\t\t\t\n\t\t\t\tconst validator = new RegExp( '^' + regexp.source + '$', flags )\n\t\t\t\tregexp.generate = (params: any) => {\n\t\t\t\t\t\n\t\t\t\t\tfor( let option in source ) {\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( option in params ) {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif( typeof params[ option ] === 'boolean' ) {\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tif( !params[ option as any ] ) continue\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tconst str = String( params[ option ] )\n\t\t\t\t\t\t\t\tif( str.match( validator ) ) return str\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t$mol_fail( new Error( `Wrong param: ${option}=${str}` ) )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif( typeof (source as any)[ option ] !== 'object' ) continue\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst res = $mol_regexp.from( (source as any)[ option ] ).generate( params )\n\t\t\t\t\t\tif( res ) return res\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn regexp\n\n\t\t\t}\n\t\n\t\t}\n\n\t\t/** Makes regexp which includes only unicode category */\n\t\tstatic unicode_only( ... category: $mol_unicode_category ) {\n\t\t\treturn new $mol_regexp(\n\t\t\t\t`\\\\p{${ category.join( '=' ) }}`\n\t\t\t)\n\t\t}\n\n\t\t/** Makes regexp which excludes unicode category */\n\t\tstatic unicode_except( ... category: $mol_unicode_category ) {\n\t\t\treturn new $mol_regexp(\n\t\t\t\t`\\\\P{${ category.join( '=' ) }}`\n\t\t\t)\n\t\t}\n\n\t\tstatic char_range(\n\t\t\tfrom: number,\n\t\t\tto: number,\n\t\t): $mol_regexp<{}> {\n\t\t\treturn new $mol_regexp(\n\t\t\t\t`${ $mol_regexp.from( from ).source }-${ $mol_regexp.from( to ).source }`\n\t\t\t)\n\t\t}\n\n\t\tstatic char_only(\n\t\t\t... allowed: readonly [ $mol_regexp_source, ... $mol_regexp_source[] ]\n\t\t): $mol_regexp<{}> {\n\t\t\tconst regexp = allowed.map( f => $mol_regexp.from( f ).source ).join('')\n\t\t\treturn new $mol_regexp( `[${ regexp }]` )\n\t\t}\n\n\t\tstatic char_except(\n\t\t\t... forbidden: readonly [ $mol_regexp_source, ... $mol_regexp_source[] ]\n\t\t): $mol_regexp<{}> {\n\t\t\tconst regexp = forbidden.map( f => $mol_regexp.from( f ).source ).join('')\n\t\t\treturn new $mol_regexp( `[^${ regexp }]` )\n\t\t}\n\t\t\n\t\tstatic decimal_only = $mol_regexp.from( /\\d/gsu )\n\t\tstatic decimal_except = $mol_regexp.from( /\\D/gsu )\n\t\t\n\t\tstatic latin_only = $mol_regexp.from( /\\w/gsu )\n\t\tstatic latin_except = $mol_regexp.from( /\\W/gsu )\n\t\t\n\t\tstatic space_only = $mol_regexp.from( /\\s/gsu )\n\t\tstatic space_except = $mol_regexp.from( /\\S/gsu )\n\t\t\n\t\tstatic word_break_only = $mol_regexp.from( /\\b/gsu )\n\t\tstatic word_break_except = $mol_regexp.from( /\\B/gsu )\n\t\t\n\t\tstatic tab = $mol_regexp.from( /\\t/gsu )\n\t\tstatic slash_back = $mol_regexp.from( /\\\\/gsu )\n\t\tstatic nul = $mol_regexp.from( /\\0/gsu )\n\t\t\n\t\tstatic char_any = $mol_regexp.from( /./gsu )\n\t\tstatic begin = $mol_regexp.from( /^/gsu )\n\t\tstatic end = $mol_regexp.from( /$/gsu )\n\t\tstatic or = $mol_regexp.from( /|/gsu )\n\t\t\n\t\tstatic line_end = $mol_regexp.from({\n\t\t\twin_end: [ [ '\\r' ], '\\n' ],\n\t\t\tmac_end: '\\r',\n\t\t})\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\tconst { begin, end, latin_only, or, optional, repeat_greedy } = $mol_regexp\n\n\texport let $mol_view_tree2_prop_signature = $mol_regexp.from([\n\t\tbegin,\n\t\t{ name: repeat_greedy( latin_only, 1 ) },\n\t\t{ key: optional([ '*', repeat_greedy( latin_only, 0 ) ]) },\n\t\t{ next: optional([ '?', repeat_greedy( latin_only, 0 ) ]) },\n\t\tend,\n\t])\n\t\n}\n","namespace $ {\n\texport function $mol_view_tree2_prop_parts(this: $, prop: $mol_tree2 ) {\n\t\tconst groups = [ ...prop.type.matchAll( $mol_view_tree2_prop_signature ) ][0]?.groups\n\n\t\tif (! groups) {\n\t\t\tthis.$mol_fail(\n\t\t\t\t$mol_view_tree2_error_str`Required prop like some*? at ${prop.span}`\n\t\t\t)\n\t\t}\n\n\t\treturn {\n\t\t\tname: groups.name,\n\t\t\tkey: groups.key,\n\t\t\tnext: groups.next ? '?' : ''\n\t\t}\n\t}\n}\n","namespace $ {\n\tconst regular_regex = /^\\w+$/\n\n\texport function $mol_view_tree2_prop_quote(name: $mol_tree2) {\n\t\tif (regular_regex.test(name.value)) return name\n\n\t\treturn name.data(JSON.stringify(name.value))\n\t}\n}\n","namespace $ {\n\tconst class_regex = /^[$A-Z][$\\w<>\\[\\]()\"'?|]+$/\n\n\texport function $mol_view_tree2_class_match(klass?: $mol_tree2) {\n\t\tif (! klass?.type) return false\n\t\tif (klass.type === 'NaN' || klass.type === 'Infinity') return false\n\n\t\treturn class_regex.test(klass.type)\n\t}\n}\n","namespace $ {\n\tconst err = $mol_view_tree2_error_str\n\n\texport function $mol_view_tree2_class_super(\n\t\tthis: $,\n\t\tklass: $mol_tree2\n\t) {\n\t\tif( ! $mol_view_tree2_class_match( klass ) ) return this.$mol_fail(\n\t\t\terr `Wrong class name at ${klass.span}` \n\t\t)\n\n\t\tconst superclass = klass.kids.length === 1 ? klass.kids[0] : undefined\n\n\t\tif (! superclass) return this.$mol_fail(\n\t\t\terr`No super class at ${klass.span}`\n\t\t)\n\n\t\tif( ! $mol_view_tree2_class_match( superclass ) ) return this.$mol_fail(\n\t\t\terr`Wrong super class name ${JSON.stringify(superclass.type).replace(/(^\"|\"$)/g, \"\")} at ${superclass.span}`\n\t\t)\n\n\t\treturn superclass\n\t}\n}\n","namespace $ {\n\tconst err = $mol_view_tree2_error_str\n\ttype Context = { factory?: $mol_tree2 }\n\n\texport function $mol_view_tree2_class_props(\n\t\tthis: $,\n\t\tklass : $mol_tree2,\n\t) {\n\t\tlet props = this.$mol_view_tree2_class_super( klass )\n\t\t\n\t\t// ! syntax to *\n\t\tprops = props.clone(\n\t\t\tprops.hack({\n\t\t\t\t'': ( node, belt )=> {\n\t\t\t\t\tconst normal = node.type.replace( /!\\w+/, '*' )\n\t\t\t\t\tif( node.type === normal ) return [ node.clone( node.hack( belt ) ) ]\n\t\t\t\t\treturn [ node.struct( normal, node.hack( belt ) ) ]\n\t\t\t\t}\n\t\t\t})\n\t\t)\n\n\t\tconst props_inner = {} as Record<string, $mol_tree2>\n\n\t\tconst add_inner = ( prop: $mol_tree2 ) => {\n\t\t\tconst { name } = this.$mol_view_tree2_prop_parts(prop)\n\t\t\tconst prev = props_inner[name]\n\t\t\tif (prev && prev.kids[0]?.toString() !== prop.kids[0]?.toString()) {\n\t\t\t\tthis.$mol_fail(err`Need an equal default values at ${prev.span} vs ${prop.span}`)\n\t\t\t}\n\t\t\tprops_inner[name] = prop\n\t\t}\n\n\t\tconst upper = (operator: $mol_tree2, belt: $mol_tree2_belt<Context>, context: Context) => {\n\t\t\tconst prop = this.$mol_view_tree2_child( operator )\n\t\t\tconst defs = prop.hack( belt, { factory: prop } )\n\t\t\tif( defs.length ) add_inner( prop.clone( defs ) )\n\n\t\t\treturn [ operator.clone([ prop.clone([]) ]) ]\n\t\t}\n\n\t\tconst props_root = props.hack({\n\t\t\t'<=': upper,\n\n\t\t\t'<=>': upper,\n\n\t\t\t'^': ( operator, belt, context) => {\n\t\t\t\tif (operator.kids.length === 0) return [ operator ]\n\t\t\t\treturn upper(operator, belt, context)\n\t\t\t},\n\n\t\t\t'': (left, belt, context) => {\n\t\t\t\tlet right\n\t\t\t\tconst operator = left.kids[0]\n\n\t\t\t\tif (operator?.type === '=>' && context.factory) {\n\t\t\t\t\tright = operator.kids[0]\n\t\t\t\t\tif (! right) this.$mol_fail(err`Need a child ${operator.span}`)\n\t\t\t\t\tif (! context.factory) this.$mol_fail(err`Need a parent ${left.span}`)\n\n\t\t\t\t\tadd_inner(right.clone([\n\t\t\t\t\t\tright.struct('=', [\n\t\t\t\t\t\t\tcontext.factory.clone([ left.clone([]) ]),\n\t\t\t\t\t\t]),\n\t\t\t\t\t]))\n\t\t\t\t}\n\n\t\t\t\tif (right) context = { factory: right.clone([]) }\n\t\t\t\telse if( operator && ! context.factory && $mol_view_tree2_class_match( operator ) ) {\n\t\t\t\t\tcontext = { factory: left.clone([]) }\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst hacked = left.clone( left.hack( belt, context ) )\n\n\t\t\t\treturn [ hacked ]\n\t\t\t}\n\n\t\t}, { factory: undefined } as Context)\n\n\t\tfor (const prop of props_root ) add_inner(prop)\n\t\t\n\t\treturn Object.values(props_inner)\n\t}\n\n}\n","namespace $ {\n\tconst err = $mol_view_tree2_error_str\n\t\n\texport function $mol_view_tree2_value_type( this: $, val : $mol_tree2 ) {\n\t\tswitch( val.type ) {\n\t\t\tcase 'true' : return 'bool'\n\t\t\tcase 'false' : return 'bool'\n\t\t\tcase 'null' : return 'null'\n\t\t\tcase '*' : return 'dict'\n\t\t\tcase '@' : return 'locale'\n\t\t\tcase '' : return 'string'\n\t\t\tcase '<=' : return 'get'\n\t\t\tcase '<=>' : return 'bind'\n\t\t\tcase '=>' : return 'put'\n\t\t}\n\n\t\tconst first_char = val.type && val.type[0]\n\n\t\tif (first_char === '/') return 'list'\n\t\tif( Number( val.type ).toString() == val.type ) return 'number'\n\t\tif (/^[$A-Z]/.test( first_char )) return 'object'\n \n\t\treturn this.$mol_fail(\n\t\t\terr`Unknown value type ${val.type} at ${val.span}`\n\t\t)\n\t}\t\n}\n","namespace $ {\n\n\tconst err = $mol_view_tree2_error_str\n\n\texport function $mol_view_tree2_value(\n\t\tthis: $,\n\t\tvalue: $mol_tree2,\n\t) {\n\t\tconst type = value.type\n\t\tconst kids = value.kids\n\n\t\tif (type === '') {\n\t\t\tif (kids.length === 0) return value.data(JSON.stringify(value.value))\n\n\t\t\treturn value.data(JSON.stringify(kids.map(node => node.value).join('\\n')))\n\t\t}\n\n\t\tif (kids.length !== 0) return this.$mol_fail(\n\t\t\terr`Kids are not allowed at ${value.span}, use ${example}`\n\t\t)\n\n\t\tif (type === 'false' || type === 'true') return value.data(type)\n\n\t\tif (type === 'null') return value.data(type)\n\n\t\tif (Number(type).toString() === type.replace(/^\\+/, '')) return value.data(type)\n\n\t\treturn this.$mol_fail(\n\t\t\terr`Value ${value.toString()} not allowed at ${value.span}, use ${example}`\n\t\t)\n\t}\n\n\tconst example = new $mol_view_tree2_error_suggestions([\n\t\t'false',\n\t\t'true',\n\t\t'123',\n\t\t'null',\n\t\t'\\\\some'\n\t])\n}\n","namespace $ {\n\texport function $mol_view_tree2_value_number(type: string) {\n\t\treturn type.match(/[\\+\\-]*NaN/) || !Number.isNaN( Number( type ) )\n\t}\n}\n","namespace $ {\n\n\texport function $mol_tree2_js_to_text( this: $, js: $mol_tree2 ) {\n\n\t\tfunction sequence( open?: string, separator?: string, close?: string ) {\n\t\t\treturn ( input: $mol_tree2, belt: $mol_tree2_belt< never > )=> [\n\t\t\t\tinput.struct( 'line', [\n\t\t\t\t\t... open ? [ input.data( open ) ] : [],\n\t\t\t\t\tinput.struct( separator && input.kids.length > 2 ? 'indent' : 'line',\n\t\t\t\t\t\t( [] as $mol_tree2[] ).concat(\n\t\t\t\t\t\t\t... input.kids.map( ( kid, index ) => [\n\t\t\t\t\t\t\t\tkid.struct( 'line', [\n\t\t\t\t\t\t\t\t\t... kid.list([ kid ]).hack( belt ),\n\t\t\t\t\t\t\t\t\t... ( separator && index < input.kids.length - 1 ) ? [ input.data( separator ) ] : [],\n\t\t\t\t\t\t\t\t] ),\n\t\t\t\t\t\t\t] ),\n\t\t\t\t\t\t)\n\t\t\t\t\t),\n\t\t\t\t\t... close ? [ input.data( close ) ] : [],\n\t\t\t\t] ),\n\t\t\t]\n\t\t}\n\n\t\tfunction block( open?: string, separator?: string, close?: string ) {\n\t\t\treturn ( input: $mol_tree2, belt: $mol_tree2_belt< never > )=> [\n\t\t\t\t... open ? [ input.data( open ) ] : [],\n\t\t\t\t... input.kids.length === 0 ? [] : [ input.struct( 'indent',\n\t\t\t\t\tinput.kids.map( ( kid, index ) =>\n\t\t\t\t\t\tkid.struct( 'line', [\n\t\t\t\t\t\t\t... kid.list([ kid ]).hack( belt ),\n\t\t\t\t\t\t\t... ( separator ) ? [ input.data( separator ) ] : [],\n\t\t\t\t\t\t] ),\n\t\t\t\t\t),\n\t\t\t\t) ],\n\t\t\t\t... close ? [ input.data( close ) ] : [],\n\t\t\t]\n\t\t}\n\n\t\tfunction duplet( open?: string, separator?: string, close?: string ) {\n\t\t\treturn ( input: $mol_tree2, belt: $mol_tree2_belt< never > )=> [\n\t\t\t\tinput.struct( 'line', [\n\t\t\t\t\t... open ? [ input.data( open ) ] : [],\n\t\t\t\t\t... input.list( input.kids.slice( 0, 1 ) ).hack( belt ),\n\t\t\t\t\t... ( separator && input.kids.length > 1 ) ? [ input.data( separator ) ] : [],\n\t\t\t\t\t... input.list( input.kids.slice( 1, 2 ) ).hack( belt ),\n\t\t\t\t\t... close ? [ input.data( close ) ] : [],\n\t\t\t\t] ),\n\t\t\t]\n\t\t}\n\n\t\tfunction triplet( open?: string, separator12?: string, separator23?: string, close?: string ) {\n\t\t\treturn ( input: $mol_tree2, belt: $mol_tree2_belt< never > )=> [\n\t\t\t\tinput.struct( 'line', [\n\t\t\t\t\t... open ? [ input.data( open ) ] : [],\n\t\t\t\t\t... input.list( input.kids.slice( 0, 1 ) ).hack( belt ),\n\t\t\t\t\t... ( separator12 && input.kids.length > 1 ) ? [ input.data( separator12 ) ] : [],\n\t\t\t\t\t... input.list( input.kids.slice( 1, 2 ) ).hack( belt ),\n\t\t\t\t\t... ( separator23 && input.kids.length > 2 ) ? [ input.data( separator23 ) ] : [],\n\t\t\t\t\t... input.list( input.kids.slice( 2, 3 ) ).hack( belt ),\n\t\t\t\t\t... close ? [ input.data( close ) ] : [],\n\t\t\t\t] ),\n\t\t\t]\n\t\t}\n\n\t\treturn js.list( js.hack({\n\n\t\t\t'+': sequence( '+' ),\n\t\t\t'-': sequence( '-' ),\n\t\t\t'!': sequence( '!' ),\n\t\t\t'~': sequence( '~' ),\n\n\t\t\t'return': sequence( 'return ' ),\n\t\t\t'break': sequence( 'break ' ),\n\t\t\t'continue': sequence( 'continue ' ),\n\t\t\t'yield': sequence( 'yield ' ),\n\t\t\t'yield*': sequence( 'yield* ' ),\n\t\t\t'await': sequence( 'await ' ),\n\t\t\t'void': sequence( 'void ' ),\n\t\t\t'delete': sequence( 'delete ' ),\n\t\t\t'typeof': sequence( 'typeof ' ),\n\t\t\t'new': sequence( 'new ' ),\n\t\t\t'...': sequence( '...' ),\n\n\t\t\t'@++': sequence( '', '', '++' ),\n\t\t\t'@--': sequence( '', '', '--' ),\n\t\t\t\n\t\t\t'(in)': sequence( '(', ' in ', ')' ),\n\t\t\t'(instanceof)': sequence( '(', ' instanceof ', ')' ),\n\n\t\t\t'(+)': sequence( '(', ' + ', ')' ),\n\t\t\t'(-)': sequence( '(', ' - ', ')' ),\n\t\t\t'(*)': sequence( '(', ' * ', ')' ),\n\t\t\t'(/)': sequence( '(', ' / ', ')' ),\n\t\t\t'(%)': sequence( '(', ' % ', ')' ),\n\t\t\t'(**)': sequence( '(', ' ** ', ')' ),\n\t\t\t\n\t\t\t'(<)': sequence( '(', ' < ', ')' ),\n\t\t\t'(<=)': sequence( '(', ' <= ', ')' ),\n\t\t\t'(>)': sequence( '(', ' > ', ')' ),\n\t\t\t'(>=)': sequence( '(', ' >= ', ')' ),\n\t\t\t'(==)': sequence( '(', ' == ', ')' ),\n\t\t\t'(!=)': sequence( '(', ' != ', ')' ),\n\t\t\t'(===)': sequence( '(', ' === ', ')' ),\n\t\t\t'(!==)': sequence( '(', ' !== ', ')' ),\n\t\t\t\n\t\t\t'(<<)': sequence( '(', ' << ', ')' ),\n\t\t\t'(>>)': sequence( '(', ' >> ', ')' ),\n\t\t\t'(>>>)': sequence( '(', ' >>> ', ')' ),\n\t\t\t'(&)': sequence( '(', ' & ', ')' ),\n\t\t\t'(|)': sequence( '(', ' | ', ')' ),\n\t\t\t'(^)': sequence( '(', ' ^ ', ')' ),\n\t\t\t\n\t\t\t'(&&)': sequence( '(', ' && ', ')' ),\n\t\t\t'(||)': sequence( '(', ' || ', ')' ),\n\t\t\t'(,)': sequence( '(', ', ', ')' ),\n\t\t\t'{;}': block( '{', ';', '}' ),\n\t\t\t';': block( '', ';', '' ),\n\t\t\t'[,]': sequence( '[', ', ', ']' ),\n\t\t\t'{,}': sequence( '{', ', ', '}' ),\n\n\t\t\t'()': sequence( '(', '', ')' ),\n\t\t\t'{}': block( '{', '', '}' ),\n\t\t\t\n\t\t\t'[]': ( input, belt )=> {\n\t\t\t\tconst first = input.kids[0]\n\t\t\t\tif( first.type ) return sequence( '[', '', ']' )( input, belt )\n\t\t\t\telse return [ input.data( '.' + first.text() ) ]\n\t\t\t},\n\t\t\t\n\t\t\t':': ( input, belt )=> {\n\t\t\t\tconst first = input.kids[0]\n\t\t\t\tif( first.type ) return duplet( '[', ']: ' )( input, belt )\n\t\t\t\telse return duplet( '', ': ' )( input, belt )\n\t\t\t},\n\t\t\t\n\t\t\t'let': duplet( 'let ', ' = ' ),\n\t\t\t'const': duplet( 'const ', ' = ' ),\n\t\t\t'var': duplet( 'var ', ' = ' ),\n\n\t\t\t'=': duplet( '', ' = ' ),\n\t\t\t'+=': duplet( '', ' += ' ),\n\t\t\t'-=': duplet( '', ' -= ' ),\n\t\t\t'*=': duplet( '', ' *= ' ),\n\t\t\t'/=': duplet( '', ' /= ' ),\n\t\t\t'%=': duplet( '', ' %= ' ),\n\t\t\t'**=': duplet( '', ' **= ' ),\n\t\t\t'<<=': duplet( '', ' <<= ' ),\n\t\t\t'>>=': duplet( '', ' >>= ' ),\n\t\t\t'>>>=': duplet( '', ' >>>= ' ),\n\t\t\t'&=': duplet( '', ' &= ' ),\n\t\t\t'|=': duplet( '', ' |= ' ),\n\t\t\t'^=': duplet( '', ' ^= ' ),\n\t\t\t'&&=': duplet( '', ' &&= ' ),\n\t\t\t'||=': duplet( '', ' ||= ' ),\n\n\t\t\t'=>': duplet( '', ' => ' ),\n\t\t\t'async=>': duplet( 'async ', ' => ' ),\n\t\t\t'function': triplet( 'function ' ),\n\t\t\t'function*': triplet( 'function* ' ),\n\t\t\t'async': triplet( 'async function ' ),\n\t\t\t'async*': triplet( 'async function* ' ),\n\n\t\t\t'class': triplet( 'class ', ' ' ),\n\t\t\t'extends': sequence( 'extends ', '', ' ' ),\n\n\t\t\t'if': triplet( 'if', ' ', 'else' ),\n\t\t\t'?:': triplet( '', ' ? ', ' : ' ),\n\n\t\t\t'.': ( input, belt )=> {\n\t\t\t\tconst first = input.kids[0]\n\t\t\t\tif( first.type ) return triplet( '[', ']' )( input, belt )\n\t\t\t\telse return [\n\t\t\t\t\tinput.data( first.text() ),\n\t\t\t\t\t... input.list( input.kids.slice(1) ).hack( belt ),\n\t\t\t\t]\n\t\t\t},\n\n\t\t\t'get': triplet( 'get [', ']' ),\n\t\t\t'set': triplet( 'set [', ']' ),\n\t\t\t'static': triplet( 'static [', ']' ),\n\t\t\t\n\t\t\t'/./': sequence(),\n\t\t\t'.global': sequence( 'g' ),\n\t\t\t'.multiline': sequence( 'm' ),\n\t\t\t'.ignoreCase': sequence( 'i' ),\n\t\t\t'.source': ( input, belt )=> [\n\t\t\t\tinput.data( '/' ),\n\t\t\t\tinput.data( JSON.stringify( input.text() ).slice( 1, -1 ) ),\n\t\t\t\tinput.data( '/' ),\n\t\t\t],\n\n\t\t\t'``': ( input, belt )=> {\n\t\t\t\treturn [\n\t\t\t\t\tinput.struct( 'line', [\n\t\t\t\t\t\tinput.data( '`' ),\n\t\t\t\t\t\t... ( [] as $mol_tree2[] ).concat( ... input.kids.map( kid => {\n\t\t\t\t\t\t\tif( kid.type ) {\n\t\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\t\tkid.data( '${' ),\n\t\t\t\t\t\t\t\t\t... kid.list([ kid ]).hack( belt ),\n\t\t\t\t\t\t\t\t\tkid.data( '}' ),\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\t\tinput.data( JSON.stringify( kid.text() ).slice( 1, -1 ) ),\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} ) ),\n\t\t\t\t\t\tinput.data( '`' ),\n\t\t\t\t\t] ),\n\t\t\t\t]\n\t\t\t},\n\n\t\t\t'': ( input, belt )=> {\n\n\t\t\t\t// string\n\t\t\t\tif( !input.type ) return [\n\t\t\t\t\tinput.data( JSON.stringify( input.text() ) ),\n\t\t\t\t]\n\t\t\t\t\n\t\t\t\t// variable\n\t\t\t\tif( /^[\\w$#][\\w0-9$]*$/i.test( input.type ) ) return [\n\t\t\t\t\tinput.data( input.type ),\n\t\t\t\t\t// ... input.hack( context ),\n\t\t\t\t]\n\t\t\t\t\n\t\t\t\t// number\n\t\t\t\tif( $mol_view_tree2_value_number(input.type) ) return [\n\t\t\t\t\tinput.data( input.type )\n\t\t\t\t]\n\n\t\t\t\t$mol_fail( new SyntaxError( `Wrong node type` ) )\n\n\t\t\t},\n\n\t\t}) )\n\n\t}\n\n}\n","namespace $ {\n\texport function $mol_tree2_span_imprint( tree: $mol_tree2 ) {\n\n\t\tconst sources = new Map< string, $mol_tree2 >()\n\n\t\tconst res = tree.clone( tree.hack({\n\t\t\t'': ( input, belt )=> {\n\n\t\t\t\tif( !sources.has( input.span.uri ) ) {\n\t\t\t\t\tsources.set( input.span.uri,\n\t\t\t\t\t\ttree.struct( input.span.uri, [\n\t\t\t\t\t\t\ttree.data( input.span.source )\n\t\t\t\t\t\t] ),\n\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\tinput.clone([\n\t\t\t\t\t\tinput.data( input.span.toString() ),\n\t\t\t\t\t\t... input.hack( belt ),\n\t\t\t\t\t]),\n\t\t\t\t]\n\n\t\t\t},\n\t\t}) )\n\n\t\treturn tree.clone([\n\t\t\t... sources.values(),\n\t\t\tres,\n\t\t])\n\n\t}\n}\n","namespace $ {\n\texport function $mol_tree2_span_reuse( tree: $mol_tree2 ) {\n\t\t\n\t\tconst sources = new Map< string, string >()\n\n\t\treturn tree.clone(\n\t\t\ttree.hack({\n\t\t\t\t'': ( input, belt )=> {\n\n\t\t\t\t\tif( input.type ) {\n\t\t\t\t\t\tsources.set( input.type, input.kids[0].text() )\n\t\t\t\t\t\treturn []\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\treturn input.hack({\n\t\t\t\t\t\t'': ( input, belt )=> {\n\t\t\t\t\t\t\tconst kids = input.list( input.kids.slice(1) ).hack( belt )\n\t\t\t\t\t\t\tconst [ _, uri, row, col, length ] = /^(.*)#(\\d+):(\\d+)\\/(\\d+)$/.exec( input.kids[0].text() )!\n\t\t\t\t\t\t\tconst span = new $mol_span( uri, sources.get( uri )!, Number( row ), Number( col ), Number( length ) )\n\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\tnew $mol_tree2( input.type , input.value , kids, span ),\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\n\t\t\t\t},\n\t\t\t}),\n\t\t)\n\n\t}\n}\n","namespace $ {\n\n\texport function $mol_tree2_text_to_string( this: $, text: $mol_tree2 ) {\n\n\t\tlet res = ''\n\t\t\n\t\tfunction visit( text: $mol_tree2, prefix: string, inline: boolean ) {\n\n\t\t\tif( text.type === 'indent' ) {\n\n\t\t\t\tif( inline ) res += '\\n'\n\t\t\t\t\n\t\t\t\tfor( let kid of text.kids ) {\n\t\t\t\t\tvisit( kid, prefix + '\\t', false )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( inline ) res += prefix\n\n\t\t\t} else if( text.type === 'line' ) {\n\t\t\t\t\n\t\t\t\tif( !inline ) res += prefix\n\t\t\t\t\n\t\t\t\tfor( let kid of text.kids ) {\n\t\t\t\t\tvisit( kid, prefix, true )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( !inline ) res += '\\n'\n\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tif( !inline ) res += prefix\n\t\t\t\t\n\t\t\t\tres += text.text()\n\t\t\t\t\n\t\t\t\tif( !inline ) res += '\\n'\n\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\tfor( let kid of text.kids ) {\n\t\t\tvisit( kid, '', false )\n\t\t}\n\t\t\n\t\treturn res\n\t}\n\n}\n","namespace $ {\n\n\tconst alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\n\n\texport function $mol_vlq_encode( val: number ): string {\n\n\t\tconst sign = val < 0 ? 1 : 0\n\t\tif( sign ) val = -val\n\n\t\tlet index = sign | ( ( val & 0b1111 ) << 1 )\n\t\tval >>>= 4\n\t\t\n\t\tlet res = ''\n\n\t\twhile( val ) {\n\n\t\t\tindex |= 1 << 5\n\t\t\tres += alphabet[ index ]\n\t\t\t\n\t\t\tif( !val ) break\n\t\t\t\n\t\t\tindex = val & 0b11111\n\t\t\tval >>>= 5\n\t\t\t\n\t\t}\n\n\t\tres += alphabet[ index ]\n\n\t\treturn res\n\t}\n\t\n}\n","namespace $ {\n\n\texport function $mol_tree2_text_to_sourcemap( this: $, tree: $mol_tree2 ) {\n\n\t\tlet col = 1\n\t\tlet prev_span: $mol_span | undefined\n\t\tlet prev_index = 0\n\t\tlet prev_col = 1\n\t\tlet mappings = ''\n\t\tlet line = [] as string[]\n\n\t\tconst file_indexes = new Map< string, number >()\n\t\tconst file_sources = new Map< string, string >()\n\n\t\tfunction span2index( span: $mol_span ) {\n\t\t\tif( file_indexes.has( span.uri ) ) return file_indexes.get( span.uri )!\n\t\t\tconst index = file_indexes.size\n\t\t\tfile_indexes.set( span.uri, index )\n\t\t\tfile_sources.set( span.uri, span.source )\n\t\t\treturn index\n\t\t}\n\t\t\n\t\tfunction next_line() {\n\t\t\tif( !line.length ) return\n\t\t\tmappings += line.join(',') + ';'\n\t\t\tline = []\n\t\t\tcol = 1\n\t\t\tprev_col = 1\n\t\t}\n\t\t\n\t\tfunction visit( text: $mol_tree2, prefix: number, inline: boolean ) {\n\n\t\t\tfunction indent() {\n\t\t\t\tcol += prefix\n\t\t\t}\n\t\n\t\t\tif( inline && text.type === 'indent' ) next_line()\n\t\t\t\n\t\t\tif( prev_span !== text.span || col === 1 ) {\n\n\t\t\t\tconst index = span2index( text.span )\n\t\t\t\t\n\t\t\t\tline.push(\n\t\t\t\t\t$mol_vlq_encode( col - prev_col ) + \n\t\t\t\t\t$mol_vlq_encode( index - prev_index ) +\n\t\t\t\t\t$mol_vlq_encode( text.span.row - ( prev_span?.row ?? 1 ) ) +\n\t\t\t\t\t$mol_vlq_encode( text.span.col - ( prev_span?.col ?? 1 ) )\n\t\t\t\t)\n\t\t\t\t\n\t\t\t\tprev_col = col\n\t\t\t\tprev_span = text.span\n\t\t\t\tprev_index = index\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tif( text.type === 'indent' ) {\n\n\t\t\t\tfor( let kid of text.kids ) {\n\t\t\t\t\tvisit( kid, prefix + 1, false )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( inline ) next_line()\n\n\t\t\t} else if( text.type === 'line' ) {\n\t\t\t\t\n\t\t\t\tif( !inline ) indent()\n\t\t\t\t\n\t\t\t\tfor( let kid of text.kids ) {\n\t\t\t\t\tvisit( kid, prefix, true )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( !inline ) next_line()\n\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tif( !inline ) indent()\n\t\t\t\t\n\t\t\t\tcol += text.text().length\n\t\t\t\t\n\t\t\t\tif( !inline ) next_line()\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\n\t\tfor( let kid of tree.kids ) {\n\t\t\tvisit( kid, 0, false )\n\t\t}\n\t\tnext_line()\n\t\t\n\t\tconst map: $mol_sourcemap_raw = {\n\t\t\tversion: 3,\n\t\t\tsources: [ ... file_sources.keys() ],\n\t\t\tsourcesContent: [ ... file_sources.values() ],\n\t\t\tmappings,\n\t\t}\n\n\t\treturn map\n\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_sourcemap_url(this: $, uri: string, type = 'js' as 'js' | 'css') {\n\t\tif (type === 'css') return `\\n/*# sourceMappingURL=${uri}*/`\n\t\treturn `\\n//# sourceMappingURL=${uri}`\n\t}\n\n}\n","namespace $ {\n\n\tconst prefix = '# sourceMappingURL=data:application/json,'\n\tconst end_comment = ' */'\n\n\texport function $mol_sourcemap_dataurl_decode(this: $, data: string) {\n\t\tconst index = data.lastIndexOf(prefix)\n\n\t\tif (index === -1) return undefined\n\n\t\tdata = data.substring(index + prefix.length)\n\n\t\tif (data.endsWith(end_comment)) data = data.substring(0, data.length - end_comment.length)\n\n\t\tconst decoded = this.decodeURIComponent(data)\n\n\t\ttry {\n\t\t\tconst map = JSON.parse(decoded) as $mol_sourcemap_raw | null\n\n\t\t\tif (! map) return undefined\n\n\t\t\tif (typeof map.mappings === 'string' && map.mappings.startsWith(';;')) {\n\t\t\t\tmap.mappings = map.mappings.substring(2)\n\t\t\t}\n\n\t\t\treturn map\n\t\t} catch (e) {\n\t\t\tif (e instanceof Error) e.message += ', origin=' + decoded\n\t\t\t$mol_fail_hidden(e)\n\t\t}\n\t}\n\n\texport function $mol_sourcemap_dataurl_encode(this: $, map: $mol_sourcemap_raw, type = 'js' as 'js' | 'css') {\n\t\tconst str = JSON.stringify( { ...map, mappings: ';;' + map.mappings } )\n\n\t\treturn this.$mol_sourcemap_url('data:application/json,' + this.encodeURIComponent( str ), type)\n\t}\n}\n","namespace $ {\n\n\texport function $mol_tree2_text_to_string_mapped( this: $, text: $mol_tree2, type: 'js' | 'css' ) {\n\t\t\n\t\tconst code = this.$mol_tree2_text_to_string( text )\n\t\tconst map = this.$mol_tree2_text_to_sourcemap( text )\n\n\t\tconst chunk = this.$mol_sourcemap_dataurl_encode( map, type )\n\t\treturn code + chunk\n\t}\n\n\texport function $mol_tree2_text_to_string_mapped_js( this: $, text: $mol_tree2 ) {\n\t\treturn this.$mol_tree2_text_to_string_mapped( text, 'js' )\n\t}\n\t\n\texport function $mol_tree2_text_to_string_mapped_css( this: $, text: $mol_tree2 ) {\n\t\treturn this.$mol_tree2_text_to_string_mapped( text, 'css')\n\t}\n\t\n}\n","namespace $ {\n\texport function $mol_guard_defined<T>(value: T): value is NonNullable<T> {\n\t\treturn value !== null && value !== undefined\n\t}\n}\n","namespace $ {\n\n\texport function $mol_tree2_text_to_sourcemap_vis( this: $, text: $mol_tree2 ) {\n\t\t\n\t\tconst code = this.$mol_tree2_text_to_string( text )\n\t\tconst map = this.$mol_tree2_text_to_sourcemap( text )\n\t\t\n\t\tconst uri = [\n\t\t\t'https://sokra.github.io/source-map-visualization/#base64',\n\t\t\tbtoa( code ),\n\t\t\tbtoa( JSON.stringify( map ) ),\n\t\t\t... map.sourcesContent?.filter($mol_guard_defined).map( btoa ) ?? [],\n\t\t].join( ',' )\n\n\t\treturn uri\n\n\t}\n\n}\n","namespace $ {\n\t\n\t/** Makes JSON from json.tree. */\n\texport function $mol_tree2_to_json(\n\t\tthis: $,\n\t\ttree: $mol_tree2,\n\t): unknown {\n\n\t\tif( !tree.type ) {\n\t\t\tif( tree.kids.every( kid => !kid.type ) ) return tree.text()\n\t\t\tif( tree.kids.length !== 1 ) this.$mol_fail( new Error( `Multiple json root at ${tree.span}` ) )\n\t\t\treturn this.$mol_tree2_to_json(tree.kids[0] )\n\t\t}\n\t\t\n\t\tif( tree.type === '-' ) return undefined\n\t\tif( tree.type === 'true' ) return true\n\t\tif( tree.type === 'false' ) return false\n\t\tif( tree.type === 'null' ) return null\n\t\t\n\t\tif( tree.type === '*' ) {\n\t\t\t\n\t\t\tconst obj = {} as Record< string, unknown >\n\t\t\t\n\t\t\tfor( const kid of tree.kids ) {\n\t\t\t\tif( kid.type === '-' ) continue\n\t\t\t\t\n\t\t\t\tconst key = kid.type || kid.clone( kid.kids.slice( 0, -1 ) ).text()\n\t\t\t\tconst val = this.$mol_tree2_to_json( kid.kids[ kid.kids.length - 1 ] )\n\t\t\t\t\n\t\t\t\tif( val !== undefined ) obj[ key ] = val\n\t\t\t}\n\t\t\t\n\t\t\treturn obj\n\t\t}\n\t\t\n\t\tif( tree.type === '/' ) {\n\t\t\t\n\t\t\tconst res = [] as unknown[]\n\t\t\t\n\t\t\tfor( const kid of tree.kids ) {\n\t\t\t\tif( kid.type === '-' ) continue\n\t\t\t\t\n\t\t\t\tvar val = this.$mol_tree2_to_json( kid )\n\t\t\t\tif( val !== undefined ) res.push( val )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\treturn res\n\t\t}\n\t\t\n\t\tconst numb = Number( tree.type ) \n\t\tif( !Number.isNaN( numb ) || tree.type === 'NaN' ) return numb\n\t\t\n\t\tthis.$mol_fail( new Error( `Unknown json type (${tree.type}) at ${tree.span}` ) )\n\t}\n\n}\n","namespace $ {\n\t\n\texport async function $mol_tree2_to_stream(\n\t\ttree: $mol_tree2,\n\t\toutput: {\n\t\t\twrite( chunk: string ): boolean\n\t\t\tonce?( event: 'drain', cb: ()=> void ): void\n\t\t},\n\t\tprefix = '',\n\t) {\n\n\t\tconst pause = ()=> {\n\t\t\treturn new Promise( done => {\n\t\t\t\toutput.once!( 'drain', ()=> done( null ) )\n\t\t\t} )\n\t\t}\n\n\t\tlet out = ''\n\n\t\tif( tree.type.length ) {\n\t\t\t\n\t\t\tif( !prefix.length ) {\n\t\t\t\tprefix = \"\\t\";\n\t\t\t}\n\n\t\t\tout += tree.type\n\n\t\t\tif( tree.kids.length == 1 ) {\n\t\t\t\toutput.write( out + ' ' )\n\t\t\t\tawait $mol_tree2_to_stream( tree.kids[ 0 ], output, prefix )\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tout += \"\\n\"\n\n\t\t} else if( tree.value.length || prefix.length ) {\n\n\t\t\tout += \"\\\\\" + tree.value + \"\\n\"\n\n\t\t}\n\n\t\toutput.write( out )\n\n\t\tfor( const kid of tree.kids ) {\n\t\t\tif( !output.write( prefix ) ) await pause()\n\t\t\tawait $mol_tree2_to_stream( kid, output, prefix + \"\\t\" )\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\t\n\texport function $mol_tree2_xml_from_dom( dom: Node ): $mol_tree2 {\n\t\t\n\t\tswitch( dom.nodeType ) {\n\t\t\t\n\t\t\tcase dom.DOCUMENT_NODE: {\n\t\t\t\tlet kids = [] as $mol_tree2[]\n\t\t\t\t\n\t\t\t\tfor( const kid of dom.childNodes ) {\n\t\t\t\t\tkids.push( $mol_tree2_xml_from_dom( kid ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn $mol_tree2.list( kids )\n\t\t\t}\n\t\t\t\n\t\t\tcase dom.PROCESSING_INSTRUCTION_NODE: {\n\t\t\t\treturn $mol_tree2.struct( '?', [\n\t\t\t\t\t$mol_tree2.struct( dom.nodeName, \n\t\t\t\t\t\tdom.nodeValue!.split(' ').map( chunk => {\n\t\t\t\t\t\t\tconst [, name, value ] = /^(.*?)(?:=\"(.*?)\")?$/.exec( chunk )!\n\t\t\t\t\t\t\tconst kids = value ? [ $mol_tree2.data( value ) ] : []\n\t\t\t\t\t\t\treturn $mol_tree2.struct( name, kids )\n\t\t\t\t\t\t} )\n\t\t\t\t\t)\n\t\t\t\t] )\n\t\t\t}\n\t\t\t\n\t\t\tcase dom.DOCUMENT_TYPE_NODE: {\n\t\t\t\tconst dom2 = dom as DocumentType\n\t\t\t\treturn $mol_tree2.struct( '!', [\n\t\t\t\t\t$mol_tree2.struct( 'DOCTYPE', [ \n\t\t\t\t\t\t$mol_tree2.struct( dom2.name )\n\t\t\t\t\t] )\n\t\t\t\t] )\n\t\t\t}\n\t\t\t\n\t\t\tcase dom.ELEMENT_NODE: {\n\t\t\t\tlet kids = [] as $mol_tree2[]\n\t\t\t\t\n\t\t\t\tfor( const attr of ( dom as Element ).attributes ) {\n\t\t\t\t\tkids.push(\n\t\t\t\t\t\t$mol_tree2.struct( '@', [\n\t\t\t\t\t\t\t$mol_tree2.struct( attr.nodeName, [\n\t\t\t\t\t\t\t\t$mol_tree2.data( attr.nodeValue! )\n\t\t\t\t\t\t\t] )\n\t\t\t\t\t\t] )\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfor( const kid of dom.childNodes ) {\n\t\t\t\t\tconst k = $mol_tree2_xml_from_dom( kid ) \n\t\t\t\t\tif( k.type || k.value ) kids.push( k )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn $mol_tree2.struct( dom.nodeName, kids )\n\t\t\t}\n\t\t\t\n\t\t\tcase dom.COMMENT_NODE: {\n\t\t\t\treturn $mol_tree2.struct( '--', [\n\t\t\t\t\t$mol_tree2.data( dom.nodeValue! )\n\t\t\t\t] )\n\t\t\t}\n\t\t\t\n\t\t\tcase dom.TEXT_NODE: {\n\t\t\t\tif( !dom.nodeValue!.trim() ) return $mol_tree2.list([])\n\t\t\t\treturn $mol_tree2.data(\n\t\t\t\t\tdom.nodeValue!.replace( /\\s+/g, ' ' )\n\t\t\t\t)\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\treturn $mol_fail( new Error( `Unsupported node ${ dom.nodeName }` ) )\n\t}\n\t\n}\n","namespace $ {\n\t\n\tconst mapping = {\n\t\t'<' : '&lt;' ,\n\t\t'>' : '&gt;' ,\n\t\t'\"' : '&quot;' ,\n\t\t'&' : '&amp;' ,\n\t}\n\t\n\texport function $mol_html_encode( text : string ) {\n\t\treturn text.replace( /[&<\">]/gi , str => mapping[ str as keyof typeof mapping ] )\n\t}\n\t\n}\n","namespace $ {\n\n\tfunction attrs_belt( separator : string ) : Record< string, $mol_tree2_hack<never> > {\n\t\treturn {\n\n\t\t\t'': ( input )=> [\n\t\t\t\tinput.data( ' ' ),\n\t\t\t\tinput.data( $mol_html_encode( input.type ) ),\n\t\t\t\t... input.value ? [\n\t\t\t\t\tinput.data( '\"' ),\n\t\t\t\t\tinput.data( $mol_html_encode( input.value ) ),\n\t\t\t\t\tinput.data( '\"' ),\n\t\t\t\t] : [],\n\t\t\t\t... input.hack({\n\n\t\t\t\t\t'': ( input )=> {\n\n\t\t\t\t\t\tif( !input.type ) return [\n\t\t\t\t\t\t\tinput.data( separator ),\n\t\t\t\t\t\t\tinput.data( '\"' ),\n\t\t\t\t\t\t\tinput.data( $mol_html_encode( input.text() ) ),\n\t\t\t\t\t\t\tinput.data( '\"' ),\n\t\t\t\t\t\t]\n\n\t\t\t\t\t\t$mol_fail( new SyntaxError( 'Wrong attribute value' ) )\n\n\t\t\t\t\t},\n\n\t\t\t\t}),\n\t\t\t],\n\n\t\t}\n\t}\n\t\n\texport function $mol_tree2_xml_to_text( xml: $mol_tree2 ) {\n\t\treturn xml.list(\n\t\t\txml.hack({\n\n\t\t\t\t'@': ( input, belt )=> [],\n\n\t\t\t\t'--': ( input, belt )=> [\n\t\t\t\t\txml.struct( 'line', [\n\t\t\t\t\t\tinput.data( '<!-- ' ),\n\t\t\t\t\t\t... input.hack( belt ),\n\t\t\t\t\t\tinput.data( ' -->' ),\n\t\t\t\t\t] ),\n\t\t\t\t],\n\n\t\t\t\t'?': ( input, belt )=> [\n\t\t\t\t\txml.struct( 'line', [\n\t\t\t\t\t\tinput.data( '<?' ),\n\t\t\t\t\t\tinput.kids[0].data( input.kids[0].type ),\n\t\t\t\t\t\t... input.kids[0].hack( attrs_belt( '=' ) ),\n\t\t\t\t\t\tinput.data( '?>' ),\n\t\t\t\t\t] ),\n\t\t\t\t],\n\n\t\t\t\t'!': ( input, belt )=> [\n\t\t\t\t\txml.struct( 'line', [\n\t\t\t\t\t\tinput.data( '<!' ),\n\t\t\t\t\t\tinput.kids[0].data( input.kids[0].type ),\n\t\t\t\t\t\t... input.kids[0].hack( attrs_belt( ' ' ) ),\n\t\t\t\t\t\tinput.data( '>' ),\n\t\t\t\t\t] ),\n\t\t\t\t],\n\n\t\t\t\t'': ( input, belt )=> {\n\n\t\t\t\t\tif( !input.type ) return [\n\t\t\t\t\t\tinput.data( $mol_html_encode( input.text() ) ),\n\t\t\t\t\t]\n\n\t\t\t\t\tconst attrs = input.select( '@', null ).hack( attrs_belt( '=' ) )\n\t\t\t\t\tconst content = input.hack( belt )\n\t\t\t\t\t\n\t\t\t\t\treturn [\n\t\t\t\t\t\tinput.struct( 'line', [\n\t\t\t\t\t\t\tinput.data( `<` ),\n\t\t\t\t\t\t\tinput.data( input.type ),\n\t\t\t\t\t\t\t... attrs,\n\t\t\t\t\t\t\t... content.length ? [\n\t\t\t\t\t\t\t\tinput.data( `>` ),\n\t\t\t\t\t\t\t\tinput.struct( 'indent', content ),\n\t\t\t\t\t\t\t\tinput.data( `</` ),\n\t\t\t\t\t\t\t\tinput.data( input.type ),\n\t\t\t\t\t\t\t\tinput.data( `>` ),\n\t\t\t\t\t\t\t] : [\n\t\t\t\t\t\t\t\tinput.data( ` />` ),\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t] ),\n\t\t\t\t\t]\n\n\t\t\t\t},\n\n\t\t\t}),\n\t\t)\n\t}\n\n}\n"]}
1
+ {"version":3,"sources":["-","../../../../mam.ts","../../../../mol/ambient/ambient.ts","../../../../mol/delegate/delegate.ts","../../../../mol/owning/owning.ts","../../../../mol/fail/fail.ts","../../../../mol/fail/hidden/hidden.ts","../../../../mol/func/name/name.ts","../../../../mol/object2/object2.ts","../../../../mol/span/span.ts","../../../../mol/error/syntax/syntax.ts","../../../../mol/tree2/from/string/string.ts","../../../../mol/tree2/to/string/string.ts","../../../../mol/tree2/tree2.ts","../../../../mol/tree2/from/json/json.ts","../../../../mol/view/tree2/error.ts","../../../../mol/view/tree2/child.ts","../../../../mol/view/tree2/classes.ts","../../../../mol/view/tree2/normalize.ts","../../../../mol/regexp/regexp.ts","../../../../mol/view/tree2/prop/signature.ts","../../../../mol/view/tree2/prop/parts.ts","../../../../mol/view/tree2/prop/quote.ts","../../../../mol/view/tree2/class/match.ts","../../../../mol/view/tree2/class/super.ts","../../../../mol/view/tree2/class/props.ts","../../../../mol/view/tree2/value/type.ts","../../../../mol/view/tree2/value/value.ts","../../../../mol/view/tree2/value/number.ts","../../../../mol/tree2/js/to/text/text.ts","../../../../mol/tree2/span/imprint/imprint.ts","../../../../mol/tree2/span/reuse/reuse.ts","../../../../mol/tree2/text/to/string/string.ts","../../../../mol/vlq/vlq.ts","../../../../mol/tree2/text/to/sourcemap/sourcemap.ts","../../../../mol/sourcemap/url/url.ts","../../../../mol/sourcemap/dataurl/dataurl.ts","../../../../mol/tree2/text/to/string/mapped/mapped.ts","../../../../mol/guard/defined.ts","../../../../mol/tree2/text/to/sourcemap/vis/vis.ts","../../../../mol/tree2/to/json/json.ts","../../../../mol/tree2/to/stream/stream.ts","../../../../mol/tree2/xml/from/dom/dom.ts","../../../../mol/html/encode/encode.ts","../../../../mol/tree2/xml/to/text/text.ts"],"names":[],"mappings":"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","sourcesContent":[null,"Error.stackTraceLimit = 50;\n\ndeclare let _$_: { new(): {} } & typeof globalThis\ndeclare class $ extends _$_ {}\n\nnamespace $ {\n\texport type $ = typeof $$\n\texport declare class $$ extends $ {}\n\tnamespace $$ {\n\t\texport type $$ = $\n\t}\n}\n\nmodule.exports = $\n","namespace $ {\n\n\texport const $mol_ambient_ref : unique symbol = Symbol( '$mol_ambient_ref' )\n\n\t/** @deprecated use $ instead */\n\texport type $mol_ambient_context = $\n\n\texport function $mol_ambient( this : $ | void , overrides : Partial< $ > ) : $ {\n\t\treturn Object.setPrototypeOf( overrides , this || $ )\n\t}\n\n}\n","namespace $ {\n\n\tconst instances = new WeakSet< any >()\n\n\t/**\n\t * Proxy that delegates all to lazy returned target.\n\t * \n\t * \t$mol_delegate( Array.prototype , ()=> fetch_array() )\n\t */\n export function $mol_delegate< Value extends object >(\n\t\tproto : Value ,\n\t\ttarget : ()=> Value ,\n\t) {\n\n\t\tconst proxy = new Proxy( proto , {\n\n\t\t\tget: ( _ , field )=> {\n\t\t\t\tconst obj = target()\n\t\t\t\tlet val = Reflect.get( obj , field )\n\t\t\t\tif( typeof val === 'function' ) {\n\t\t\t\t\tval = val.bind( obj )\n\t\t\t\t} \n\t\t\t\treturn val\n\t\t\t},\n\t\t\thas: ( _ , field )=> Reflect.has( target(), field ),\n\t\t\tset: ( _ , field , value )=> Reflect.set( target() , field , value ),\n\t\t\t\n\t\t\tgetOwnPropertyDescriptor: ( _ , field )=> Reflect.getOwnPropertyDescriptor( target() , field ),\n\t\t\townKeys: ()=> Reflect.ownKeys( target() ),\n\t\t\t\n\t\t\tgetPrototypeOf: ()=> Reflect.getPrototypeOf( target() ),\n\t\t\tsetPrototypeOf: ( _ , donor )=> Reflect.setPrototypeOf( target() , donor ),\n\t\t\t\n\t\t\tisExtensible: ()=> Reflect.isExtensible( target() ),\n\t\t\tpreventExtensions: ()=> Reflect.preventExtensions( target() ),\n\t\t\t\n\t\t\tapply: ( _ , self , args )=> Reflect.apply( target() as Function , self , args ),\n\t\t\tconstruct: ( _ , args , retarget )=> Reflect.construct( target() as Function , args , retarget ),\n\t\t\t\n\t\t\tdefineProperty: ( _ , field , descr )=> Reflect.defineProperty( target() , field , descr ),\n\t\t\tdeleteProperty: ( _ , field )=> Reflect.deleteProperty( target() , field ),\n\n\t\t} )\n\n\t\tinstances.add( proxy )\n\n\t\treturn proxy\n\n\t}\n\n\tReflect.defineProperty(\n\t\t$mol_delegate ,\n\t\tSymbol.hasInstance ,\n\t\t{\n\t\t\tvalue : ( obj : object )=> instances.has( obj ),\n\t\t},\n\t)\n\n}\n","namespace $ {\n\n\texport const $mol_owning_map = new WeakMap< any , any >()\n\n\texport function $mol_owning_allow< Having >(\n\t\thaving : Having ,\n\t) : having is Having & {\n\t\tdestructor() : void\n\t} {\n\t\ttry {\n\t\t\tif( !having ) return false\n\t\t\tif( typeof having !== 'object' && typeof having !== 'function' ) return false\n\t\t\tif( having instanceof $mol_delegate ) return false\n\t\t\tif( typeof (having as any)['destructor'] !== 'function' ) return false\n\t\t\treturn true\n\t\t} catch {\n\t\t\treturn false\n\t\t}\n\t}\n\n\texport function $mol_owning_get< Having , Owner extends object >( having : Having , Owner? : { new() : Owner } ) : Owner | null {\n\t\n\t\tif( !$mol_owning_allow( having ) ) return null\n\n\t\twhile( true ) {\n\n\t\t\tconst owner = $mol_owning_map.get( having )\n\t\t\tif( !owner ) return owner\n\t\t\tif( !Owner ) return owner\n\t\t\t\n\t\t\tif( owner instanceof Owner ) return owner\n\n\t\t\thaving = owner\n\t\t}\n\n\t}\n\t\n\texport function $mol_owning_check< Owner , Having >(\n\t\towner : Owner ,\n\t\thaving : Having ,\n\t) : having is Having & { destructor() : void } {\n\t\tif( !$mol_owning_allow( having ) ) return false\n\t\tif( $mol_owning_map.get( having ) !== owner ) return false\n\t\treturn true\n\t}\n\t\n\texport function $mol_owning_catch< Owner , Having >(\n\t\towner : Owner ,\n\t\thaving : Having ,\n\t) {\n\t\tif( !$mol_owning_allow( having ) ) return false\n\t\tif( $mol_owning_map.get( having ) ) return false\n\n\t\t$mol_owning_map.set( having , owner )\n\t\treturn true\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_fail( error : any ) : never {\n\t\tthrow error\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_fail_hidden( error : any ) : never {\n\t\tthrow error /// Use 'Never Pause Here' breakpoint in DevTools or simply blackbox this script\n\t}\n\n}\n","namespace $ {\n\t\n\tconst named = new WeakSet< Function >()\n\t\n\texport function $mol_func_name( this : $ , func : Function ) : string {\n\t\t\n\t\tlet name = func.name\n\t\tif( name?.length > 1 ) return name\n\t\tif( named.has( func ) ) return name\n\n\t\tfor( let key in this ) {\n\t\t\ttry {\n\t\t\t\tif( (this as any)[ key ] !== func ) continue\n\t\t\t\tname = key\n\t\t\t\tObject.defineProperty( func , 'name' , { value : name } )\n\t\t\t\tbreak\n\t\t\t} catch {}\n\t\t}\n\n\t\tnamed.add( func )\n\t\treturn name\n\t\t\n\t}\n\n\texport function $mol_func_name_from< Target extends Function >( target : Target , source : Function ) {\n\t\tObject.defineProperty( target , 'name' , { value : source.name } )\n\t\treturn target\n\t}\n\n}\n","namespace $ {\n\n\texport class $mol_object2 {\n\t\t\n\t\tstatic $ = $ as any as $\n\t\t\n\t\t[Symbol.toStringTag]!: string\n\n\t\t[ $mol_ambient_ref ] = null as any as $\n\t\tget $() {\n\t\t\tif( this[ $mol_ambient_ref ] ) return this[ $mol_ambient_ref ]\n\t\t\tconst owner = $mol_owning_get( this ) as any\n\t\t\treturn this[ $mol_ambient_ref ] = owner?.$ || $mol_object2.$ as $\n\t\t}\n\t\tset $( next : $ ) {\n\t\t\tif( this[ $mol_ambient_ref ] ) $mol_fail_hidden( new Error( 'Context already defined' ) )\n\t\t\tthis[ $mol_ambient_ref ] = next\n\t\t}\n\n\t\tpublic static create< Instance >(\n\t\t\tthis : new( init? : ( instance : any )=> void )=> Instance ,\n\t\t\tinit? : ( instance : $mol_type_writable<Instance> )=> void\n\t\t) : Instance {\n\t\t\tconst obj = new this\n\t\t\tif( init ) init( obj )\n\t\t\treturn obj\n\t\t}\n\t\t\n\t\tstatic [ Symbol.toPrimitive ]() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\tstatic toString() {\n\t\t\treturn ( this as any )[ Symbol.toStringTag ] || this.$.$mol_func_name( this )\n\t\t}\n\t\t\n\t\tstatic toJSON() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\tdestructor() { }\n\t\tstatic destructor() { }\n\t\t\n\t\t//[ Symbol.toPrimitive ]( hint: string ) {\n\t\t//\treturn hint === 'number' ? this.valueOf() : this.toString()\n\t\t//}\n\t\t\n\t\ttoString(): string {\n\t\t\treturn this[ Symbol.toStringTag ] || this.constructor.name + '<>'\n\t\t}\n\t\t\n\t\t// toJSON(): any {\n\t\t// \treturn this.toString()\n\t\t// }\n\n\t}\n}\n","namespace $ {\n\n\t/** Position in any resource. */\n\texport class $mol_span extends $mol_object2 {\n\n\t\tconstructor(\n\t\t\treadonly uri: string ,\n\t\t\treadonly source: string ,\n\t\t\treadonly row: number ,\n\t\t\treadonly col: number ,\n\t\t\treadonly length: number ,\n\t\t) {\n\t\t\tsuper()\n\t\t\tthis[ Symbol.toStringTag ] = `${ this.uri }#${ this.row }:${ this.col }/${ this.length }`\n\t\t}\n\n\t\t/** Span for begin of unknown resource */\n\t\tstatic unknown = $mol_span.begin('?')\n\n\t\t/** Makes new span for begin of resource. */\n\t\tstatic begin( uri: string, source = '' ) {\n\t\t\treturn new $mol_span( uri , source, 1 , 1 , 0 )\n\t\t}\n\n\t\t/** Makes new span for end of resource. */\n\t\tstatic end( uri: string , source: string ) {\n\t\t\treturn new $mol_span( uri , source, 1 , source.length + 1 , 0 )\n\t\t}\n\n\t\t/** Makes new span for entire resource. */\n\t\tstatic entire( uri: string , source: string ) {\n\t\t\treturn new $mol_span( uri , source, 1 , 1 , source.length )\n\t\t}\n\n\t\ttoString() {\n\t\t\treturn this[ Symbol.toStringTag ]\n\t\t}\n\n\t\ttoJSON() {\n\t\t\treturn {\n\t\t\t\turi: this.uri,\n\t\t\t\trow: this.row,\n\t\t\t\tcol: this.col,\n\t\t\t\tlength: this.length\n\t\t\t}\n\t\t}\n\n\t\t/** Makes new error for this span. */\n\t\terror( message : string , Class = Error ) {\n\t\t\treturn new Class( `${message} (${this})` )\n\t\t}\n\n\t\t/** Makes new span for same uri. */\n\t\tspan( row : number , col : number , length : number ) {\n\t\t\treturn new $mol_span( this.uri , this.source, row , col , length )\n\t\t}\n\n\t\t/** Makes new span after end of this. */\n\t\tafter( length = 0 ) {\n\t\t\treturn new $mol_span( this.uri , this.source, this.row , this.col + this.length , length )\n\t\t}\n\n\t\t/** Makes new span between begin and end. */\n\t\tslice( begin: number, end = -1 ) {\n\t\t\tlet len = this.length\n\t\t\t\n\t\t\tif( begin < 0 ) begin += len\n\t\t\tif( end < 0 ) end += len\n\n\t\t\tif (begin < 0 || begin > len) this.$.$mol_fail( this.error( `Begin value '${begin}' out of range`, RangeError ) )\n\t\t\tif (end < 0 || end > len) this.$.$mol_fail( this.error( `End value '${end}' out of range`, RangeError ) )\n\t\t\tif (end < begin) this.$.$mol_fail( this.error( `End value '${end}' can't be less than begin value`, RangeError ) )\n\n\t\t\treturn this.span( this.row , this.col + begin , end - begin )\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\t/** Syntax error with cordinates and source line snippet. */\n\texport class $mol_error_syntax extends SyntaxError {\n\t\tconstructor (\n\t\t\tpublic reason: string,\n\t\t\tpublic line: string,\n\t\t\tpublic span: $mol_span,\n\t\t) {\n\t\t\tsuper(`${ reason }\\n${ span }\\n${ line.substring( 0 , span.col - 1 ).replace( /\\S/g, ' ' ) }${ ''.padEnd( span.length, '!' ) }\\n${ line }`)\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\t/** Parses tree format from string. */\n\texport function $mol_tree2_from_string(\n\t\tthis: $,\n\t\tstr: string,\n\t\turi = '?',\n\t) : $mol_tree2 {\n\n\t\tconst span = $mol_span.entire( uri, str )\n\n\t\tvar root = $mol_tree2.list( [], span )\n\t\tvar stack = [ root ]\n\n\t\tvar pos = 0, row = 0, min_indent = 0\n\t\t\n\t\twhile( str.length > pos ) {\n\n\t\t\tvar indent = 0\n\t\t\tvar line_start = pos\n\n\t\t\trow++\n\n\t\t\t// read indent\n\t\t\twhile( str.length > pos && str[ pos ] == '\\t' ) {\n\t\t\t\tindent++\n\t\t\t\tpos++\n\t\t\t}\n\n\t\t\tif( ! root.kids.length ) {\n\t\t\t\tmin_indent = indent\n\t\t\t}\n\n\t\t\tindent -= min_indent\n\n\t\t\t// invalid tab size\n\t\t\tif( indent < 0 || indent >= stack.length ) {\n\n\t\t\t\tconst sp = span.span( row, 1, pos - line_start )\n\n\t\t\t\t// skip error line\n\t\t\t\twhile( str.length > pos && str[ pos ] != '\\n' ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\n\t\t\t\tif( indent < 0 ) {\n\t\t\t\t\tif( str.length > pos ) {\n\t\t\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t\t\t`Too few tabs`,\n\t\t\t\t\t\t\tstr.substring( line_start, pos ),\n\t\t\t\t\t\t\tsp,\n\t\t\t\t\t\t) )\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t\t`Too many tabs`,\n\t\t\t\t\t\tstr.substring( line_start, pos ),\n\t\t\t\t\t\tsp,\n\t\t\t\t\t) )\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tstack.length = indent + 1\n\t\t\tvar parent = stack[ indent ]\n\n\t\t\t// parse types\n\t\t\twhile( str.length > pos && str[ pos ] != '\\\\' && str[ pos ] != '\\n' ) {\n\n\t\t\t\t// type can not contain space and tab\n\t\t\t\tvar error_start = pos\n\t\t\t\twhile( str.length > pos && ( str[ pos ] == ' ' || str[ pos ] == '\\t' ) ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\n\t\t\t\tif( pos > error_start ) {\n\t\t\t\t\tlet line_end = str.indexOf( '\\n' , pos )\n\t\t\t\t\tif( line_end === -1 ) line_end = str.length\n\t\t\t\t\tconst sp = span.span( row, error_start - line_start + 1, pos - error_start )\n\t\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t\t`Wrong nodes separator`,\n\t\t\t\t\t\tstr.substring( line_start, line_end ),\n\t\t\t\t\t\tsp,\n\t\t\t\t\t) )\n\t\t\t\t}\n\n\t\t\t\t// read type\n\t\t\t\tvar type_start = pos\n\t\t\t\twhile( \n\t\t\t\t\tstr.length > pos && \n\t\t\t\t\tstr[ pos ] != '\\\\' && \n\t\t\t\t\tstr[ pos ] != ' ' && \n\t\t\t\t\tstr[ pos ] != '\\t' && \n\t\t\t\t\tstr[ pos ] != '\\n'\n\t\t\t\t) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\t\t\t\tif( pos > type_start ) {\n\t\t\t\t\tlet next = new $mol_tree2(\n\t\t\t\t\t\tstr.slice( type_start , pos ),\n\t\t\t\t\t\t'',\n\t\t\t\t\t\t[],\n\t\t\t\t\t\tspan.span( row, type_start - line_start + 1, pos - type_start ),\n\t\t\t\t\t)\n\t\t\t\t\tconst parent_kids = parent.kids as $mol_tree2[]\n\t\t\t\t\tparent_kids.push( next )\n\t\t\t\t\tparent = next\n\t\t\t\t}\n\n\t\t\t\t// read one space if exists\n\t\t\t\tif( str.length > pos && str[ pos ] == ' ' ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// read data\n\t\t\tif( str.length > pos && str[ pos ] == '\\\\' ) {\n\t\t\t\tvar data_start = pos\n\t\t\t\twhile( str.length > pos && str[ pos ] != '\\n' ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\t\t\t\tlet next = new $mol_tree2(\n\t\t\t\t\t'',\n\t\t\t\t\tstr.slice( data_start + 1 , pos ),\n\t\t\t\t\t[],\n\t\t\t\t\tspan.span( row, data_start - line_start + 2, pos - data_start - 1 ),\n\t\t\t\t)\n\t\t\t\tconst parent_kids = parent.kids as $mol_tree2[]\n\t\t\t\tparent_kids.push( next )\n\t\t\t\tparent = next\n\t\t\t}\n\n\t\t\t// now must be end of text\n\t\t\tif( str.length === pos && stack.length > 0 ) {\n\t\t\t\tconst sp = span.span( row, pos - line_start + 1, 1 )\n\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t`Unexpected EOF, LF required`,\n\t\t\t\t\tstr.substring( line_start, str.length ),\n\t\t\t\t\tsp,\n\t\t\t\t) )\n\t\t\t}\n\n\t\t\tstack.push( parent )\n\t\t\tpos++\n\t\t}\n\n\t\treturn root\n\t}\n\n}\n","namespace $ {\n\n\t/** Serializes tree to string in tree format. */\n\texport function $mol_tree2_to_string(\n\t\tthis: $,\n\t\ttree: $mol_tree2,\n\t) : string {\n\n\t\tlet output = [] as string[]\n\t\t\n\t\tfunction dump(\n\t\t\ttree: $mol_tree2,\n\t\t\tprefix = '',\n\t\t) {\n\n\t\t\tif( tree.type.length ) {\n\t\t\t\t\n\t\t\t\tif( !prefix.length ) {\n\t\t\t\t\tprefix = \"\\t\";\n\t\t\t\t}\n\n\t\t\t\toutput.push( tree.type )\n\n\t\t\t\tif( tree.kids.length == 1 ) {\n\t\t\t\t\toutput.push( ' ' )\n\t\t\t\t\tdump( tree.kids[ 0 ], prefix )\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\toutput.push( \"\\n\" )\n\n\t\t\t} else if( tree.value.length || prefix.length ) {\n\n\t\t\t\toutput.push( \"\\\\\" + tree.value + \"\\n\" )\n\n\t\t\t}\n\n\t\t\tfor( const kid of tree.kids ) {\n\t\t\t\toutput.push( prefix )\n\t\t\t\tdump( kid, prefix + \"\\t\" )\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tdump( tree )\n\n\t\treturn output.join('')\n\t}\n\t\t\n}\n","namespace $ {\n\n\t/** Path by types in tree. */\n\texport type $mol_tree2_path =\n\t\tArray< string | number | null >\n\t\n\t/** Hask tool for processing node. */\n\texport type $mol_tree2_hack< Context > =\n\t\t(\n\t\t\tinput : $mol_tree2 ,\n\t\t\tbelt : $mol_tree2_belt< Context > ,\n\t\t\tcontext : Context ,\n\t\t)=> readonly $mol_tree2[]\n\n\t/** Collection of hask tools for processing tree. */\n\texport type $mol_tree2_belt< Context > =\n\t\tRecord< string , $mol_tree2_hack< Context > >\n\n\t/**\n\t * Abstract Syntax Tree with human readable serialization.\n\t * Avoid direct instantiation. Use static factories instead.\n\t * @see https://github.com/nin-jin/tree.d\n\t */\n\texport class $mol_tree2 extends Object {\n\t\t\n\t\tconstructor(\n\n\t\t\t/** Type of structural node, `value` should be empty */\n\t\t\treadonly type : string,\n\t\t\t\n\t\t\t/** Content of data node, `type` should be empty */\n\t\t\treadonly value : string,\n\n\t\t\t/** Child nodes */\n\t\t\treadonly kids : readonly $mol_tree2[],\n\t\t\t\n\t\t\t/** Position in most far source resource */\n\t\t\treadonly span : $mol_span,\n\n\t\t) {\n\t\t\tsuper()\n\t\t\t;(this as any)[ Symbol.toStringTag ] = type || '\\\\' + value\n\t\t}\n\n\t\t/** Makes collection node. */\n\t\tstatic list(\n\t\t\tkids : readonly $mol_tree2[] ,\n\t\t\tspan = $mol_span.unknown ,\n\t\t) {\n\t\t\treturn new $mol_tree2( '' , '' , kids , span )\n\t\t}\n\t\t\n\t\t/** Makes new derived collection node. */\n\t\tlist(\n\t\t\tkids : readonly $mol_tree2[] ,\n\t\t) {\n\t\t\treturn $mol_tree2.list( kids , this.span )\n\t\t}\n\n\t\t/** Makes data node for any string. */\n\t\tstatic data(\n\t\t\tvalue : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t\tspan = $mol_span.unknown ,\n\t\t) {\n\n\t\t\tconst chunks = value.split( '\\n' )\n\n\t\t\tif( chunks.length > 1 ) {\n\t\t\t\n\t\t\t\tlet kid_span = span.span( span.row , span.col , 0 )\n\n\t\t\t\tconst data = chunks.map( chunk => {\n\t\t\t\t\tkid_span = kid_span.after( chunk.length )\n\t\t\t\t\treturn new $mol_tree2( '' , chunk , [] , kid_span )\n\t\t\t\t} )\n\n\t\t\t\tkids = [ ... data , ... kids ]\n\n\t\t\t\tvalue = ''\n\n\t\t\t}\n\n\t\t\treturn new $mol_tree2( '' , value , kids , span )\n\n\t\t}\n\t\t\n\t\t/** Makes new derived data node. */\n\t\tdata(\n\t\t\tvalue : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t) {\n\t\t\treturn $mol_tree2.data( value , kids , this.span )\n\t\t}\n\t\t\n\t\t/** Makes struct node. */\n\t\tstatic struct(\n\t\t\ttype : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t\tspan = $mol_span.unknown ,\n\t\t) {\n\n\t\t\tif( /[ \\n\\t\\\\]/.test( type ) ) {\n\t\t\t\t$$.$mol_fail( span.error( `Wrong type ${ JSON.stringify( type ) }` ) )\n\t\t\t}\n\n\t\t\treturn new $mol_tree2( type , '' , kids , span )\n\n\t\t}\n\t\t\n\t\t/** Makes new derived structural node. */\n\t\tstruct(\n\t\t\ttype : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t) {\n\t\t\treturn $mol_tree2.struct( type , kids , this.span )\n\t\t}\n\n\t\t/** Makes new derived node with different kids id defined. */\n\t\tclone( kids : readonly $mol_tree2[], span = this.span ) {\n\t\t\treturn new $mol_tree2( this.type , this.value , kids , span )\n\t\t}\n\n\t\t/** Returns multiline text content. */\n\t\ttext() {\n\n\t\t\tvar values : string[] = []\n\t\t\t\n\t\t\tfor( var kid of this.kids ) {\n\t\t\t\tif( kid.type ) continue\n\t\t\t\tvalues.push( kid.value )\n\t\t\t}\n\t\t\t\n\t\t\treturn this.value + values.join( '\\n' )\n\n\t\t}\n\t\t\n\t\t/** Parses tree format. */\n\t\t/** @deprecated Use $mol_tree2_from_string */\n\t\tstatic fromString( str : string , uri = 'unknown' ) {\n\t\t\treturn $$.$mol_tree2_from_string( str, uri )\n\t\t}\n\n\t\t/** Serializes to tree format. */\n\t\ttoString() : string {\n\t\t\treturn $$.$mol_tree2_to_string( this )\n\t\t}\n\t\t\n\t\t/** Makes new tree with node overrided by path. */\n\t\tinsert( value : $mol_tree2 | null , ...path : $mol_tree2_path ) : $mol_tree2 {\n\n\t\t\tif( path.length === 0 ) return value!\n\t\t\t\n\t\t\tconst type = path[0]\n\t\t\tif( typeof type === 'string' ) {\n\n\t\t\t\tlet replaced = false\n\t\t\t\tconst sub = this.kids.map( ( item , index )=> {\n\t\t\t\t\tif( item.type !== type ) return item\n\t\t\t\t\treplaced = true\n\t\t\t\t\treturn item.insert( value , ... path.slice( 1 ) )\n\t\t\t\t} ).filter( Boolean )\n\t\t\t\t\n\t\t\t\tif( !replaced && value ) {\n\t\t\t\t\tsub.push( this.struct( type , [] ).insert( value , ... path.slice( 1 ) ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn this.clone( sub )\n\n\t\t\t} else if( typeof type === 'number' ) {\n\t\t\t\t\n\t\t\t\tconst sub = this.kids.slice()\n\t\t\t\tsub[ type ] = ( sub[ type ] || this.list([]) )\n\t\t\t\t\t.insert( value , ... path.slice( 1 ) )\n\t\t\t\t\n\t\t\t\treturn this.clone( sub.filter( Boolean ) )\n\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tconst kids = ( ( this.kids.length === 0 ) ? [ this.list([]) ] : this.kids )\n\t\t\t\t.map( item => item.insert( value , ... path.slice( 1 ) ) )\n\t\t\t\t.filter( Boolean )\n\n\t\t\t\treturn this.clone( kids )\n\n\t\t\t}\n\n\t\t}\n\n\t\t/** Query nodes by path. */\n\t\tselect( ...path : $mol_tree2_path ) {\n\n\t\t\tlet next = [ this as $mol_tree2 ]\n\n\t\t\tfor( const type of path ) {\n\n\t\t\t\tif( !next.length ) break\n\t\t\t\t\n\t\t\t\tconst prev = next\n\t\t\t\tnext = []\n\n\t\t\t\tfor( var item of prev ) {\n\n\t\t\t\t\tswitch( typeof( type ) ) {\n\n\t\t\t\t\t\tcase 'string' :\n\n\t\t\t\t\t\t\tfor( var child of item.kids ) {\n\t\t\t\t\t\t\t\tif( child.type == type ) {\n\t\t\t\t\t\t\t\t\tnext.push( child )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\n\t\t\t\t\t\tcase 'number' :\n\n\t\t\t\t\t\t\tif( type < item.kids.length ) next.push( item.kids[ type ] )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\n\t\t\t\t\t\tdefault : next.push( ... item.kids )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this.list( next )\n\t\t\t\n\t\t}\n\t\t\n\t\t/** Filter kids by path or value. */\n\t\tfilter( path : string[] , value? : string ) {\n\n\t\t\tconst sub = this.kids.filter( item => {\n\t\t\t\t\t\n\t\t\t\tvar found = item.select( ...path )\n\t\t\t\t\n\t\t\t\tif( value === undefined ) {\n\t\t\t\t\treturn Boolean( found.kids.length )\n\t\t\t\t} else {\n\t\t\t\t\treturn found.kids.some( child => child.value == value )\n\t\t\t\t}\n\t\t\t\n\t\t\t} )\n\t\t\t\n\t\t\treturn this.clone( sub )\n\n\t\t}\n\n\t\thack_self< Context extends { span?: $mol_span; [ key: string ]: unknown } = {} >(\n\t\t\tbelt: $mol_tree2_belt< Context >,\n\t\t\tcontext = {} as Context,\n\t\t) {\n\t\t\tlet handle = belt[ this.type ] || belt[ '' ]\n\t\t\t\t\n\t\t\tif( !handle || handle === Object.prototype[ this.type as keyof Object ] ) {\n\t\t\t\thandle = ( input, belt, context )=> [\n\t\t\t\t\tinput.clone( input.hack( belt, context ), context.span )\n\t\t\t\t]\n\t\t\t}\n\t\t\t\n\t\t\ttry {\n\t\t\t\treturn handle( this , belt , context! )\n\t\t\t} catch( error: any ) {\n\t\t\t\terror.message += `\\n${ this.clone([]) }${ this.span }`\n\t\t\t\t$mol_fail_hidden( error )\n\t\t\t}\n\t\t}\n\n\t\t/** Transform tree through context with transformers */\n\t\thack< Context extends { span?: $mol_span; [ key: string ]: unknown } = {} >(\n\t\t\tbelt: $mol_tree2_belt< Context >,\n\t\t\tcontext = {} as Context,\n\t\t) {\n\t\t\treturn ( [] as readonly $mol_tree2[] ).concat(\n\t\t\t\t... this.kids.map( child => child.hack_self(belt, context) )\n\t\t\t)\n\n\t\t}\n\n\t\t/** Makes Error with node coordinates. */\n\t\terror( message : string , Class = Error ) {\n\t\t\treturn this.span.error( `${ message }\\n${ this.clone([]) }` , Class )\n\t\t}\n\n\t}\n\n\texport class $mol_tree2_empty extends $mol_tree2 {\n\t\tconstructor() {\n\t\t\tsuper( '' , '' , [] , $mol_span.unknown )\n\t\t}\n\t}\n\t\n}\n","namespace $ {\n\n\texport function $mol_tree2_from_json( json: any, span = $mol_span.unknown ): $mol_tree2 {\n\n\t\tif( typeof json === 'boolean' || typeof json === 'number' || json === null ) {\n\t\t\treturn new $mol_tree2( String( json ) , '' , [] , span )\n\t\t}\n\t\t\n\t\tif( typeof json === 'string' ) {\n\t\t\treturn $mol_tree2.data( json , [], span )\n\t\t}\n\n\t\tif( Array.isArray( json ) ) {\n\t\t\tconst sub = json.map( json => $mol_tree2_from_json( json , span ) )\n\t\t\treturn new $mol_tree2( '/' , '', sub, span )\n\t\t}\n\t\t\n\t\tif( ArrayBuffer.isView( json ) ) {\n\t\t\tconst buf = new Uint8Array( json.buffer, json.byteOffset, json.byteLength )\n\t\t\treturn $mol_tree2.data( String.fromCharCode( ... buf ) , [], span )\n\t\t}\n\t\t\t\n\t\tif( json instanceof Date ) {\n\t\t\treturn new $mol_tree2( '', json.toISOString() , [] , span )\n\t\t}\n\n\t\tif( typeof json.toJSON === 'function' ) {\n\t\t\treturn $mol_tree2_from_json( json.toJSON() )\n\t\t}\n\n\t\tif( json.toString !== Object.prototype.toString ) {\n\t\t\treturn $mol_tree2.data( json.toString() , [], span )\n\t\t}\n\n\t\tif( json instanceof Error ) {\n\t\t\tconst { name , message , stack } = json\n\t\t\tjson = { ... json, name, message, stack }\n\t\t}\n\n\t\tconst sub = [] as $mol_tree2[]\n\t\t\n\t\tfor( var key in json ) {\n\n\t\t\tconst val = json[ key ]\n\n\t\t\tif( val === undefined ) continue\n\n\t\t\tconst subsub = $mol_tree2_from_json( val, span )\n\t\t\t\n\t\t\tif( /^[^\\n\\t\\\\ ]+$/.test( key ) ) {\n\t\t\t\tsub.push( new $mol_tree2( key, '', [ subsub ], span ) )\n\t\t\t} else {\n\t\t\t\tsub.push( $mol_tree2.data( key, [ subsub ], span ) )\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\treturn new $mol_tree2( '*' , '', sub , span )\n\t\t\t\n\t}\n\n}\n","namespace $ {\n\texport class $mol_view_tree2_error extends Error {\n\t\tconstructor(\n\t\t\tmessage: string,\n\t\t\treadonly spans: readonly $mol_span[]\n\t\t) {\n\t\t\tsuper(message)\n\t\t}\n\n\t\ttoJSON() {\n\t\t\treturn {\n\t\t\t\tmessage: this.message,\n\t\t\t\tspans: this.spans\n\t\t\t}\n\t\t}\n\t}\n\n\texport class $mol_view_tree2_error_suggestions {\n\t\tconstructor(\n\t\t\treadonly suggestions: readonly string[]\n\t\t) {}\n\n\t\ttoString() {\n\t\t\treturn this.suggestions.map(suggestion => `\\`${suggestion}\\``).join(', ')\n\t\t}\n\n\t\ttoJSON() {\n\t\t\treturn this.suggestions\n\t\t}\n\t}\n\n\texport function $mol_view_tree2_error_str(\n\t\tstrings: readonly string[],\n\t\t...parts: readonly ($mol_span | readonly $mol_span[] | string | number | $mol_view_tree2_error_suggestions)[]\n\t) {\n\t\tconst spans: $mol_span[] = []\n\n\t\tfor (const part of parts) {\n\t\t\tif (part instanceof $mol_span) spans.push(part)\n\t\t\tif (Array.isArray(part) && part.length > 0 && part[0] instanceof $mol_span) spans.push(...part)\n\t\t}\n\n\t\treturn new $mol_view_tree2_error(join(strings, parts), spans)\n\t}\n\n\tfunction join(strings: readonly string[], objects: readonly unknown[]) {\n\t\tlet result = ''\n\t\tlet obj_pos = 0\n\t\tlet obj_len = objects.length\n\n\t\tfor (const str of strings) {\n\t\t\tresult += str\n\t\t\tif (obj_pos < obj_len) {\n\t\t\t\tconst obj = objects[obj_pos++]\n\t\t\t\tif (Array.isArray(obj)) result += obj.map(item => `\\`${item}\\``).join(', ')\n\t\t\t\telse result += `\\`${String(obj)}\\``\n\t\t\t}\n\t\t}\n\n\t\treturn result\n\t}\n}\n","namespace $ {\n\n\texport function $mol_view_tree2_child(\n\t\tthis: $,\n\t\ttree: $mol_tree2,\n\t) {\n\n\t\tif( tree.kids.length === 0 ) {\n\t\t\treturn this.$mol_fail(\n\t\t\t\t$mol_view_tree2_error_str\n\t\t\t\t`Required one child at ${tree.span}`\n\t\t\t)\n\t\t}\n\n\t\tif( tree.kids.length > 1 ) {\n\t\t\treturn this.$mol_fail(\n\t\t\t\t$mol_view_tree2_error_str\n\t\t\t\t`Should be only one child at ${tree.span}`\n\t\t\t)\n\t\t}\n\n\t\treturn tree.kids[0]\n\t}\n\n}\n","namespace $ {\n\texport function $mol_view_tree2_classes( defs : $mol_tree2 ) {\n\t\treturn defs.clone(defs.hack({\n\t\t\t'-': () => []\n\t\t}))\n\t}\n}\n","namespace $ {\n\t\n\texport function $mol_view_tree2_normalize( this: $, defs : $mol_tree2 ) {\n\t\treturn defs.clone(\n\t\t\t$mol_view_tree2_classes( defs ).kids.map( cl => cl.clone([\n\t\t\t\tthis.$mol_view_tree2_class_super( cl ).clone(\n\t\t\t\t\tthis.$mol_view_tree2_class_props( cl )\n\t\t\t\t)\n\t\t\t]) )\n\t\t)\n\t}\n\t\n}\n","interface String {\n\t\n\tmatch< RE extends RegExp >( regexp: RE ): ReturnType<\n\t\tRE[ typeof Symbol.match ]\n\t>\n\t\n matchAll< RE extends RegExp >( regexp: RE ): ReturnType<\n\t\tRE[ typeof Symbol.matchAll ]\n\t>\n\t\n}\n\nnamespace $ {\n\t\n\ttype Groups_to_params<T> = {\n\t\t[P in keyof T]?: T[P] | boolean | undefined;\n\t};\t\n\n\texport type $mol_regexp_source =\n\t| number\n\t| string\n\t| RegExp\n\t| { [ key in string ] : $mol_regexp_source }\n\t| readonly[ $mol_regexp_source , ... $mol_regexp_source[] ]\n\n\texport type $mol_regexp_groups< Source extends $mol_regexp_source >\n\t\n\t\t= Source extends number\n\t\t? {}\n\t\t\n\t\t: Source extends string\n\t\t? {}\n\t\t\n\t\t: Source extends $mol_regexp_source[]\n\t\t? $mol_type_merge< $mol_type_intersect< {\n\t\t\t[ key in Extract< keyof Source , number > ] : $mol_regexp_groups< Source[ key ] >\n\t\t}[ Extract< keyof Source , number > ] > >\n\t\t\n\t\t: Source extends RegExp\n\t\t? Record< string, string > extends NonNullable< NonNullable< ReturnType< Source['exec'] > >[ 'groups' ] >\n\t\t\t? {}\n\t\t\t: NonNullable< NonNullable< ReturnType< Source['exec'] > >[ 'groups' ] >\n\t\t\n\t\t: Source extends { readonly [ key in string ] : $mol_regexp_source }\n\t\t? $mol_type_merge< $mol_type_intersect< {\n\t\t\t[ key in keyof Source ] :\n\t\t\t\t$mol_type_merge<\n\t\t\t\t\t& $mol_type_override<\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\treadonly [ k in Extract< keyof Source , string > ]: string\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\treadonly [ k in key ]:\n\t\t\t\t\t\t\t\tSource[ key ] extends string\n\t\t\t\t\t\t\t\t\t? Source[ key ]\n\t\t\t\t\t\t\t\t\t: string\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t& $mol_regexp_groups< Source[ key ] >\n\t\t\t\t>\n\t\t}[ keyof Source ] > >\n\n\t\t: never\n\t\t\n\t/** Type safe reguar expression builder */\n\texport class $mol_regexp< Groups extends Record< string , string > > extends RegExp {\n\t\t\n\t\t/** Prefer to use $mol_regexp.from */\n\t\tconstructor( source : string , flags : string = 'gsu' , readonly groups : ( Extract< keyof Groups , string > )[] = [] ) {\n\t\t\tsuper( source , flags )\n\t\t}\n\t\t\n\t\t*[Symbol.matchAll] (str:string): IterableIterator< RegExpMatchArray & $mol_type_override< RegExpMatchArray, { groups?: { [ key in keyof Groups ] : string } } > > {\n\t\t\tconst index = this.lastIndex\n\t\t\tthis.lastIndex = 0\n\t\t\ttry {\n\t\t\t\twhile ( this.lastIndex < str.length ) {\n\t\t\t\t\tconst found = this.exec(str)\n\t\t\t\t\tif( !found ) break\n\t\t\t\t\tyield found\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tthis.lastIndex = index\n\t\t\t}\n\t\t}\n\t\t\n\t\t/** Parses input and returns found capture groups or null */\n\t\t[ Symbol.match ]( str : string ): null | RegExpMatchArray {\n\t\t\tconst res = [ ... this[Symbol.matchAll]( str ) ].filter( r => r.groups ).map( r => r[0] )\n\t\t\tif( !res.length ) return null\n\t\t\treturn res as RegExpMatchArray\n\t\t}\n\t\t\n\t\t/** Splits string by regexp edges */\n\t\t[ Symbol.split ]( str : string ): string[] {\n\t\t\t\n\t\t\tconst res = [] as string[]\n\t\t\tlet token_last = null\n\t\t\t\n\t\t\tfor( let token of this[Symbol.matchAll]( str ) ) {\n\t\t\t\tif( token.groups && ( token_last ? token_last.groups : true ) ) res.push( '' )\n\t\t\t\tres.push( token[0] )\n\t\t\t\ttoken_last = token\n\t\t\t}\n\t\t\t\n\t\t\tif( !res.length ) res.push( '' )\n\t\t\t\n\t\t\treturn res\n\t\t}\n\t\t\n\t\ttest( str : string ): boolean {\n\t\t\treturn Boolean( str.match( this) )\n\t\t}\n\t\t\n\t\texec( str : string ): RegExpExecArray & $mol_type_override< RegExpExecArray , { groups?: { [ key in keyof Groups ] : string } } > | null {\n\t\t\t\n\t\t\tconst from = this.lastIndex\n\t\t\tif( from >= str.length ) return null\n\t\t\t\n\t\t\tconst res = super.exec( str )\n\t\t\tif( res === null ) {\n\t\t\t\tthis.lastIndex = str.length\n\t\t\t\tif( !str ) return null\n\t\t\t\treturn Object.assign( [ str.slice( from ) ], {\n\t\t\t\t\tindex: from,\n\t\t\t\t\tinput: str,\n\t\t\t\t} ) as any\n\t\t\t}\n\n\t\t\tif( from === this.lastIndex ) {\n\t\t\t\t$mol_fail( new Error( 'Captured empty substring' ) )\n\t\t\t}\n\n\t\t\ttype Token = { [ key in keyof Groups ] : string } & { [ key : number ] : string }\n\t\t\tconst groups = {} as Token\n\t\t\t\n\t\t\tconst skipped = str.slice( from , this.lastIndex - res[0].length )\n\t\t\tif( skipped ) {\n\t\t\t\tthis.lastIndex = this.lastIndex - res[0].length\n\t\t\t\treturn Object.assign( [ skipped ], {\n\t\t\t\t\tindex: from,\n\t\t\t\t\tinput: res.input,\n\t\t\t\t} ) as any\n\t\t\t}\n\t\t\t\n\t\t\tfor( let i = 0 ; i < this.groups.length ; ++i ) {\n\t\t\t\tconst group = this.groups[ i ]\n\t\t\t\tgroups[ group ] = groups[ group ] || res[ i + 1 ] || '' as any\n\t\t\t}\n\n\t\t\treturn Object.assign( res, { groups } )\n\t\t}\n\t\t\n\t\tgenerate(\n\t\t\tparams: Groups_to_params< Groups >\n\t\t): string | null {\n\t\t\treturn null\n\t\t}\n\t\t\n\t\tget native() {\n\t\t\treturn new RegExp( this.source, this.flags )\n\t\t}\n\n\t\t/** Makes regexp that non-greedy repeats this pattern from min to max count */\n\t\tstatic repeat<\n\t\t\tSource extends $mol_regexp_source\n\t\t>(\n\t\t\tsource : Source ,\n\t\t\tmin = 0 ,\n\t\t\tmax = Number.POSITIVE_INFINITY ,\n\t\t) : $mol_regexp< $mol_regexp_groups< Source > > {\n\t\n\t\t\tconst regexp = $mol_regexp.from( source )\n\t\t\tconst upper = Number.isFinite( max ) ? max : ''\n\t\t\t\n\t\t\tconst str = `(?:${ regexp.source }){${ min },${ upper }}?`\n\t\t\tconst regexp2 = new $mol_regexp( str , regexp.flags , regexp.groups )\n\t\t\t\n\t\t\tregexp2.generate = params => {\n\t\t\t\tconst res = regexp.generate( params )\n\t\t\t\tif( res ) return res\n\t\t\t\tif( min > 0 ) return res\n\t\t\t\treturn ''\n\t\t\t}\n\t\n\t\t\treturn regexp2\n\t\n\t\t}\n\n\t\t/** Makes regexp that greedy repeats this pattern from min to max count */\n\t\tstatic repeat_greedy<\n\t\t\tSource extends $mol_regexp_source\n\t\t>(\n\t\t\tsource : Source ,\n\t\t\tmin = 0 ,\n\t\t\tmax = Number.POSITIVE_INFINITY ,\n\t\t) : $mol_regexp< $mol_regexp_groups< Source > > {\n\t\n\t\t\tconst regexp = $mol_regexp.from( source )\n\t\t\tconst upper = Number.isFinite( max ) ? max : ''\n\t\t\t\n\t\t\tconst str = `(?:${ regexp.source }){${ min },${ upper }}`\n\t\t\tconst regexp2 = new $mol_regexp( str , regexp.flags , regexp.groups )\n\t\t\t\n\t\t\tregexp2.generate = params => {\n\t\t\t\tconst res = regexp.generate( params )\n\t\t\t\tif( res ) return res\n\t\t\t\tif( min > 0 ) return res\n\t\t\t\treturn ''\n\t\t\t}\n\t\n\t\t\treturn regexp2\n\t\t}\n\n\t\t/** Makes regexp that match any of options */\n\t\tstatic vary<\n\t\t\tSources extends readonly $mol_regexp_source[]\n\t\t>(\n\t\t\tsources : Sources ,\n\t\t) {\n\t\t\t\n\t\t\tconst groups = [] as string[]\n\t\t\t\n\t\t\tconst chunks = sources.map( source => {\n\n\t\t\t\tconst regexp = $mol_regexp.from( source )\n\t\t\t\tgroups.push( ... regexp.groups )\n\t\t\t\t\n\t\t\t\treturn regexp.source\n\n\t\t\t} ) as any as readonly[ $mol_regexp_source , ... $mol_regexp_source[] ]\n\t\t\t\n\t\t\treturn new $mol_regexp< $mol_regexp_groups< Sources[number] > >(\n\t\t\t\t`(?:${ chunks.join('|') })` ,\n\t\t\t\t'' ,\n\t\t\t\tgroups as any[] ,\n\t\t\t)\n\t\t\t\n\t\t}\n\n\t\t/** Makes regexp that allow absent of this pattern */\n\t\tstatic optional<\n\t\t\tSource extends $mol_regexp_source\n\t\t>( source : Source ) {\n\t\t\treturn $mol_regexp.repeat_greedy( source , 0 , 1 )\n\t\t}\n\n\t\t/** Makes regexp that look ahead for pattern */\n\t\tstatic force_after( source : $mol_regexp_source ) {\n\n\t\t\tconst regexp = $mol_regexp.from( source )\n\t\t\t\n\t\t\treturn new $mol_regexp(\n\t\t\t\t`(?=${ regexp.source })` ,\n\t\t\t\tregexp.flags ,\n\t\t\t\tregexp.groups ,\n\t\t\t)\n\n\t\t}\n\n\t\t/** Makes regexp that look ahead for pattern */\n\t\tstatic forbid_after( source : $mol_regexp_source ) {\n\n\t\t\tconst regexp = $mol_regexp.from( source )\n\t\t\t\n\t\t\treturn new $mol_regexp(\n\t\t\t\t`(?!${ regexp.source })` ,\n\t\t\t\tregexp.flags ,\n\t\t\t\tregexp.groups ,\n\t\t\t)\n\n\t\t}\n\n\t\t/** Converts some js values to regexp */\n\t\tstatic from<\n\t\t\tSource extends $mol_regexp_source\n\t\t>(\n\t\t\tsource : Source ,\n\t\t\t{ ignoreCase , multiline } : Partial< Pick< RegExp , 'ignoreCase' | 'multiline' > > = {\n\t\t\t\tignoreCase : false ,\n\t\t\t\tmultiline : false ,\n\t\t\t} ,\n\t\t) : $mol_regexp< $mol_regexp_groups< Source > > {\n\n\t\t\tlet flags = 'gsu'\n\t\t\tif( multiline ) flags += 'm'\n\t\t\tif( ignoreCase ) flags += 'i'\n\n\t\t\tif( typeof source === 'number' ) {\n\n\t\t\t\tconst src = `\\\\u{${ source.toString(16) }}`\n\t\t\t\tconst regexp = new $mol_regexp< $mol_regexp_groups< Source > >( src , flags )\n\t\t\t\tregexp.generate = ()=> src\n\t\t\t\treturn regexp\n\n\t\t\t} if( typeof source === 'string' ) {\n\n\t\t\t\tconst src = source.replace( /[.*+?^${}()|[\\]\\\\]/g , '\\\\$&' ) \n\t\t\t\tconst regexp = new $mol_regexp< $mol_regexp_groups< Source > >( src , flags )\n\t\t\t\tregexp.generate = ()=> source\n\t\t\t\treturn regexp\n\n\t\t\t} else if( source instanceof $mol_regexp ) {\n\t\t\t\t\n\t\t\t\tconst regexp = new $mol_regexp<any>( source.source, flags, source.groups )\n\t\t\t\tregexp.generate = params => source.generate( params )\n\t\t\t\treturn regexp\n\t\t\t\t\n\t\t\t} if( source instanceof RegExp ) {\n\n\n\t\t\t\tconst test = new RegExp( '|' + source.source )\n\t\t\t\tconst groups = Array.from(\n\t\t\t\t\t{ length : test.exec('')!.length - 1 } ,\n\t\t\t\t\t( _ , i )=> String( i + 1 ) ,\n\t\t\t\t)\n\n\t\t\t\tconst regexp = new $mol_regexp< $mol_regexp_groups< Source > >(\n\t\t\t\t\tsource.source ,\n\t\t\t\t\tsource.flags ,\n\t\t\t\t\tgroups as any ,\n\t\t\t\t)\n\t\t\t\t\n\t\t\t\tregexp.generate = ()=> ''\n\n\t\t\t\treturn regexp\n\n\t\t\t} if( Array.isArray( source ) ) {\n\n\t\t\t\tconst patterns = source.map( src => Array.isArray( src )\n\t\t\t\t\t? $mol_regexp.optional( src as any )\n\t\t\t\t\t: $mol_regexp.from( src )\n\t\t\t\t)\n\t\t\t\t\n\t\t\t\tconst chunks = patterns.map( pattern => pattern.source )\n\t\t\t\t\n\t\t\t\tconst groups = [] as ( Extract< keyof $mol_regexp_groups< Source > , string > )[]\n\n\t\t\t\tlet index = 0\n\t\t\n\t\t\t\tfor( const pattern of patterns ) {\n\t\t\t\t\t\n\t\t\t\t\tfor( let group of pattern.groups ) {\n\t\t\t\t\t\tif( Number( group ) >= 0 ) {\n\t\t\t\t\t\t\tgroups.push( String( index ++ ) as any )\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tgroups.push( group )\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst regexp = new $mol_regexp( chunks.join( '' ) , flags , groups )\n\t\t\t\t\n\t\t\t\tregexp.generate = params => {\n\t\t\t\t\tlet res = ''\n\t\t\t\t\tfor( const pattern of patterns ) {\n\t\t\t\t\t\tlet sub = pattern.generate( params )\n\t\t\t\t\t\tif( sub === null ) return ''\n\t\t\t\t\t\tres += sub\n\t\t\t\t\t}\n\t\t\t\t\treturn res\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn regexp\n\t\t\n\t\t\t} else {\n\n\t\t\t\tconst groups = [] as string[]\n\n\t\t\t\tconst chunks = Object.keys( source ).map( name => {\n\n\t\t\t\t\tgroups.push( name )\n\n\t\t\t\t\tconst regexp = $mol_regexp.from( (source as any)[ name ] )\n\t\t\t\t\tgroups.push( ... regexp.groups )\n\t\t\t\t\t\n\t\t\t\t\treturn `(${regexp.source})`\n\n\t\t\t\t} ) as any as readonly[ $mol_regexp_source , ... $mol_regexp_source[] ]\n\n\t\t\t\tconst regexp = new $mol_regexp< $mol_regexp_groups< Source > >(\n\t\t\t\t\t`(?:${ chunks.join('|') })` ,\n\t\t\t\t\tflags ,\n\t\t\t\t\tgroups as any[] ,\n\t\t\t\t)\n\t\t\t\t\n\t\t\t\tconst validator = new RegExp( '^' + regexp.source + '$', flags )\n\t\t\t\tregexp.generate = (params: any) => {\n\t\t\t\t\t\n\t\t\t\t\tfor( let option in source ) {\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( option in params ) {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif( typeof params[ option ] === 'boolean' ) {\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tif( !params[ option as any ] ) continue\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tconst str = String( params[ option ] )\n\t\t\t\t\t\t\t\tif( str.match( validator ) ) return str\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t$mol_fail( new Error( `Wrong param: ${option}=${str}` ) )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif( typeof (source as any)[ option ] !== 'object' ) continue\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst res = $mol_regexp.from( (source as any)[ option ] ).generate( params )\n\t\t\t\t\t\tif( res ) return res\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn regexp\n\n\t\t\t}\n\t\n\t\t}\n\n\t\t/** Makes regexp which includes only unicode category */\n\t\tstatic unicode_only( ... category: $mol_unicode_category ) {\n\t\t\treturn new $mol_regexp(\n\t\t\t\t`\\\\p{${ category.join( '=' ) }}`\n\t\t\t)\n\t\t}\n\n\t\t/** Makes regexp which excludes unicode category */\n\t\tstatic unicode_except( ... category: $mol_unicode_category ) {\n\t\t\treturn new $mol_regexp(\n\t\t\t\t`\\\\P{${ category.join( '=' ) }}`\n\t\t\t)\n\t\t}\n\n\t\tstatic char_range(\n\t\t\tfrom: number,\n\t\t\tto: number,\n\t\t): $mol_regexp<{}> {\n\t\t\treturn new $mol_regexp(\n\t\t\t\t`${ $mol_regexp.from( from ).source }-${ $mol_regexp.from( to ).source }`\n\t\t\t)\n\t\t}\n\n\t\tstatic char_only(\n\t\t\t... allowed: readonly [ $mol_regexp_source, ... $mol_regexp_source[] ]\n\t\t): $mol_regexp<{}> {\n\t\t\tconst regexp = allowed.map( f => $mol_regexp.from( f ).source ).join('')\n\t\t\treturn new $mol_regexp( `[${ regexp }]` )\n\t\t}\n\n\t\tstatic char_except(\n\t\t\t... forbidden: readonly [ $mol_regexp_source, ... $mol_regexp_source[] ]\n\t\t): $mol_regexp<{}> {\n\t\t\tconst regexp = forbidden.map( f => $mol_regexp.from( f ).source ).join('')\n\t\t\treturn new $mol_regexp( `[^${ regexp }]` )\n\t\t}\n\t\t\n\t\tstatic decimal_only = $mol_regexp.from( /\\d/gsu )\n\t\tstatic decimal_except = $mol_regexp.from( /\\D/gsu )\n\t\t\n\t\tstatic latin_only = $mol_regexp.from( /\\w/gsu )\n\t\tstatic latin_except = $mol_regexp.from( /\\W/gsu )\n\t\t\n\t\tstatic space_only = $mol_regexp.from( /\\s/gsu )\n\t\tstatic space_except = $mol_regexp.from( /\\S/gsu )\n\t\t\n\t\tstatic word_break_only = $mol_regexp.from( /\\b/gsu )\n\t\tstatic word_break_except = $mol_regexp.from( /\\B/gsu )\n\t\t\n\t\tstatic tab = $mol_regexp.from( /\\t/gsu )\n\t\tstatic slash_back = $mol_regexp.from( /\\\\/gsu )\n\t\tstatic nul = $mol_regexp.from( /\\0/gsu )\n\t\t\n\t\tstatic char_any = $mol_regexp.from( /./gsu )\n\t\tstatic begin = $mol_regexp.from( /^/gsu )\n\t\tstatic end = $mol_regexp.from( /$/gsu )\n\t\tstatic or = $mol_regexp.from( /|/gsu )\n\t\t\n\t\tstatic line_end = $mol_regexp.from({\n\t\t\twin_end: [ [ '\\r' ], '\\n' ],\n\t\t\tmac_end: '\\r',\n\t\t})\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\tconst { begin, end, latin_only, or, optional, repeat_greedy } = $mol_regexp\n\n\texport let $mol_view_tree2_prop_signature = $mol_regexp.from([\n\t\tbegin,\n\t\t{ name: repeat_greedy( latin_only, 1 ) },\n\t\t{ key: optional([ '*', repeat_greedy( latin_only, 0 ) ]) },\n\t\t{ next: optional([ '?', repeat_greedy( latin_only, 0 ) ]) },\n\t\tend,\n\t])\n\t\n}\n","namespace $ {\n\texport function $mol_view_tree2_prop_parts(this: $, prop: $mol_tree2 ) {\n\t\tconst groups = [ ...prop.type.matchAll( $mol_view_tree2_prop_signature ) ][0]?.groups\n\n\t\tif (! groups) {\n\t\t\tthis.$mol_fail(\n\t\t\t\t$mol_view_tree2_error_str`Required prop like some*? at ${prop.span}`\n\t\t\t)\n\t\t}\n\n\t\treturn {\n\t\t\tname: groups.name,\n\t\t\tkey: groups.key,\n\t\t\tnext: groups.next ? '?' : ''\n\t\t}\n\t}\n}\n","namespace $ {\n\tconst regular_regex = /^\\w+$/\n\n\texport function $mol_view_tree2_prop_quote(name: $mol_tree2) {\n\t\tif (regular_regex.test(name.value)) return name\n\n\t\treturn name.data(JSON.stringify(name.value))\n\t}\n}\n","namespace $ {\n\tconst class_regex = /^[$A-Z][$\\w<>\\[\\]()\"'?|]+$/\n\n\texport function $mol_view_tree2_class_match(klass?: $mol_tree2) {\n\t\tif (! klass?.type) return false\n\t\tif (klass.type === 'NaN' || klass.type === 'Infinity') return false\n\n\t\treturn class_regex.test(klass.type)\n\t}\n}\n","namespace $ {\n\tconst err = $mol_view_tree2_error_str\n\n\texport function $mol_view_tree2_class_super(\n\t\tthis: $,\n\t\tklass: $mol_tree2\n\t) {\n\t\tif( ! $mol_view_tree2_class_match( klass ) ) return this.$mol_fail(\n\t\t\terr `Wrong class name at ${klass.span}` \n\t\t)\n\n\t\tconst superclass = klass.kids.length === 1 ? klass.kids[0] : undefined\n\n\t\tif (! superclass) return this.$mol_fail(\n\t\t\terr`No super class at ${klass.span}`\n\t\t)\n\n\t\tif( ! $mol_view_tree2_class_match( superclass ) ) return this.$mol_fail(\n\t\t\terr`Wrong super class name ${JSON.stringify(superclass.type).replace(/(^\"|\"$)/g, \"\")} at ${superclass.span}`\n\t\t)\n\n\t\treturn superclass\n\t}\n}\n","namespace $ {\n\tconst err = $mol_view_tree2_error_str\n\ttype Context = { factory?: $mol_tree2 }\n\n\texport function $mol_view_tree2_class_props(\n\t\tthis: $,\n\t\tklass : $mol_tree2,\n\t) {\n\t\tlet props = this.$mol_view_tree2_class_super( klass )\n\t\t\n\t\t// ! syntax to *\n\t\tprops = props.clone(\n\t\t\tprops.hack({\n\t\t\t\t'': ( node, belt )=> {\n\t\t\t\t\tconst normal = node.type.replace( /!\\w+/, '*' )\n\t\t\t\t\tif( node.type === normal ) return [ node.clone( node.hack( belt ) ) ]\n\t\t\t\t\treturn [ node.struct( normal, node.hack( belt ) ) ]\n\t\t\t\t}\n\t\t\t})\n\t\t)\n\n\t\tconst props_inner = {} as Record<string, $mol_tree2>\n\n\t\tconst add_inner = ( prop: $mol_tree2 ) => {\n\t\t\tconst { name } = this.$mol_view_tree2_prop_parts(prop)\n\t\t\tconst prev = props_inner[name]\n\t\t\tif (prev && prev.kids[0]?.toString() !== prop.kids[0]?.toString()) {\n\t\t\t\tthis.$mol_fail(err`Need an equal default values at ${prev.span} vs ${prop.span}`)\n\t\t\t}\n\t\t\tprops_inner[name] = prop\n\t\t}\n\n\t\tconst upper = (operator: $mol_tree2, belt: $mol_tree2_belt<Context>, context: Context) => {\n\t\t\tconst prop = this.$mol_view_tree2_child( operator )\n\t\t\tconst defs = prop.hack( belt, { factory: prop } )\n\t\t\tif( defs.length ) add_inner( prop.clone( defs ) )\n\n\t\t\treturn [ operator.clone([ prop.clone([]) ]) ]\n\t\t}\n\n\t\tconst props_root = props.hack({\n\t\t\t'<=': upper,\n\n\t\t\t'<=>': upper,\n\n\t\t\t'^': ( operator, belt, context) => {\n\t\t\t\tif (operator.kids.length === 0) return [ operator ]\n\t\t\t\treturn upper(operator, belt, context)\n\t\t\t},\n\n\t\t\t'': (left, belt, context) => {\n\t\t\t\tlet right\n\t\t\t\tconst operator = left.kids[0]\n\n\t\t\t\tif (operator?.type === '=>' && context.factory) {\n\t\t\t\t\tright = operator.kids[0]\n\t\t\t\t\tif (! right) this.$mol_fail(err`Need a child ${operator.span}`)\n\t\t\t\t\tif (! context.factory) this.$mol_fail(err`Need a parent ${left.span}`)\n\n\t\t\t\t\tadd_inner(right.clone([\n\t\t\t\t\t\tright.struct('=', [\n\t\t\t\t\t\t\tcontext.factory.clone([ left.clone([]) ]),\n\t\t\t\t\t\t]),\n\t\t\t\t\t]))\n\t\t\t\t}\n\n\t\t\t\tif (right) context = { factory: right.clone([]) }\n\t\t\t\telse if( operator && ! context.factory && $mol_view_tree2_class_match( operator ) ) {\n\t\t\t\t\tcontext = { factory: left.clone([]) }\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst hacked = left.clone( left.hack( belt, context ) )\n\n\t\t\t\treturn [ hacked ]\n\t\t\t}\n\n\t\t}, { factory: undefined } as Context)\n\n\t\tfor (const prop of props_root ) add_inner(prop)\n\t\t\n\t\treturn Object.values(props_inner)\n\t}\n\n}\n","namespace $ {\n\tconst err = $mol_view_tree2_error_str\n\t\n\texport function $mol_view_tree2_value_type( this: $, val : $mol_tree2 ) {\n\t\tswitch( val.type ) {\n\t\t\tcase 'true' : return 'bool'\n\t\t\tcase 'false' : return 'bool'\n\t\t\tcase 'null' : return 'null'\n\t\t\tcase '*' : return 'dict'\n\t\t\tcase '@' : return 'locale'\n\t\t\tcase '' : return 'string'\n\t\t\tcase '<=' : return 'get'\n\t\t\tcase '<=>' : return 'bind'\n\t\t\tcase '=>' : return 'put'\n\t\t}\n\n\t\tconst first_char = val.type && val.type[0]\n\n\t\tif (first_char === '/') return 'list'\n\t\tif( Number( val.type ).toString() == val.type ) return 'number'\n\t\tif (/^[$A-Z]/.test( first_char )) return 'object'\n \n\t\treturn this.$mol_fail(\n\t\t\terr`Unknown value type ${val.type} at ${val.span}`\n\t\t)\n\t}\t\n}\n","namespace $ {\n\n\tconst err = $mol_view_tree2_error_str\n\n\texport function $mol_view_tree2_value(\n\t\tthis: $,\n\t\tvalue: $mol_tree2,\n\t) {\n\t\tconst type = value.type\n\t\tconst kids = value.kids\n\n\t\tif (type === '') {\n\t\t\tif (kids.length === 0) return value.data(JSON.stringify(value.value))\n\n\t\t\treturn value.data(JSON.stringify(kids.map(node => node.value).join('\\n')))\n\t\t}\n\n\t\tif (kids.length !== 0) return this.$mol_fail(\n\t\t\terr`Kids are not allowed at ${value.span}, use ${example}`\n\t\t)\n\n\t\tif (type === 'false' || type === 'true') return value.data(type)\n\n\t\tif (type === 'null') return value.data(type)\n\n\t\tif (Number(type).toString() === type.replace(/^\\+/, '')) return value.data(type)\n\n\t\treturn this.$mol_fail(\n\t\t\terr`Value ${value.toString()} not allowed at ${value.span}, use ${example}`\n\t\t)\n\t}\n\n\tconst example = new $mol_view_tree2_error_suggestions([\n\t\t'false',\n\t\t'true',\n\t\t'123',\n\t\t'null',\n\t\t'\\\\some'\n\t])\n}\n","namespace $ {\n\texport function $mol_view_tree2_value_number(type: string) {\n\t\treturn type.match(/[\\+\\-]*NaN/) || !Number.isNaN( Number( type ) )\n\t}\n}\n","namespace $ {\n\n\texport function $mol_tree2_js_to_text( this: $, js: $mol_tree2 ) {\n\n\t\tfunction sequence( open?: string, separator?: string, close?: string ) {\n\t\t\treturn ( input: $mol_tree2, belt: $mol_tree2_belt< never > )=> [\n\t\t\t\tinput.struct( 'line', [\n\t\t\t\t\t... open ? [ input.data( open ) ] : [],\n\t\t\t\t\tinput.struct( separator && input.kids.length > 2 ? 'indent' : 'line',\n\t\t\t\t\t\t( [] as $mol_tree2[] ).concat(\n\t\t\t\t\t\t\t... input.kids.map( ( kid, index ) => [\n\t\t\t\t\t\t\t\tkid.struct( 'line', [\n\t\t\t\t\t\t\t\t\t... kid.list([ kid ]).hack( belt ),\n\t\t\t\t\t\t\t\t\t... ( separator && index < input.kids.length - 1 ) ? [ input.data( separator ) ] : [],\n\t\t\t\t\t\t\t\t] ),\n\t\t\t\t\t\t\t] ),\n\t\t\t\t\t\t)\n\t\t\t\t\t),\n\t\t\t\t\t... close ? [ input.data( close ) ] : [],\n\t\t\t\t] ),\n\t\t\t]\n\t\t}\n\n\t\tfunction block( open?: string, separator?: string, close?: string ) {\n\t\t\treturn ( input: $mol_tree2, belt: $mol_tree2_belt< never > )=> [\n\t\t\t\t... open ? [ input.data( open ) ] : [],\n\t\t\t\t... input.kids.length === 0 ? [] : [ input.struct( 'indent',\n\t\t\t\t\tinput.kids.map( ( kid, index ) =>\n\t\t\t\t\t\tkid.struct( 'line', [\n\t\t\t\t\t\t\t... kid.list([ kid ]).hack( belt ),\n\t\t\t\t\t\t\t... ( separator ) ? [ input.data( separator ) ] : [],\n\t\t\t\t\t\t] ),\n\t\t\t\t\t),\n\t\t\t\t) ],\n\t\t\t\t... close ? [ input.data( close ) ] : [],\n\t\t\t]\n\t\t}\n\n\t\tfunction duplet( open?: string, separator?: string, close?: string ) {\n\t\t\treturn ( input: $mol_tree2, belt: $mol_tree2_belt< never > )=> [\n\t\t\t\tinput.struct( 'line', [\n\t\t\t\t\t... open ? [ input.data( open ) ] : [],\n\t\t\t\t\t... input.list( input.kids.slice( 0, 1 ) ).hack( belt ),\n\t\t\t\t\t... ( separator && input.kids.length > 1 ) ? [ input.data( separator ) ] : [],\n\t\t\t\t\t... input.list( input.kids.slice( 1, 2 ) ).hack( belt ),\n\t\t\t\t\t... close ? [ input.data( close ) ] : [],\n\t\t\t\t] ),\n\t\t\t]\n\t\t}\n\n\t\tfunction triplet( open?: string, separator12?: string, separator23?: string, close?: string ) {\n\t\t\treturn ( input: $mol_tree2, belt: $mol_tree2_belt< never > )=> [\n\t\t\t\tinput.struct( 'line', [\n\t\t\t\t\t... open ? [ input.data( open ) ] : [],\n\t\t\t\t\t... input.list( input.kids.slice( 0, 1 ) ).hack( belt ),\n\t\t\t\t\t... ( separator12 && input.kids.length > 1 ) ? [ input.data( separator12 ) ] : [],\n\t\t\t\t\t... input.list( input.kids.slice( 1, 2 ) ).hack( belt ),\n\t\t\t\t\t... ( separator23 && input.kids.length > 2 ) ? [ input.data( separator23 ) ] : [],\n\t\t\t\t\t... input.list( input.kids.slice( 2, 3 ) ).hack( belt ),\n\t\t\t\t\t... close ? [ input.data( close ) ] : [],\n\t\t\t\t] ),\n\t\t\t]\n\t\t}\n\n\t\treturn js.list( js.hack({\n\n\t\t\t'+': sequence( '+' ),\n\t\t\t'-': sequence( '-' ),\n\t\t\t'!': sequence( '!' ),\n\t\t\t'~': sequence( '~' ),\n\n\t\t\t'return': sequence( 'return ' ),\n\t\t\t'break': sequence( 'break ' ),\n\t\t\t'continue': sequence( 'continue ' ),\n\t\t\t'yield': sequence( 'yield ' ),\n\t\t\t'yield*': sequence( 'yield* ' ),\n\t\t\t'await': sequence( 'await ' ),\n\t\t\t'void': sequence( 'void ' ),\n\t\t\t'delete': sequence( 'delete ' ),\n\t\t\t'typeof': sequence( 'typeof ' ),\n\t\t\t'new': sequence( 'new ' ),\n\t\t\t'...': sequence( '...' ),\n\n\t\t\t'@++': sequence( '', '', '++' ),\n\t\t\t'@--': sequence( '', '', '--' ),\n\t\t\t\n\t\t\t'(in)': sequence( '(', ' in ', ')' ),\n\t\t\t'(instanceof)': sequence( '(', ' instanceof ', ')' ),\n\n\t\t\t'(+)': sequence( '(', ' + ', ')' ),\n\t\t\t'(-)': sequence( '(', ' - ', ')' ),\n\t\t\t'(*)': sequence( '(', ' * ', ')' ),\n\t\t\t'(/)': sequence( '(', ' / ', ')' ),\n\t\t\t'(%)': sequence( '(', ' % ', ')' ),\n\t\t\t'(**)': sequence( '(', ' ** ', ')' ),\n\t\t\t\n\t\t\t'(<)': sequence( '(', ' < ', ')' ),\n\t\t\t'(<=)': sequence( '(', ' <= ', ')' ),\n\t\t\t'(>)': sequence( '(', ' > ', ')' ),\n\t\t\t'(>=)': sequence( '(', ' >= ', ')' ),\n\t\t\t'(==)': sequence( '(', ' == ', ')' ),\n\t\t\t'(!=)': sequence( '(', ' != ', ')' ),\n\t\t\t'(===)': sequence( '(', ' === ', ')' ),\n\t\t\t'(!==)': sequence( '(', ' !== ', ')' ),\n\t\t\t\n\t\t\t'(<<)': sequence( '(', ' << ', ')' ),\n\t\t\t'(>>)': sequence( '(', ' >> ', ')' ),\n\t\t\t'(>>>)': sequence( '(', ' >>> ', ')' ),\n\t\t\t'(&)': sequence( '(', ' & ', ')' ),\n\t\t\t'(|)': sequence( '(', ' | ', ')' ),\n\t\t\t'(^)': sequence( '(', ' ^ ', ')' ),\n\t\t\t\n\t\t\t'(&&)': sequence( '(', ' && ', ')' ),\n\t\t\t'(||)': sequence( '(', ' || ', ')' ),\n\t\t\t'(,)': sequence( '(', ', ', ')' ),\n\t\t\t'{;}': block( '{', ';', '}' ),\n\t\t\t';': block( '', ';', '' ),\n\t\t\t'[,]': sequence( '[', ', ', ']' ),\n\t\t\t'{,}': sequence( '{', ', ', '}' ),\n\n\t\t\t'()': sequence( '(', '', ')' ),\n\t\t\t'{}': block( '{', '', '}' ),\n\t\t\t\n\t\t\t'[]': ( input, belt )=> {\n\t\t\t\tconst first = input.kids[0]\n\t\t\t\tif( first.type ) return sequence( '[', '', ']' )( input, belt )\n\t\t\t\telse return [ input.data( '.' + first.text() ) ]\n\t\t\t},\n\t\t\t\n\t\t\t'?.[]': ( input, belt )=> {\n\t\t\t\tconst first = input.kids[0]\n\t\t\t\tif( first.type ) return sequence( '?.[', '', ']' )( input, belt )\n\t\t\t\telse return [ input.data( '?.' + first.text() ) ]\n\t\t\t},\n\t\t\t\n\t\t\t':': ( input, belt )=> {\n\t\t\t\tconst first = input.kids[0]\n\t\t\t\tif( first.type ) return duplet( '[', ']: ' )( input, belt )\n\t\t\t\telse return duplet( '', ': ' )( input, belt )\n\t\t\t},\n\t\t\t\n\t\t\t'let': duplet( 'let ', ' = ' ),\n\t\t\t'const': duplet( 'const ', ' = ' ),\n\t\t\t'var': duplet( 'var ', ' = ' ),\n\n\t\t\t'=': duplet( '', ' = ' ),\n\t\t\t'+=': duplet( '', ' += ' ),\n\t\t\t'-=': duplet( '', ' -= ' ),\n\t\t\t'*=': duplet( '', ' *= ' ),\n\t\t\t'/=': duplet( '', ' /= ' ),\n\t\t\t'%=': duplet( '', ' %= ' ),\n\t\t\t'**=': duplet( '', ' **= ' ),\n\t\t\t'<<=': duplet( '', ' <<= ' ),\n\t\t\t'>>=': duplet( '', ' >>= ' ),\n\t\t\t'>>>=': duplet( '', ' >>>= ' ),\n\t\t\t'&=': duplet( '', ' &= ' ),\n\t\t\t'|=': duplet( '', ' |= ' ),\n\t\t\t'^=': duplet( '', ' ^= ' ),\n\t\t\t'&&=': duplet( '', ' &&= ' ),\n\t\t\t'||=': duplet( '', ' ||= ' ),\n\n\t\t\t'=>': duplet( '', ' => ' ),\n\t\t\t'async=>': duplet( 'async ', ' => ' ),\n\t\t\t'function': triplet( 'function ' ),\n\t\t\t'function*': triplet( 'function* ' ),\n\t\t\t'async': triplet( 'async function ' ),\n\t\t\t'async*': triplet( 'async function* ' ),\n\n\t\t\t'class': triplet( 'class ', ' ' ),\n\t\t\t'extends': sequence( 'extends ', '', ' ' ),\n\n\t\t\t'if': triplet( 'if', ' ', 'else' ),\n\t\t\t'?:': triplet( '', ' ? ', ' : ' ),\n\n\t\t\t'.': ( input, belt )=> {\n\t\t\t\tconst first = input.kids[0]\n\t\t\t\tif( first.type ) return triplet( '[', ']' )( input, belt )\n\t\t\t\telse return [\n\t\t\t\t\tinput.data( first.text() ),\n\t\t\t\t\t... input.list( input.kids.slice(1) ).hack( belt ),\n\t\t\t\t]\n\t\t\t},\n\n\t\t\t'get': triplet( 'get [', ']' ),\n\t\t\t'set': triplet( 'set [', ']' ),\n\t\t\t'static': triplet( 'static [', ']' ),\n\t\t\t\n\t\t\t'/./': sequence(),\n\t\t\t'.global': sequence( 'g' ),\n\t\t\t'.multiline': sequence( 'm' ),\n\t\t\t'.ignoreCase': sequence( 'i' ),\n\t\t\t'.source': ( input, belt )=> [\n\t\t\t\tinput.data( '/' ),\n\t\t\t\tinput.data( JSON.stringify( input.text() ).slice( 1, -1 ) ),\n\t\t\t\tinput.data( '/' ),\n\t\t\t],\n\n\t\t\t'``': ( input, belt )=> {\n\t\t\t\treturn [\n\t\t\t\t\tinput.struct( 'line', [\n\t\t\t\t\t\tinput.data( '`' ),\n\t\t\t\t\t\t... ( [] as $mol_tree2[] ).concat( ... input.kids.map( kid => {\n\t\t\t\t\t\t\tif( kid.type ) {\n\t\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\t\tkid.data( '${' ),\n\t\t\t\t\t\t\t\t\t... kid.list([ kid ]).hack( belt ),\n\t\t\t\t\t\t\t\t\tkid.data( '}' ),\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\t\tinput.data( JSON.stringify( kid.text() ).slice( 1, -1 ) ),\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} ) ),\n\t\t\t\t\t\tinput.data( '`' ),\n\t\t\t\t\t] ),\n\t\t\t\t]\n\t\t\t},\n\n\t\t\t'': ( input, belt )=> {\n\n\t\t\t\t// string\n\t\t\t\tif( !input.type ) return [\n\t\t\t\t\tinput.data( JSON.stringify( input.text() ) ),\n\t\t\t\t]\n\t\t\t\t\n\t\t\t\t// variable\n\t\t\t\tif( /^[\\w$#][\\w0-9$]*$/i.test( input.type ) ) return [\n\t\t\t\t\tinput.data( input.type ),\n\t\t\t\t\t// ... input.hack( context ),\n\t\t\t\t]\n\t\t\t\t\n\t\t\t\t// number\n\t\t\t\tif( $mol_view_tree2_value_number(input.type) ) return [\n\t\t\t\t\tinput.data( input.type )\n\t\t\t\t]\n\n\t\t\t\t$mol_fail( new SyntaxError( `Wrong node type` ) )\n\n\t\t\t},\n\n\t\t}) )\n\n\t}\n\n}\n","namespace $ {\n\texport function $mol_tree2_span_imprint( tree: $mol_tree2 ) {\n\n\t\tconst sources = new Map< string, $mol_tree2 >()\n\n\t\tconst res = tree.clone( tree.hack({\n\t\t\t'': ( input, belt )=> {\n\n\t\t\t\tif( !sources.has( input.span.uri ) ) {\n\t\t\t\t\tsources.set( input.span.uri,\n\t\t\t\t\t\ttree.struct( input.span.uri, [\n\t\t\t\t\t\t\ttree.data( input.span.source )\n\t\t\t\t\t\t] ),\n\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\tinput.clone([\n\t\t\t\t\t\tinput.data( input.span.toString() ),\n\t\t\t\t\t\t... input.hack( belt ),\n\t\t\t\t\t]),\n\t\t\t\t]\n\n\t\t\t},\n\t\t}) )\n\n\t\treturn tree.clone([\n\t\t\t... sources.values(),\n\t\t\tres,\n\t\t])\n\n\t}\n}\n","namespace $ {\n\texport function $mol_tree2_span_reuse( tree: $mol_tree2 ) {\n\t\t\n\t\tconst sources = new Map< string, string >()\n\n\t\treturn tree.clone(\n\t\t\ttree.hack({\n\t\t\t\t'': ( input, belt )=> {\n\n\t\t\t\t\tif( input.type ) {\n\t\t\t\t\t\tsources.set( input.type, input.kids[0].text() )\n\t\t\t\t\t\treturn []\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\treturn input.hack({\n\t\t\t\t\t\t'': ( input, belt )=> {\n\t\t\t\t\t\t\tconst kids = input.list( input.kids.slice(1) ).hack( belt )\n\t\t\t\t\t\t\tconst [ _, uri, row, col, length ] = /^(.*)#(\\d+):(\\d+)\\/(\\d+)$/.exec( input.kids[0].text() )!\n\t\t\t\t\t\t\tconst span = new $mol_span( uri, sources.get( uri )!, Number( row ), Number( col ), Number( length ) )\n\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\tnew $mol_tree2( input.type , input.value , kids, span ),\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\n\t\t\t\t},\n\t\t\t}),\n\t\t)\n\n\t}\n}\n","namespace $ {\n\n\texport function $mol_tree2_text_to_string( this: $, text: $mol_tree2 ) {\n\n\t\tlet res = ''\n\t\t\n\t\tfunction visit( text: $mol_tree2, prefix: string, inline: boolean ) {\n\n\t\t\tif( text.type === 'indent' ) {\n\n\t\t\t\tif( inline ) res += '\\n'\n\t\t\t\t\n\t\t\t\tfor( let kid of text.kids ) {\n\t\t\t\t\tvisit( kid, prefix + '\\t', false )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( inline ) res += prefix\n\n\t\t\t} else if( text.type === 'line' ) {\n\t\t\t\t\n\t\t\t\tif( !inline ) res += prefix\n\t\t\t\t\n\t\t\t\tfor( let kid of text.kids ) {\n\t\t\t\t\tvisit( kid, prefix, true )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( !inline ) res += '\\n'\n\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tif( !inline ) res += prefix\n\t\t\t\t\n\t\t\t\tres += text.text()\n\t\t\t\t\n\t\t\t\tif( !inline ) res += '\\n'\n\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\tfor( let kid of text.kids ) {\n\t\t\tvisit( kid, '', false )\n\t\t}\n\t\t\n\t\treturn res\n\t}\n\n}\n","namespace $ {\n\n\tconst alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\n\n\texport function $mol_vlq_encode( val: number ): string {\n\n\t\tconst sign = val < 0 ? 1 : 0\n\t\tif( sign ) val = -val\n\n\t\tlet index = sign | ( ( val & 0b1111 ) << 1 )\n\t\tval >>>= 4\n\t\t\n\t\tlet res = ''\n\n\t\twhile( val ) {\n\n\t\t\tindex |= 1 << 5\n\t\t\tres += alphabet[ index ]\n\t\t\t\n\t\t\tif( !val ) break\n\t\t\t\n\t\t\tindex = val & 0b11111\n\t\t\tval >>>= 5\n\t\t\t\n\t\t}\n\n\t\tres += alphabet[ index ]\n\n\t\treturn res\n\t}\n\t\n}\n","namespace $ {\n\n\texport function $mol_tree2_text_to_sourcemap( this: $, tree: $mol_tree2 ) {\n\n\t\tlet col = 1\n\t\tlet prev_span: $mol_span | undefined\n\t\tlet prev_index = 0\n\t\tlet prev_col = 1\n\t\tlet mappings = ''\n\t\tlet line = [] as string[]\n\n\t\tconst file_indexes = new Map< string, number >()\n\t\tconst file_sources = new Map< string, string >()\n\n\t\tfunction span2index( span: $mol_span ) {\n\t\t\tif( file_indexes.has( span.uri ) ) return file_indexes.get( span.uri )!\n\t\t\tconst index = file_indexes.size\n\t\t\tfile_indexes.set( span.uri, index )\n\t\t\tfile_sources.set( span.uri, span.source )\n\t\t\treturn index\n\t\t}\n\t\t\n\t\tfunction next_line() {\n\t\t\tif( !line.length ) return\n\t\t\tmappings += line.join(',') + ';'\n\t\t\tline = []\n\t\t\tcol = 1\n\t\t\tprev_col = 1\n\t\t}\n\t\t\n\t\tfunction visit( text: $mol_tree2, prefix: number, inline: boolean ) {\n\n\t\t\tfunction indent() {\n\t\t\t\tcol += prefix\n\t\t\t}\n\t\n\t\t\tif( inline && text.type === 'indent' ) next_line()\n\t\t\t\n\t\t\tif( prev_span !== text.span || col === 1 ) {\n\n\t\t\t\tconst index = span2index( text.span )\n\t\t\t\t\n\t\t\t\tline.push(\n\t\t\t\t\t$mol_vlq_encode( col - prev_col ) + \n\t\t\t\t\t$mol_vlq_encode( index - prev_index ) +\n\t\t\t\t\t$mol_vlq_encode( text.span.row - ( prev_span?.row ?? 1 ) ) +\n\t\t\t\t\t$mol_vlq_encode( text.span.col - ( prev_span?.col ?? 1 ) )\n\t\t\t\t)\n\t\t\t\t\n\t\t\t\tprev_col = col\n\t\t\t\tprev_span = text.span\n\t\t\t\tprev_index = index\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tif( text.type === 'indent' ) {\n\n\t\t\t\tfor( let kid of text.kids ) {\n\t\t\t\t\tvisit( kid, prefix + 1, false )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( inline ) next_line()\n\n\t\t\t} else if( text.type === 'line' ) {\n\t\t\t\t\n\t\t\t\tif( !inline ) indent()\n\t\t\t\t\n\t\t\t\tfor( let kid of text.kids ) {\n\t\t\t\t\tvisit( kid, prefix, true )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( !inline ) next_line()\n\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tif( !inline ) indent()\n\t\t\t\t\n\t\t\t\tcol += text.text().length\n\t\t\t\t\n\t\t\t\tif( !inline ) next_line()\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\n\t\tfor( let kid of tree.kids ) {\n\t\t\tvisit( kid, 0, false )\n\t\t}\n\t\tnext_line()\n\t\t\n\t\tconst map: $mol_sourcemap_raw = {\n\t\t\tversion: 3,\n\t\t\tsources: [ ... file_sources.keys() ],\n\t\t\tsourcesContent: [ ... file_sources.values() ],\n\t\t\tmappings,\n\t\t}\n\n\t\treturn map\n\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_sourcemap_url(this: $, uri: string, type = 'js' as 'js' | 'css') {\n\t\tif (type === 'css') return `\\n/*# sourceMappingURL=${uri}*/`\n\t\treturn `\\n//# sourceMappingURL=${uri}`\n\t}\n\n}\n","namespace $ {\n\n\tconst prefix = '# sourceMappingURL=data:application/json,'\n\tconst end_comment = ' */'\n\n\texport function $mol_sourcemap_dataurl_decode(this: $, data: string) {\n\t\tconst index = data.lastIndexOf(prefix)\n\n\t\tif (index === -1) return undefined\n\n\t\tdata = data.substring(index + prefix.length)\n\n\t\tif (data.endsWith(end_comment)) data = data.substring(0, data.length - end_comment.length)\n\n\t\tconst decoded = this.decodeURIComponent(data)\n\n\t\ttry {\n\t\t\tconst map = JSON.parse(decoded) as $mol_sourcemap_raw | null\n\n\t\t\tif (! map) return undefined\n\n\t\t\tif (typeof map.mappings === 'string' && map.mappings.startsWith(';;')) {\n\t\t\t\tmap.mappings = map.mappings.substring(2)\n\t\t\t}\n\n\t\t\treturn map\n\t\t} catch (e) {\n\t\t\tif (e instanceof Error) e.message += ', origin=' + decoded\n\t\t\t$mol_fail_hidden(e)\n\t\t}\n\t}\n\n\texport function $mol_sourcemap_dataurl_encode(this: $, map: $mol_sourcemap_raw, type = 'js' as 'js' | 'css') {\n\t\tconst str = JSON.stringify( { ...map, mappings: ';;' + map.mappings } )\n\n\t\treturn this.$mol_sourcemap_url('data:application/json,' + this.encodeURIComponent( str ), type)\n\t}\n}\n","namespace $ {\n\n\texport function $mol_tree2_text_to_string_mapped( this: $, text: $mol_tree2, type: 'js' | 'css' ) {\n\t\t\n\t\tconst code = this.$mol_tree2_text_to_string( text )\n\t\tconst map = this.$mol_tree2_text_to_sourcemap( text )\n\n\t\tconst chunk = this.$mol_sourcemap_dataurl_encode( map, type )\n\t\treturn code + chunk\n\t}\n\n\texport function $mol_tree2_text_to_string_mapped_js( this: $, text: $mol_tree2 ) {\n\t\treturn this.$mol_tree2_text_to_string_mapped( text, 'js' )\n\t}\n\t\n\texport function $mol_tree2_text_to_string_mapped_css( this: $, text: $mol_tree2 ) {\n\t\treturn this.$mol_tree2_text_to_string_mapped( text, 'css')\n\t}\n\t\n}\n","namespace $ {\n\texport function $mol_guard_defined<T>(value: T): value is NonNullable<T> {\n\t\treturn value !== null && value !== undefined\n\t}\n}\n","namespace $ {\n\n\texport function $mol_tree2_text_to_sourcemap_vis( this: $, text: $mol_tree2 ) {\n\t\t\n\t\tconst code = this.$mol_tree2_text_to_string( text )\n\t\tconst map = this.$mol_tree2_text_to_sourcemap( text )\n\t\t\n\t\tconst uri = [\n\t\t\t'https://sokra.github.io/source-map-visualization/#base64',\n\t\t\tbtoa( code ),\n\t\t\tbtoa( JSON.stringify( map ) ),\n\t\t\t... map.sourcesContent?.filter($mol_guard_defined).map( btoa ) ?? [],\n\t\t].join( ',' )\n\n\t\treturn uri\n\n\t}\n\n}\n","namespace $ {\n\t\n\t/** Makes JSON from json.tree. */\n\texport function $mol_tree2_to_json(\n\t\tthis: $,\n\t\ttree: $mol_tree2,\n\t): unknown {\n\n\t\tif( !tree.type ) {\n\t\t\tif( tree.kids.every( kid => !kid.type ) ) return tree.text()\n\t\t\tif( tree.kids.length !== 1 ) this.$mol_fail( new Error( `Multiple json root at ${tree.span}` ) )\n\t\t\treturn this.$mol_tree2_to_json(tree.kids[0] )\n\t\t}\n\t\t\n\t\tif( tree.type === '-' ) return undefined\n\t\tif( tree.type === 'true' ) return true\n\t\tif( tree.type === 'false' ) return false\n\t\tif( tree.type === 'null' ) return null\n\t\t\n\t\tif( tree.type === '*' ) {\n\t\t\t\n\t\t\tconst obj = {} as Record< string, unknown >\n\t\t\t\n\t\t\tfor( const kid of tree.kids ) {\n\t\t\t\tif( kid.type === '-' ) continue\n\t\t\t\t\n\t\t\t\tconst key = kid.type || kid.clone( kid.kids.slice( 0, -1 ) ).text()\n\t\t\t\tconst val = this.$mol_tree2_to_json( kid.kids[ kid.kids.length - 1 ] )\n\t\t\t\t\n\t\t\t\tif( val !== undefined ) obj[ key ] = val\n\t\t\t}\n\t\t\t\n\t\t\treturn obj\n\t\t}\n\t\t\n\t\tif( tree.type === '/' ) {\n\t\t\t\n\t\t\tconst res = [] as unknown[]\n\t\t\t\n\t\t\tfor( const kid of tree.kids ) {\n\t\t\t\tif( kid.type === '-' ) continue\n\t\t\t\t\n\t\t\t\tvar val = this.$mol_tree2_to_json( kid )\n\t\t\t\tif( val !== undefined ) res.push( val )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\treturn res\n\t\t}\n\t\t\n\t\tconst numb = Number( tree.type ) \n\t\tif( !Number.isNaN( numb ) || tree.type === 'NaN' ) return numb\n\t\t\n\t\tthis.$mol_fail( new Error( `Unknown json type (${tree.type}) at ${tree.span}` ) )\n\t}\n\n}\n","namespace $ {\n\t\n\texport async function $mol_tree2_to_stream(\n\t\ttree: $mol_tree2,\n\t\toutput: {\n\t\t\twrite( chunk: string ): boolean\n\t\t\tonce?( event: 'drain', cb: ()=> void ): void\n\t\t},\n\t\tprefix = '',\n\t) {\n\n\t\tconst pause = ()=> {\n\t\t\treturn new Promise( done => {\n\t\t\t\toutput.once!( 'drain', ()=> done( null ) )\n\t\t\t} )\n\t\t}\n\n\t\tlet out = ''\n\n\t\tif( tree.type.length ) {\n\t\t\t\n\t\t\tif( !prefix.length ) {\n\t\t\t\tprefix = \"\\t\";\n\t\t\t}\n\n\t\t\tout += tree.type\n\n\t\t\tif( tree.kids.length == 1 ) {\n\t\t\t\toutput.write( out + ' ' )\n\t\t\t\tawait $mol_tree2_to_stream( tree.kids[ 0 ], output, prefix )\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tout += \"\\n\"\n\n\t\t} else if( tree.value.length || prefix.length ) {\n\n\t\t\tout += \"\\\\\" + tree.value + \"\\n\"\n\n\t\t}\n\n\t\toutput.write( out )\n\n\t\tfor( const kid of tree.kids ) {\n\t\t\tif( !output.write( prefix ) ) await pause()\n\t\t\tawait $mol_tree2_to_stream( kid, output, prefix + \"\\t\" )\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\t\n\texport function $mol_tree2_xml_from_dom( dom: Node ): $mol_tree2 {\n\t\t\n\t\tswitch( dom.nodeType ) {\n\t\t\t\n\t\t\tcase dom.DOCUMENT_NODE: {\n\t\t\t\tlet kids = [] as $mol_tree2[]\n\t\t\t\t\n\t\t\t\tfor( const kid of dom.childNodes ) {\n\t\t\t\t\tkids.push( $mol_tree2_xml_from_dom( kid ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn $mol_tree2.list( kids )\n\t\t\t}\n\t\t\t\n\t\t\tcase dom.PROCESSING_INSTRUCTION_NODE: {\n\t\t\t\treturn $mol_tree2.struct( '?', [\n\t\t\t\t\t$mol_tree2.struct( dom.nodeName, \n\t\t\t\t\t\tdom.nodeValue!.split(' ').map( chunk => {\n\t\t\t\t\t\t\tconst [, name, value ] = /^(.*?)(?:=\"(.*?)\")?$/.exec( chunk )!\n\t\t\t\t\t\t\tconst kids = value ? [ $mol_tree2.data( value ) ] : []\n\t\t\t\t\t\t\treturn $mol_tree2.struct( name, kids )\n\t\t\t\t\t\t} )\n\t\t\t\t\t)\n\t\t\t\t] )\n\t\t\t}\n\t\t\t\n\t\t\tcase dom.DOCUMENT_TYPE_NODE: {\n\t\t\t\tconst dom2 = dom as DocumentType\n\t\t\t\treturn $mol_tree2.struct( '!', [\n\t\t\t\t\t$mol_tree2.struct( 'DOCTYPE', [ \n\t\t\t\t\t\t$mol_tree2.struct( dom2.name )\n\t\t\t\t\t] )\n\t\t\t\t] )\n\t\t\t}\n\t\t\t\n\t\t\tcase dom.ELEMENT_NODE: {\n\t\t\t\tlet kids = [] as $mol_tree2[]\n\t\t\t\t\n\t\t\t\tfor( const attr of ( dom as Element ).attributes ) {\n\t\t\t\t\tkids.push(\n\t\t\t\t\t\t$mol_tree2.struct( '@', [\n\t\t\t\t\t\t\t$mol_tree2.struct( attr.nodeName, [\n\t\t\t\t\t\t\t\t$mol_tree2.data( attr.nodeValue! )\n\t\t\t\t\t\t\t] )\n\t\t\t\t\t\t] )\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfor( const kid of dom.childNodes ) {\n\t\t\t\t\tconst k = $mol_tree2_xml_from_dom( kid ) \n\t\t\t\t\tif( k.type || k.value ) kids.push( k )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn $mol_tree2.struct( dom.nodeName, kids )\n\t\t\t}\n\t\t\t\n\t\t\tcase dom.COMMENT_NODE: {\n\t\t\t\treturn $mol_tree2.struct( '--', [\n\t\t\t\t\t$mol_tree2.data( dom.nodeValue! )\n\t\t\t\t] )\n\t\t\t}\n\t\t\t\n\t\t\tcase dom.TEXT_NODE: {\n\t\t\t\tif( !dom.nodeValue!.trim() ) return $mol_tree2.list([])\n\t\t\t\treturn $mol_tree2.data(\n\t\t\t\t\tdom.nodeValue!.replace( /\\s+/g, ' ' )\n\t\t\t\t)\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\treturn $mol_fail( new Error( `Unsupported node ${ dom.nodeName }` ) )\n\t}\n\t\n}\n","namespace $ {\n\t\n\tconst mapping = {\n\t\t'<' : '&lt;' ,\n\t\t'>' : '&gt;' ,\n\t\t'\"' : '&quot;' ,\n\t\t'&' : '&amp;' ,\n\t}\n\t\n\texport function $mol_html_encode( text : string ) {\n\t\treturn text.replace( /[&<\">]/gi , str => mapping[ str as keyof typeof mapping ] )\n\t}\n\t\n}\n","namespace $ {\n\n\tfunction attrs_belt( separator : string ) : Record< string, $mol_tree2_hack<never> > {\n\t\treturn {\n\n\t\t\t'': ( input )=> [\n\t\t\t\tinput.data( ' ' ),\n\t\t\t\tinput.data( $mol_html_encode( input.type ) ),\n\t\t\t\t... input.value ? [\n\t\t\t\t\tinput.data( '\"' ),\n\t\t\t\t\tinput.data( $mol_html_encode( input.value ) ),\n\t\t\t\t\tinput.data( '\"' ),\n\t\t\t\t] : [],\n\t\t\t\t... input.hack({\n\n\t\t\t\t\t'': ( input )=> {\n\n\t\t\t\t\t\tif( !input.type ) return [\n\t\t\t\t\t\t\tinput.data( separator ),\n\t\t\t\t\t\t\tinput.data( '\"' ),\n\t\t\t\t\t\t\tinput.data( $mol_html_encode( input.text() ) ),\n\t\t\t\t\t\t\tinput.data( '\"' ),\n\t\t\t\t\t\t]\n\n\t\t\t\t\t\t$mol_fail( new SyntaxError( 'Wrong attribute value' ) )\n\n\t\t\t\t\t},\n\n\t\t\t\t}),\n\t\t\t],\n\n\t\t}\n\t}\n\t\n\texport function $mol_tree2_xml_to_text( xml: $mol_tree2 ) {\n\t\treturn xml.list(\n\t\t\txml.hack({\n\n\t\t\t\t'@': ( input, belt )=> [],\n\n\t\t\t\t'--': ( input, belt )=> [\n\t\t\t\t\txml.struct( 'line', [\n\t\t\t\t\t\tinput.data( '<!-- ' ),\n\t\t\t\t\t\t... input.hack( belt ),\n\t\t\t\t\t\tinput.data( ' -->' ),\n\t\t\t\t\t] ),\n\t\t\t\t],\n\n\t\t\t\t'?': ( input, belt )=> [\n\t\t\t\t\txml.struct( 'line', [\n\t\t\t\t\t\tinput.data( '<?' ),\n\t\t\t\t\t\tinput.kids[0].data( input.kids[0].type ),\n\t\t\t\t\t\t... input.kids[0].hack( attrs_belt( '=' ) ),\n\t\t\t\t\t\tinput.data( '?>' ),\n\t\t\t\t\t] ),\n\t\t\t\t],\n\n\t\t\t\t'!': ( input, belt )=> [\n\t\t\t\t\txml.struct( 'line', [\n\t\t\t\t\t\tinput.data( '<!' ),\n\t\t\t\t\t\tinput.kids[0].data( input.kids[0].type ),\n\t\t\t\t\t\t... input.kids[0].hack( attrs_belt( ' ' ) ),\n\t\t\t\t\t\tinput.data( '>' ),\n\t\t\t\t\t] ),\n\t\t\t\t],\n\n\t\t\t\t'': ( input, belt )=> {\n\n\t\t\t\t\tif( !input.type ) return [\n\t\t\t\t\t\tinput.data( $mol_html_encode( input.text() ) ),\n\t\t\t\t\t]\n\n\t\t\t\t\tconst attrs = input.select( '@', null ).hack( attrs_belt( '=' ) )\n\t\t\t\t\tconst content = input.hack( belt )\n\t\t\t\t\t\n\t\t\t\t\treturn [\n\t\t\t\t\t\tinput.struct( 'line', [\n\t\t\t\t\t\t\tinput.data( `<` ),\n\t\t\t\t\t\t\tinput.data( input.type ),\n\t\t\t\t\t\t\t... attrs,\n\t\t\t\t\t\t\t... content.length ? [\n\t\t\t\t\t\t\t\tinput.data( `>` ),\n\t\t\t\t\t\t\t\tinput.struct( 'indent', content ),\n\t\t\t\t\t\t\t\tinput.data( `</` ),\n\t\t\t\t\t\t\t\tinput.data( input.type ),\n\t\t\t\t\t\t\t\tinput.data( `>` ),\n\t\t\t\t\t\t\t] : [\n\t\t\t\t\t\t\t\tinput.data( ` />` ),\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t] ),\n\t\t\t\t\t]\n\n\t\t\t\t},\n\n\t\t\t}),\n\t\t)\n\t}\n\n}\n"]}