From c0112e2cffe223083752e9176c42541eee21ff3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B8=D1=85=D0=B0=D0=B8=D0=BB=20=D0=9A=D0=B0=D0=BF?= =?UTF-8?q?=D0=B5=D0=BB=D1=8C=D0=BA=D0=BE?= Date: Sat, 11 Apr 2026 22:17:11 +0300 Subject: [PATCH 1/8] =?UTF-8?q?=D0=BF=D1=83=D1=81=D1=82=D0=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From a3b5cc1fd5fc412adfc55c1abc5968c3007a0e81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B8=D1=85=D0=B0=D0=B8=D0=BB=20=D0=9A=D0=B0=D0=BF?= =?UTF-8?q?=D0=B5=D0=BB=D1=8C=D0=BA=D0=BE?= Date: Sat, 11 Apr 2026 22:20:23 +0300 Subject: [PATCH 2/8] dbg --- dist/app.js | 2 +- klin/ver-nodejs/app/src/jsMain/resources/app.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dist/app.js b/dist/app.js index 1fae2e9..6bb5069 100755 --- a/dist/app.js +++ b/dist/app.js @@ -27,7 +27,7 @@ function AppComponent() { KT.registerOneliners(KT.appCtrl(), oneliners); // Defaults. - //appSet("isDbg", true); + appSet("isDbg", true); appSet("arguments", process.argv); }; diff --git a/klin/ver-nodejs/app/src/jsMain/resources/app.js b/klin/ver-nodejs/app/src/jsMain/resources/app.js index 1fae2e9..6bb5069 100755 --- a/klin/ver-nodejs/app/src/jsMain/resources/app.js +++ b/klin/ver-nodejs/app/src/jsMain/resources/app.js @@ -27,7 +27,7 @@ function AppComponent() { KT.registerOneliners(KT.appCtrl(), oneliners); // Defaults. - //appSet("isDbg", true); + appSet("isDbg", true); appSet("arguments", process.argv); }; From 7e2163b06269363a777621327e7804b2642ddc30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B8=D1=85=D0=B0=D0=B8=D0=BB=20=D0=9A=D0=B0=D0=BF?= =?UTF-8?q?=D0=B5=D0=BB=D1=8C=D0=BA=D0=BE?= Date: Sat, 11 Apr 2026 22:23:43 +0300 Subject: [PATCH 3/8] print filename --- dist/app.js | 1 + klin/ver-nodejs/app/src/jsMain/resources/app.js | 1 + 2 files changed, 2 insertions(+) diff --git a/dist/app.js b/dist/app.js index 6bb5069..84738aa 100755 --- a/dist/app.js +++ b/dist/app.js @@ -44,6 +44,7 @@ function appReadFile(fileName) { function appWriteFile(fileName, contents) { fs.writeFileSync(fileName, contents); + /**/console.log("ИГР appWF fileName: ", fileName); appSet("didWriteOutputFile", true); } diff --git a/klin/ver-nodejs/app/src/jsMain/resources/app.js b/klin/ver-nodejs/app/src/jsMain/resources/app.js index 6bb5069..84738aa 100755 --- a/klin/ver-nodejs/app/src/jsMain/resources/app.js +++ b/klin/ver-nodejs/app/src/jsMain/resources/app.js @@ -44,6 +44,7 @@ function appReadFile(fileName) { function appWriteFile(fileName, contents) { fs.writeFileSync(fileName, contents); + /**/console.log("ИГР appWF fileName: ", fileName); appSet("didWriteOutputFile", true); } From dfcd5a3c0b70ff17bef00a4a145d72fdbce6851a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B8=D1=85=D0=B0=D0=B8=D0=BB=20=D0=9A=D0=B0=D0=BF?= =?UTF-8?q?=D0=B5=D0=BB=D1=8C=D0=BA=D0=BE?= Date: Tue, 21 Apr 2026 16:30:28 +0300 Subject: [PATCH 4/8] rm console --- klin/ver-nodejs/app/src/jsMain/resources/app.js | 1 - 1 file changed, 1 deletion(-) diff --git a/klin/ver-nodejs/app/src/jsMain/resources/app.js b/klin/ver-nodejs/app/src/jsMain/resources/app.js index 84738aa..6bb5069 100755 --- a/klin/ver-nodejs/app/src/jsMain/resources/app.js +++ b/klin/ver-nodejs/app/src/jsMain/resources/app.js @@ -44,7 +44,6 @@ function appReadFile(fileName) { function appWriteFile(fileName, contents) { fs.writeFileSync(fileName, contents); - /**/console.log("ИГР appWF fileName: ", fileName); appSet("didWriteOutputFile", true); } From 993f9997272c9e7d190e5aa82180116ab44a0b57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B8=D1=85=D0=B0=D0=B8=D0=BB=20=D0=9A=D0=B0=D0=BF?= =?UTF-8?q?=D0=B5=D0=BB=D1=8C=D0=BA=D0=BE?= Date: Tue, 21 Apr 2026 16:30:52 +0300 Subject: [PATCH 5/8] dbg only --- dist/app.js | 1 - 1 file changed, 1 deletion(-) diff --git a/dist/app.js b/dist/app.js index 84738aa..6bb5069 100755 --- a/dist/app.js +++ b/dist/app.js @@ -44,7 +44,6 @@ function appReadFile(fileName) { function appWriteFile(fileName, contents) { fs.writeFileSync(fileName, contents); - /**/console.log("ИГР appWF fileName: ", fileName); appSet("didWriteOutputFile", true); } From 88936e7ef2ae07ab4d2d4dd138f3327c0d258b84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B8=D1=85=D0=B0=D0=B8=D0=BB=20=D0=9A=D0=B0=D0=BF?= =?UTF-8?q?=D0=B5=D0=BB=D1=8C=D0=BA=D0=BE?= Date: Tue, 21 Apr 2026 16:47:24 +0300 Subject: [PATCH 6/8] more dbg --- dist/kotlin-kotlin-stdlib.js | 14 +++++++------- dist/ver-nodejs-app.js | 4 ++++ .../commonMain/kotlin/org/opengamestudio/parse.kt | 4 ++++ 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/dist/kotlin-kotlin-stdlib.js b/dist/kotlin-kotlin-stdlib.js index 93d8221..a3e0b04 100644 --- a/dist/kotlin-kotlin-stdlib.js +++ b/dist/kotlin-kotlin-stdlib.js @@ -117,22 +117,22 @@ if (typeof String.prototype.startsWith === 'undefined') { initMetadataForClass(AbstractCollection, 'AbstractCollection', VOID, VOID, [Collection]); initMetadataForClass(AbstractMutableCollection, 'AbstractMutableCollection', VOID, AbstractCollection, [AbstractCollection, Collection]); initMetadataForClass(IteratorImpl, 'IteratorImpl'); - initMetadataForClass(AbstractMutableList, 'AbstractMutableList', VOID, AbstractMutableCollection, [AbstractMutableCollection, Collection, KtList]); + initMetadataForClass(AbstractMutableList, 'AbstractMutableList', VOID, AbstractMutableCollection, [AbstractMutableCollection, KtList, Collection]); initMetadataForClass(AbstractMap, 'AbstractMap', VOID, VOID, [KtMap]); initMetadataForClass(AbstractMutableMap, 'AbstractMutableMap', VOID, AbstractMap, [AbstractMap, KtMap]); - initMetadataForClass(AbstractMutableSet, 'AbstractMutableSet', VOID, AbstractMutableCollection, [AbstractMutableCollection, Collection, KtSet]); + initMetadataForClass(AbstractMutableSet, 'AbstractMutableSet', VOID, AbstractMutableCollection, [AbstractMutableCollection, KtSet, Collection]); initMetadataForCompanion(Companion_2); - initMetadataForClass(ArrayList, 'ArrayList', ArrayList_init_$Create$, AbstractMutableList, [AbstractMutableList, Collection, KtList]); + initMetadataForClass(ArrayList, 'ArrayList', ArrayList_init_$Create$, AbstractMutableList, [AbstractMutableList, KtList, Collection]); initMetadataForClass(HashMap, 'HashMap', HashMap_init_$Create$, AbstractMutableMap, [AbstractMutableMap, KtMap]); - initMetadataForClass(HashMapKeys, 'HashMapKeys', VOID, AbstractMutableSet, [Collection, KtSet, AbstractMutableSet]); + initMetadataForClass(HashMapKeys, 'HashMapKeys', VOID, AbstractMutableSet, [KtSet, Collection, AbstractMutableSet]); initMetadataForClass(HashMapValues, 'HashMapValues', VOID, AbstractMutableCollection, [Collection, AbstractMutableCollection]); - initMetadataForClass(HashMapEntrySetBase, 'HashMapEntrySetBase', VOID, AbstractMutableSet, [Collection, KtSet, AbstractMutableSet]); + initMetadataForClass(HashMapEntrySetBase, 'HashMapEntrySetBase', VOID, AbstractMutableSet, [KtSet, Collection, AbstractMutableSet]); initMetadataForClass(HashMapEntrySet, 'HashMapEntrySet', VOID, HashMapEntrySetBase); initMetadataForClass(HashMapKeysDefault$iterator$1); initMetadataForClass(HashMapKeysDefault, 'HashMapKeysDefault', VOID, AbstractMutableSet); initMetadataForClass(HashMapValuesDefault$iterator$1); initMetadataForClass(HashMapValuesDefault, 'HashMapValuesDefault', VOID, AbstractMutableCollection); - initMetadataForClass(HashSet, 'HashSet', HashSet_init_$Create$, AbstractMutableSet, [AbstractMutableSet, Collection, KtSet]); + initMetadataForClass(HashSet, 'HashSet', HashSet_init_$Create$, AbstractMutableSet, [AbstractMutableSet, KtSet, Collection]); initMetadataForCompanion(Companion_3); initMetadataForClass(Itr, 'Itr'); initMetadataForClass(KeysItr, 'KeysItr', VOID, Itr); @@ -178,7 +178,7 @@ if (typeof String.prototype.startsWith === 'undefined') { initMetadataForClass(InternalHashMap, 'InternalHashMap', InternalHashMap_init_$Create$, VOID, [InternalMap]); initMetadataForObject(EmptyHolder, 'EmptyHolder'); initMetadataForClass(LinkedHashMap, 'LinkedHashMap', LinkedHashMap_init_$Create$, HashMap, [HashMap, KtMap]); - initMetadataForClass(LinkedHashSet, 'LinkedHashSet', LinkedHashSet_init_$Create$, HashSet, [HashSet, Collection, KtSet]); + initMetadataForClass(LinkedHashSet, 'LinkedHashSet', LinkedHashSet_init_$Create$, HashSet, [HashSet, KtSet, Collection]); initMetadataForClass(BaseOutput, 'BaseOutput'); initMetadataForClass(NodeJsOutput, 'NodeJsOutput', VOID, BaseOutput); initMetadataForClass(BufferedOutput, 'BufferedOutput', BufferedOutput, BaseOutput); diff --git a/dist/ver-nodejs-app.js b/dist/ver-nodejs-app.js index 422cc39..5e70976 100644 --- a/dist/ver-nodejs-app.js +++ b/dist/ver-nodejs-app.js @@ -2983,6 +2983,7 @@ var i = inductionVariable; var ln = lines[inductionVariable]; inductionVariable = inductionVariable + 1 | 0; + println("\u0418\u0413\u0420 parseEF-01 i: '" + i + "'"); var isSectionMarker = ln === ' fields:'; var tmp; if (isParsingFields) { @@ -3003,6 +3004,7 @@ var isLastEntityEndMarker = isParsingFields && i === (lines.length - 1 | 0); if (isSectionMarker) { isParsingFields = true; + println("\u0418\u0413\u0420 parseEF-02 isPF: '" + isParsingFields + "'"); } if (isField) { var parts = parseEntityField(ln); @@ -3010,6 +3012,7 @@ var type = parts[1]; // Inline function 'kotlin.collections.set' call fields.c2(name, type); + println("\u0418\u0413\u0420 parseEF-03 field name/type: '" + name + "'/'" + type + "'"); } if (isEntityEndMarker || isLastEntityEndMarker) { isParsingFields = false; @@ -3020,6 +3023,7 @@ entityId = entityId + 1 | 0; // Inline function 'kotlin.collections.mutableMapOf' call fields = LinkedHashMap_init_$Create$(); + println("\u0418\u0413\u0420 parseEF-04 isPF: '" + isParsingFields + "'"); } } return d; diff --git a/klin/ver-nodejs/app/src/commonMain/kotlin/org/opengamestudio/parse.kt b/klin/ver-nodejs/app/src/commonMain/kotlin/org/opengamestudio/parse.kt index e2379b6..d11499a 100644 --- a/klin/ver-nodejs/app/src/commonMain/kotlin/org/opengamestudio/parse.kt +++ b/klin/ver-nodejs/app/src/commonMain/kotlin/org/opengamestudio/parse.kt @@ -96,6 +96,7 @@ fun parseEntityFields(lines: Array): Map> { var isParsingFields = false for ((i, ln) in lines.withIndex()) { + /**/println("ИГР parseEF-01 i: '$i'") val isSectionMarker = (ln == SECTION_FIELDS) val isField = isParsingFields && !parseEntityField(ln).isEmpty() val isEntityEndMarker = isParsingFields && ln.isEmpty() @@ -103,6 +104,7 @@ fun parseEntityFields(lines: Array): Map> { if (isSectionMarker) { isParsingFields = true + /**/println("ИГР parseEF-02 isPF: '$isParsingFields'") } if (isField) { @@ -110,6 +112,7 @@ fun parseEntityFields(lines: Array): Map> { val name = parts[0] val type = parts[1] fields[name] = type + /**/println("ИГР parseEF-03 field name/type: '$name'/'$type'") } if ( @@ -120,6 +123,7 @@ fun parseEntityFields(lines: Array): Map> { d[entityId] = fields entityId++ fields = mutableMapOf() + /**/println("ИГР parseEF-04 isPF: '$isParsingFields'") } } From 0961520c2c039242ee4a66d7b4bff604f6c62762 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B8=D1=85=D0=B0=D0=B8=D0=BB=20=D0=9A=D0=B0=D0=BF?= =?UTF-8?q?=D0=B5=D0=BB=D1=8C=D0=BA=D0=BE?= Date: Sun, 10 May 2026 16:04:16 +0300 Subject: [PATCH 7/8] dbg --- .../app/src/commonMain/kotlin/org/opengamestudio/parse.kt | 4 ---- 1 file changed, 4 deletions(-) diff --git a/klin/ver-nodejs/app/src/commonMain/kotlin/org/opengamestudio/parse.kt b/klin/ver-nodejs/app/src/commonMain/kotlin/org/opengamestudio/parse.kt index d11499a..e2379b6 100644 --- a/klin/ver-nodejs/app/src/commonMain/kotlin/org/opengamestudio/parse.kt +++ b/klin/ver-nodejs/app/src/commonMain/kotlin/org/opengamestudio/parse.kt @@ -96,7 +96,6 @@ fun parseEntityFields(lines: Array): Map> { var isParsingFields = false for ((i, ln) in lines.withIndex()) { - /**/println("ИГР parseEF-01 i: '$i'") val isSectionMarker = (ln == SECTION_FIELDS) val isField = isParsingFields && !parseEntityField(ln).isEmpty() val isEntityEndMarker = isParsingFields && ln.isEmpty() @@ -104,7 +103,6 @@ fun parseEntityFields(lines: Array): Map> { if (isSectionMarker) { isParsingFields = true - /**/println("ИГР parseEF-02 isPF: '$isParsingFields'") } if (isField) { @@ -112,7 +110,6 @@ fun parseEntityFields(lines: Array): Map> { val name = parts[0] val type = parts[1] fields[name] = type - /**/println("ИГР parseEF-03 field name/type: '$name'/'$type'") } if ( @@ -123,7 +120,6 @@ fun parseEntityFields(lines: Array): Map> { d[entityId] = fields entityId++ fields = mutableMapOf() - /**/println("ИГР parseEF-04 isPF: '$isParsingFields'") } } From 661b1e38ed6cbd9fa8c8754596ee6a4445382670 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B8=D1=85=D0=B0=D0=B8=D0=BB=20=D0=9A=D0=B0=D0=BF?= =?UTF-8?q?=D0=B5=D0=BB=D1=8C=D0=BA=D0=BE?= Date: Sun, 10 May 2026 16:09:10 +0300 Subject: [PATCH 8/8] use 0.0 for Double and add Float with 0f --- dist/app.js | 2 +- dist/kotlin-kotlin-stdlib.js | 12 ++++++------ dist/ver-nodejs-app.js | 12 +++++++----- .../kotlin/org/opengamestudio/genKotlin.kt | 12 ++++++++++-- klin/ver-nodejs/app/src/jsMain/resources/app.js | 2 +- 5 files changed, 25 insertions(+), 15 deletions(-) diff --git a/dist/app.js b/dist/app.js index 6bb5069..1fae2e9 100755 --- a/dist/app.js +++ b/dist/app.js @@ -27,7 +27,7 @@ function AppComponent() { KT.registerOneliners(KT.appCtrl(), oneliners); // Defaults. - appSet("isDbg", true); + //appSet("isDbg", true); appSet("arguments", process.argv); }; diff --git a/dist/kotlin-kotlin-stdlib.js b/dist/kotlin-kotlin-stdlib.js index a3e0b04..50a2200 100644 --- a/dist/kotlin-kotlin-stdlib.js +++ b/dist/kotlin-kotlin-stdlib.js @@ -57,6 +57,12 @@ if (typeof Math.clz32 === 'undefined') { }; }(Math.log, Math.LN2); } +if (typeof String.prototype.startsWith === 'undefined') { + Object.defineProperty(String.prototype, 'startsWith', {value: function (searchString, position) { + position = position || 0; + return this.lastIndexOf(searchString, position) === position; + }}); +} if (typeof String.prototype.endsWith === 'undefined') { Object.defineProperty(String.prototype, 'endsWith', {value: function (searchString, position) { var subjectString = this.toString(); @@ -68,12 +74,6 @@ if (typeof String.prototype.endsWith === 'undefined') { return lastIndex !== -1 && lastIndex === position; }}); } -if (typeof String.prototype.startsWith === 'undefined') { - Object.defineProperty(String.prototype, 'startsWith', {value: function (searchString, position) { - position = position || 0; - return this.lastIndexOf(searchString, position) === position; - }}); -} //endregion (function (factory) { if (typeof define === 'function' && define.amd) diff --git a/dist/ver-nodejs-app.js b/dist/ver-nodejs-app.js index 5e70976..f796a6c 100644 --- a/dist/ver-nodejs-app.js +++ b/dist/ver-nodejs-app.js @@ -1172,7 +1172,10 @@ return 'false'; } if (type === 'Double') { - return '0'; + return '0.0'; + } + if (type === 'Float') { + return '0f'; } if (type === 'Int') { return '0'; @@ -1217,6 +1220,9 @@ if (type === 'Double') { return 'Double'; } + if (type === 'Float') { + return 'Float'; + } if (type === 'Long') { return 'Long'; } @@ -2983,7 +2989,6 @@ var i = inductionVariable; var ln = lines[inductionVariable]; inductionVariable = inductionVariable + 1 | 0; - println("\u0418\u0413\u0420 parseEF-01 i: '" + i + "'"); var isSectionMarker = ln === ' fields:'; var tmp; if (isParsingFields) { @@ -3004,7 +3009,6 @@ var isLastEntityEndMarker = isParsingFields && i === (lines.length - 1 | 0); if (isSectionMarker) { isParsingFields = true; - println("\u0418\u0413\u0420 parseEF-02 isPF: '" + isParsingFields + "'"); } if (isField) { var parts = parseEntityField(ln); @@ -3012,7 +3016,6 @@ var type = parts[1]; // Inline function 'kotlin.collections.set' call fields.c2(name, type); - println("\u0418\u0413\u0420 parseEF-03 field name/type: '" + name + "'/'" + type + "'"); } if (isEntityEndMarker || isLastEntityEndMarker) { isParsingFields = false; @@ -3023,7 +3026,6 @@ entityId = entityId + 1 | 0; // Inline function 'kotlin.collections.mutableMapOf' call fields = LinkedHashMap_init_$Create$(); - println("\u0418\u0413\u0420 parseEF-04 isPF: '" + isParsingFields + "'"); } } return d; diff --git a/klin/ver-nodejs/app/src/commonMain/kotlin/org/opengamestudio/genKotlin.kt b/klin/ver-nodejs/app/src/commonMain/kotlin/org/opengamestudio/genKotlin.kt index 9e6e73a..e455620 100644 --- a/klin/ver-nodejs/app/src/commonMain/kotlin/org/opengamestudio/genKotlin.kt +++ b/klin/ver-nodejs/app/src/commonMain/kotlin/org/opengamestudio/genKotlin.kt @@ -94,9 +94,13 @@ fun genKotlinFieldDefault(type: String): String { if (type == "Bool") { return "false" } - // `Double` -> `0` + // `Double` -> `0.0` if (type == "Double") { - return "0" + return "0.0" + } + // `Float` -> `0f` + if (type == "Float") { + return "0f" } // `Int` -> `0` if (type == "Int") { @@ -160,6 +164,10 @@ fun genKotlinFieldType(type: String): String { if (type == "Double") { return "Double" } + // `Float` -> `Float` + if (type == "Float") { + return "Float" + } // `Long` -> `Long` if (type == "Long") { return "Long" diff --git a/klin/ver-nodejs/app/src/jsMain/resources/app.js b/klin/ver-nodejs/app/src/jsMain/resources/app.js index 6bb5069..1fae2e9 100755 --- a/klin/ver-nodejs/app/src/jsMain/resources/app.js +++ b/klin/ver-nodejs/app/src/jsMain/resources/app.js @@ -27,7 +27,7 @@ function AppComponent() { KT.registerOneliners(KT.appCtrl(), oneliners); // Defaults. - appSet("isDbg", true); + //appSet("isDbg", true); appSet("arguments", process.argv); };