{"version":3,"sources":["ast/class.ts"],"names":["typed","AST","decorate","Object","constructor","createNew","Constructor","copy","r"],"mappings":";;AAAA,SAAQA,KAAR,QAAoB,cAApB;AAEA;AACA;AACA;;AAEA,WAAsBC,GAAtB,WADCD,KAAK,CAACE,QAAN,CAAe,KAAf,CACD,gBADA,MACsBD,GADtB,SACkCE,MADlC,CACyC;AACxCC,EAAAA,WAAW,GAAG;AACb;AACA;AAED;AACD;AACA;AACA;AACA;;;AACQC,EAAAA,SAAS,GAAG;AAClB,UAAMC,WAAW,GAAG,KAAKF,WAAzB;AACA,WAAO,IAAIE,WAAJ,EAAP;AACA;AAED;AACD;AACA;AACA;AACA;;;AACQC,EAAAA,IAAI,GAAG;AACb,UAAMC,CAAC,GAAG,KAAKH,SAAL,EAAV;AACA,WAAOG,CAAP;AACA;;AAvBuC,CAAzC","sourcesContent":["import {typed} from '../typed';\n\n/**\n * AST constructor.\n */\n@typed.decorate('AST')\nexport abstract class AST extends Object {\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\t/**\n\t * Create new instance of same type.\n\t *\n\t * @returns New instance.\n\t */\n\tpublic createNew() {\n\t\tconst Constructor = this.constructor as new() => AST;\n\t\treturn new Constructor() as this;\n\t}\n\n\t/**\n\t * Copy instance.\n\t *\n\t * @returns Copied instance.\n\t */\n\tpublic copy() {\n\t\tconst r = this.createNew();\n\t\treturn r;\n\t}\n}\n"],"file":"class.mjs","sourceRoot":"../../src"}