diff --git a/AstClasses.ipynb b/AstClasses.ipynb
index 0824ea96..c4cb307c 100644
--- a/AstClasses.ipynb
+++ b/AstClasses.ipynb
@@ -1,8 +1,9 @@
{
"cells": [
{
- "metadata": {},
"cell_type": "markdown",
+ "id": "f72be856a0eccf2e",
+ "metadata": {},
"source": [
"# AST tree nodes\n",
"\n",
@@ -19,19 +20,20 @@
"\n",
"```\n",
"\n",
- "**ArgumentNode** - represents variables that are passed to the function.\n",
+ "**Constructor** - represents constructor call, with type and arguments. Should contain Arguments child node.\n",
"\n",
- "**Constructor** - represents constructor call, with type and arguments. Should contain Arguments child node."
- ],
- "id": "f72be856a0eccf2e"
+ "**InputsList** - root node for the method arguments\n",
+ "\n",
+ "**Input** - represents variables that are passed to the function."
+ ]
},
{
- "metadata": {},
"cell_type": "code",
- "outputs": [],
"execution_count": null,
- "source": "",
- "id": "e6a163c0aeed68e"
+ "id": "e6a163c0aeed68e",
+ "metadata": {},
+ "outputs": [],
+ "source": []
}
],
"metadata": {
diff --git a/AstTransformations.ipynb b/AstTransformations.ipynb
index 2c2aba54..d1864f7d 100644
--- a/AstTransformations.ipynb
+++ b/AstTransformations.ipynb
@@ -28,8 +28,8 @@
"source": [
"import ce.defs.DataType\n",
"import ce.defs.DataValue\n",
- "import generators.obj.input.DataClass\n",
- "import generators.obj.input.DataField\n",
+ "import generators.obj.abstractSyntaxTree.DataClass\n",
+ "import generators.obj.abstractSyntaxTree.DataField\n",
"import generators.kotlin.PrepareRightValueUseCase\n",
"\n",
"val dataClassDescriptor = DataClass(\"c\").apply {\n",
@@ -65,8 +65,8 @@
"outputs": [],
"source": [
"val dataField = DataField(\"varName\").apply {\n",
- " generators.obj.input.setType(DataType.int32)\n",
- " generators.obj.input.setValue(\"strValue\")\n",
+ " generators.obj.abstractSyntaxTree.setType(DataType.int32)\n",
+ " generators.obj.abstractSyntaxTree.setValue(\"strValue\")\n",
" }\n",
"print(dataField)"
]
@@ -85,10 +85,38 @@
]
},
{
- "metadata": {},
"cell_type": "markdown",
- "source": "NewInstance will be transformed to Constructor node, with type and arguments.",
- "id": "927d27f642e731f4"
+ "id": "927d27f642e731f4",
+ "metadata": {},
+ "source": [
+ "NewInstance will be transformed to Constructor node, with type and arguments.\n",
+ "\n",
+ "```\n",
+ "\n",
+ " some.class\n",
+ " string\n",
+ " int32\n",
+ "\n",
+ "```\n",
+ "\n",
+ "Transforms to the:\n",
+ "\n",
+ "```\n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " <=><\"someValue\">\n",
+ " \n",
+ " <,>\n",
+ " \n",
+ " <=><10>\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ "```"
+ ]
}
],
"metadata": {
diff --git a/InputClasses.ipynb b/InputClasses.ipynb
index 70d85cdb..45ea9840 100644
--- a/InputClasses.ipynb
+++ b/InputClasses.ipynb
@@ -28,7 +28,7 @@
"source": [
"import ce.defs.DataType\n",
"import ce.defs.DataValue\n",
- "import generators.obj.input.DataClass\n",
+ "import generators.obj.abstractSyntaxTree.DataClass\n",
"\n",
"val dataClassDescriptor = DataClass(\"c\").apply {\n",
" field(\"A\", DataType.int32, 1)\n",
diff --git a/cgen-lib/cgen/dataclass.kts b/cgen-lib/cgen/dataclass.kts
index d859aa85..95f9ebb0 100644
--- a/cgen-lib/cgen/dataclass.kts
+++ b/cgen-lib/cgen/dataclass.kts
@@ -3,7 +3,7 @@ import ce.defs.*
namespace("ce.defs.domain").apply {
dataClass("DirsConfiguration").apply {
- field("workingDir", DataType.string(), "")
- field("tempDir", DataType.string(), "")
+ field("workingDir", DataType.string, "")
+ field("tempDir", DataType.string, "")
}
}
diff --git a/cgen-lib/cgen/enums.kts b/cgen-lib/cgen/enums.kts
index 6614f84f..55b6abf2 100644
--- a/cgen-lib/cgen/enums.kts
+++ b/cgen-lib/cgen/enums.kts
@@ -8,7 +8,7 @@ namespace("ce.defs").apply {
}
val targetEnum = enum("Target").apply {
- defaultType(DataType.string())
+ defaultType(DataType.string)
add("Other", "other")
add("Kotlin", "kotlin")
add("C", "c")
@@ -22,7 +22,7 @@ namespace("ce.defs").apply {
}
dataClass("TargetConfiguration").apply {
- field("outputFolder", DataType.string(), "")
+ field("outputFolder", DataType.string, "")
field("type", DataType.userClassTest2(targetEnum))
}
}
diff --git a/cgen-lib/src/main/kotlin/ce/defs/DataType.kt b/cgen-lib/src/main/kotlin/ce/defs/DataType.kt
index be89a509..621de26d 100644
--- a/cgen-lib/src/main/kotlin/ce/defs/DataType.kt
+++ b/cgen-lib/src/main/kotlin/ce/defs/DataType.kt
@@ -1,6 +1,6 @@
package ce.defs
-import generators.obj.input.Block
+import generators.obj.abstractSyntaxTree.Block
sealed class DataType(
val canBeNull: Boolean = false
@@ -64,7 +64,8 @@ sealed class DataType(
object float64Nullable : DataType(canBeNull = true)
object float128Nullable : DataType(canBeNull = true)
- class string(canBeNull: Boolean = false) : DataType(canBeNull)
+ object string : DataType(false)
+ object stringNullable : DataType(true)
object bool : DataType()
object boolNullable : DataType(canBeNull = true)
class pointer(val subType: DataType) : DataType(canBeNull = true)
@@ -72,7 +73,7 @@ sealed class DataType(
class promise(val elementDataType: DataType) : DataType()
class custom(val block: Block, nullable : Boolean = false) : DataType(nullable)
class userClass(val path: String, nullable : Boolean = false) : DataType(nullable)
- class userClassTest2(val node: generators.obj.input.Node, nullable : Boolean = false) : DataType(nullable)
+ class userClassTest2(val node: generators.obj.abstractSyntaxTree.Node, nullable : Boolean = false) : DataType(nullable)
// class nullable(val inner: DataType) : DataType(true)
}
diff --git a/cgen-lib/src/main/kotlin/ce/defs/DataValue.kt b/cgen-lib/src/main/kotlin/ce/defs/DataValue.kt
index 7b49e0fc..e646206a 100644
--- a/cgen-lib/src/main/kotlin/ce/defs/DataValue.kt
+++ b/cgen-lib/src/main/kotlin/ce/defs/DataValue.kt
@@ -1,8 +1,8 @@
package ce.defs
-import generators.obj.input.Leaf
-import generators.obj.input.Node
-import generators.obj.input.copyLeafExt
+import generators.obj.abstractSyntaxTree.Leaf
+import generators.obj.abstractSyntaxTree.Node
+import generators.obj.abstractSyntaxTree.copyLeafExt
data class RValue(
override val name: String = "",
diff --git a/cgen-lib/src/main/kotlin/ce/defs/Funcs.kt b/cgen-lib/src/main/kotlin/ce/defs/Funcs.kt
index b301a50f..013ade8b 100644
--- a/cgen-lib/src/main/kotlin/ce/defs/Funcs.kt
+++ b/cgen-lib/src/main/kotlin/ce/defs/Funcs.kt
@@ -1,6 +1,6 @@
package ce.defs
-import generators.obj.input.*
+import generators.obj.abstractSyntaxTree.*
val globRootNamespace = NamespaceImpl("").apply { setParent2(TreeRoot) }
var currentTarget: Target = Target.Other
diff --git a/cgen-lib/src/main/kotlin/ce/defs/TargetExt.kt b/cgen-lib/src/main/kotlin/ce/defs/TargetExt.kt
index 6eae5205..f10d62be 100644
--- a/cgen-lib/src/main/kotlin/ce/defs/TargetExt.kt
+++ b/cgen-lib/src/main/kotlin/ce/defs/TargetExt.kt
@@ -2,5 +2,5 @@ package ce.defs
object TargetExt {
fun findByName(name: String): Target =
- Target.values().find {it.name.equals(name, true) } ?: Target.Other
+ Target.entries.find {it.name.equals(name, true) } ?: Target.Other
}
\ No newline at end of file
diff --git a/cgen-lib/src/main/kotlin/ce/domain/usecase/add/AddRegionDefaultsUseCase.kt b/cgen-lib/src/main/kotlin/ce/domain/usecase/add/AddRegionDefaultsUseCase.kt
index 32e64710..70d6b25e 100644
--- a/cgen-lib/src/main/kotlin/ce/domain/usecase/add/AddRegionDefaultsUseCase.kt
+++ b/cgen-lib/src/main/kotlin/ce/domain/usecase/add/AddRegionDefaultsUseCase.kt
@@ -1,10 +1,9 @@
package ce.domain.usecase.add
import ce.formatters.CodeStyleRepo
-import generators.obj.input.Block
-import generators.obj.input.addSub
-import generators.obj.input.removeSub
-import generators.obj.out.*
+import generators.obj.abstractSyntaxTree.Block
+import generators.obj.abstractSyntaxTree.addSub
+import generators.obj.syntaxParseTree.*
import javax.inject.Inject
interface AddRegionDefaultsUseCase {
diff --git a/cgen-lib/src/main/kotlin/ce/domain/usecase/entry/BuildOutTreeUseCase.kt b/cgen-lib/src/main/kotlin/ce/domain/usecase/entry/BuildOutTreeUseCase.kt
index f236f50b..181cb4f9 100644
--- a/cgen-lib/src/main/kotlin/ce/domain/usecase/entry/BuildOutTreeUseCase.kt
+++ b/cgen-lib/src/main/kotlin/ce/domain/usecase/entry/BuildOutTreeUseCase.kt
@@ -8,7 +8,7 @@ import ce.domain.usecase.store.StoreOutTreeUseCase
import ce.domain.usecase.transform.TransformInTreeToOutTreeUseCase
import ce.repository.CodestyleRepoImpl
import ce.repository.GeneratorsRepo
-import generators.obj.input.Node
+import generators.obj.abstractSyntaxTree.Node
import javax.inject.Inject
interface BuildOutTreeUseCase {
diff --git a/cgen-lib/src/main/kotlin/ce/domain/usecase/entry/PrepareAstTreeUseCase.kt b/cgen-lib/src/main/kotlin/ce/domain/usecase/entry/PrepareAstTreeUseCase.kt
index 765b2b7a..92633255 100644
--- a/cgen-lib/src/main/kotlin/ce/domain/usecase/entry/PrepareAstTreeUseCase.kt
+++ b/cgen-lib/src/main/kotlin/ce/domain/usecase/entry/PrepareAstTreeUseCase.kt
@@ -5,7 +5,7 @@ import ce.domain.usecase.load.LoadMetaFilesForTargetUseCase
import ce.domain.usecase.load.LoadProjectUseCase
import ce.domain.usecase.store.StoreAstTreeUseCase
import ce.settings.Project
-import generators.obj.out.AstTree
+import generators.obj.syntaxParseTree.AstTree
class PrepareAstTreeUseCase(
private val getProjectUseCase : LoadProjectUseCase,
diff --git a/cgen-lib/src/main/kotlin/ce/domain/usecase/load/LoadAstTreeUseCase.kt b/cgen-lib/src/main/kotlin/ce/domain/usecase/load/LoadAstTreeUseCase.kt
index c443e8d7..b86a7022 100644
--- a/cgen-lib/src/main/kotlin/ce/domain/usecase/load/LoadAstTreeUseCase.kt
+++ b/cgen-lib/src/main/kotlin/ce/domain/usecase/load/LoadAstTreeUseCase.kt
@@ -1,7 +1,7 @@
package ce.domain.usecase.load
import ce.treeio.XmlTreeReader
-import generators.obj.out.AstTree
+import generators.obj.syntaxParseTree.AstTree
class LoadAstTreeUseCase {
operator fun invoke(inputFile : String) : AstTree {
diff --git a/cgen-lib/src/main/kotlin/ce/domain/usecase/load/LoadCodeStyleTreeUseCase.kt b/cgen-lib/src/main/kotlin/ce/domain/usecase/load/LoadCodeStyleTreeUseCase.kt
index 2c9771c7..245b5462 100644
--- a/cgen-lib/src/main/kotlin/ce/domain/usecase/load/LoadCodeStyleTreeUseCase.kt
+++ b/cgen-lib/src/main/kotlin/ce/domain/usecase/load/LoadCodeStyleTreeUseCase.kt
@@ -1,7 +1,7 @@
package ce.domain.usecase.load
import ce.treeio.XmlTreeReader
-import generators.obj.out.CodeStyleOutputTree
+import generators.obj.syntaxParseTree.CodeStyleOutputTree
class LoadCodeStyleTreeUseCase {
operator fun invoke(inputFile : String) : CodeStyleOutputTree {
diff --git a/cgen-lib/src/main/kotlin/ce/domain/usecase/load/LoadMetaFilesUseCase.kt b/cgen-lib/src/main/kotlin/ce/domain/usecase/load/LoadMetaFilesUseCase.kt
index 890d8757..4c17d598 100644
--- a/cgen-lib/src/main/kotlin/ce/domain/usecase/load/LoadMetaFilesUseCase.kt
+++ b/cgen-lib/src/main/kotlin/ce/domain/usecase/load/LoadMetaFilesUseCase.kt
@@ -9,9 +9,9 @@ import ce.defs.outputFile
import ce.defs.sourceFile
import ce.settings.Project
import ce.treeio.TreeFunctions
-import generators.obj.input.Namespace
-import generators.obj.input.Node
-import generators.obj.input.clearSubs
+import generators.obj.abstractSyntaxTree.Namespace
+import generators.obj.abstractSyntaxTree.Node
+import generators.obj.abstractSyntaxTree.clearSubs
import java.io.File
import java.io.FileInputStream
import java.io.InputStreamReader
diff --git a/cgen-lib/src/main/kotlin/ce/domain/usecase/load/LoadOutTreeUseCase.kt b/cgen-lib/src/main/kotlin/ce/domain/usecase/load/LoadOutTreeUseCase.kt
index 0f97a59f..ee3f2c1b 100644
--- a/cgen-lib/src/main/kotlin/ce/domain/usecase/load/LoadOutTreeUseCase.kt
+++ b/cgen-lib/src/main/kotlin/ce/domain/usecase/load/LoadOutTreeUseCase.kt
@@ -1,7 +1,7 @@
package ce.domain.usecase.load
import ce.treeio.XmlTreeReader
-import generators.obj.out.OutputTree
+import generators.obj.syntaxParseTree.OutputTree
class LoadOutTreeUseCase {
operator fun invoke(inputFile : String) : OutputTree {
diff --git a/cgen-lib/src/main/kotlin/ce/domain/usecase/load/LoadXmlTreeUseCase.kt b/cgen-lib/src/main/kotlin/ce/domain/usecase/load/LoadXmlTreeUseCase.kt
index 9ba605a3..40060fe5 100644
--- a/cgen-lib/src/main/kotlin/ce/domain/usecase/load/LoadXmlTreeUseCase.kt
+++ b/cgen-lib/src/main/kotlin/ce/domain/usecase/load/LoadXmlTreeUseCase.kt
@@ -1,8 +1,7 @@
package ce.domain.usecase.load
import ce.treeio.XmlTreeReader
-import generators.obj.input.Leaf
-import generators.obj.out.AstTree
+import generators.obj.abstractSyntaxTree.Leaf
class LoadXmlTreeUseCase {
private val reader = XmlTreeReader()
diff --git a/cgen-lib/src/main/kotlin/ce/domain/usecase/store/StoreAstTreeUseCase.kt b/cgen-lib/src/main/kotlin/ce/domain/usecase/store/StoreAstTreeUseCase.kt
index 2eaa9a80..a43ae3fa 100644
--- a/cgen-lib/src/main/kotlin/ce/domain/usecase/store/StoreAstTreeUseCase.kt
+++ b/cgen-lib/src/main/kotlin/ce/domain/usecase/store/StoreAstTreeUseCase.kt
@@ -1,7 +1,7 @@
package ce.domain.usecase.store
import ce.treeio.XmlInTreeWritterImpl
-import generators.obj.input.Node
+import generators.obj.abstractSyntaxTree.Node
import java.io.File
class StoreAstTreeUseCase {
diff --git a/cgen-lib/src/main/kotlin/ce/domain/usecase/store/StoreCodeStyleTreeUseCase.kt b/cgen-lib/src/main/kotlin/ce/domain/usecase/store/StoreCodeStyleTreeUseCase.kt
index cc0a91b3..c48e60e1 100644
--- a/cgen-lib/src/main/kotlin/ce/domain/usecase/store/StoreCodeStyleTreeUseCase.kt
+++ b/cgen-lib/src/main/kotlin/ce/domain/usecase/store/StoreCodeStyleTreeUseCase.kt
@@ -1,7 +1,7 @@
package ce.domain.usecase.store
import ce.treeio.XmlInTreeWritterImpl
-import generators.obj.input.Node
+import generators.obj.abstractSyntaxTree.Node
import java.io.File
class StoreCodeStyleTreeUseCase {
diff --git a/cgen-lib/src/main/kotlin/ce/domain/usecase/store/StoreOutFilesUseCase.kt b/cgen-lib/src/main/kotlin/ce/domain/usecase/store/StoreOutFilesUseCase.kt
index b277f335..fe3b54de 100644
--- a/cgen-lib/src/main/kotlin/ce/domain/usecase/store/StoreOutFilesUseCase.kt
+++ b/cgen-lib/src/main/kotlin/ce/domain/usecase/store/StoreOutFilesUseCase.kt
@@ -1,18 +1,6 @@
package ce.domain.usecase.store
-import ce.defs.DataType
-import ce.defs.DataValue
-import ce.defs.globRootNamespace
-import ce.settings.Project
-import ce.treeio.DataTypeSerializer
-import ce.treeio.DataValueSerializer
-import ce.treeio.XmlInTreeWritterImpl
-import com.fasterxml.jackson.databind.ObjectMapper
-import com.fasterxml.jackson.databind.SerializationFeature
-import com.fasterxml.jackson.databind.module.SimpleModule
-import generators.obj.input.Node
-import java.io.File
-import java.io.FileInputStream
+import generators.obj.abstractSyntaxTree.Node
class StoreOutFilesUseCase {
operator fun invoke(outputFile : String, tree: Node) {
diff --git a/cgen-lib/src/main/kotlin/ce/domain/usecase/store/StoreOutTreeUseCase.kt b/cgen-lib/src/main/kotlin/ce/domain/usecase/store/StoreOutTreeUseCase.kt
index 16bc955d..90ba6815 100644
--- a/cgen-lib/src/main/kotlin/ce/domain/usecase/store/StoreOutTreeUseCase.kt
+++ b/cgen-lib/src/main/kotlin/ce/domain/usecase/store/StoreOutTreeUseCase.kt
@@ -1,7 +1,7 @@
package ce.domain.usecase.store
import ce.treeio.XmlInTreeWritterImpl
-import generators.obj.input.Node
+import generators.obj.abstractSyntaxTree.Node
import java.io.File
class StoreOutTreeUseCase {
diff --git a/cgen-lib/src/main/kotlin/ce/domain/usecase/store/StoreTreeToSvgUseCase.kt b/cgen-lib/src/main/kotlin/ce/domain/usecase/store/StoreTreeToSvgUseCase.kt
index 0aef3398..0c5ea35f 100644
--- a/cgen-lib/src/main/kotlin/ce/domain/usecase/store/StoreTreeToSvgUseCase.kt
+++ b/cgen-lib/src/main/kotlin/ce/domain/usecase/store/StoreTreeToSvgUseCase.kt
@@ -1,9 +1,9 @@
package ce.domain.usecase.store
-import generators.obj.input.DataField
-import generators.obj.input.Leaf
-import generators.obj.input.Namespace
-import generators.obj.input.Node
+import generators.obj.abstractSyntaxTree.DataField
+import generators.obj.abstractSyntaxTree.Leaf
+import generators.obj.abstractSyntaxTree.Namespace
+import generators.obj.abstractSyntaxTree.Node
import org.abego.treelayout.Configuration
import org.abego.treelayout.NodeExtentProvider
import org.abego.treelayout.TreeLayout
diff --git a/cgen-lib/src/main/kotlin/ce/domain/usecase/transform/TransformInTreeToOutTreeUseCase.kt b/cgen-lib/src/main/kotlin/ce/domain/usecase/transform/TransformInTreeToOutTreeUseCase.kt
index aa4a9143..71a152a9 100644
--- a/cgen-lib/src/main/kotlin/ce/domain/usecase/transform/TransformInTreeToOutTreeUseCase.kt
+++ b/cgen-lib/src/main/kotlin/ce/domain/usecase/transform/TransformInTreeToOutTreeUseCase.kt
@@ -1,8 +1,8 @@
package ce.domain.usecase.transform
import generators.obj.MetaGenerator
-import generators.obj.input.Node
-import generators.obj.out.OutputTree
+import generators.obj.abstractSyntaxTree.Node
+import generators.obj.syntaxParseTree.OutputTree
class TransformInTreeToOutTreeUseCase {
operator fun invoke(inTree: Node, metaGenerator: MetaGenerator) : OutputTree {
diff --git a/cgen-lib/src/main/kotlin/ce/domain/usecase/transform/TransformOutTreeToCodeStyleTreeUseCase.kt b/cgen-lib/src/main/kotlin/ce/domain/usecase/transform/TransformOutTreeToCodeStyleTreeUseCase.kt
index 616ce9cd..2073d816 100644
--- a/cgen-lib/src/main/kotlin/ce/domain/usecase/transform/TransformOutTreeToCodeStyleTreeUseCase.kt
+++ b/cgen-lib/src/main/kotlin/ce/domain/usecase/transform/TransformOutTreeToCodeStyleTreeUseCase.kt
@@ -1,8 +1,8 @@
package ce.domain.usecase.transform
import ce.formatters.PrepareCodeStyleTreeUseCase
-import generators.obj.out.CodeStyleOutputTree
-import generators.obj.out.OutputTree
+import generators.obj.syntaxParseTree.CodeStyleOutputTree
+import generators.obj.syntaxParseTree.OutputTree
@Deprecated("Please use PrepareCodeStyleTreeUseCase")
class TransformOutTreeToCodeStyleTreeUseCase {
diff --git a/cgen-lib/src/main/kotlin/ce/formatters/CodeFormatterCxxUseCaseImpl.kt b/cgen-lib/src/main/kotlin/ce/formatters/CodeFormatterCxxUseCaseImpl.kt
index 4ef7cfc5..f54a52d2 100644
--- a/cgen-lib/src/main/kotlin/ce/formatters/CodeFormatterCxxUseCaseImpl.kt
+++ b/cgen-lib/src/main/kotlin/ce/formatters/CodeFormatterCxxUseCaseImpl.kt
@@ -1,11 +1,11 @@
package ce.formatters
-import generators.obj.input.Leaf
-import generators.obj.input.Node
-import generators.obj.input.addSeparator
-import generators.obj.input.addSub
-import generators.obj.out.EnumNode
-import generators.obj.out.Separator
+import generators.obj.abstractSyntaxTree.Leaf
+import generators.obj.abstractSyntaxTree.Node
+import generators.obj.abstractSyntaxTree.addSeparator
+import generators.obj.abstractSyntaxTree.addSub
+import generators.obj.syntaxParseTree.EnumNode
+import generators.obj.syntaxParseTree.Separator
import javax.inject.Inject
class CodeFormatterCxxUseCaseImpl @Inject constructor(codeStyleRepo: CodeStyleRepo) :
diff --git a/cgen-lib/src/main/kotlin/ce/formatters/CodeFormatterJavaUseCaseImpl.kt b/cgen-lib/src/main/kotlin/ce/formatters/CodeFormatterJavaUseCaseImpl.kt
index f991c24e..fda4cb44 100644
--- a/cgen-lib/src/main/kotlin/ce/formatters/CodeFormatterJavaUseCaseImpl.kt
+++ b/cgen-lib/src/main/kotlin/ce/formatters/CodeFormatterJavaUseCaseImpl.kt
@@ -1,14 +1,14 @@
package ce.formatters
-import generators.obj.input.Leaf
-import generators.obj.input.Node
-import generators.obj.input.addSub
-import generators.obj.out.ArgumentNode
-import generators.obj.out.AstTypeLeaf
-import generators.obj.out.NlSeparator
-import generators.obj.out.Separator
-import generators.obj.out.Space
-import generators.obj.out.VariableName
+import generators.obj.abstractSyntaxTree.Leaf
+import generators.obj.abstractSyntaxTree.Node
+import generators.obj.abstractSyntaxTree.addSub
+import generators.obj.syntaxParseTree.ArgumentNode
+import generators.obj.syntaxParseTree.AstTypeLeaf
+import generators.obj.syntaxParseTree.NlSeparator
+import generators.obj.syntaxParseTree.Separator
+import generators.obj.syntaxParseTree.Space
+import generators.obj.syntaxParseTree.VariableName
import javax.inject.Inject
class CodeFormatterJavaUseCaseImpl @Inject constructor(codeStyleRepo: CodeStyleRepo) :
diff --git a/cgen-lib/src/main/kotlin/ce/formatters/CodeFormatterKotlinUseCaseImpl.kt b/cgen-lib/src/main/kotlin/ce/formatters/CodeFormatterKotlinUseCaseImpl.kt
index 1666af9e..764609dc 100644
--- a/cgen-lib/src/main/kotlin/ce/formatters/CodeFormatterKotlinUseCaseImpl.kt
+++ b/cgen-lib/src/main/kotlin/ce/formatters/CodeFormatterKotlinUseCaseImpl.kt
@@ -2,24 +2,24 @@ package ce.formatters
import ce.defs.DataValue
import ce.defs.RValue
-import generators.obj.input.Leaf
-import generators.obj.input.Node
-import generators.obj.input.addKeyword
-import generators.obj.input.addSeparatorNewLine
-import generators.obj.input.addSub
-import generators.obj.out.ArgumentNode
-import generators.obj.out.Arguments
-import generators.obj.out.AstTypeLeaf
-import generators.obj.out.EnumNode
-import generators.obj.out.FieldNode
-import generators.obj.out.Keyword
-import generators.obj.out.NamespaceDeclaration
-import generators.obj.out.NlSeparator
-import generators.obj.out.OutBlock
-import generators.obj.out.OutBlockArguments
-import generators.obj.out.Separator
-import generators.obj.out.Space
-import generators.obj.out.VariableName
+import generators.obj.abstractSyntaxTree.Leaf
+import generators.obj.abstractSyntaxTree.Node
+import generators.obj.abstractSyntaxTree.addKeyword
+import generators.obj.abstractSyntaxTree.addSeparatorNewLine
+import generators.obj.abstractSyntaxTree.addSub
+import generators.obj.syntaxParseTree.ArgumentNode
+import generators.obj.syntaxParseTree.Arguments
+import generators.obj.syntaxParseTree.AstTypeLeaf
+import generators.obj.syntaxParseTree.EnumNode
+import generators.obj.syntaxParseTree.FieldNode
+import generators.obj.syntaxParseTree.Keyword
+import generators.obj.syntaxParseTree.NamespaceDeclaration
+import generators.obj.syntaxParseTree.NlSeparator
+import generators.obj.syntaxParseTree.OutBlock
+import generators.obj.syntaxParseTree.OutBlockArguments
+import generators.obj.syntaxParseTree.Separator
+import generators.obj.syntaxParseTree.Space
+import generators.obj.syntaxParseTree.VariableName
import javax.inject.Inject
class CodeFormatterKotlinUseCaseImpl @Inject constructor(codeStyleRepo: CodeStyleRepo) :
diff --git a/cgen-lib/src/main/kotlin/ce/formatters/CodeFormatterUseCase.kt b/cgen-lib/src/main/kotlin/ce/formatters/CodeFormatterUseCase.kt
index ed5d68c4..8ba330f0 100644
--- a/cgen-lib/src/main/kotlin/ce/formatters/CodeFormatterUseCase.kt
+++ b/cgen-lib/src/main/kotlin/ce/formatters/CodeFormatterUseCase.kt
@@ -1,6 +1,6 @@
package ce.formatters
-import generators.obj.input.Node
+import generators.obj.abstractSyntaxTree.Node
interface CodeFormatterUseCase {
operator fun invoke(input: T): T
diff --git a/cgen-lib/src/main/kotlin/ce/formatters/CodeFormatterUseCaseImpl.kt b/cgen-lib/src/main/kotlin/ce/formatters/CodeFormatterUseCaseImpl.kt
index 5a6f4fca..850e0c41 100644
--- a/cgen-lib/src/main/kotlin/ce/formatters/CodeFormatterUseCaseImpl.kt
+++ b/cgen-lib/src/main/kotlin/ce/formatters/CodeFormatterUseCaseImpl.kt
@@ -2,29 +2,29 @@ package ce.formatters
import ce.defs.RValue
import generators.cpp.CompilerDirective
-import generators.obj.input.Leaf
-import generators.obj.input.Node
-import generators.obj.input.addKeyword
-import generators.obj.input.addSeparator
-import generators.obj.input.addSeparatorNewLine
-import generators.obj.input.addSub
-import generators.obj.out.ArgumentNode
-import generators.obj.out.Arguments
-import generators.obj.out.CommentLeaf
-import generators.obj.out.EnumNode
-import generators.obj.out.FieldNode
-import generators.obj.out.FileData
-import generators.obj.out.ImportLeaf
-import generators.obj.out.Indent
-import generators.obj.out.NamespaceBlock
-import generators.obj.out.NamespaceDeclaration
-import generators.obj.out.NlSeparator
-import generators.obj.out.OutBlock
-import generators.obj.out.OutBlockArguments
-import generators.obj.out.Region
-import generators.obj.out.RegionImpl
-import generators.obj.out.Separator
-import generators.obj.out.Space
+import generators.obj.abstractSyntaxTree.Leaf
+import generators.obj.abstractSyntaxTree.Node
+import generators.obj.abstractSyntaxTree.addKeyword
+import generators.obj.abstractSyntaxTree.addSeparator
+import generators.obj.abstractSyntaxTree.addSeparatorNewLine
+import generators.obj.abstractSyntaxTree.addSub
+import generators.obj.syntaxParseTree.ArgumentNode
+import generators.obj.syntaxParseTree.Arguments
+import generators.obj.syntaxParseTree.CommentLeaf
+import generators.obj.syntaxParseTree.EnumNode
+import generators.obj.syntaxParseTree.FieldNode
+import generators.obj.syntaxParseTree.FileData
+import generators.obj.syntaxParseTree.ImportLeaf
+import generators.obj.syntaxParseTree.Indent
+import generators.obj.syntaxParseTree.NamespaceBlock
+import generators.obj.syntaxParseTree.NamespaceDeclaration
+import generators.obj.syntaxParseTree.NlSeparator
+import generators.obj.syntaxParseTree.OutBlock
+import generators.obj.syntaxParseTree.OutBlockArguments
+import generators.obj.syntaxParseTree.Region
+import generators.obj.syntaxParseTree.RegionImpl
+import generators.obj.syntaxParseTree.Separator
+import generators.obj.syntaxParseTree.Space
import javax.inject.Inject
open class CodeFormatterUseCaseImpl @Inject constructor(
diff --git a/cgen-lib/src/main/kotlin/ce/formatters/PrepareCodeStyleTreeUseCase.kt b/cgen-lib/src/main/kotlin/ce/formatters/PrepareCodeStyleTreeUseCase.kt
index d378c291..78db3ee6 100644
--- a/cgen-lib/src/main/kotlin/ce/formatters/PrepareCodeStyleTreeUseCase.kt
+++ b/cgen-lib/src/main/kotlin/ce/formatters/PrepareCodeStyleTreeUseCase.kt
@@ -1,8 +1,8 @@
package ce.formatters
-import generators.obj.input.addSub
-import generators.obj.out.CodeStyleOutputTree
-import generators.obj.out.OutputTree
+import generators.obj.abstractSyntaxTree.addSub
+import generators.obj.syntaxParseTree.CodeStyleOutputTree
+import generators.obj.syntaxParseTree.OutputTree
interface PrepareCodeStyleTreeUseCase {
fun prepareCodeStyleTree(projectOutput: OutputTree): CodeStyleOutputTree
diff --git a/cgen-lib/src/main/kotlin/ce/repository/GeneratorsRepo.kt b/cgen-lib/src/main/kotlin/ce/repository/GeneratorsRepo.kt
index 8888abb8..dcb9a83b 100644
--- a/cgen-lib/src/main/kotlin/ce/repository/GeneratorsRepo.kt
+++ b/cgen-lib/src/main/kotlin/ce/repository/GeneratorsRepo.kt
@@ -27,10 +27,10 @@ import generators.kotlin.KtDataClassGenerator
import generators.kotlin.PrepareRightValueUseCase
import generators.obj.MetaGenerator
import generators.obj.PrepareFilesListUseCaseImpl
-import generators.obj.input.ConstantsBlock
-import generators.obj.input.ConstantsEnum
-import generators.obj.input.DataClass
-import generators.obj.input.InterfaceDescription
+import generators.obj.abstractSyntaxTree.ConstantsBlock
+import generators.obj.abstractSyntaxTree.ConstantsEnum
+import generators.obj.abstractSyntaxTree.DataClass
+import generators.obj.abstractSyntaxTree.InterfaceDescription
import generators.rust.RustFileGenerator
import generators.swift.SwiftConstantsBlockGenerator
import generators.swift.SwiftDataClassGenerator
diff --git a/cgen-lib/src/main/kotlin/ce/treeio/DataTypeSerializer.kt b/cgen-lib/src/main/kotlin/ce/treeio/DataTypeSerializer.kt
index 5ca70b76..a1bfb08d 100644
--- a/cgen-lib/src/main/kotlin/ce/treeio/DataTypeSerializer.kt
+++ b/cgen-lib/src/main/kotlin/ce/treeio/DataTypeSerializer.kt
@@ -5,7 +5,7 @@ import com.fasterxml.jackson.core.JsonGenerator
import com.fasterxml.jackson.databind.JsonSerializer
import com.fasterxml.jackson.databind.SerializerProvider
import com.fasterxml.jackson.databind.jsontype.TypeSerializer
-import generators.obj.input.getPath
+import generators.obj.abstractSyntaxTree.getPath
class DataTypeSerializer : JsonSerializer() {
@@ -67,10 +67,8 @@ class DataTypeSerializer : JsonSerializer() {
is DataType.promise -> PREFIX_FLOW_OF + stringValue(value.elementDataType)
is DataType.userClass -> PREFIX_CLASS + value.path
is DataType.userClassTest2 -> PREFIX_CLASS + value.node.getPath()
- is DataType.string -> if (value.canBeNull)
- STRING_NULLABLE
- else
- STRING
+ is DataType.string -> STRING
+ is DataType.stringNullable -> STRING_NULLABLE
else -> "UNK" + value.toString()
}
return typeStr
@@ -83,10 +81,10 @@ class DataTypeSerializer : JsonSerializer() {
return DataType.array(fromStringValue(value.substring(PREFIX_ARRAY_OF.length)))
}
if (value == STRING) {
- return DataType.string()
+ return DataType.string
}
if (value == STRING_NULLABLE) {
- return DataType.string(canBeNull = true)
+ return DataType.stringNullable
}
throw IllegalStateException("Not supported data type=\"$value\"")
}
diff --git a/cgen-lib/src/main/kotlin/ce/treeio/NodeDeserializer.kt b/cgen-lib/src/main/kotlin/ce/treeio/NodeDeserializer.kt
index 3b9603c4..d4490460 100644
--- a/cgen-lib/src/main/kotlin/ce/treeio/NodeDeserializer.kt
+++ b/cgen-lib/src/main/kotlin/ce/treeio/NodeDeserializer.kt
@@ -6,48 +6,48 @@ import ce.defs.DataValueImpl
import ce.defs.RValue
import ce.defs.TargetExt
import generators.kotlin.KotlinClassData
-import generators.obj.input.ConstantDesc
-import generators.obj.input.ConstantsBlock
-import generators.obj.input.ConstantsEnum
-import generators.obj.input.DataClass
-import generators.obj.input.DataField
-import generators.obj.input.Input
-import generators.obj.input.InputList
-import generators.obj.input.InterfaceDescription
-import generators.obj.input.Leaf
-import generators.obj.input.Method
-import generators.obj.input.Namespace
-import generators.obj.input.NamespaceImpl
-import generators.obj.input.Node
-import generators.obj.input.OutputList
-import generators.obj.input.OutputReusable
-import generators.obj.input.TypeLeaf
-import generators.obj.input.buildNamespaceTree
-import generators.obj.out.ArgumentNode
-import generators.obj.out.Arguments
-import generators.obj.out.AstTree
-import generators.obj.out.AstTypeLeaf
-import generators.obj.out.CodeStyleOutputTree
-import generators.obj.out.CommentLeaf
-import generators.obj.out.CommentsBlock
-import generators.obj.out.EnumNode
-import generators.obj.out.FieldNode
-import generators.obj.out.FileData
-import generators.obj.out.FileDataImpl
-import generators.obj.out.ImportsBlock
-import generators.obj.out.Indent
-import generators.obj.out.Keyword
-import generators.obj.out.NamespaceDeclaration
-import generators.obj.out.NlSeparator
-import generators.obj.out.OutBlock
-import generators.obj.out.OutBlockArguments
-import generators.obj.out.OutputTree
-import generators.obj.out.Region
-import generators.obj.out.RegionImpl
-import generators.obj.out.ResultLeaf
-import generators.obj.out.Separator
-import generators.obj.out.Space
-import generators.obj.out.VariableName
+import generators.obj.abstractSyntaxTree.ConstantDesc
+import generators.obj.abstractSyntaxTree.ConstantsBlock
+import generators.obj.abstractSyntaxTree.ConstantsEnum
+import generators.obj.abstractSyntaxTree.DataClass
+import generators.obj.abstractSyntaxTree.DataField
+import generators.obj.abstractSyntaxTree.Input
+import generators.obj.abstractSyntaxTree.InputList
+import generators.obj.abstractSyntaxTree.InterfaceDescription
+import generators.obj.abstractSyntaxTree.Leaf
+import generators.obj.abstractSyntaxTree.Method
+import generators.obj.abstractSyntaxTree.Namespace
+import generators.obj.abstractSyntaxTree.NamespaceImpl
+import generators.obj.abstractSyntaxTree.Node
+import generators.obj.abstractSyntaxTree.OutputList
+import generators.obj.abstractSyntaxTree.OutputReusable
+import generators.obj.abstractSyntaxTree.TypeLeaf
+import generators.obj.abstractSyntaxTree.buildNamespaceTree
+import generators.obj.syntaxParseTree.ArgumentNode
+import generators.obj.syntaxParseTree.Arguments
+import generators.obj.syntaxParseTree.AstTree
+import generators.obj.syntaxParseTree.AstTypeLeaf
+import generators.obj.syntaxParseTree.CodeStyleOutputTree
+import generators.obj.syntaxParseTree.CommentLeaf
+import generators.obj.syntaxParseTree.CommentsBlock
+import generators.obj.syntaxParseTree.EnumNode
+import generators.obj.syntaxParseTree.FieldNode
+import generators.obj.syntaxParseTree.FileData
+import generators.obj.syntaxParseTree.FileDataImpl
+import generators.obj.syntaxParseTree.ImportsBlock
+import generators.obj.syntaxParseTree.Indent
+import generators.obj.syntaxParseTree.Keyword
+import generators.obj.syntaxParseTree.NamespaceDeclaration
+import generators.obj.syntaxParseTree.NlSeparator
+import generators.obj.syntaxParseTree.OutBlock
+import generators.obj.syntaxParseTree.OutBlockArguments
+import generators.obj.syntaxParseTree.OutputTree
+import generators.obj.syntaxParseTree.Region
+import generators.obj.syntaxParseTree.RegionImpl
+import generators.obj.syntaxParseTree.ResultLeaf
+import generators.obj.syntaxParseTree.Separator
+import generators.obj.syntaxParseTree.Space
+import generators.obj.syntaxParseTree.VariableName
import org.w3c.dom.Element
data class DeserializeArguments(
diff --git a/cgen-lib/src/main/kotlin/ce/treeio/TreeFunctions.kt b/cgen-lib/src/main/kotlin/ce/treeio/TreeFunctions.kt
index 37920f7d..b9224bef 100644
--- a/cgen-lib/src/main/kotlin/ce/treeio/TreeFunctions.kt
+++ b/cgen-lib/src/main/kotlin/ce/treeio/TreeFunctions.kt
@@ -1,8 +1,7 @@
package ce.treeio
-import generators.obj.input.Node
-import generators.obj.input.addSub
-import generators.obj.input.findOrNull
+import generators.obj.abstractSyntaxTree.Node
+import generators.obj.abstractSyntaxTree.addSub
class TreeMergeWrongRoot: Exception("Tree roots must have same class")
diff --git a/cgen-lib/src/main/kotlin/ce/treeio/TreeReader.kt b/cgen-lib/src/main/kotlin/ce/treeio/TreeReader.kt
index 46ac54c3..9b777971 100644
--- a/cgen-lib/src/main/kotlin/ce/treeio/TreeReader.kt
+++ b/cgen-lib/src/main/kotlin/ce/treeio/TreeReader.kt
@@ -1,6 +1,6 @@
package ce.treeio
-import generators.obj.input.Leaf
+import generators.obj.abstractSyntaxTree.Leaf
interface TreeReader {
fun load(filePath: String): Leaf
diff --git a/cgen-lib/src/main/kotlin/ce/treeio/TreeWritter.kt b/cgen-lib/src/main/kotlin/ce/treeio/TreeWritter.kt
index 8fe64055..b0167842 100644
--- a/cgen-lib/src/main/kotlin/ce/treeio/TreeWritter.kt
+++ b/cgen-lib/src/main/kotlin/ce/treeio/TreeWritter.kt
@@ -1,7 +1,6 @@
package ce.treeio
-import generators.obj.input.Leaf
-import generators.obj.input.Namespace
+import generators.obj.abstractSyntaxTree.Leaf
interface TreeWritter {
fun storeTree(filePath: String, tree: Leaf)
diff --git a/cgen-lib/src/main/kotlin/ce/treeio/XmlInTreeWritterImpl.kt b/cgen-lib/src/main/kotlin/ce/treeio/XmlInTreeWritterImpl.kt
index 04da7cfe..a6a1f111 100644
--- a/cgen-lib/src/main/kotlin/ce/treeio/XmlInTreeWritterImpl.kt
+++ b/cgen-lib/src/main/kotlin/ce/treeio/XmlInTreeWritterImpl.kt
@@ -1,18 +1,18 @@
package ce.treeio
-import generators.obj.input.Block
-import generators.obj.input.ConstantsBlock
-import generators.obj.input.ConstantsEnum
-import generators.obj.input.DataField
-import generators.obj.input.FieldImpl
-import generators.obj.input.Input
-import generators.obj.input.Leaf
-import generators.obj.input.Node
-import generators.obj.input.Output
-import generators.obj.input.OutputReusable
-import generators.obj.out.OutputTree
-import generators.obj.out.Region
-import generators.obj.out.RegionImpl
+import generators.obj.abstractSyntaxTree.Block
+import generators.obj.abstractSyntaxTree.ConstantsBlock
+import generators.obj.abstractSyntaxTree.ConstantsEnum
+import generators.obj.abstractSyntaxTree.DataField
+import generators.obj.abstractSyntaxTree.FieldImpl
+import generators.obj.abstractSyntaxTree.Input
+import generators.obj.abstractSyntaxTree.Leaf
+import generators.obj.abstractSyntaxTree.Node
+import generators.obj.abstractSyntaxTree.Output
+import generators.obj.abstractSyntaxTree.OutputReusable
+import generators.obj.syntaxParseTree.OutputTree
+import generators.obj.syntaxParseTree.Region
+import generators.obj.syntaxParseTree.RegionImpl
import org.w3c.dom.Document
import org.w3c.dom.Element
import java.io.File
diff --git a/cgen-lib/src/main/kotlin/ce/treeio/XmlTreeReader.kt b/cgen-lib/src/main/kotlin/ce/treeio/XmlTreeReader.kt
index d68a4bb8..098597e9 100644
--- a/cgen-lib/src/main/kotlin/ce/treeio/XmlTreeReader.kt
+++ b/cgen-lib/src/main/kotlin/ce/treeio/XmlTreeReader.kt
@@ -1,14 +1,14 @@
package ce.treeio
import ce.defs.DataType
-import generators.obj.input.Block
-import generators.obj.input.ConstantDesc
-import generators.obj.input.ConstantsBlock
-import generators.obj.input.Leaf
-import generators.obj.input.Node
-import generators.obj.input.TreeRoot
-import generators.obj.input.addSub
-import generators.obj.input.getPath
+import generators.obj.abstractSyntaxTree.Block
+import generators.obj.abstractSyntaxTree.ConstantDesc
+import generators.obj.abstractSyntaxTree.ConstantsBlock
+import generators.obj.abstractSyntaxTree.Leaf
+import generators.obj.abstractSyntaxTree.Node
+import generators.obj.abstractSyntaxTree.TreeRoot
+import generators.obj.abstractSyntaxTree.addSub
+import generators.obj.abstractSyntaxTree.getPath
import org.w3c.dom.Document
import org.w3c.dom.Element
import org.xml.sax.InputSource
diff --git a/cgen-lib/src/main/kotlin/generators/cpp/CppClasses.kt b/cgen-lib/src/main/kotlin/generators/cpp/CppClasses.kt
index 902b6ff5..d3b4f9c0 100644
--- a/cgen-lib/src/main/kotlin/generators/cpp/CppClasses.kt
+++ b/cgen-lib/src/main/kotlin/generators/cpp/CppClasses.kt
@@ -1,12 +1,12 @@
package generators.cpp
-import generators.obj.input.Leaf
-import generators.obj.input.Node
-import generators.obj.input.addSub
-import generators.obj.input.copyLeafExt
-import generators.obj.input.copyNodeExt
-import generators.obj.out.FileData
-import generators.obj.out.ImportsBlock
+import generators.obj.abstractSyntaxTree.Leaf
+import generators.obj.abstractSyntaxTree.Node
+import generators.obj.abstractSyntaxTree.addSub
+import generators.obj.abstractSyntaxTree.copyLeafExt
+import generators.obj.abstractSyntaxTree.copyNodeExt
+import generators.obj.syntaxParseTree.FileData
+import generators.obj.syntaxParseTree.ImportsBlock
class CompilerDirective(override val name: String) : Leaf {
var parent: Node? = null
diff --git a/cgen-lib/src/main/kotlin/generators/cpp/CppConstantsBlockGenerator.kt b/cgen-lib/src/main/kotlin/generators/cpp/CppConstantsBlockGenerator.kt
index 44f46bf4..ba2ef684 100644
--- a/cgen-lib/src/main/kotlin/generators/cpp/CppConstantsBlockGenerator.kt
+++ b/cgen-lib/src/main/kotlin/generators/cpp/CppConstantsBlockGenerator.kt
@@ -4,20 +4,20 @@ import ce.domain.usecase.add.AddRegionDefaultsUseCase
import generators.kotlin.PrepareRightValueUseCase
import generators.obj.AutoincrementField
import generators.obj.TransformBlockUseCase
-import generators.obj.input.ConstantDesc
-import generators.obj.input.ConstantsBlock
-import generators.obj.input.addCommentLine
-import generators.obj.input.addDatatype
-import generators.obj.input.addKeyword
-import generators.obj.input.addSub
-import generators.obj.input.addVarName
-import generators.obj.input.findOrNull
-import generators.obj.input.getParentPath
-import generators.obj.out.CommentsBlock
-import generators.obj.out.FieldNode
-import generators.obj.out.FileData
-import generators.obj.out.NamespaceBlock
-import generators.obj.out.RegionImpl
+import generators.obj.abstractSyntaxTree.ConstantDesc
+import generators.obj.abstractSyntaxTree.ConstantsBlock
+import generators.obj.abstractSyntaxTree.addCommentLine
+import generators.obj.abstractSyntaxTree.addDatatype
+import generators.obj.abstractSyntaxTree.addKeyword
+import generators.obj.abstractSyntaxTree.addSub
+import generators.obj.abstractSyntaxTree.addVarName
+import generators.obj.abstractSyntaxTree.findOrNull
+import generators.obj.abstractSyntaxTree.getParentPath
+import generators.obj.syntaxParseTree.CommentsBlock
+import generators.obj.syntaxParseTree.FieldNode
+import generators.obj.syntaxParseTree.FileData
+import generators.obj.syntaxParseTree.NamespaceBlock
+import generators.obj.syntaxParseTree.RegionImpl
class CppConstantsBlockGenerator(
private val addBlockDefaultsUseCase: AddRegionDefaultsUseCase,
diff --git a/cgen-lib/src/main/kotlin/generators/cpp/CppDataClassGenerator.kt b/cgen-lib/src/main/kotlin/generators/cpp/CppDataClassGenerator.kt
index 34ce6614..6c377ca1 100644
--- a/cgen-lib/src/main/kotlin/generators/cpp/CppDataClassGenerator.kt
+++ b/cgen-lib/src/main/kotlin/generators/cpp/CppDataClassGenerator.kt
@@ -2,23 +2,23 @@ package generators.cpp
import ce.domain.usecase.add.AddRegionDefaultsUseCase
import generators.obj.TransformBlockUseCase
-import generators.obj.input.DataClass
-import generators.obj.input.DataField
-import generators.obj.input.addCommentLine
-import generators.obj.input.addDatatype
-import generators.obj.input.addKeyword
-import generators.obj.input.addOutBlock
-import generators.obj.input.addSub
-import generators.obj.input.addVarName
-import generators.obj.input.findOrCreateSub
-import generators.obj.input.findOrNull
-import generators.obj.input.getParentPath
-import generators.obj.out.CommentsBlock
-import generators.obj.out.FieldNode
-import generators.obj.out.FileData
-import generators.obj.out.ImportsBlock
-import generators.obj.out.NamespaceBlock
-import generators.obj.out.RegionImpl
+import generators.obj.abstractSyntaxTree.DataClass
+import generators.obj.abstractSyntaxTree.DataField
+import generators.obj.abstractSyntaxTree.addCommentLine
+import generators.obj.abstractSyntaxTree.addDatatype
+import generators.obj.abstractSyntaxTree.addKeyword
+import generators.obj.abstractSyntaxTree.addOutBlock
+import generators.obj.abstractSyntaxTree.addSub
+import generators.obj.abstractSyntaxTree.addVarName
+import generators.obj.abstractSyntaxTree.findOrCreateSub
+import generators.obj.abstractSyntaxTree.findOrNull
+import generators.obj.abstractSyntaxTree.getParentPath
+import generators.obj.syntaxParseTree.CommentsBlock
+import generators.obj.syntaxParseTree.FieldNode
+import generators.obj.syntaxParseTree.FileData
+import generators.obj.syntaxParseTree.ImportsBlock
+import generators.obj.syntaxParseTree.NamespaceBlock
+import generators.obj.syntaxParseTree.RegionImpl
class CppDataClassGenerator(
private val addBlockDefaultsUseCase: AddRegionDefaultsUseCase,
diff --git a/cgen-lib/src/main/kotlin/generators/cpp/CppEnumGenerator.kt b/cgen-lib/src/main/kotlin/generators/cpp/CppEnumGenerator.kt
index 529f5e7a..ce390b80 100644
--- a/cgen-lib/src/main/kotlin/generators/cpp/CppEnumGenerator.kt
+++ b/cgen-lib/src/main/kotlin/generators/cpp/CppEnumGenerator.kt
@@ -4,21 +4,21 @@ import ce.defs.DataType
import ce.domain.usecase.add.AddRegionDefaultsUseCase
import generators.obj.AutoincrementField
import generators.obj.TransformBlockUseCase
-import generators.obj.input.ConstantsEnum
-import generators.obj.input.DataField
-import generators.obj.input.addCommentLine
-import generators.obj.input.addEnumLeaf
-import generators.obj.input.addKeyword
-import generators.obj.input.addOutBlock
-import generators.obj.input.addSeparator
-import generators.obj.input.addSub
-import generators.obj.input.addVarName
-import generators.obj.input.findOrNull
-import generators.obj.input.getParentPath
-import generators.obj.out.CommentsBlock
-import generators.obj.out.FileData
-import generators.obj.out.NamespaceBlock
-import generators.obj.out.RegionImpl
+import generators.obj.abstractSyntaxTree.ConstantsEnum
+import generators.obj.abstractSyntaxTree.DataField
+import generators.obj.abstractSyntaxTree.addCommentLine
+import generators.obj.abstractSyntaxTree.addEnumLeaf
+import generators.obj.abstractSyntaxTree.addKeyword
+import generators.obj.abstractSyntaxTree.addOutBlock
+import generators.obj.abstractSyntaxTree.addSeparator
+import generators.obj.abstractSyntaxTree.addSub
+import generators.obj.abstractSyntaxTree.addVarName
+import generators.obj.abstractSyntaxTree.findOrNull
+import generators.obj.abstractSyntaxTree.getParentPath
+import generators.obj.syntaxParseTree.CommentsBlock
+import generators.obj.syntaxParseTree.FileData
+import generators.obj.syntaxParseTree.NamespaceBlock
+import generators.obj.syntaxParseTree.RegionImpl
class CppEnumGenerator(
private val addBlockDefaultsUseCase: AddRegionDefaultsUseCase,
diff --git a/cgen-lib/src/main/kotlin/generators/cpp/CppFileGenerator.kt b/cgen-lib/src/main/kotlin/generators/cpp/CppFileGenerator.kt
index 214daeb2..95599146 100644
--- a/cgen-lib/src/main/kotlin/generators/cpp/CppFileGenerator.kt
+++ b/cgen-lib/src/main/kotlin/generators/cpp/CppFileGenerator.kt
@@ -1,9 +1,9 @@
package generators.cpp
import generators.obj.CLikeFileGenerator
-import generators.obj.input.Block
-import generators.obj.out.FileData
-import generators.obj.out.OutputTree
+import generators.obj.abstractSyntaxTree.Block
+import generators.obj.syntaxParseTree.FileData
+import generators.obj.syntaxParseTree.OutputTree
class CppFileGenerator() : CLikeFileGenerator() {
override fun createFile(project: OutputTree, outputFile: String, block: Block): List {
diff --git a/cgen-lib/src/main/kotlin/generators/cpp/CppInterfaceGenerator.kt b/cgen-lib/src/main/kotlin/generators/cpp/CppInterfaceGenerator.kt
index dc16024d..e9e3e35c 100644
--- a/cgen-lib/src/main/kotlin/generators/cpp/CppInterfaceGenerator.kt
+++ b/cgen-lib/src/main/kotlin/generators/cpp/CppInterfaceGenerator.kt
@@ -2,10 +2,10 @@ package generators.cpp
import ce.domain.usecase.add.AddRegionDefaultsUseCase
import generators.obj.TransformBlockUseCase
-import generators.obj.input.InterfaceDescription
-import generators.obj.input.addSub
-import generators.obj.out.FileData
-import generators.obj.out.OutBlock
+import generators.obj.abstractSyntaxTree.InterfaceDescription
+import generators.obj.abstractSyntaxTree.addSub
+import generators.obj.syntaxParseTree.FileData
+import generators.obj.syntaxParseTree.OutBlock
class CppInterfaceGenerator(
private val addBlockDefaultsUseCase: AddRegionDefaultsUseCase,
diff --git a/cgen-lib/src/main/kotlin/generators/cpp/CppWritter.kt b/cgen-lib/src/main/kotlin/generators/cpp/CppWritter.kt
index 93cffc82..d32d36d3 100644
--- a/cgen-lib/src/main/kotlin/generators/cpp/CppWritter.kt
+++ b/cgen-lib/src/main/kotlin/generators/cpp/CppWritter.kt
@@ -5,15 +5,15 @@ import ce.io.CodeWriter
import ce.io.FileCodeWritter
import ce.repository.ReportsRepo
import generators.obj.Writter
-import generators.obj.input.Leaf
-import generators.obj.input.Node
-import generators.obj.input.findOrNull
-import generators.obj.input.removeSub
-import generators.obj.out.FileData
-import generators.obj.out.ImportLeaf
-import generators.obj.out.NamespaceBlock
-import generators.obj.out.OutBlock
-import generators.obj.out.OutBlockArguments
+import generators.obj.abstractSyntaxTree.Leaf
+import generators.obj.abstractSyntaxTree.Node
+import generators.obj.abstractSyntaxTree.findOrNull
+import generators.obj.abstractSyntaxTree.removeSub
+import generators.obj.syntaxParseTree.FileData
+import generators.obj.syntaxParseTree.ImportLeaf
+import generators.obj.syntaxParseTree.NamespaceBlock
+import generators.obj.syntaxParseTree.OutBlock
+import generators.obj.syntaxParseTree.OutBlockArguments
import java.io.File
class CppWritter(
diff --git a/cgen-lib/src/main/kotlin/generators/cpp/InterfaceGeneratorCpp.kt b/cgen-lib/src/main/kotlin/generators/cpp/InterfaceGeneratorCpp.kt
index 5dc23f58..b5e8b5d8 100644
--- a/cgen-lib/src/main/kotlin/generators/cpp/InterfaceGeneratorCpp.kt
+++ b/cgen-lib/src/main/kotlin/generators/cpp/InterfaceGeneratorCpp.kt
@@ -3,10 +3,10 @@ package generators.cpp
import ce.domain.usecase.add.AddRegionDefaultsUseCase
import generators.obj.FileGenerator
import generators.obj.TransformBlockUseCase
-import generators.obj.input.InterfaceDescription
-import generators.obj.input.addSub
-import generators.obj.out.FileData
-import generators.obj.out.RegionImpl
+import generators.obj.abstractSyntaxTree.InterfaceDescription
+import generators.obj.abstractSyntaxTree.addSub
+import generators.obj.syntaxParseTree.FileData
+import generators.obj.syntaxParseTree.RegionImpl
class InterfaceGeneratorCpp(
fileGenerator: FileGenerator,
diff --git a/cgen-lib/src/main/kotlin/generators/cpp/PrepareRightValueUseCase.kt b/cgen-lib/src/main/kotlin/generators/cpp/PrepareRightValueUseCase.kt
new file mode 100644
index 00000000..2e151f23
--- /dev/null
+++ b/cgen-lib/src/main/kotlin/generators/cpp/PrepareRightValueUseCase.kt
@@ -0,0 +1,75 @@
+package generators.cpp
+
+import ce.defs.DataType
+import ce.defs.DataValue
+import ce.defs.RValue
+import generators.kotlin.GetTypeNameUseCase
+import generators.obj.abstractSyntaxTree.DataField
+import generators.obj.abstractSyntaxTree.NewInstance
+import generators.obj.abstractSyntaxTree.addSub
+import generators.obj.syntaxParseTree.Arguments
+import generators.obj.syntaxParseTree.Constructor
+import generators.obj.syntaxParseTree.FileData
+
+class PrepareRightValueUseCase(
+ private val getTypeNameUseCase: GetTypeNameUseCase
+) {
+ fun toRightValue(dataField: DataField, fileData: FileData): RValue =
+ toRightValue(
+ type = dataField.getType(),
+ value = dataField.getValue(),
+ fileData = fileData
+ )
+
+ fun toRightValue(type: DataType, value: DataValue, fileData: FileData): RValue =
+ when (type) {
+ DataType.VOID -> RValue(name = "void")
+ DataType.int8, DataType.int16, DataType.int32, DataType.int64,
+ DataType.uint8, DataType.uint16, DataType.uint32, DataType.uint64 -> RValue(name = value.simple.toString())
+
+ DataType.float32 -> RValue(name = value.simple.toString() + "f")
+ DataType.float64 -> RValue(name = value.simple.toString())
+ DataType.bool -> RValue(name = value.simple.toString())
+ is DataType.string -> {
+ if (value.simple is String) {
+ RValue(name = "\"${value.simple}\"")
+ } else {
+ throw IllegalArgumentException(
+ "Expected a String value for DataType.string, " +
+ "but got: ${value.simple}"
+ )
+ }
+ }
+
+ is DataType.custom -> {
+ if (!value.isComplex) {
+ RValue(name = value.simple.toString())
+ } else {
+ val valueComplexItem = value.subs.first()
+ if (valueComplexItem is NewInstance) {
+ prepareConstructor(valueComplexItem, fileData)
+ } else {
+ RValue(name = "QQVAL_complex???")
+ }
+ }
+
+ }
+
+ else -> RValue(name = "QQVAL_$type")
+ }
+
+ fun prepareConstructor(item: NewInstance, fileData: FileData): RValue {
+ val result = RValue()
+ result.addSub(
+ Constructor(
+ name = getTypeNameUseCase.typeTo(
+ file = fileData,
+ type = item.getType()
+ )
+ ).apply {
+ addSub(Arguments())
+ }
+ )
+ return result
+ }
+}
\ No newline at end of file
diff --git a/cgen-lib/src/main/kotlin/generators/cpp/Types.kt b/cgen-lib/src/main/kotlin/generators/cpp/Types.kt
index 44e8ac01..6820fc68 100644
--- a/cgen-lib/src/main/kotlin/generators/cpp/Types.kt
+++ b/cgen-lib/src/main/kotlin/generators/cpp/Types.kt
@@ -3,9 +3,9 @@ package generators.cpp
import ce.defs.DataType
import ce.defs.DataValue
import ce.defs.DataValueImpl
-import generators.obj.input.findOrCreateSub
-import generators.obj.out.FileData
-import generators.obj.out.ImportsBlock
+import generators.obj.abstractSyntaxTree.findOrCreateSub
+import generators.obj.syntaxParseTree.FileData
+import generators.obj.syntaxParseTree.ImportsBlock
object Types {
fun typeTo(file: FileData,
diff --git a/cgen-lib/src/main/kotlin/generators/java/JavaClassData.kt b/cgen-lib/src/main/kotlin/generators/java/JavaClassData.kt
index bab61dbd..90c1d793 100644
--- a/cgen-lib/src/main/kotlin/generators/java/JavaClassData.kt
+++ b/cgen-lib/src/main/kotlin/generators/java/JavaClassData.kt
@@ -1,10 +1,9 @@
package generators.java
-import generators.obj.input.Leaf
-import generators.obj.input.Node
-import generators.obj.input.copyLeafExt
-import generators.obj.input.copyNodeExt
-import generators.obj.out.ClassData
+import generators.obj.abstractSyntaxTree.Leaf
+import generators.obj.abstractSyntaxTree.Node
+import generators.obj.abstractSyntaxTree.copyNodeExt
+import generators.obj.syntaxParseTree.ClassData
data class JavaClassData(
override val name: String = "",
diff --git a/cgen-lib/src/main/kotlin/generators/java/JavaConstantsGenerator.kt b/cgen-lib/src/main/kotlin/generators/java/JavaConstantsGenerator.kt
index 8a18eeae..a3cbb5d9 100644
--- a/cgen-lib/src/main/kotlin/generators/java/JavaConstantsGenerator.kt
+++ b/cgen-lib/src/main/kotlin/generators/java/JavaConstantsGenerator.kt
@@ -4,16 +4,16 @@ import ce.domain.usecase.add.AddRegionDefaultsUseCase
import generators.kotlin.PrepareRightValueUseCase
import generators.obj.AutoincrementField
import generators.obj.TransformBlockUseCase
-import generators.obj.input.ConstantDesc
-import generators.obj.input.ConstantsBlock
-import generators.obj.input.addDatatype
-import generators.obj.input.addKeyword
-import generators.obj.input.addSub
-import generators.obj.input.addVarName
-import generators.obj.out.FieldNode
-import generators.obj.out.FileData
-import generators.obj.out.OutBlock
-import generators.obj.out.RegionImpl
+import generators.obj.abstractSyntaxTree.ConstantDesc
+import generators.obj.abstractSyntaxTree.ConstantsBlock
+import generators.obj.abstractSyntaxTree.addDatatype
+import generators.obj.abstractSyntaxTree.addKeyword
+import generators.obj.abstractSyntaxTree.addSub
+import generators.obj.abstractSyntaxTree.addVarName
+import generators.obj.syntaxParseTree.FieldNode
+import generators.obj.syntaxParseTree.FileData
+import generators.obj.syntaxParseTree.OutBlock
+import generators.obj.syntaxParseTree.RegionImpl
class JavaConstantsGenerator(
private val addBlockDefaultsUseCase: AddRegionDefaultsUseCase,
diff --git a/cgen-lib/src/main/kotlin/generators/java/JavaDataClassGenerator.kt b/cgen-lib/src/main/kotlin/generators/java/JavaDataClassGenerator.kt
index faf364cc..a42bbcfe 100644
--- a/cgen-lib/src/main/kotlin/generators/java/JavaDataClassGenerator.kt
+++ b/cgen-lib/src/main/kotlin/generators/java/JavaDataClassGenerator.kt
@@ -2,16 +2,16 @@ package generators.java
import ce.domain.usecase.add.AddRegionDefaultsUseCase
import generators.obj.TransformBlockUseCase
-import generators.obj.input.DataClass
-import generators.obj.input.DataField
-import generators.obj.input.addDatatype
-import generators.obj.input.addOutBlock
-import generators.obj.input.addOutBlockArguments
-import generators.obj.input.addSub
-import generators.obj.input.addVarName
-import generators.obj.out.ArgumentNode
-import generators.obj.out.FileData
-import generators.obj.out.RegionImpl
+import generators.obj.abstractSyntaxTree.DataClass
+import generators.obj.abstractSyntaxTree.DataField
+import generators.obj.abstractSyntaxTree.addDatatype
+import generators.obj.abstractSyntaxTree.addOutBlock
+import generators.obj.abstractSyntaxTree.addOutBlockArguments
+import generators.obj.abstractSyntaxTree.addSub
+import generators.obj.abstractSyntaxTree.addVarName
+import generators.obj.syntaxParseTree.ArgumentNode
+import generators.obj.syntaxParseTree.FileData
+import generators.obj.syntaxParseTree.RegionImpl
class JavaDataClassGenerator(
private val addBlockDefaultsUseCase: AddRegionDefaultsUseCase,
diff --git a/cgen-lib/src/main/kotlin/generators/java/JavaEnumGenerator.kt b/cgen-lib/src/main/kotlin/generators/java/JavaEnumGenerator.kt
index bf3ce69b..8915c201 100644
--- a/cgen-lib/src/main/kotlin/generators/java/JavaEnumGenerator.kt
+++ b/cgen-lib/src/main/kotlin/generators/java/JavaEnumGenerator.kt
@@ -4,17 +4,17 @@ import ce.defs.DataType
import ce.domain.usecase.add.AddRegionDefaultsUseCase
import generators.obj.AutoincrementField
import generators.obj.TransformBlockUseCase
-import generators.obj.input.ConstantsEnum
-import generators.obj.input.DataField
-import generators.obj.input.addDatatype
-import generators.obj.input.addEnumLeaf
-import generators.obj.input.addKeyword
-import generators.obj.input.addOutBlock
-import generators.obj.input.addSub
-import generators.obj.input.addVarName
-import generators.obj.out.FieldNode
-import generators.obj.out.FileData
-import generators.obj.out.RegionImpl
+import generators.obj.abstractSyntaxTree.ConstantsEnum
+import generators.obj.abstractSyntaxTree.DataField
+import generators.obj.abstractSyntaxTree.addDatatype
+import generators.obj.abstractSyntaxTree.addEnumLeaf
+import generators.obj.abstractSyntaxTree.addKeyword
+import generators.obj.abstractSyntaxTree.addOutBlock
+import generators.obj.abstractSyntaxTree.addSub
+import generators.obj.abstractSyntaxTree.addVarName
+import generators.obj.syntaxParseTree.FieldNode
+import generators.obj.syntaxParseTree.FileData
+import generators.obj.syntaxParseTree.RegionImpl
class JavaEnumGenerator(
private val addBlockDefaultsUseCase: AddRegionDefaultsUseCase,
diff --git a/cgen-lib/src/main/kotlin/generators/java/JavaFileGenerator.kt b/cgen-lib/src/main/kotlin/generators/java/JavaFileGenerator.kt
index 35e36837..369d4805 100644
--- a/cgen-lib/src/main/kotlin/generators/java/JavaFileGenerator.kt
+++ b/cgen-lib/src/main/kotlin/generators/java/JavaFileGenerator.kt
@@ -1,14 +1,14 @@
package generators.java
import generators.obj.CLikeFileGenerator
-import generators.obj.input.Block
-import generators.obj.input.addSub
-import generators.obj.input.getParentPath
-import generators.obj.out.FileData
-import generators.obj.out.FileDataImpl
-import generators.obj.out.ImportsBlock
-import generators.obj.out.NamespaceDeclaration
-import generators.obj.out.OutputTree
+import generators.obj.abstractSyntaxTree.Block
+import generators.obj.abstractSyntaxTree.addSub
+import generators.obj.abstractSyntaxTree.getParentPath
+import generators.obj.syntaxParseTree.FileData
+import generators.obj.syntaxParseTree.FileDataImpl
+import generators.obj.syntaxParseTree.ImportsBlock
+import generators.obj.syntaxParseTree.NamespaceDeclaration
+import generators.obj.syntaxParseTree.OutputTree
import java.io.File
class JavaFileGenerator() : CLikeFileGenerator() {
diff --git a/cgen-lib/src/main/kotlin/generators/java/JavaInterfaceGenerator.kt b/cgen-lib/src/main/kotlin/generators/java/JavaInterfaceGenerator.kt
index b357490c..9e9a01ef 100644
--- a/cgen-lib/src/main/kotlin/generators/java/JavaInterfaceGenerator.kt
+++ b/cgen-lib/src/main/kotlin/generators/java/JavaInterfaceGenerator.kt
@@ -1,12 +1,10 @@
package generators.java
import ce.domain.usecase.add.AddRegionDefaultsUseCase
-import ce.settings.Project
import generators.obj.TransformBlockUseCase
-import generators.obj.input.DataField
-import generators.obj.input.InterfaceDescription
-import generators.obj.input.addSub
-import generators.obj.out.FileData
+import generators.obj.abstractSyntaxTree.InterfaceDescription
+import generators.obj.abstractSyntaxTree.addSub
+import generators.obj.syntaxParseTree.FileData
class JavaInterfaceGenerator(
private val addBlockDefaultsUseCase: AddRegionDefaultsUseCase,
diff --git a/cgen-lib/src/main/kotlin/generators/java/JavaWritter.kt b/cgen-lib/src/main/kotlin/generators/java/JavaWritter.kt
index 4c93a16d..8e35f946 100644
--- a/cgen-lib/src/main/kotlin/generators/java/JavaWritter.kt
+++ b/cgen-lib/src/main/kotlin/generators/java/JavaWritter.kt
@@ -5,12 +5,12 @@ import ce.io.CodeWriter
import ce.io.FileCodeWritter
import ce.repository.ReportsRepo
import generators.obj.Writter
-import generators.obj.input.Leaf
-import generators.obj.input.Node
-import generators.obj.out.FileData
-import generators.obj.out.ImportLeaf
-import generators.obj.out.NamespaceDeclaration
-import generators.obj.out.OutBlock
+import generators.obj.abstractSyntaxTree.Leaf
+import generators.obj.abstractSyntaxTree.Node
+import generators.obj.syntaxParseTree.FileData
+import generators.obj.syntaxParseTree.ImportLeaf
+import generators.obj.syntaxParseTree.NamespaceDeclaration
+import generators.obj.syntaxParseTree.OutBlock
import java.io.File
class JavaWritter(
diff --git a/cgen-lib/src/main/kotlin/generators/java/PrepareRightValueUseCase.kt b/cgen-lib/src/main/kotlin/generators/java/PrepareRightValueUseCase.kt
new file mode 100644
index 00000000..0635c4eb
--- /dev/null
+++ b/cgen-lib/src/main/kotlin/generators/java/PrepareRightValueUseCase.kt
@@ -0,0 +1,75 @@
+package generators.java
+
+import ce.defs.DataType
+import ce.defs.DataValue
+import ce.defs.RValue
+import generators.kotlin.GetTypeNameUseCase
+import generators.obj.abstractSyntaxTree.DataField
+import generators.obj.abstractSyntaxTree.NewInstance
+import generators.obj.abstractSyntaxTree.addSub
+import generators.obj.syntaxParseTree.Arguments
+import generators.obj.syntaxParseTree.Constructor
+import generators.obj.syntaxParseTree.FileData
+
+class PrepareRightValueUseCase(
+ private val getTypeNameUseCase: GetTypeNameUseCase
+) {
+ fun toRightValue(dataField: DataField, fileData: FileData): RValue =
+ toRightValue(
+ type = dataField.getType(),
+ value = dataField.getValue(),
+ fileData = fileData
+ )
+
+ fun toRightValue(type: DataType, value: DataValue, fileData: FileData): RValue =
+ when (type) {
+ DataType.VOID -> RValue(name = "void")
+ DataType.int8, DataType.int16, DataType.int32, DataType.int64,
+ DataType.uint8, DataType.uint16, DataType.uint32, DataType.uint64 -> RValue(name = value.simple.toString())
+
+ DataType.float32 -> RValue(name = value.simple.toString() + "f")
+ DataType.float64 -> RValue(name = value.simple.toString())
+ DataType.bool -> RValue(name = value.simple.toString())
+ is DataType.string -> {
+ if (value.simple is String) {
+ RValue(name = "\"${value.simple}\"")
+ } else {
+ throw IllegalArgumentException(
+ "Expected a String value for DataType.string, " +
+ "but got: ${value.simple}"
+ )
+ }
+ }
+
+ is DataType.custom -> {
+ if (!value.isComplex) {
+ RValue(name = value.simple.toString())
+ } else {
+ val valueComplexItem = value.subs.first()
+ if (valueComplexItem is NewInstance) {
+ prepareConstructor(valueComplexItem, fileData)
+ } else {
+ RValue(name = "QQVAL_complex???")
+ }
+ }
+
+ }
+
+ else -> RValue(name = "QQVAL_$type")
+ }
+
+ fun prepareConstructor(item: NewInstance, fileData: FileData): RValue {
+ val result = RValue()
+ result.addSub(
+ Constructor(
+ name = getTypeNameUseCase.typeTo(
+ file = fileData,
+ type = item.getType()
+ )
+ ).apply {
+ addSub(Arguments())
+ }
+ )
+ return result
+ }
+}
\ No newline at end of file
diff --git a/cgen-lib/src/main/kotlin/generators/java/Types.kt b/cgen-lib/src/main/kotlin/generators/java/Types.kt
index 59889a73..3af21e39 100644
--- a/cgen-lib/src/main/kotlin/generators/java/Types.kt
+++ b/cgen-lib/src/main/kotlin/generators/java/Types.kt
@@ -4,8 +4,8 @@ import ce.defs.DataType
import ce.defs.DataValue
import ce.defs.DataValueImpl
import ce.defs.IntValue
-import generators.obj.input.getPath
-import generators.obj.out.FileData
+import generators.obj.abstractSyntaxTree.getPath
+import generators.obj.syntaxParseTree.FileData
object Types {
fun getArrayType(type: DataType): String =
diff --git a/cgen-lib/src/main/kotlin/generators/kotlin/GetTypeNameUseCase.kt b/cgen-lib/src/main/kotlin/generators/kotlin/GetTypeNameUseCase.kt
index f55efb47..0c94e063 100644
--- a/cgen-lib/src/main/kotlin/generators/kotlin/GetTypeNameUseCase.kt
+++ b/cgen-lib/src/main/kotlin/generators/kotlin/GetTypeNameUseCase.kt
@@ -1,11 +1,11 @@
package generators.kotlin
import ce.defs.DataType
-import generators.obj.input.findOrCreateSub
-import generators.obj.input.getParentPath
-import generators.obj.input.getPath
-import generators.obj.out.FileData
-import generators.obj.out.ImportsBlock
+import generators.obj.abstractSyntaxTree.findOrCreateSub
+import generators.obj.abstractSyntaxTree.getParentPath
+import generators.obj.abstractSyntaxTree.getPath
+import generators.obj.syntaxParseTree.FileData
+import generators.obj.syntaxParseTree.ImportsBlock
class GetTypeNameUseCase(
private val arrayDataType: GetArrayDataTypeUseCase
diff --git a/cgen-lib/src/main/kotlin/generators/kotlin/KotlinClassData.kt b/cgen-lib/src/main/kotlin/generators/kotlin/KotlinClassData.kt
index 23b2ee5f..2878d38e 100644
--- a/cgen-lib/src/main/kotlin/generators/kotlin/KotlinClassData.kt
+++ b/cgen-lib/src/main/kotlin/generators/kotlin/KotlinClassData.kt
@@ -1,14 +1,13 @@
package generators.kotlin
-import generators.obj.input.Leaf
-import generators.obj.input.Node
-import generators.obj.input.copyLeafExt
-import generators.obj.input.copyNodeExt
+import generators.obj.abstractSyntaxTree.Leaf
+import generators.obj.abstractSyntaxTree.Node
+import generators.obj.abstractSyntaxTree.copyNodeExt
data class KotlinClassData(
override val name: String,
override val subs: MutableList = mutableListOf()
-) : generators.obj.out.ClassData {
+) : generators.obj.syntaxParseTree.ClassData {
override fun copyLeaf(parent: Node?, copySubs: Boolean) =
this.copyNodeExt(parent, copySubs) {
this.copy(subs = mutableListOf())
diff --git a/cgen-lib/src/main/kotlin/generators/kotlin/KotlinEnumGenerator.kt b/cgen-lib/src/main/kotlin/generators/kotlin/KotlinEnumGenerator.kt
index af1dcca2..924c2bce 100644
--- a/cgen-lib/src/main/kotlin/generators/kotlin/KotlinEnumGenerator.kt
+++ b/cgen-lib/src/main/kotlin/generators/kotlin/KotlinEnumGenerator.kt
@@ -4,19 +4,19 @@ import ce.defs.DataType
import ce.domain.usecase.add.AddRegionDefaultsUseCase
import generators.obj.AutoincrementField
import generators.obj.TransformBlockUseCase
-import generators.obj.input.ConstantsEnum
-import generators.obj.input.DataField
-import generators.obj.input.addDatatype
-import generators.obj.input.addEnumLeaf
-import generators.obj.input.addKeyword
-import generators.obj.input.addOutBlock
-import generators.obj.input.addOutBlockArguments
-import generators.obj.input.addSub
-import generators.obj.input.addVarName
-import generators.obj.out.ArgumentNode
-import generators.obj.out.Arguments
-import generators.obj.out.FileData
-import generators.obj.out.RegionImpl
+import generators.obj.abstractSyntaxTree.ConstantsEnum
+import generators.obj.abstractSyntaxTree.DataField
+import generators.obj.abstractSyntaxTree.addDatatype
+import generators.obj.abstractSyntaxTree.addEnumLeaf
+import generators.obj.abstractSyntaxTree.addKeyword
+import generators.obj.abstractSyntaxTree.addOutBlock
+import generators.obj.abstractSyntaxTree.addOutBlockArguments
+import generators.obj.abstractSyntaxTree.addSub
+import generators.obj.abstractSyntaxTree.addVarName
+import generators.obj.syntaxParseTree.ArgumentNode
+import generators.obj.syntaxParseTree.Arguments
+import generators.obj.syntaxParseTree.FileData
+import generators.obj.syntaxParseTree.RegionImpl
class KotlinEnumGenerator(
private val addBlockDefaultsUseCase: AddRegionDefaultsUseCase,
diff --git a/cgen-lib/src/main/kotlin/generators/kotlin/KotlinFileGenerator.kt b/cgen-lib/src/main/kotlin/generators/kotlin/KotlinFileGenerator.kt
index 4fdb7037..e42ab1a9 100644
--- a/cgen-lib/src/main/kotlin/generators/kotlin/KotlinFileGenerator.kt
+++ b/cgen-lib/src/main/kotlin/generators/kotlin/KotlinFileGenerator.kt
@@ -1,16 +1,16 @@
package generators.kotlin
import generators.obj.CLikeFileGenerator
-import generators.obj.input.Block
-import generators.obj.input.addSub
-import generators.obj.input.getParentPath
-import generators.obj.out.FileData
-import generators.obj.out.FileDataImpl
-import generators.obj.out.ImportsBlock
-import generators.obj.out.Keyword
-import generators.obj.out.NamespaceDeclaration
-import generators.obj.out.OutputTree
-import generators.obj.out.VariableName
+import generators.obj.abstractSyntaxTree.Block
+import generators.obj.abstractSyntaxTree.addSub
+import generators.obj.abstractSyntaxTree.getParentPath
+import generators.obj.syntaxParseTree.FileData
+import generators.obj.syntaxParseTree.FileDataImpl
+import generators.obj.syntaxParseTree.ImportsBlock
+import generators.obj.syntaxParseTree.Keyword
+import generators.obj.syntaxParseTree.NamespaceDeclaration
+import generators.obj.syntaxParseTree.OutputTree
+import generators.obj.syntaxParseTree.VariableName
import java.io.File
class KotlinFileGenerator() : CLikeFileGenerator() {
diff --git a/cgen-lib/src/main/kotlin/generators/kotlin/KotlinInterfaceGenerator.kt b/cgen-lib/src/main/kotlin/generators/kotlin/KotlinInterfaceGenerator.kt
index 8d8df9d3..974dd0d4 100644
--- a/cgen-lib/src/main/kotlin/generators/kotlin/KotlinInterfaceGenerator.kt
+++ b/cgen-lib/src/main/kotlin/generators/kotlin/KotlinInterfaceGenerator.kt
@@ -3,19 +3,19 @@ package generators.kotlin
import ce.defs.DataType
import ce.domain.usecase.add.AddRegionDefaultsUseCase
import generators.obj.TransformBlockUseCase
-import generators.obj.input.Input
-import generators.obj.input.InputList
-import generators.obj.input.InterfaceDescription
-import generators.obj.input.Method
-import generators.obj.input.Output
-import generators.obj.input.OutputList
-import generators.obj.input.OutputReusable
-import generators.obj.input.addSub
-import generators.obj.input.findOrNull
-import generators.obj.out.ArgumentNode
-import generators.obj.out.FileData
-import generators.obj.out.OutBlock
-import generators.obj.out.ResultLeaf
+import generators.obj.abstractSyntaxTree.Input
+import generators.obj.abstractSyntaxTree.InputList
+import generators.obj.abstractSyntaxTree.InterfaceDescription
+import generators.obj.abstractSyntaxTree.Method
+import generators.obj.abstractSyntaxTree.Output
+import generators.obj.abstractSyntaxTree.OutputList
+import generators.obj.abstractSyntaxTree.OutputReusable
+import generators.obj.abstractSyntaxTree.addSub
+import generators.obj.abstractSyntaxTree.findOrNull
+import generators.obj.syntaxParseTree.ArgumentNode
+import generators.obj.syntaxParseTree.FileData
+import generators.obj.syntaxParseTree.OutBlock
+import generators.obj.syntaxParseTree.ResultLeaf
class KotlinInterfaceGenerator(
private val addBlockDefaultsUseCase: AddRegionDefaultsUseCase,
diff --git a/cgen-lib/src/main/kotlin/generators/kotlin/KotlinWriter.kt b/cgen-lib/src/main/kotlin/generators/kotlin/KotlinWriter.kt
index 01dd5ece..759acc21 100644
--- a/cgen-lib/src/main/kotlin/generators/kotlin/KotlinWriter.kt
+++ b/cgen-lib/src/main/kotlin/generators/kotlin/KotlinWriter.kt
@@ -4,17 +4,17 @@ import ce.formatters.CodeStyleRepo
import ce.io.CodeWriter
import ce.io.FileCodeWritter
import generators.obj.Writter
-import generators.obj.input.InputList
-import generators.obj.input.Leaf
-import generators.obj.input.Method
-import generators.obj.input.Node
-import generators.obj.input.findOrNull
-import generators.obj.input.removeSub
-import generators.obj.out.FileData
-import generators.obj.out.ImportLeaf
-import generators.obj.out.NamespaceDeclaration
-import generators.obj.out.OutBlock
-import generators.obj.out.ResultLeaf
+import generators.obj.abstractSyntaxTree.InputList
+import generators.obj.abstractSyntaxTree.Leaf
+import generators.obj.abstractSyntaxTree.Method
+import generators.obj.abstractSyntaxTree.Node
+import generators.obj.abstractSyntaxTree.findOrNull
+import generators.obj.abstractSyntaxTree.removeSub
+import generators.obj.syntaxParseTree.FileData
+import generators.obj.syntaxParseTree.ImportLeaf
+import generators.obj.syntaxParseTree.NamespaceDeclaration
+import generators.obj.syntaxParseTree.OutBlock
+import generators.obj.syntaxParseTree.ResultLeaf
import java.io.File
class KotlinWriter(codeStyleRepo: CodeStyleRepo, outputFolder: String)
diff --git a/cgen-lib/src/main/kotlin/generators/kotlin/KtConstantsGenerator.kt b/cgen-lib/src/main/kotlin/generators/kotlin/KtConstantsGenerator.kt
index 64cf63c4..3ba2fc54 100644
--- a/cgen-lib/src/main/kotlin/generators/kotlin/KtConstantsGenerator.kt
+++ b/cgen-lib/src/main/kotlin/generators/kotlin/KtConstantsGenerator.kt
@@ -3,16 +3,16 @@ package generators.kotlin
import ce.domain.usecase.add.AddRegionDefaultsUseCase
import generators.obj.AutoincrementField
import generators.obj.TransformBlockUseCase
-import generators.obj.input.ConstantDesc
-import generators.obj.input.ConstantsBlock
-import generators.obj.input.addDatatype
-import generators.obj.input.addKeyword
-import generators.obj.input.addSub
-import generators.obj.input.addVarName
-import generators.obj.out.FieldNode
-import generators.obj.out.FileData
-import generators.obj.out.OutBlock
-import generators.obj.out.RegionImpl
+import generators.obj.abstractSyntaxTree.ConstantDesc
+import generators.obj.abstractSyntaxTree.ConstantsBlock
+import generators.obj.abstractSyntaxTree.addDatatype
+import generators.obj.abstractSyntaxTree.addKeyword
+import generators.obj.abstractSyntaxTree.addSub
+import generators.obj.abstractSyntaxTree.addVarName
+import generators.obj.syntaxParseTree.FieldNode
+import generators.obj.syntaxParseTree.FileData
+import generators.obj.syntaxParseTree.OutBlock
+import generators.obj.syntaxParseTree.RegionImpl
class KtConstantsGenerator(
private val addBlockDefaultsUseCase: AddRegionDefaultsUseCase,
diff --git a/cgen-lib/src/main/kotlin/generators/kotlin/KtDataClassGenerator.kt b/cgen-lib/src/main/kotlin/generators/kotlin/KtDataClassGenerator.kt
index c040638c..15c83052 100644
--- a/cgen-lib/src/main/kotlin/generators/kotlin/KtDataClassGenerator.kt
+++ b/cgen-lib/src/main/kotlin/generators/kotlin/KtDataClassGenerator.kt
@@ -2,18 +2,18 @@ package generators.kotlin
import ce.domain.usecase.add.AddRegionDefaultsUseCase
import generators.obj.TransformBlockUseCase
-import generators.obj.input.DataClass
-import generators.obj.input.DataField
-import generators.obj.input.addDatatype
-import generators.obj.input.addKeyword
-import generators.obj.input.addOutBlock
-import generators.obj.input.addOutBlockArguments
-import generators.obj.input.addSub
-import generators.obj.input.addVarName
-import generators.obj.out.ArgumentNode
-import generators.obj.out.FieldNode
-import generators.obj.out.FileData
-import generators.obj.out.RegionImpl
+import generators.obj.abstractSyntaxTree.DataClass
+import generators.obj.abstractSyntaxTree.DataField
+import generators.obj.abstractSyntaxTree.addDatatype
+import generators.obj.abstractSyntaxTree.addKeyword
+import generators.obj.abstractSyntaxTree.addOutBlock
+import generators.obj.abstractSyntaxTree.addOutBlockArguments
+import generators.obj.abstractSyntaxTree.addSub
+import generators.obj.abstractSyntaxTree.addVarName
+import generators.obj.syntaxParseTree.ArgumentNode
+import generators.obj.syntaxParseTree.FieldNode
+import generators.obj.syntaxParseTree.FileData
+import generators.obj.syntaxParseTree.RegionImpl
class KtDataClassGenerator(
private val addBlockDefaultsUseCase: AddRegionDefaultsUseCase,
diff --git a/cgen-lib/src/main/kotlin/generators/kotlin/PrepareRightValueUseCase.kt b/cgen-lib/src/main/kotlin/generators/kotlin/PrepareRightValueUseCase.kt
index 113e38b7..c690fd01 100644
--- a/cgen-lib/src/main/kotlin/generators/kotlin/PrepareRightValueUseCase.kt
+++ b/cgen-lib/src/main/kotlin/generators/kotlin/PrepareRightValueUseCase.kt
@@ -3,12 +3,16 @@ package generators.kotlin
import ce.defs.DataType
import ce.defs.DataValue
import ce.defs.RValue
-import generators.obj.input.DataField
-import generators.obj.input.NewInstance
-import generators.obj.input.addSub
-import generators.obj.out.Arguments
-import generators.obj.out.Constructor
-import generators.obj.out.FileData
+import generators.obj.abstractSyntaxTree.DataField
+import generators.obj.abstractSyntaxTree.Input
+import generators.obj.abstractSyntaxTree.NewInstance
+import generators.obj.abstractSyntaxTree.addSub
+import generators.obj.syntaxParseTree.ArgumentNode
+import generators.obj.syntaxParseTree.Arguments
+import generators.obj.syntaxParseTree.Constructor
+import generators.obj.syntaxParseTree.FileData
+import generators.obj.syntaxParseTree.Keyword
+import generators.obj.syntaxParseTree.VariableName
class PrepareRightValueUseCase(
private val getTypeNameUseCase: GetTypeNameUseCase
@@ -24,7 +28,8 @@ class PrepareRightValueUseCase(
when (type) {
DataType.VOID -> RValue(name = "void")
DataType.int8, DataType.int16, DataType.int32, DataType.int64,
- DataType.uint8, DataType.uint16, DataType.uint32, DataType.uint64 -> RValue(name = value.simple.toString())
+ DataType.uint8, DataType.uint16, DataType.uint32, DataType.uint64 ->
+ RValue(name = value.simple.toString())
DataType.float32 -> RValue(name = value.simple.toString() + "f")
DataType.float64 -> RValue(name = value.simple.toString())
@@ -66,7 +71,26 @@ class PrepareRightValueUseCase(
type = item.getType()
)
).apply {
- addSub(Arguments())
+ val arguments = Arguments()
+ addSub(arguments)
+ item.subs
+ .filter { it is Input }
+ .forEach {
+ val input = it as Input
+ val argumentNode = ArgumentNode()
+ arguments.addSub(
+ argumentNode
+ )
+ argumentNode.addSub(VariableName(it.name))
+ argumentNode.addSub(Keyword("="))
+ argumentNode.addSub(
+ toRightValue(
+ type = input.getType(),
+ value = input.getValue(),
+ fileData = fileData
+ )
+ )
+ }
}
)
return result
diff --git a/cgen-lib/src/main/kotlin/generators/obj/AutoincrementField.kt b/cgen-lib/src/main/kotlin/generators/obj/AutoincrementField.kt
index a4316543..18112036 100644
--- a/cgen-lib/src/main/kotlin/generators/obj/AutoincrementField.kt
+++ b/cgen-lib/src/main/kotlin/generators/obj/AutoincrementField.kt
@@ -2,7 +2,7 @@ package generators.obj
import ce.defs.DataValue
import ce.defs.DataValueImpl
-import generators.obj.input.Field
+import generators.obj.abstractSyntaxTree.Field
class AutoincrementField {
var previous: DataValue? = null
diff --git a/cgen-lib/src/main/kotlin/generators/obj/CLikeFileGenerator.kt b/cgen-lib/src/main/kotlin/generators/obj/CLikeFileGenerator.kt
index 9e116fc8..af632ec3 100644
--- a/cgen-lib/src/main/kotlin/generators/obj/CLikeFileGenerator.kt
+++ b/cgen-lib/src/main/kotlin/generators/obj/CLikeFileGenerator.kt
@@ -1,7 +1,6 @@
package generators.obj
-import ce.settings.CodeStyle
-import generators.obj.input.Block
+import generators.obj.abstractSyntaxTree.Block
import java.io.File
abstract class CLikeFileGenerator() : FileGenerator() {
diff --git a/cgen-lib/src/main/kotlin/generators/obj/FileGenerator.kt b/cgen-lib/src/main/kotlin/generators/obj/FileGenerator.kt
index 6c217deb..4221ec67 100644
--- a/cgen-lib/src/main/kotlin/generators/obj/FileGenerator.kt
+++ b/cgen-lib/src/main/kotlin/generators/obj/FileGenerator.kt
@@ -1,8 +1,8 @@
package generators.obj
-import generators.obj.input.Block
-import generators.obj.out.FileData
-import generators.obj.out.OutputTree
+import generators.obj.abstractSyntaxTree.Block
+import generators.obj.syntaxParseTree.FileData
+import generators.obj.syntaxParseTree.OutputTree
abstract class FileGenerator() {
abstract fun createFile(project: OutputTree, outputFile: String, block: Block): List
diff --git a/cgen-lib/src/main/kotlin/generators/obj/MetaGenerator.kt b/cgen-lib/src/main/kotlin/generators/obj/MetaGenerator.kt
index e3a1881a..1970f39f 100644
--- a/cgen-lib/src/main/kotlin/generators/obj/MetaGenerator.kt
+++ b/cgen-lib/src/main/kotlin/generators/obj/MetaGenerator.kt
@@ -1,10 +1,10 @@
package generators.obj
import ce.defs.Target
-import generators.obj.input.Block
-import generators.obj.input.Node
-import generators.obj.out.FileData
-import generators.obj.out.OutputTree
+import generators.obj.abstractSyntaxTree.Block
+import generators.obj.abstractSyntaxTree.Node
+import generators.obj.syntaxParseTree.FileData
+import generators.obj.syntaxParseTree.OutputTree
open class MetaGenerator(
private val target: Target,
diff --git a/cgen-lib/src/main/kotlin/generators/obj/PrepareFilesListUseCase.kt b/cgen-lib/src/main/kotlin/generators/obj/PrepareFilesListUseCase.kt
index fa69e307..ec4c5051 100644
--- a/cgen-lib/src/main/kotlin/generators/obj/PrepareFilesListUseCase.kt
+++ b/cgen-lib/src/main/kotlin/generators/obj/PrepareFilesListUseCase.kt
@@ -1,10 +1,10 @@
package generators.obj
import ce.settings.Project
-import generators.obj.input.*
-import generators.obj.out.CommentsBlock
-import generators.obj.out.FileData
-import generators.obj.out.OutputTree
+import generators.obj.abstractSyntaxTree.*
+import generators.obj.syntaxParseTree.CommentsBlock
+import generators.obj.syntaxParseTree.FileData
+import generators.obj.syntaxParseTree.OutputTree
import java.io.File
import java.nio.file.Paths
import javax.inject.Inject
diff --git a/cgen-lib/src/main/kotlin/generators/obj/TransformBlockUseCase.kt b/cgen-lib/src/main/kotlin/generators/obj/TransformBlockUseCase.kt
index a1bbf547..651fc76a 100644
--- a/cgen-lib/src/main/kotlin/generators/obj/TransformBlockUseCase.kt
+++ b/cgen-lib/src/main/kotlin/generators/obj/TransformBlockUseCase.kt
@@ -1,7 +1,7 @@
package generators.obj
-import generators.obj.input.Block
-import generators.obj.out.FileData
+import generators.obj.abstractSyntaxTree.Block
+import generators.obj.syntaxParseTree.FileData
interface TransformBlockUseCase {
operator fun invoke(blockFiles: List, desc: I)
diff --git a/cgen-lib/src/main/kotlin/generators/obj/Writter.kt b/cgen-lib/src/main/kotlin/generators/obj/Writter.kt
index 935d7b66..a7fc6a1f 100644
--- a/cgen-lib/src/main/kotlin/generators/obj/Writter.kt
+++ b/cgen-lib/src/main/kotlin/generators/obj/Writter.kt
@@ -4,22 +4,22 @@ import ce.defs.DataValue
import ce.defs.RValue
import ce.formatters.CodeStyleRepo
import ce.io.CodeWriter
-import generators.obj.input.DataField
-import generators.obj.input.Leaf
-import generators.obj.input.Node
-import generators.obj.out.AstTypeLeaf
-import generators.obj.out.CodeStyleOutputTree
-import generators.obj.out.CommentLeaf
-import generators.obj.out.Constructor
-import generators.obj.out.EnumNode
-import generators.obj.out.FileData
-import generators.obj.out.Indent
-import generators.obj.out.Keyword
-import generators.obj.out.NlSeparator
-import generators.obj.out.ResultLeaf
-import generators.obj.out.Separator
-import generators.obj.out.Space
-import generators.obj.out.VariableName
+import generators.obj.abstractSyntaxTree.DataField
+import generators.obj.abstractSyntaxTree.Leaf
+import generators.obj.abstractSyntaxTree.Node
+import generators.obj.syntaxParseTree.AstTypeLeaf
+import generators.obj.syntaxParseTree.CodeStyleOutputTree
+import generators.obj.syntaxParseTree.CommentLeaf
+import generators.obj.syntaxParseTree.Constructor
+import generators.obj.syntaxParseTree.EnumNode
+import generators.obj.syntaxParseTree.FileData
+import generators.obj.syntaxParseTree.Indent
+import generators.obj.syntaxParseTree.Keyword
+import generators.obj.syntaxParseTree.NlSeparator
+import generators.obj.syntaxParseTree.ResultLeaf
+import generators.obj.syntaxParseTree.Separator
+import generators.obj.syntaxParseTree.Space
+import generators.obj.syntaxParseTree.VariableName
import java.io.File
abstract class Writter(val codeStyleRepo: CodeStyleRepo,
diff --git a/cgen-lib/src/main/kotlin/generators/obj/input/Block.kt b/cgen-lib/src/main/kotlin/generators/obj/abstractSyntaxTree/Block.kt
similarity index 72%
rename from cgen-lib/src/main/kotlin/generators/obj/input/Block.kt
rename to cgen-lib/src/main/kotlin/generators/obj/abstractSyntaxTree/Block.kt
index 329d3a03..fad55424 100644
--- a/cgen-lib/src/main/kotlin/generators/obj/input/Block.kt
+++ b/cgen-lib/src/main/kotlin/generators/obj/abstractSyntaxTree/Block.kt
@@ -1,7 +1,7 @@
-package generators.obj.input
+package generators.obj.abstractSyntaxTree
-import generators.obj.out.CommentLeaf
-import generators.obj.out.CommentsBlock
+import generators.obj.syntaxParseTree.CommentLeaf
+import generators.obj.syntaxParseTree.CommentsBlock
fun T.addBlockCommentExt(value : String) {
findOrCreateSub(CommentsBlock::class.java).apply {
diff --git a/cgen-lib/src/main/kotlin/generators/obj/input/ConstantsBlock.kt b/cgen-lib/src/main/kotlin/generators/obj/abstractSyntaxTree/ConstantsBlock.kt
similarity index 97%
rename from cgen-lib/src/main/kotlin/generators/obj/input/ConstantsBlock.kt
rename to cgen-lib/src/main/kotlin/generators/obj/abstractSyntaxTree/ConstantsBlock.kt
index ff304c7b..4a82a0e4 100644
--- a/cgen-lib/src/main/kotlin/generators/obj/input/ConstantsBlock.kt
+++ b/cgen-lib/src/main/kotlin/generators/obj/abstractSyntaxTree/ConstantsBlock.kt
@@ -1,4 +1,4 @@
-package generators.obj.input
+package generators.obj.abstractSyntaxTree
import ce.defs.DataType
import ce.defs.DataValue
diff --git a/cgen-lib/src/main/kotlin/generators/obj/input/ConstantsEnum.kt b/cgen-lib/src/main/kotlin/generators/obj/abstractSyntaxTree/ConstantsEnum.kt
similarity index 96%
rename from cgen-lib/src/main/kotlin/generators/obj/input/ConstantsEnum.kt
rename to cgen-lib/src/main/kotlin/generators/obj/abstractSyntaxTree/ConstantsEnum.kt
index 626b01ff..39f468e4 100644
--- a/cgen-lib/src/main/kotlin/generators/obj/input/ConstantsEnum.kt
+++ b/cgen-lib/src/main/kotlin/generators/obj/abstractSyntaxTree/ConstantsEnum.kt
@@ -1,4 +1,4 @@
-package generators.obj.input
+package generators.obj.abstractSyntaxTree
import ce.defs.DataType
import ce.defs.NotDefined
diff --git a/cgen-lib/src/main/kotlin/generators/obj/input/DataClass.kt b/cgen-lib/src/main/kotlin/generators/obj/abstractSyntaxTree/DataClass.kt
similarity index 75%
rename from cgen-lib/src/main/kotlin/generators/obj/input/DataClass.kt
rename to cgen-lib/src/main/kotlin/generators/obj/abstractSyntaxTree/DataClass.kt
index 27c0a1b9..79809cf7 100644
--- a/cgen-lib/src/main/kotlin/generators/obj/input/DataClass.kt
+++ b/cgen-lib/src/main/kotlin/generators/obj/abstractSyntaxTree/DataClass.kt
@@ -1,4 +1,4 @@
-package generators.obj.input
+package generators.obj.abstractSyntaxTree
import ce.defs.DataType
import ce.defs.NotDefined
@@ -16,7 +16,14 @@ data class DataClass(
fun instance(map: Map): NewInstance {
return NewInstance("newInstance").setType(type = DataType.custom(this@DataClass)).apply {
map.forEach { t, u ->
- argument(t.toString(), DataType.Unknown, u)
+ val dataField = this@DataClass.subs
+ .filter { it is DataField }
+ .find { it.name == t.toString() } ?: throw Exception("Field ${t} not found in class ${this@DataClass.name}")
+ val dataType = (dataField as DataField).getType()
+ argument(
+ name = t.toString(),
+ type = dataType,
+ value = u)
}
}
}
diff --git a/cgen-lib/src/main/kotlin/generators/obj/input/DataField.kt b/cgen-lib/src/main/kotlin/generators/obj/abstractSyntaxTree/DataField.kt
similarity index 97%
rename from cgen-lib/src/main/kotlin/generators/obj/input/DataField.kt
rename to cgen-lib/src/main/kotlin/generators/obj/abstractSyntaxTree/DataField.kt
index 28e7812a..81405aca 100644
--- a/cgen-lib/src/main/kotlin/generators/obj/input/DataField.kt
+++ b/cgen-lib/src/main/kotlin/generators/obj/abstractSyntaxTree/DataField.kt
@@ -1,4 +1,4 @@
-package generators.obj.input
+package generators.obj.abstractSyntaxTree
import ce.defs.DataType
import ce.defs.DataValue
@@ -54,8 +54,6 @@ data class TypeLeaf(
override fun setParent2(parent: Node?) { this.parent = parent }
}
-class ModifiersList: Container()
-
open class DataField(
name: String,
val static: Boolean = false,
diff --git a/cgen-lib/src/main/kotlin/generators/obj/input/InTree.kt b/cgen-lib/src/main/kotlin/generators/obj/abstractSyntaxTree/InTree.kt
similarity index 95%
rename from cgen-lib/src/main/kotlin/generators/obj/input/InTree.kt
rename to cgen-lib/src/main/kotlin/generators/obj/abstractSyntaxTree/InTree.kt
index 113140c5..0ff1b0fd 100644
--- a/cgen-lib/src/main/kotlin/generators/obj/input/InTree.kt
+++ b/cgen-lib/src/main/kotlin/generators/obj/abstractSyntaxTree/InTree.kt
@@ -1,4 +1,4 @@
-package generators.obj.input
+package generators.obj.abstractSyntaxTree
object TreeRoot : Node {
diff --git a/cgen-lib/src/main/kotlin/generators/obj/input/Namespace.kt b/cgen-lib/src/main/kotlin/generators/obj/abstractSyntaxTree/Namespace.kt
similarity index 98%
rename from cgen-lib/src/main/kotlin/generators/obj/input/Namespace.kt
rename to cgen-lib/src/main/kotlin/generators/obj/abstractSyntaxTree/Namespace.kt
index b0c92b19..4c5658fe 100644
--- a/cgen-lib/src/main/kotlin/generators/obj/input/Namespace.kt
+++ b/cgen-lib/src/main/kotlin/generators/obj/abstractSyntaxTree/Namespace.kt
@@ -1,4 +1,4 @@
-package generators.obj.input
+package generators.obj.abstractSyntaxTree
import ce.defs.customBaseFolderPath
import ce.defs.outputFile
diff --git a/cgen-lib/src/main/kotlin/generators/obj/input/NewInstance.kt b/cgen-lib/src/main/kotlin/generators/obj/abstractSyntaxTree/NewInstance.kt
similarity index 92%
rename from cgen-lib/src/main/kotlin/generators/obj/input/NewInstance.kt
rename to cgen-lib/src/main/kotlin/generators/obj/abstractSyntaxTree/NewInstance.kt
index 92add183..57643c00 100644
--- a/cgen-lib/src/main/kotlin/generators/obj/input/NewInstance.kt
+++ b/cgen-lib/src/main/kotlin/generators/obj/abstractSyntaxTree/NewInstance.kt
@@ -1,4 +1,4 @@
-package generators.obj.input
+package generators.obj.abstractSyntaxTree
import ce.defs.DataType
@@ -17,7 +17,7 @@ data class NewInstance(
}
fun argument(name: String, type: DataType, value: Any?): NewInstance {
- addSub(DataField(name).apply {
+ addSub(Input(name).apply {
setType(type)
setValue(value)
})
diff --git a/cgen-lib/src/main/kotlin/generators/obj/input/Node.kt b/cgen-lib/src/main/kotlin/generators/obj/abstractSyntaxTree/Node.kt
similarity index 92%
rename from cgen-lib/src/main/kotlin/generators/obj/input/Node.kt
rename to cgen-lib/src/main/kotlin/generators/obj/abstractSyntaxTree/Node.kt
index 13937ced..0ad08d6d 100644
--- a/cgen-lib/src/main/kotlin/generators/obj/input/Node.kt
+++ b/cgen-lib/src/main/kotlin/generators/obj/abstractSyntaxTree/Node.kt
@@ -1,22 +1,21 @@
-package generators.obj.input
+package generators.obj.abstractSyntaxTree
import ce.defs.DataType
import ce.defs.DataValueImpl
import ce.defs.NotDefined
import ce.defs.RValue
-import generators.obj.out.AstTypeLeaf
-import generators.obj.out.CommentLeaf
-import generators.obj.out.EnumNode
-import generators.obj.out.FileData
-import generators.obj.out.Keyword
-import generators.obj.out.NlSeparator
-import generators.obj.out.OutBlock
-import generators.obj.out.OutBlockArguments
-import generators.obj.out.Separator
-import generators.obj.out.VariableName
+import generators.obj.syntaxParseTree.AstTypeLeaf
+import generators.obj.syntaxParseTree.CommentLeaf
+import generators.obj.syntaxParseTree.EnumNode
+import generators.obj.syntaxParseTree.FileData
+import generators.obj.syntaxParseTree.Keyword
+import generators.obj.syntaxParseTree.NlSeparator
+import generators.obj.syntaxParseTree.OutBlock
+import generators.obj.syntaxParseTree.OutBlockArguments
+import generators.obj.syntaxParseTree.Separator
+import generators.obj.syntaxParseTree.VariableName
import kotlin.reflect.KClass
-
fun T.findOrNull(clazz: Class): R? {
subs.forEach {
if (it.javaClass == clazz) {
@@ -26,7 +25,6 @@ fun T.findOrNull(clazz: Class): R? {
return null
}
-
fun T.findOrCreateSub(clazz: Class): R {
subs.forEach {
if (it.javaClass == clazz) {
diff --git a/cgen-lib/src/main/kotlin/generators/obj/out/FileData.kt b/cgen-lib/src/main/kotlin/generators/obj/syntaxParseTree/FileData.kt
similarity index 75%
rename from cgen-lib/src/main/kotlin/generators/obj/out/FileData.kt
rename to cgen-lib/src/main/kotlin/generators/obj/syntaxParseTree/FileData.kt
index ce063a0e..29bbe4f0 100644
--- a/cgen-lib/src/main/kotlin/generators/obj/out/FileData.kt
+++ b/cgen-lib/src/main/kotlin/generators/obj/syntaxParseTree/FileData.kt
@@ -1,8 +1,8 @@
-package generators.obj.out
+package generators.obj.syntaxParseTree
-import generators.obj.input.Leaf
-import generators.obj.input.Node
-import generators.obj.input.copyLeafExt
+import generators.obj.abstractSyntaxTree.Leaf
+import generators.obj.abstractSyntaxTree.Node
+import generators.obj.abstractSyntaxTree.copyLeafExt
interface FileData: Node {
var isDirty: Boolean
diff --git a/cgen-lib/src/main/kotlin/generators/obj/out/OutLeaf.kt b/cgen-lib/src/main/kotlin/generators/obj/syntaxParseTree/OutLeaf.kt
similarity index 72%
rename from cgen-lib/src/main/kotlin/generators/obj/out/OutLeaf.kt
rename to cgen-lib/src/main/kotlin/generators/obj/syntaxParseTree/OutLeaf.kt
index 13f7cd27..c2a1f79a 100644
--- a/cgen-lib/src/main/kotlin/generators/obj/out/OutLeaf.kt
+++ b/cgen-lib/src/main/kotlin/generators/obj/syntaxParseTree/OutLeaf.kt
@@ -1,8 +1,8 @@
-package generators.obj.out
+package generators.obj.syntaxParseTree
-import generators.obj.input.Leaf
-import generators.obj.input.Node
-import generators.obj.input.copyLeafExt
+import generators.obj.abstractSyntaxTree.Leaf
+import generators.obj.abstractSyntaxTree.Node
+import generators.obj.abstractSyntaxTree.copyLeafExt
// package $name
data class NamespaceBlock(
@@ -14,7 +14,6 @@ data class NamespaceBlock(
var parent: Node? = null
override fun getParent2(): Node? = parent
override fun setParent2(parent: Node?) { this.parent = parent }
-
override fun toString() = name
}
@@ -27,7 +26,6 @@ data class ImportLeaf(
var parent: Node? = null
override fun getParent2(): Node? = parent
override fun setParent2(parent: Node?) { this.parent = parent }
-
}
// //$name
@@ -51,42 +49,6 @@ data class ResultLeaf(
override fun setParent2(parent: Node?) { this.parent = parent }
}
-data class FieldNode(
- override val name: String = "",
- override val subs: MutableList = mutableListOf(),
-) : Node {
- override fun toString() = name
- override fun copyLeaf(parent: Node?, copySubs: Boolean): FieldNode =
- this.copyLeafExt(parent, { this.copy(subs = mutableListOf()) })
- var parent: Node? = null
- override fun getParent2(): Node? = parent
- override fun setParent2(parent: Node?) { this.parent = parent }
-}
-
-data class EnumNode(
- override val name: String,
- override val subs: MutableList = mutableListOf(),
-) : Node {
- override fun toString() = name
- override fun copyLeaf(parent: Node?, copySubs: Boolean): EnumNode =
- this.copyLeafExt(parent, { this.copy(subs = mutableListOf()) })
- var parent: Node? = null
- override fun getParent2(): Node? = parent
- override fun setParent2(parent: Node?) { this.parent = parent }
-}
-
-data class ArgumentNode(
- override val name: String = "",
- override val subs: MutableList = mutableListOf(),
-) : Node {
- override fun toString() = name
- override fun copyLeaf(parent: Node?, copySubs: Boolean): Node =
- this.copyLeafExt(parent, { this.copy(subs = mutableListOf()) })
- var parent: Node? = null
- override fun getParent2(): Node? = parent
- override fun setParent2(parent: Node?) { this.parent = parent }
-}
-
data class Keyword(
override val name: String,
) : Leaf {
diff --git a/cgen-lib/src/main/kotlin/generators/obj/out/OutNode.kt b/cgen-lib/src/main/kotlin/generators/obj/syntaxParseTree/OutNode.kt
similarity index 73%
rename from cgen-lib/src/main/kotlin/generators/obj/out/OutNode.kt
rename to cgen-lib/src/main/kotlin/generators/obj/syntaxParseTree/OutNode.kt
index 6ca60282..477be3b3 100644
--- a/cgen-lib/src/main/kotlin/generators/obj/out/OutNode.kt
+++ b/cgen-lib/src/main/kotlin/generators/obj/syntaxParseTree/OutNode.kt
@@ -1,9 +1,10 @@
-package generators.obj.out
+package generators.obj.syntaxParseTree
-import generators.obj.input.Leaf
-import generators.obj.input.Node
-import generators.obj.input.addSub
-import generators.obj.input.copyNodeExt
+import generators.obj.abstractSyntaxTree.Leaf
+import generators.obj.abstractSyntaxTree.Node
+import generators.obj.abstractSyntaxTree.addSub
+import generators.obj.abstractSyntaxTree.copyLeafExt
+import generators.obj.abstractSyntaxTree.copyNodeExt
abstract class Region2Impl(
override val name: String = "",
@@ -139,4 +140,40 @@ data class Arguments(
var parent: Node? = null
override fun getParent2(): Node? = parent
override fun setParent2(parent: Node?) { this.parent = parent }
+}
+
+data class FieldNode(
+ override val name: String = "",
+ override val subs: MutableList = mutableListOf(),
+) : Node {
+ override fun toString() = name
+ override fun copyLeaf(parent: Node?, copySubs: Boolean): FieldNode =
+ this.copyLeafExt(parent, { this.copy(subs = mutableListOf()) })
+ var parent: Node? = null
+ override fun getParent2(): Node? = parent
+ override fun setParent2(parent: Node?) { this.parent = parent }
+}
+
+data class EnumNode(
+ override val name: String,
+ override val subs: MutableList = mutableListOf(),
+) : Node {
+ override fun toString() = name
+ override fun copyLeaf(parent: Node?, copySubs: Boolean): EnumNode =
+ this.copyLeafExt(parent, { this.copy(subs = mutableListOf()) })
+ var parent: Node? = null
+ override fun getParent2(): Node? = parent
+ override fun setParent2(parent: Node?) { this.parent = parent }
+}
+
+data class ArgumentNode(
+ override val name: String = "",
+ override val subs: MutableList = mutableListOf(),
+) : Node {
+ override fun toString() = name
+ override fun copyLeaf(parent: Node?, copySubs: Boolean): Node =
+ this.copyLeafExt(parent, { this.copy(subs = mutableListOf()) })
+ var parent: Node? = null
+ override fun getParent2(): Node? = parent
+ override fun setParent2(parent: Node?) { this.parent = parent }
}
\ No newline at end of file
diff --git a/cgen-lib/src/main/kotlin/generators/obj/out/OutputTree.kt b/cgen-lib/src/main/kotlin/generators/obj/syntaxParseTree/OutputTree.kt
similarity index 88%
rename from cgen-lib/src/main/kotlin/generators/obj/out/OutputTree.kt
rename to cgen-lib/src/main/kotlin/generators/obj/syntaxParseTree/OutputTree.kt
index b84dc7cb..c5504be8 100644
--- a/cgen-lib/src/main/kotlin/generators/obj/out/OutputTree.kt
+++ b/cgen-lib/src/main/kotlin/generators/obj/syntaxParseTree/OutputTree.kt
@@ -1,9 +1,9 @@
-package generators.obj.out
+package generators.obj.syntaxParseTree
import ce.defs.Target
-import generators.obj.input.Leaf
-import generators.obj.input.Node
-import generators.obj.input.copyLeafExt
+import generators.obj.abstractSyntaxTree.Leaf
+import generators.obj.abstractSyntaxTree.Node
+import generators.obj.abstractSyntaxTree.copyLeafExt
data class AstTree(
val target: Target,
diff --git a/cgen-lib/src/main/kotlin/generators/rust/RsConstantsBlockGenerator.kt b/cgen-lib/src/main/kotlin/generators/rust/RsConstantsBlockGenerator.kt
index 3c2d6e94..98167f1a 100644
--- a/cgen-lib/src/main/kotlin/generators/rust/RsConstantsBlockGenerator.kt
+++ b/cgen-lib/src/main/kotlin/generators/rust/RsConstantsBlockGenerator.kt
@@ -3,10 +3,10 @@ package generators.rust
import ce.settings.Project
import generators.obj.FileGenerator
import generators.obj.TransformBlockUseCase
-import generators.obj.input.DataField
-import generators.obj.input.ConstantsBlock
-import generators.obj.input.addSub
-import generators.obj.out.FileData
+import generators.obj.abstractSyntaxTree.DataField
+import generators.obj.abstractSyntaxTree.ConstantsBlock
+import generators.obj.abstractSyntaxTree.addSub
+import generators.obj.syntaxParseTree.FileData
class RsConstantsBlockGenerator(
fileGenerator : FileGenerator,
diff --git a/cgen-lib/src/main/kotlin/generators/rust/RsDataClassGenerator.kt b/cgen-lib/src/main/kotlin/generators/rust/RsDataClassGenerator.kt
index b994f8ca..44329bcb 100644
--- a/cgen-lib/src/main/kotlin/generators/rust/RsDataClassGenerator.kt
+++ b/cgen-lib/src/main/kotlin/generators/rust/RsDataClassGenerator.kt
@@ -3,10 +3,10 @@ package generators.rust
import ce.settings.Project
import generators.obj.FileGenerator
import generators.obj.TransformBlockUseCase
-import generators.obj.input.DataField
-import generators.obj.input.DataClass
-import generators.obj.input.addSub
-import generators.obj.out.FileData
+import generators.obj.abstractSyntaxTree.DataField
+import generators.obj.abstractSyntaxTree.DataClass
+import generators.obj.abstractSyntaxTree.addSub
+import generators.obj.syntaxParseTree.FileData
class RsDataClassGenerator(
fileGenerator : FileGenerator,
diff --git a/cgen-lib/src/main/kotlin/generators/rust/RustClassData.kt b/cgen-lib/src/main/kotlin/generators/rust/RustClassData.kt
index a46d5d48..58676fa8 100644
--- a/cgen-lib/src/main/kotlin/generators/rust/RustClassData.kt
+++ b/cgen-lib/src/main/kotlin/generators/rust/RustClassData.kt
@@ -1,13 +1,13 @@
package generators.rust
-import generators.obj.input.Leaf
-import generators.obj.input.Node
-import generators.obj.input.copyLeafExt
+import generators.obj.abstractSyntaxTree.Leaf
+import generators.obj.abstractSyntaxTree.Node
+import generators.obj.abstractSyntaxTree.copyLeafExt
data class RustClassData(
override val name: String,
override val subs: MutableList = mutableListOf()
-) : generators.obj.out.ClassData {
+) : generators.obj.syntaxParseTree.ClassData {
override fun copyLeaf(parent: Node?, copySubs: Boolean): RustClassData =
this.copyLeafExt(parent, { this.copy(subs = mutableListOf()) })
var parent: Node? = null
diff --git a/cgen-lib/src/main/kotlin/generators/rust/RustEnumGenerator.kt b/cgen-lib/src/main/kotlin/generators/rust/RustEnumGenerator.kt
index 5c16afa6..a12097db 100644
--- a/cgen-lib/src/main/kotlin/generators/rust/RustEnumGenerator.kt
+++ b/cgen-lib/src/main/kotlin/generators/rust/RustEnumGenerator.kt
@@ -4,10 +4,10 @@ import ce.defs.DataType
import ce.defs.DataValueImpl
import ce.settings.Project
import generators.obj.TransformBlockUseCase
-import generators.obj.input.ConstantsEnum
-import generators.obj.input.DataField
-import generators.obj.input.addSub
-import generators.obj.out.FileData
+import generators.obj.abstractSyntaxTree.ConstantsEnum
+import generators.obj.abstractSyntaxTree.DataField
+import generators.obj.abstractSyntaxTree.addSub
+import generators.obj.syntaxParseTree.FileData
class RustEnumGenerator(
fileGenerator: RustFileGenerator,
diff --git a/cgen-lib/src/main/kotlin/generators/rust/RustFileGenerator.kt b/cgen-lib/src/main/kotlin/generators/rust/RustFileGenerator.kt
index 83fbc72f..1d932ccb 100644
--- a/cgen-lib/src/main/kotlin/generators/rust/RustFileGenerator.kt
+++ b/cgen-lib/src/main/kotlin/generators/rust/RustFileGenerator.kt
@@ -1,11 +1,11 @@
package generators.rust
import generators.obj.CLikeFileGenerator
-import generators.obj.input.Block
-import generators.obj.input.getParentPath
-import generators.obj.out.FileData
-import generators.obj.out.FileDataImpl
-import generators.obj.out.OutputTree
+import generators.obj.abstractSyntaxTree.Block
+import generators.obj.abstractSyntaxTree.getParentPath
+import generators.obj.syntaxParseTree.FileData
+import generators.obj.syntaxParseTree.FileDataImpl
+import generators.obj.syntaxParseTree.OutputTree
import java.io.File
class RustFileGenerator() : CLikeFileGenerator() {
diff --git a/cgen-lib/src/main/kotlin/generators/rust/RustWritter.kt b/cgen-lib/src/main/kotlin/generators/rust/RustWritter.kt
index 3c17d378..80be4d7d 100644
--- a/cgen-lib/src/main/kotlin/generators/rust/RustWritter.kt
+++ b/cgen-lib/src/main/kotlin/generators/rust/RustWritter.kt
@@ -4,7 +4,7 @@ import ce.formatters.CodeStyleRepo
import ce.io.FileCodeWritter
import ce.repository.ReportsRepo
import generators.obj.Writter
-import generators.obj.out.FileData
+import generators.obj.syntaxParseTree.FileData
import java.io.File
class RustWritter(
diff --git a/cgen-lib/src/main/kotlin/generators/rust/Types.kt b/cgen-lib/src/main/kotlin/generators/rust/Types.kt
index 5ffecfc8..67923b35 100644
--- a/cgen-lib/src/main/kotlin/generators/rust/Types.kt
+++ b/cgen-lib/src/main/kotlin/generators/rust/Types.kt
@@ -1,8 +1,7 @@
package generators.rust
import ce.defs.DataType
-import generators.obj.out.FileData
-import generators.rust.RustClassData
+import generators.obj.syntaxParseTree.FileData
object Types {
fun typeTo(file: FileData,
diff --git a/cgen-lib/src/main/kotlin/generators/swift/SwiftClassData.kt b/cgen-lib/src/main/kotlin/generators/swift/SwiftClassData.kt
index c44fb762..96f00c45 100644
--- a/cgen-lib/src/main/kotlin/generators/swift/SwiftClassData.kt
+++ b/cgen-lib/src/main/kotlin/generators/swift/SwiftClassData.kt
@@ -1,13 +1,13 @@
package generators.swift
-import generators.obj.input.Leaf
-import generators.obj.input.Node
-import generators.obj.input.copyLeafExt
+import generators.obj.abstractSyntaxTree.Leaf
+import generators.obj.abstractSyntaxTree.Node
+import generators.obj.abstractSyntaxTree.copyLeafExt
data class SwiftClassData(
override val name: String,
override val subs: MutableList = mutableListOf()
-) : generators.obj.out.ClassData {
+) : generators.obj.syntaxParseTree.ClassData {
override fun copyLeaf(parent: Node?, copySubs: Boolean): SwiftClassData =
this.copyLeafExt(parent, { this.copy(subs = mutableListOf()) })
var parent: Node? = null
diff --git a/cgen-lib/src/main/kotlin/generators/swift/SwiftConstantsBlockGenerator.kt b/cgen-lib/src/main/kotlin/generators/swift/SwiftConstantsBlockGenerator.kt
index 9c24b1cf..47bb619b 100644
--- a/cgen-lib/src/main/kotlin/generators/swift/SwiftConstantsBlockGenerator.kt
+++ b/cgen-lib/src/main/kotlin/generators/swift/SwiftConstantsBlockGenerator.kt
@@ -3,9 +3,9 @@ package generators.swift
import ce.settings.Project
import generators.obj.FileGenerator
import generators.obj.TransformBlockUseCase
-import generators.obj.input.ConstantsBlock
-import generators.obj.input.addSub
-import generators.obj.out.FileData
+import generators.obj.abstractSyntaxTree.ConstantsBlock
+import generators.obj.abstractSyntaxTree.addSub
+import generators.obj.syntaxParseTree.FileData
class SwiftConstantsBlockGenerator(
fileGenerator : FileGenerator,
diff --git a/cgen-lib/src/main/kotlin/generators/swift/SwiftDataClassGenerator.kt b/cgen-lib/src/main/kotlin/generators/swift/SwiftDataClassGenerator.kt
index 4c9a3f02..a661cdcc 100644
--- a/cgen-lib/src/main/kotlin/generators/swift/SwiftDataClassGenerator.kt
+++ b/cgen-lib/src/main/kotlin/generators/swift/SwiftDataClassGenerator.kt
@@ -3,9 +3,9 @@ package generators.swift
import ce.settings.Project
import generators.obj.FileGenerator
import generators.obj.TransformBlockUseCase
-import generators.obj.input.DataClass
-import generators.obj.input.addSub
-import generators.obj.out.FileData
+import generators.obj.abstractSyntaxTree.DataClass
+import generators.obj.abstractSyntaxTree.addSub
+import generators.obj.syntaxParseTree.FileData
class SwiftDataClassGenerator(
fileGenerator : FileGenerator,
diff --git a/cgen-lib/src/main/kotlin/generators/swift/SwiftEnumGenerator.kt b/cgen-lib/src/main/kotlin/generators/swift/SwiftEnumGenerator.kt
index e9105dab..831db890 100644
--- a/cgen-lib/src/main/kotlin/generators/swift/SwiftEnumGenerator.kt
+++ b/cgen-lib/src/main/kotlin/generators/swift/SwiftEnumGenerator.kt
@@ -4,9 +4,9 @@ import ce.defs.DataType
import ce.settings.Project
import generators.obj.FileGenerator
import generators.obj.TransformBlockUseCase
-import generators.obj.input.ConstantsEnum
-import generators.obj.input.addSub
-import generators.obj.out.FileData
+import generators.obj.abstractSyntaxTree.ConstantsEnum
+import generators.obj.abstractSyntaxTree.addSub
+import generators.obj.syntaxParseTree.FileData
class SwiftEnumGenerator(
fileGenerator: FileGenerator,
diff --git a/cgen-lib/src/main/kotlin/generators/swift/SwiftFileGenerator.kt b/cgen-lib/src/main/kotlin/generators/swift/SwiftFileGenerator.kt
index 40310c28..49f6fc68 100644
--- a/cgen-lib/src/main/kotlin/generators/swift/SwiftFileGenerator.kt
+++ b/cgen-lib/src/main/kotlin/generators/swift/SwiftFileGenerator.kt
@@ -1,10 +1,10 @@
package generators.swift
import generators.obj.CLikeFileGenerator
-import generators.obj.input.Block
-import generators.obj.out.FileData
-import generators.obj.out.FileDataImpl
-import generators.obj.out.OutputTree
+import generators.obj.abstractSyntaxTree.Block
+import generators.obj.syntaxParseTree.FileData
+import generators.obj.syntaxParseTree.FileDataImpl
+import generators.obj.syntaxParseTree.OutputTree
class SwiftFileGenerator() : CLikeFileGenerator() {
override fun createFile(project: OutputTree, outputFile: String, block: Block): List {
diff --git a/cgen-lib/src/main/kotlin/generators/swift/SwiftWritter.kt b/cgen-lib/src/main/kotlin/generators/swift/SwiftWritter.kt
index 71734b26..abada210 100644
--- a/cgen-lib/src/main/kotlin/generators/swift/SwiftWritter.kt
+++ b/cgen-lib/src/main/kotlin/generators/swift/SwiftWritter.kt
@@ -4,7 +4,7 @@ import ce.formatters.CodeStyleRepo
import ce.io.FileCodeWritter
import ce.repository.ReportsRepo
import generators.obj.Writter
-import generators.obj.out.FileData
+import generators.obj.syntaxParseTree.FileData
import java.io.File
class SwiftWritter(
diff --git a/cgen-lib/src/main/kotlin/generators/swift/Types.kt b/cgen-lib/src/main/kotlin/generators/swift/Types.kt
index 36840ca6..5f516b8a 100644
--- a/cgen-lib/src/main/kotlin/generators/swift/Types.kt
+++ b/cgen-lib/src/main/kotlin/generators/swift/Types.kt
@@ -1,7 +1,7 @@
package generators.swift
import ce.defs.DataType
-import generators.obj.out.FileData
+import generators.obj.syntaxParseTree.FileData
object Types {
fun typeTo(file: FileData,
diff --git a/cgen-lib/src/test/java/ce/formatters/cxx/CodeFormatterCxxUseCaseImplTest.kt b/cgen-lib/src/test/java/ce/formatters/cxx/CodeFormatterCxxUseCaseImplTest.kt
index e0a04b6a..dcf810c5 100644
--- a/cgen-lib/src/test/java/ce/formatters/cxx/CodeFormatterCxxUseCaseImplTest.kt
+++ b/cgen-lib/src/test/java/ce/formatters/cxx/CodeFormatterCxxUseCaseImplTest.kt
@@ -4,23 +4,23 @@ import ce.defs.DataType
import ce.formatters.CLikeCodestyleRepo
import ce.formatters.CodeFormatterCxxUseCaseImpl
import ce.settings.CodeStyle
-import generators.obj.input.DataField
-import generators.obj.input.addEnumLeaf
-import generators.obj.input.addKeyword
-import generators.obj.input.addOutBlock
-import generators.obj.input.addRValue
-import generators.obj.input.addSeparator
-import generators.obj.input.addSub
-import generators.obj.input.addVarName
-import generators.obj.out.Indent
-import generators.obj.out.Keyword
-import generators.obj.out.NamespaceBlock
-import generators.obj.out.NlSeparator
-import generators.obj.out.OutBlock
-import generators.obj.out.OutBlockArguments
-import generators.obj.out.Region
-import generators.obj.out.RegionImpl
-import generators.obj.out.Separator
+import generators.obj.abstractSyntaxTree.DataField
+import generators.obj.abstractSyntaxTree.addEnumLeaf
+import generators.obj.abstractSyntaxTree.addKeyword
+import generators.obj.abstractSyntaxTree.addOutBlock
+import generators.obj.abstractSyntaxTree.addRValue
+import generators.obj.abstractSyntaxTree.addSeparator
+import generators.obj.abstractSyntaxTree.addSub
+import generators.obj.abstractSyntaxTree.addVarName
+import generators.obj.syntaxParseTree.Indent
+import generators.obj.syntaxParseTree.Keyword
+import generators.obj.syntaxParseTree.NamespaceBlock
+import generators.obj.syntaxParseTree.NlSeparator
+import generators.obj.syntaxParseTree.OutBlock
+import generators.obj.syntaxParseTree.OutBlockArguments
+import generators.obj.syntaxParseTree.Region
+import generators.obj.syntaxParseTree.RegionImpl
+import generators.obj.syntaxParseTree.Separator
import org.gradle.internal.impldep.org.junit.Assert
import org.junit.jupiter.api.Test
diff --git a/cgen-lib/src/test/java/ce/formatters/cxx/CodeFormatterUseCaseImplTest.kt b/cgen-lib/src/test/java/ce/formatters/cxx/CodeFormatterUseCaseImplTest.kt
index d82fd920..ad0be98e 100644
--- a/cgen-lib/src/test/java/ce/formatters/cxx/CodeFormatterUseCaseImplTest.kt
+++ b/cgen-lib/src/test/java/ce/formatters/cxx/CodeFormatterUseCaseImplTest.kt
@@ -5,9 +5,9 @@ import ce.formatters.CLikeCodestyleRepo
import ce.formatters.CodeFormatterUseCaseImpl
import ce.settings.CodeStyle
import generators.cpp.CppHeaderFile
-import generators.obj.input.addSub
-import generators.obj.out.NamespaceBlock
-import generators.obj.out.OutputTree
+import generators.obj.abstractSyntaxTree.addSub
+import generators.obj.syntaxParseTree.NamespaceBlock
+import generators.obj.syntaxParseTree.OutputTree
import org.gradle.internal.impldep.org.junit.Assert
import org.junit.jupiter.api.Test
diff --git a/cgen-lib/src/test/java/ce/formatters/cxx/CxxConstantsFormatterTest.kt b/cgen-lib/src/test/java/ce/formatters/cxx/CxxConstantsFormatterTest.kt
index 4c2baad7..81af3c12 100644
--- a/cgen-lib/src/test/java/ce/formatters/cxx/CxxConstantsFormatterTest.kt
+++ b/cgen-lib/src/test/java/ce/formatters/cxx/CxxConstantsFormatterTest.kt
@@ -3,18 +3,18 @@ package ce.formatters.cxx
import ce.formatters.CLikeCodestyleRepo
import ce.formatters.CodeFormatterUseCaseImpl
import ce.settings.CodeStyle
-import generators.obj.input.addKeyword
-import generators.obj.input.addRValue
-import generators.obj.input.addSub
-import generators.obj.out.AstTypeLeaf
-import generators.obj.out.CommentLeaf
-import generators.obj.out.CommentsBlock
-import generators.obj.out.FieldNode
-import generators.obj.out.Keyword
-import generators.obj.out.NamespaceBlock
-import generators.obj.out.Region
-import generators.obj.out.RegionImpl
-import generators.obj.out.VariableName
+import generators.obj.abstractSyntaxTree.addKeyword
+import generators.obj.abstractSyntaxTree.addRValue
+import generators.obj.abstractSyntaxTree.addSub
+import generators.obj.syntaxParseTree.AstTypeLeaf
+import generators.obj.syntaxParseTree.CommentLeaf
+import generators.obj.syntaxParseTree.CommentsBlock
+import generators.obj.syntaxParseTree.FieldNode
+import generators.obj.syntaxParseTree.Keyword
+import generators.obj.syntaxParseTree.NamespaceBlock
+import generators.obj.syntaxParseTree.Region
+import generators.obj.syntaxParseTree.RegionImpl
+import generators.obj.syntaxParseTree.VariableName
import org.gradle.internal.impldep.org.junit.Assert
import org.junit.jupiter.api.Test
diff --git a/cgen-lib/src/test/java/ce/formatters/cxx/FormatInclude.kt b/cgen-lib/src/test/java/ce/formatters/cxx/FormatInclude.kt
index a7af20fc..0daa914d 100644
--- a/cgen-lib/src/test/java/ce/formatters/cxx/FormatInclude.kt
+++ b/cgen-lib/src/test/java/ce/formatters/cxx/FormatInclude.kt
@@ -13,15 +13,15 @@ import generators.cpp.CppHeaderFile
import generators.kotlin.GetArrayDataTypeUseCase
import generators.kotlin.GetTypeNameUseCase
import generators.kotlin.PrepareRightValueUseCase
-import generators.obj.input.ConstantsBlock
-import generators.obj.input.NamespaceImpl
-import generators.obj.input.TreeRoot
-import generators.obj.input.addSub
-import generators.obj.out.FileDataImpl
-import generators.obj.out.ImportsBlock
-import generators.obj.out.NamespaceBlock
-import generators.obj.out.NlSeparator
-import generators.obj.out.OutputTree
+import generators.obj.abstractSyntaxTree.ConstantsBlock
+import generators.obj.abstractSyntaxTree.NamespaceImpl
+import generators.obj.abstractSyntaxTree.TreeRoot
+import generators.obj.abstractSyntaxTree.addSub
+import generators.obj.syntaxParseTree.FileDataImpl
+import generators.obj.syntaxParseTree.ImportsBlock
+import generators.obj.syntaxParseTree.NamespaceBlock
+import generators.obj.syntaxParseTree.NlSeparator
+import generators.obj.syntaxParseTree.OutputTree
import org.junit.jupiter.api.Assertions
import org.junit.jupiter.api.Test
diff --git a/cgen-lib/src/test/java/ce/formatters/java/JavaConstantsFormattingTests.kt b/cgen-lib/src/test/java/ce/formatters/java/JavaConstantsFormattingTests.kt
index 1d2d80b3..ecd91f12 100644
--- a/cgen-lib/src/test/java/ce/formatters/java/JavaConstantsFormattingTests.kt
+++ b/cgen-lib/src/test/java/ce/formatters/java/JavaConstantsFormattingTests.kt
@@ -3,19 +3,19 @@ package ce.formatters.java
import ce.formatters.CLikeCodestyleRepo
import ce.formatters.CodeFormatterJavaUseCaseImpl
import ce.settings.CodeStyle
-import generators.obj.input.addDatatype
-import generators.obj.input.addKeyword
-import generators.obj.input.addOutBlock
-import generators.obj.input.addRValue
-import generators.obj.input.addSub
-import generators.obj.input.addVarName
-import generators.obj.out.FieldNode
-import generators.obj.out.Indent
-import generators.obj.out.Keyword
-import generators.obj.out.NlSeparator
-import generators.obj.out.OutBlock
-import generators.obj.out.RegionImpl
-import generators.obj.out.Space
+import generators.obj.abstractSyntaxTree.addDatatype
+import generators.obj.abstractSyntaxTree.addKeyword
+import generators.obj.abstractSyntaxTree.addOutBlock
+import generators.obj.abstractSyntaxTree.addRValue
+import generators.obj.abstractSyntaxTree.addSub
+import generators.obj.abstractSyntaxTree.addVarName
+import generators.obj.syntaxParseTree.FieldNode
+import generators.obj.syntaxParseTree.Indent
+import generators.obj.syntaxParseTree.Keyword
+import generators.obj.syntaxParseTree.NlSeparator
+import generators.obj.syntaxParseTree.OutBlock
+import generators.obj.syntaxParseTree.RegionImpl
+import generators.obj.syntaxParseTree.Space
import org.gradle.internal.impldep.org.junit.Assert
import org.junit.jupiter.api.Test
diff --git a/cgen-lib/src/test/java/ce/formatters/java/JavaDataClassFormattingTests.kt b/cgen-lib/src/test/java/ce/formatters/java/JavaDataClassFormattingTests.kt
index 7ca685bf..9dc9df50 100644
--- a/cgen-lib/src/test/java/ce/formatters/java/JavaDataClassFormattingTests.kt
+++ b/cgen-lib/src/test/java/ce/formatters/java/JavaDataClassFormattingTests.kt
@@ -4,18 +4,18 @@ import ce.formatters.CLikeCodestyleRepo
import ce.formatters.CodeFormatterJavaUseCaseImpl
import ce.settings.CodeStyle
import ce.treeio.XmlTreeReader
-import generators.obj.input.Node
-import generators.obj.input.addDatatype
-import generators.obj.input.addOutBlock
-import generators.obj.input.addSub
-import generators.obj.input.addVarName
-import generators.obj.out.ArgumentNode
-import generators.obj.out.Keyword
-import generators.obj.out.NlSeparator
-import generators.obj.out.OutBlock
-import generators.obj.out.OutBlockArguments
-import generators.obj.out.RegionImpl
-import generators.obj.out.Space
+import generators.obj.abstractSyntaxTree.Node
+import generators.obj.abstractSyntaxTree.addDatatype
+import generators.obj.abstractSyntaxTree.addOutBlock
+import generators.obj.abstractSyntaxTree.addSub
+import generators.obj.abstractSyntaxTree.addVarName
+import generators.obj.syntaxParseTree.ArgumentNode
+import generators.obj.syntaxParseTree.Keyword
+import generators.obj.syntaxParseTree.NlSeparator
+import generators.obj.syntaxParseTree.OutBlock
+import generators.obj.syntaxParseTree.OutBlockArguments
+import generators.obj.syntaxParseTree.RegionImpl
+import generators.obj.syntaxParseTree.Space
import org.gradle.internal.impldep.org.junit.Assert
import org.junit.jupiter.api.Test
diff --git a/cgen-lib/src/test/java/ce/formatters/kotlin/KotlinConstantsFormatterTest.kt b/cgen-lib/src/test/java/ce/formatters/kotlin/KotlinConstantsFormatterTest.kt
index 7a2fce1c..67561581 100644
--- a/cgen-lib/src/test/java/ce/formatters/kotlin/KotlinConstantsFormatterTest.kt
+++ b/cgen-lib/src/test/java/ce/formatters/kotlin/KotlinConstantsFormatterTest.kt
@@ -4,20 +4,20 @@ import ce.formatters.CLikeCodestyleRepo
import ce.formatters.CodeFormatterKotlinUseCaseImpl
import ce.settings.CodeStyle
import ce.treeio.XmlTreeReader
-import generators.obj.input.Node
-import generators.obj.input.addDatatype
-import generators.obj.input.addKeyword
-import generators.obj.input.addOutBlock
-import generators.obj.input.addRValue
-import generators.obj.input.addSub
-import generators.obj.input.addVarName
-import generators.obj.out.FieldNode
-import generators.obj.out.Indent
-import generators.obj.out.Keyword
-import generators.obj.out.NlSeparator
-import generators.obj.out.OutBlock
-import generators.obj.out.RegionImpl
-import generators.obj.out.Space
+import generators.obj.abstractSyntaxTree.Node
+import generators.obj.abstractSyntaxTree.addDatatype
+import generators.obj.abstractSyntaxTree.addKeyword
+import generators.obj.abstractSyntaxTree.addOutBlock
+import generators.obj.abstractSyntaxTree.addRValue
+import generators.obj.abstractSyntaxTree.addSub
+import generators.obj.abstractSyntaxTree.addVarName
+import generators.obj.syntaxParseTree.FieldNode
+import generators.obj.syntaxParseTree.Indent
+import generators.obj.syntaxParseTree.Keyword
+import generators.obj.syntaxParseTree.NlSeparator
+import generators.obj.syntaxParseTree.OutBlock
+import generators.obj.syntaxParseTree.RegionImpl
+import generators.obj.syntaxParseTree.Space
import org.gradle.internal.impldep.org.junit.Assert
import org.junit.jupiter.api.Test
diff --git a/cgen-lib/src/test/java/ce/formatters/kotlin/KotlinDataClassFormattingTests.kt b/cgen-lib/src/test/java/ce/formatters/kotlin/KotlinDataClassFormattingTests.kt
index 86eb6f7a..eaeaee33 100644
--- a/cgen-lib/src/test/java/ce/formatters/kotlin/KotlinDataClassFormattingTests.kt
+++ b/cgen-lib/src/test/java/ce/formatters/kotlin/KotlinDataClassFormattingTests.kt
@@ -12,28 +12,28 @@ import generators.kotlin.GetTypeNameUseCase
import generators.kotlin.KotlinFileGenerator
import generators.kotlin.KtDataClassGenerator
import generators.kotlin.PrepareRightValueUseCase
-import generators.obj.input.DataClass
-import generators.obj.input.NamespaceImpl
-import generators.obj.input.TreeRoot
-import generators.obj.input.addDatatype
-import generators.obj.input.addKeyword
-import generators.obj.input.addOutBlock
-import generators.obj.input.addRValue
-import generators.obj.input.addSub
-import generators.obj.input.addVarName
-import generators.obj.out.ArgumentNode
-import generators.obj.out.Constructor
-import generators.obj.out.FieldNode
-import generators.obj.out.Indent
-import generators.obj.out.Keyword
-import generators.obj.out.NlSeparator
-import generators.obj.out.OutBlock
-import generators.obj.out.OutBlockArguments
-import generators.obj.out.OutputTree
-import generators.obj.out.Region
-import generators.obj.out.RegionImpl
-import generators.obj.out.Separator
-import generators.obj.out.Space
+import generators.obj.abstractSyntaxTree.DataClass
+import generators.obj.abstractSyntaxTree.NamespaceImpl
+import generators.obj.abstractSyntaxTree.TreeRoot
+import generators.obj.abstractSyntaxTree.addDatatype
+import generators.obj.abstractSyntaxTree.addKeyword
+import generators.obj.abstractSyntaxTree.addOutBlock
+import generators.obj.abstractSyntaxTree.addRValue
+import generators.obj.abstractSyntaxTree.addSub
+import generators.obj.abstractSyntaxTree.addVarName
+import generators.obj.syntaxParseTree.ArgumentNode
+import generators.obj.syntaxParseTree.Constructor
+import generators.obj.syntaxParseTree.FieldNode
+import generators.obj.syntaxParseTree.Indent
+import generators.obj.syntaxParseTree.Keyword
+import generators.obj.syntaxParseTree.NlSeparator
+import generators.obj.syntaxParseTree.OutBlock
+import generators.obj.syntaxParseTree.OutBlockArguments
+import generators.obj.syntaxParseTree.OutputTree
+import generators.obj.syntaxParseTree.Region
+import generators.obj.syntaxParseTree.RegionImpl
+import generators.obj.syntaxParseTree.Separator
+import generators.obj.syntaxParseTree.Space
import org.gradle.internal.impldep.org.junit.Assert
import org.junit.jupiter.api.Test
diff --git a/cgen-lib/src/test/java/ce/formatters/kotlin/KotlinEnumFormattingTests.kt b/cgen-lib/src/test/java/ce/formatters/kotlin/KotlinEnumFormattingTests.kt
index 5eb8030d..5866174b 100644
--- a/cgen-lib/src/test/java/ce/formatters/kotlin/KotlinEnumFormattingTests.kt
+++ b/cgen-lib/src/test/java/ce/formatters/kotlin/KotlinEnumFormattingTests.kt
@@ -4,19 +4,19 @@ import ce.defs.RValue
import ce.formatters.CLikeCodestyleRepo
import ce.formatters.CodeFormatterKotlinUseCaseImpl
import ce.settings.CodeStyle
-import generators.obj.input.addDatatype
-import generators.obj.input.addEnumLeaf
-import generators.obj.input.addKeyword
-import generators.obj.input.addOutBlock
-import generators.obj.input.addSub
-import generators.obj.input.addVarName
-import generators.obj.out.ArgumentNode
-import generators.obj.out.Arguments
-import generators.obj.out.EnumNode
-import generators.obj.out.Keyword
-import generators.obj.out.OutBlock
-import generators.obj.out.OutBlockArguments
-import generators.obj.out.RegionImpl
+import generators.obj.abstractSyntaxTree.addDatatype
+import generators.obj.abstractSyntaxTree.addEnumLeaf
+import generators.obj.abstractSyntaxTree.addKeyword
+import generators.obj.abstractSyntaxTree.addOutBlock
+import generators.obj.abstractSyntaxTree.addSub
+import generators.obj.abstractSyntaxTree.addVarName
+import generators.obj.syntaxParseTree.ArgumentNode
+import generators.obj.syntaxParseTree.Arguments
+import generators.obj.syntaxParseTree.EnumNode
+import generators.obj.syntaxParseTree.Keyword
+import generators.obj.syntaxParseTree.OutBlock
+import generators.obj.syntaxParseTree.OutBlockArguments
+import generators.obj.syntaxParseTree.RegionImpl
import org.gradle.internal.impldep.org.junit.Assert
import org.junit.jupiter.api.Test
diff --git a/cgen-lib/src/test/java/ce/formatters/kotlin/KotlinPackageAndImportsTest.kt b/cgen-lib/src/test/java/ce/formatters/kotlin/KotlinPackageAndImportsTest.kt
index 88b677ff..f2edb79d 100644
--- a/cgen-lib/src/test/java/ce/formatters/kotlin/KotlinPackageAndImportsTest.kt
+++ b/cgen-lib/src/test/java/ce/formatters/kotlin/KotlinPackageAndImportsTest.kt
@@ -1,12 +1,12 @@
package ce.formatters.kotlin
import ce.basetest.KotlinBaseTest
-import generators.obj.out.FileDataImpl
-import generators.obj.out.Keyword
-import generators.obj.out.NamespaceDeclaration
-import generators.obj.out.OutputTree
-import generators.obj.out.Space
-import generators.obj.out.VariableName
+import generators.obj.syntaxParseTree.FileDataImpl
+import generators.obj.syntaxParseTree.Keyword
+import generators.obj.syntaxParseTree.NamespaceDeclaration
+import generators.obj.syntaxParseTree.OutputTree
+import generators.obj.syntaxParseTree.Space
+import generators.obj.syntaxParseTree.VariableName
import org.junit.jupiter.api.Assertions
import org.junit.jupiter.api.Test
diff --git a/cgen-lib/src/test/java/ce/writers/CppWritterTest.kt b/cgen-lib/src/test/java/ce/writers/CppWritterTest.kt
index 78f6448c..b3a53cbc 100644
--- a/cgen-lib/src/test/java/ce/writers/CppWritterTest.kt
+++ b/cgen-lib/src/test/java/ce/writers/CppWritterTest.kt
@@ -5,10 +5,10 @@ import ce.io.CodeWriter
import ce.repository.ReportsRepoImpl
import ce.settings.CodeStyle
import generators.cpp.CppWritter
-import generators.obj.input.addSubs
-import generators.obj.out.ImportLeaf
-import generators.obj.out.ImportsBlock
-import generators.obj.out.NlSeparator
+import generators.obj.abstractSyntaxTree.addSubs
+import generators.obj.syntaxParseTree.ImportLeaf
+import generators.obj.syntaxParseTree.ImportsBlock
+import generators.obj.syntaxParseTree.NlSeparator
import org.gradle.internal.impldep.org.junit.Assert
import org.junit.jupiter.api.Test
diff --git a/cgen-lib/src/test/java/ce/writers/JavaWritterTest.kt b/cgen-lib/src/test/java/ce/writers/JavaWritterTest.kt
index 5268979d..01ec874b 100644
--- a/cgen-lib/src/test/java/ce/writers/JavaWritterTest.kt
+++ b/cgen-lib/src/test/java/ce/writers/JavaWritterTest.kt
@@ -5,12 +5,12 @@ import ce.io.CodeWriter
import ce.repository.ReportsRepoImpl
import ce.settings.CodeStyle
import generators.java.JavaWritter
-import generators.obj.input.addOutBlock
-import generators.obj.input.addSubs
-import generators.obj.out.Keyword
-import generators.obj.out.NlSeparator
-import generators.obj.out.RegionImpl
-import generators.obj.out.Space
+import generators.obj.abstractSyntaxTree.addOutBlock
+import generators.obj.abstractSyntaxTree.addSubs
+import generators.obj.syntaxParseTree.Keyword
+import generators.obj.syntaxParseTree.NlSeparator
+import generators.obj.syntaxParseTree.RegionImpl
+import generators.obj.syntaxParseTree.Space
import org.gradle.internal.impldep.org.junit.Assert
import org.junit.jupiter.api.Test
diff --git a/cgen-lib/src/test/java/ce/writers/kotlin/KotlinWriterTest.kt b/cgen-lib/src/test/java/ce/writers/kotlin/KotlinWriterTest.kt
index 4b705d00..4033e5c2 100644
--- a/cgen-lib/src/test/java/ce/writers/kotlin/KotlinWriterTest.kt
+++ b/cgen-lib/src/test/java/ce/writers/kotlin/KotlinWriterTest.kt
@@ -8,21 +8,21 @@ import ce.io.CodeWriter
import generators.kotlin.GetTypeNameUseCase
import generators.kotlin.KotlinEnumGenerator
import generators.kotlin.KotlinWriter
-import generators.obj.input.ConstantsEnum
-import generators.obj.input.NamespaceImpl
-import generators.obj.input.addKeyword
-import generators.obj.input.addRValue
-import generators.obj.input.addSeparator
-import generators.obj.input.addSub
-import generators.obj.input.addVarName
-import generators.obj.out.Arguments
-import generators.obj.out.AstTypeLeaf
-import generators.obj.out.Constructor
-import generators.obj.out.EnumNode
-import generators.obj.out.FieldNode
-import generators.obj.out.OutBlock
-import generators.obj.out.OutputTree
-import generators.obj.out.Region
+import generators.obj.abstractSyntaxTree.ConstantsEnum
+import generators.obj.abstractSyntaxTree.NamespaceImpl
+import generators.obj.abstractSyntaxTree.addKeyword
+import generators.obj.abstractSyntaxTree.addRValue
+import generators.obj.abstractSyntaxTree.addSeparator
+import generators.obj.abstractSyntaxTree.addSub
+import generators.obj.abstractSyntaxTree.addVarName
+import generators.obj.syntaxParseTree.Arguments
+import generators.obj.syntaxParseTree.AstTypeLeaf
+import generators.obj.syntaxParseTree.Constructor
+import generators.obj.syntaxParseTree.EnumNode
+import generators.obj.syntaxParseTree.FieldNode
+import generators.obj.syntaxParseTree.OutBlock
+import generators.obj.syntaxParseTree.OutputTree
+import generators.obj.syntaxParseTree.Region
import org.gradle.internal.impldep.org.junit.Assert
import org.junit.jupiter.api.Test
diff --git a/cgen-lib/src/test/java/ce/writers/kotlin/WritePackageAndImportsTests.kt b/cgen-lib/src/test/java/ce/writers/kotlin/WritePackageAndImportsTests.kt
index b66e93e6..a92494a8 100644
--- a/cgen-lib/src/test/java/ce/writers/kotlin/WritePackageAndImportsTests.kt
+++ b/cgen-lib/src/test/java/ce/writers/kotlin/WritePackageAndImportsTests.kt
@@ -6,9 +6,9 @@ import ce.domain.usecase.add.AddRegionDefaultsUseCaseImpl
import ce.io.CodeWriter
import generators.kotlin.KotlinWriter
import generators.kotlin.KtConstantsGenerator
-import generators.obj.input.ConstantsBlock
-import generators.obj.input.NamespaceImpl
-import generators.obj.out.OutputTree
+import generators.obj.abstractSyntaxTree.ConstantsBlock
+import generators.obj.abstractSyntaxTree.NamespaceImpl
+import generators.obj.syntaxParseTree.OutputTree
import org.junit.jupiter.api.Assertions
import org.junit.jupiter.api.Test
diff --git a/cgen-lib/src/test/java/generators/cpp/CppConstantsBlockGeneratorTest.kt b/cgen-lib/src/test/java/generators/cpp/CppConstantsBlockGeneratorTest.kt
index 17a541b6..1f70661a 100644
--- a/cgen-lib/src/test/java/generators/cpp/CppConstantsBlockGeneratorTest.kt
+++ b/cgen-lib/src/test/java/generators/cpp/CppConstantsBlockGeneratorTest.kt
@@ -9,20 +9,20 @@ import ce.settings.CodeStyle
import generators.kotlin.GetArrayDataTypeUseCase
import generators.kotlin.GetTypeNameUseCase
import generators.kotlin.PrepareRightValueUseCase
-import generators.obj.input.ConstantsBlock
-import generators.obj.input.NamespaceImpl
-import generators.obj.input.TreeRoot
-import generators.obj.input.addSub
-import generators.obj.input.findOrNull
-import generators.obj.out.AstTypeLeaf
-import generators.obj.out.CommentsBlock
-import generators.obj.out.FieldNode
-import generators.obj.out.ImportsBlock
-import generators.obj.out.Keyword
-import generators.obj.out.NamespaceBlock
-import generators.obj.out.OutputTree
-import generators.obj.out.RegionImpl
-import generators.obj.out.VariableName
+import generators.obj.abstractSyntaxTree.ConstantsBlock
+import generators.obj.abstractSyntaxTree.NamespaceImpl
+import generators.obj.abstractSyntaxTree.TreeRoot
+import generators.obj.abstractSyntaxTree.addSub
+import generators.obj.abstractSyntaxTree.findOrNull
+import generators.obj.syntaxParseTree.AstTypeLeaf
+import generators.obj.syntaxParseTree.CommentsBlock
+import generators.obj.syntaxParseTree.FieldNode
+import generators.obj.syntaxParseTree.ImportsBlock
+import generators.obj.syntaxParseTree.Keyword
+import generators.obj.syntaxParseTree.NamespaceBlock
+import generators.obj.syntaxParseTree.OutputTree
+import generators.obj.syntaxParseTree.RegionImpl
+import generators.obj.syntaxParseTree.VariableName
import org.gradle.internal.impldep.org.junit.Assert
import org.junit.jupiter.api.Test
diff --git a/cgen-lib/src/test/java/generators/cpp/CppDataClassGeneratorTest.kt b/cgen-lib/src/test/java/generators/cpp/CppDataClassGeneratorTest.kt
index 44b221ea..53f5b271 100644
--- a/cgen-lib/src/test/java/generators/cpp/CppDataClassGeneratorTest.kt
+++ b/cgen-lib/src/test/java/generators/cpp/CppDataClassGeneratorTest.kt
@@ -5,17 +5,17 @@ import ce.defs.Target
import ce.domain.usecase.add.AddRegionDefaultsUseCaseImpl
import ce.formatters.CLikeCodestyleRepo
import ce.settings.CodeStyle
-import generators.obj.input.DataClass
-import generators.obj.input.NamespaceImpl
-import generators.obj.input.TreeRoot
-import generators.obj.input.addSub
-import generators.obj.input.findOrNull
-import generators.obj.out.CommentsBlock
-import generators.obj.out.FieldNode
-import generators.obj.out.NamespaceBlock
-import generators.obj.out.OutBlock
-import generators.obj.out.OutputTree
-import generators.obj.out.Region
+import generators.obj.abstractSyntaxTree.DataClass
+import generators.obj.abstractSyntaxTree.NamespaceImpl
+import generators.obj.abstractSyntaxTree.TreeRoot
+import generators.obj.abstractSyntaxTree.addSub
+import generators.obj.abstractSyntaxTree.findOrNull
+import generators.obj.syntaxParseTree.CommentsBlock
+import generators.obj.syntaxParseTree.FieldNode
+import generators.obj.syntaxParseTree.NamespaceBlock
+import generators.obj.syntaxParseTree.OutBlock
+import generators.obj.syntaxParseTree.OutputTree
+import generators.obj.syntaxParseTree.Region
import org.gradle.internal.impldep.org.junit.Assert
import org.junit.jupiter.api.Test
@@ -42,7 +42,7 @@ class CppDataClassGeneratorTest {
addBlockComment("182TEST_COMMENT")
field("A", DataType.int32, 1)
field("B", DataType.float64, 0.5f)
- field("C", DataType.string(true))
+ field("C", DataType.stringNullable)
}
Assert.assertFalse("Dirty flag should be false in .h before changes", headerFile.isDirty)
Assert.assertFalse("Dirty flag should be false in .cpp before changes", cxxFile.isDirty)
diff --git a/cgen-lib/src/test/java/generators/cpp/CppEnumGeneratorTest.kt b/cgen-lib/src/test/java/generators/cpp/CppEnumGeneratorTest.kt
index ea195888..830c8af3 100644
--- a/cgen-lib/src/test/java/generators/cpp/CppEnumGeneratorTest.kt
+++ b/cgen-lib/src/test/java/generators/cpp/CppEnumGeneratorTest.kt
@@ -5,8 +5,8 @@ import ce.defs.Target
import ce.domain.usecase.add.AddRegionDefaultsUseCaseImpl
import ce.formatters.CLikeCodestyleRepo
import ce.settings.CodeStyle
-import generators.obj.input.*
-import generators.obj.out.*
+import generators.obj.abstractSyntaxTree.*
+import generators.obj.syntaxParseTree.*
import org.gradle.internal.impldep.org.junit.Assert
import org.junit.jupiter.api.Test
diff --git a/cgen-lib/src/test/java/generators/java/JavaConstantsGeneratorTest.kt b/cgen-lib/src/test/java/generators/java/JavaConstantsGeneratorTest.kt
index 99cc9c57..c26ce8c9 100644
--- a/cgen-lib/src/test/java/generators/java/JavaConstantsGeneratorTest.kt
+++ b/cgen-lib/src/test/java/generators/java/JavaConstantsGeneratorTest.kt
@@ -9,17 +9,17 @@ import ce.treeio.XmlTreeReader
import generators.kotlin.GetArrayDataTypeUseCase
import generators.kotlin.GetTypeNameUseCase
import generators.kotlin.PrepareRightValueUseCase
-import generators.obj.input.ConstantsBlock
-import generators.obj.input.NamespaceImpl
-import generators.obj.input.findOrNull
-import generators.obj.out.AstTypeLeaf
-import generators.obj.out.FieldNode
-import generators.obj.out.Keyword
-import generators.obj.out.OutBlock
-import generators.obj.out.OutputTree
-import generators.obj.out.Region
-import generators.obj.out.RegionImpl
-import generators.obj.out.VariableName
+import generators.obj.abstractSyntaxTree.ConstantsBlock
+import generators.obj.abstractSyntaxTree.NamespaceImpl
+import generators.obj.abstractSyntaxTree.findOrNull
+import generators.obj.syntaxParseTree.AstTypeLeaf
+import generators.obj.syntaxParseTree.FieldNode
+import generators.obj.syntaxParseTree.Keyword
+import generators.obj.syntaxParseTree.OutBlock
+import generators.obj.syntaxParseTree.OutputTree
+import generators.obj.syntaxParseTree.Region
+import generators.obj.syntaxParseTree.RegionImpl
+import generators.obj.syntaxParseTree.VariableName
import org.gradle.internal.impldep.org.junit.Assert
import org.junit.jupiter.api.Test
diff --git a/cgen-lib/src/test/java/generators/java/JavaDataClassGeneratorTest.kt b/cgen-lib/src/test/java/generators/java/JavaDataClassGeneratorTest.kt
index 12dc81c1..ccbe7f3d 100644
--- a/cgen-lib/src/test/java/generators/java/JavaDataClassGeneratorTest.kt
+++ b/cgen-lib/src/test/java/generators/java/JavaDataClassGeneratorTest.kt
@@ -5,18 +5,18 @@ import ce.defs.Target
import ce.domain.usecase.add.AddRegionDefaultsUseCaseImpl
import ce.formatters.CLikeCodestyleRepo
import ce.settings.CodeStyle
-import generators.obj.input.DataClass
-import generators.obj.input.NamespaceImpl
-import generators.obj.input.TreeRoot
-import generators.obj.input.addSub
-import generators.obj.input.findOrNull
-import generators.obj.out.ArgumentNode
-import generators.obj.out.CommentsBlock
-import generators.obj.out.OutBlock
-import generators.obj.out.OutBlockArguments
-import generators.obj.out.OutputTree
-import generators.obj.out.Region
-import generators.obj.out.RegionImpl
+import generators.obj.abstractSyntaxTree.DataClass
+import generators.obj.abstractSyntaxTree.NamespaceImpl
+import generators.obj.abstractSyntaxTree.TreeRoot
+import generators.obj.abstractSyntaxTree.addSub
+import generators.obj.abstractSyntaxTree.findOrNull
+import generators.obj.syntaxParseTree.ArgumentNode
+import generators.obj.syntaxParseTree.CommentsBlock
+import generators.obj.syntaxParseTree.OutBlock
+import generators.obj.syntaxParseTree.OutBlockArguments
+import generators.obj.syntaxParseTree.OutputTree
+import generators.obj.syntaxParseTree.Region
+import generators.obj.syntaxParseTree.RegionImpl
import org.gradle.internal.impldep.org.junit.Assert
import org.junit.jupiter.api.Test
@@ -40,7 +40,7 @@ class JavaDataClassGeneratorTest {
addBlockComment("182TEST_COMMENT")
field("A", DataType.int32, 1)
field("B", DataType.float64, 0.5f)
- field("C", DataType.string(true))
+ field("C", DataType.stringNullable)
}
val projectOutput = OutputTree(Target.Kotlin)
diff --git a/cgen-lib/src/test/java/generators/java/JavaEnumGeneratorTest.kt b/cgen-lib/src/test/java/generators/java/JavaEnumGeneratorTest.kt
index 816883a0..dc7cb238 100644
--- a/cgen-lib/src/test/java/generators/java/JavaEnumGeneratorTest.kt
+++ b/cgen-lib/src/test/java/generators/java/JavaEnumGeneratorTest.kt
@@ -5,17 +5,14 @@ import ce.domain.usecase.add.AddRegionDefaultsUseCaseImpl
import ce.formatters.CLikeCodestyleRepo
import ce.settings.CodeStyle
import ce.treeio.XmlTreeReader
-import generators.obj.input.ConstantsEnum
-import generators.obj.input.Namespace
-import generators.obj.input.NamespaceImpl
-import generators.obj.input.findOrNull
-import generators.obj.out.ArgumentNode
-import generators.obj.out.CommentsBlock
-import generators.obj.out.OutBlock
-import generators.obj.out.OutBlockArguments
-import generators.obj.out.OutputTree
-import generators.obj.out.Region
-import generators.obj.out.RegionImpl
+import generators.obj.abstractSyntaxTree.ConstantsEnum
+import generators.obj.abstractSyntaxTree.Namespace
+import generators.obj.abstractSyntaxTree.findOrNull
+import generators.obj.syntaxParseTree.CommentsBlock
+import generators.obj.syntaxParseTree.OutBlock
+import generators.obj.syntaxParseTree.OutputTree
+import generators.obj.syntaxParseTree.Region
+import generators.obj.syntaxParseTree.RegionImpl
import org.gradle.internal.impldep.org.junit.Assert
import org.junit.jupiter.api.Test
diff --git a/cgen-lib/src/test/java/generators/kotlin/GetArrayDataTypeUseCaseTest.kt b/cgen-lib/src/test/java/generators/kotlin/GetArrayDataTypeUseCaseTest.kt
index 2cee756e..975efb5a 100644
--- a/cgen-lib/src/test/java/generators/kotlin/GetArrayDataTypeUseCaseTest.kt
+++ b/cgen-lib/src/test/java/generators/kotlin/GetArrayDataTypeUseCaseTest.kt
@@ -62,7 +62,7 @@ class GetArrayDataTypeUseCaseTest {
@Test
fun getArrayTypeReturnsStringArrayForStringType() {
- val result = useCase.getArrayType(DataType.string())
+ val result = useCase.getArrayType(DataType.string)
assertEquals("String[]", result)
}
diff --git a/cgen-lib/src/test/java/generators/kotlin/KotlinConstantsGeneratorTest.kt b/cgen-lib/src/test/java/generators/kotlin/KotlinConstantsGeneratorTest.kt
index 0e5bf58c..7348ffca 100644
--- a/cgen-lib/src/test/java/generators/kotlin/KotlinConstantsGeneratorTest.kt
+++ b/cgen-lib/src/test/java/generators/kotlin/KotlinConstantsGeneratorTest.kt
@@ -5,14 +5,14 @@ import ce.domain.usecase.add.AddRegionDefaultsUseCaseImpl
import ce.formatters.CLikeCodestyleRepo
import ce.settings.CodeStyle
import ce.treeio.XmlTreeReader
-import generators.obj.input.ConstantsBlock
-import generators.obj.input.NamespaceImpl
-import generators.obj.input.findOrNull
-import generators.obj.out.FieldNode
-import generators.obj.out.OutBlock
-import generators.obj.out.OutputTree
-import generators.obj.out.Region
-import generators.obj.out.RegionImpl
+import generators.obj.abstractSyntaxTree.ConstantsBlock
+import generators.obj.abstractSyntaxTree.NamespaceImpl
+import generators.obj.abstractSyntaxTree.findOrNull
+import generators.obj.syntaxParseTree.FieldNode
+import generators.obj.syntaxParseTree.OutBlock
+import generators.obj.syntaxParseTree.OutputTree
+import generators.obj.syntaxParseTree.Region
+import generators.obj.syntaxParseTree.RegionImpl
import org.gradle.internal.impldep.org.junit.Assert
import org.junit.jupiter.api.Test
diff --git a/cgen-lib/src/test/java/generators/kotlin/KotlinDataClassGeneratorTest.kt b/cgen-lib/src/test/java/generators/kotlin/KotlinDataClassGeneratorTest.kt
index d5f8e034..a0d94033 100644
--- a/cgen-lib/src/test/java/generators/kotlin/KotlinDataClassGeneratorTest.kt
+++ b/cgen-lib/src/test/java/generators/kotlin/KotlinDataClassGeneratorTest.kt
@@ -6,23 +6,23 @@ import ce.defs.Target
import ce.domain.usecase.add.AddRegionDefaultsUseCaseImpl
import ce.formatters.CLikeCodestyleRepo
import ce.settings.CodeStyle
-import generators.obj.input.DataClass
-import generators.obj.input.NamespaceImpl
-import generators.obj.input.TreeRoot
-import generators.obj.input.addSub
-import generators.obj.input.findOrNull
-import generators.obj.out.ArgumentNode
-import generators.obj.out.AstTypeLeaf
-import generators.obj.out.CommentsBlock
-import generators.obj.out.Constructor
-import generators.obj.out.FieldNode
-import generators.obj.out.Keyword
-import generators.obj.out.OutBlock
-import generators.obj.out.OutBlockArguments
-import generators.obj.out.OutputTree
-import generators.obj.out.Region
-import generators.obj.out.RegionImpl
-import generators.obj.out.VariableName
+import generators.obj.abstractSyntaxTree.DataClass
+import generators.obj.abstractSyntaxTree.NamespaceImpl
+import generators.obj.abstractSyntaxTree.TreeRoot
+import generators.obj.abstractSyntaxTree.addSub
+import generators.obj.abstractSyntaxTree.findOrNull
+import generators.obj.syntaxParseTree.ArgumentNode
+import generators.obj.syntaxParseTree.AstTypeLeaf
+import generators.obj.syntaxParseTree.CommentsBlock
+import generators.obj.syntaxParseTree.Constructor
+import generators.obj.syntaxParseTree.FieldNode
+import generators.obj.syntaxParseTree.Keyword
+import generators.obj.syntaxParseTree.OutBlock
+import generators.obj.syntaxParseTree.OutBlockArguments
+import generators.obj.syntaxParseTree.OutputTree
+import generators.obj.syntaxParseTree.Region
+import generators.obj.syntaxParseTree.RegionImpl
+import generators.obj.syntaxParseTree.VariableName
import org.gradle.internal.impldep.org.junit.Assert
import org.junit.jupiter.api.Test
@@ -52,7 +52,7 @@ class KotlinDataClassGeneratorTest {
addBlockComment("182TEST_COMMENT")
field("A", DataType.int32, 1)
field("B", DataType.float64, 0.5f)
- field("C", DataType.string(true))
+ field("C", DataType.stringNullable)
}
val projectOutput = OutputTree(Target.Kotlin)
@@ -113,8 +113,9 @@ class KotlinDataClassGeneratorTest {
val dataClassDescriptor = DataClass("MyDataClass").apply {
field("A", DataType.int32, 1)
field("B", DataType.float64, 0.5f)
- addstaticfield("SELF", DataType.custom(this), instance())
- // mapOf("A" to 10, "B" to 10.5f)
+ addstaticfield("SELF", DataType.custom(this), instance(
+ mapOf("A" to 10, "B" to 10.5f)
+ ))
}
val block = namespace.addSub(dataClassDescriptor)
@@ -136,7 +137,12 @@ class KotlinDataClassGeneratorTest {
//
// <:><=>
//
- //
+ //
+ //
+ // <=>
+ // <=>
+ //
+ //
//
//
//
diff --git a/cgen-lib/src/test/java/generators/kotlin/KotlinEnumGeneratorTest.kt b/cgen-lib/src/test/java/generators/kotlin/KotlinEnumGeneratorTest.kt
index 822198ea..8fb4f4dc 100644
--- a/cgen-lib/src/test/java/generators/kotlin/KotlinEnumGeneratorTest.kt
+++ b/cgen-lib/src/test/java/generators/kotlin/KotlinEnumGeneratorTest.kt
@@ -7,19 +7,19 @@ import ce.domain.usecase.add.AddRegionDefaultsUseCaseImpl
import ce.formatters.CLikeCodestyleRepo
import ce.settings.CodeStyle
import ce.treeio.XmlTreeReader
-import generators.obj.input.ConstantsEnum
-import generators.obj.input.Namespace
-import generators.obj.input.NamespaceImpl
-import generators.obj.input.addSub
-import generators.obj.input.findOrNull
-import generators.obj.out.Arguments
-import generators.obj.out.CommentsBlock
-import generators.obj.out.EnumNode
-import generators.obj.out.OutBlock
-import generators.obj.out.OutBlockArguments
-import generators.obj.out.OutputTree
-import generators.obj.out.Region
-import generators.obj.out.RegionImpl
+import generators.obj.abstractSyntaxTree.ConstantsEnum
+import generators.obj.abstractSyntaxTree.Namespace
+import generators.obj.abstractSyntaxTree.NamespaceImpl
+import generators.obj.abstractSyntaxTree.addSub
+import generators.obj.abstractSyntaxTree.findOrNull
+import generators.obj.syntaxParseTree.Arguments
+import generators.obj.syntaxParseTree.CommentsBlock
+import generators.obj.syntaxParseTree.EnumNode
+import generators.obj.syntaxParseTree.OutBlock
+import generators.obj.syntaxParseTree.OutBlockArguments
+import generators.obj.syntaxParseTree.OutputTree
+import generators.obj.syntaxParseTree.Region
+import generators.obj.syntaxParseTree.RegionImpl
import org.gradle.internal.impldep.org.junit.Assert
import org.junit.jupiter.api.Test
diff --git a/cgen-lib/src/test/java/generators/kotlin/KotlinFileGeneratorTest.kt b/cgen-lib/src/test/java/generators/kotlin/KotlinFileGeneratorTest.kt
index 7d9fcd0f..f39e3ffa 100644
--- a/cgen-lib/src/test/java/generators/kotlin/KotlinFileGeneratorTest.kt
+++ b/cgen-lib/src/test/java/generators/kotlin/KotlinFileGeneratorTest.kt
@@ -1,13 +1,13 @@
package generators.kotlin
import ce.defs.Target
-import generators.obj.input.DataClass
-import generators.obj.input.NamespaceImpl
-import generators.obj.input.addSub
-import generators.obj.out.FileData
-import generators.obj.out.Keyword
-import generators.obj.out.NamespaceDeclaration
-import generators.obj.out.OutputTree
+import generators.obj.abstractSyntaxTree.DataClass
+import generators.obj.abstractSyntaxTree.NamespaceImpl
+import generators.obj.abstractSyntaxTree.addSub
+import generators.obj.syntaxParseTree.FileData
+import generators.obj.syntaxParseTree.Keyword
+import generators.obj.syntaxParseTree.NamespaceDeclaration
+import generators.obj.syntaxParseTree.OutputTree
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Assertions.assertTrue
import org.junit.jupiter.api.Test
diff --git a/cgen-lib/src/test/java/generators/kotlin/PrepareRightValueUseCaseTest.kt b/cgen-lib/src/test/java/generators/kotlin/PrepareRightValueUseCaseTest.kt
index 996b3ff8..c33d1abe 100644
--- a/cgen-lib/src/test/java/generators/kotlin/PrepareRightValueUseCaseTest.kt
+++ b/cgen-lib/src/test/java/generators/kotlin/PrepareRightValueUseCaseTest.kt
@@ -4,12 +4,12 @@ import ce.defs.DataType
import ce.defs.DataValueImpl
import ce.defs.NotDefined
import ce.defs.RValue
-import generators.obj.input.DataClass
-import generators.obj.input.DataField
-import generators.obj.input.NewInstance
-import generators.obj.out.Arguments
-import generators.obj.out.Constructor
-import generators.obj.out.FileDataImpl
+import generators.obj.abstractSyntaxTree.DataClass
+import generators.obj.abstractSyntaxTree.DataField
+import generators.obj.abstractSyntaxTree.NewInstance
+import generators.obj.syntaxParseTree.Arguments
+import generators.obj.syntaxParseTree.Constructor
+import generators.obj.syntaxParseTree.FileDataImpl
import org.junit.jupiter.api.Assertions
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Assertions.assertTrue
@@ -23,37 +23,43 @@ class PrepareRightValueUseCaseTest {
@Test
fun toRightValueReturnsVoidForVoidType() {
- val result = prepareRightValueUseCase.toRightValue(DataType.VOID, DataValueImpl("ignored"), fileData)
+ val result = prepareRightValueUseCase.toRightValue(DataType.VOID,
+ DataValueImpl("ignored"), fileData)
assertEquals("void", result.name)
}
@Test
fun toRightValueReturnsSimpleValueForIntegerTypes() {
- val result = prepareRightValueUseCase.toRightValue(DataType.int32, DataValueImpl(simple = 42), fileData)
+ val result = prepareRightValueUseCase.toRightValue(DataType.int32,
+ DataValueImpl(simple = 42), fileData)
assertEquals("42", result.name)
}
@Test
fun toRightValueAppendsFForFloat32Type() {
- val result = prepareRightValueUseCase.toRightValue(DataType.float32, DataValueImpl(simple = 3.14), fileData)
+ val result = prepareRightValueUseCase.toRightValue(DataType.float32,
+ DataValueImpl(simple = 3.14), fileData)
assertEquals("3.14f", result.name)
}
@Test
fun toRightValueReturnsSimpleValueForFloat64Type() {
- val result = prepareRightValueUseCase.toRightValue(DataType.float64, DataValueImpl(simple = 3.14), fileData)
+ val result = prepareRightValueUseCase.toRightValue(DataType.float64,
+ DataValueImpl(simple = 3.14), fileData)
assertEquals("3.14", result.name)
}
@Test
fun toRightValueReturnsSimpleValueForBooleanType() {
- val result = prepareRightValueUseCase.toRightValue(DataType.bool, DataValueImpl(simple = true), fileData)
+ val result = prepareRightValueUseCase.toRightValue(DataType.bool,
+ DataValueImpl(simple = true), fileData)
assertEquals("true", result.name)
}
@Test
fun toRightValueReturnsSimpleValueForStringType() {
- val result = prepareRightValueUseCase.toRightValue(DataType.string(), DataValueImpl(simple = "hello"), fileData)
+ val result = prepareRightValueUseCase.toRightValue(DataType.string,
+ DataValueImpl(simple = "hello"), fileData)
assertEquals("\"hello\"", result.name)
}
@@ -63,7 +69,8 @@ class PrepareRightValueUseCaseTest {
field("A", DataType.int32, 1)
}
val dataType = DataType.custom(dataClassDescriptor)
- val instance = NewInstance("newInstance").setType(type = dataType)
+ val instance = NewInstance("newInstance")
+ instance.setType(type = dataType)
instance.argument("a", DataType.int32, NotDefined)
instance.argument("b", DataType.int32, 1)
val field = DataField("name").apply {
@@ -79,21 +86,45 @@ class PrepareRightValueUseCaseTest {
fun testConstructorToAst() {
val className = "className"
val dataClassDescriptor = DataClass(className).apply {
- field("A", DataType.int32, 1)
+ field("a", DataType.string, "")
+ field("b", DataType.int32, 0)
}
val dataType = DataType.custom(dataClassDescriptor)
- val instance = NewInstance("newInstance")
- .setType(dataType)
- .argument("a", DataType.int32, NotDefined)
- .argument("b", DataType.int32, 1)
+ val instance = dataClassDescriptor.instance(
+ mapOf("a" to "defined", "b" to 123)
+ )
val result = prepareRightValueUseCase.prepareConstructor(instance, fileData)
+ // expected result
+ //
+ //
+ //
+ //
+ // <=>
+ //
+ //
+ // <=>
+ //
+ //
+ //
+ //
assertTrue(result is RValue)
assertEquals(1, result.subs.size)
assertTrue(result.subs[0] is Constructor)
val constructor = result.subs[0] as Constructor
Assertions.assertEquals(1, constructor.subs.size)
assertTrue(constructor.subs[0] is Arguments)
+ val arguments = constructor.subs[0] as Arguments
+ assertEquals(2, arguments.subs.size)
+ val arg1 = arguments.subs[0] as generators.obj.syntaxParseTree.ArgumentNode
+ val arg2 = arguments.subs[1] as generators.obj.syntaxParseTree.ArgumentNode
+ assertEquals(3, arg1.subs.size)
+ assertEquals(3, arg2.subs.size)
+ assertEquals("a", arg1.subs[0].name)
+ assertEquals(RValue::class.java, arg1.subs[2].javaClass)
+ val rvalue1 = arg1.subs[2] as RValue
+ assertEquals("\"defined\"", rvalue1.name)
+ assertEquals("b", arg2.subs[0].name)
+ assertEquals("123", arg2.subs[2].name)
}
-
}
\ No newline at end of file
diff --git a/cgen-lib/src/test/java/generators/obj/input/ConstantsBlockTests.kt b/cgen-lib/src/test/java/generators/obj/abstractSyntaxTree/ConstantsBlockTests.kt
similarity index 93%
rename from cgen-lib/src/test/java/generators/obj/input/ConstantsBlockTests.kt
rename to cgen-lib/src/test/java/generators/obj/abstractSyntaxTree/ConstantsBlockTests.kt
index 84f65775..00417f9b 100644
--- a/cgen-lib/src/test/java/generators/obj/input/ConstantsBlockTests.kt
+++ b/cgen-lib/src/test/java/generators/obj/abstractSyntaxTree/ConstantsBlockTests.kt
@@ -1,4 +1,4 @@
-package generators.obj.input
+package generators.obj.abstractSyntaxTree
import ce.defs.DataType
import ce.defs.DataValueImpl
@@ -40,7 +40,7 @@ class ConstantsBlockTests {
@Test
fun addConstantWithNullValue() {
val block = ConstantsBlock(name = "TestBlock")
- val constant = block.add("CONST4", DataType.string(), null)
+ val constant = block.add("CONST4", DataType.string, null)
Assertions.assertEquals("CONST4", constant.name)
Assertions.assertTrue(constant.getType() is DataType.string)
Assertions.assertNull(constant.getValue().simple)
@@ -56,7 +56,7 @@ class ConstantsBlockTests {
@Test
fun updateDefaultTypeChangesType() {
val block = ConstantsBlock(name = "TestBlock", defaultDataType = DataType.VOID)
- block.defaultType(DataType.string())
+ block.defaultType(DataType.string)
Assertions.assertTrue(block.defaultDataType is DataType.string)
}
}
\ No newline at end of file
diff --git a/cgen-lib/src/test/java/generators/obj/input/DataClassTests.kt b/cgen-lib/src/test/java/generators/obj/abstractSyntaxTree/DataClassTests.kt
similarity index 61%
rename from cgen-lib/src/test/java/generators/obj/input/DataClassTests.kt
rename to cgen-lib/src/test/java/generators/obj/abstractSyntaxTree/DataClassTests.kt
index 4e53a70e..dc5f4f71 100644
--- a/cgen-lib/src/test/java/generators/obj/input/DataClassTests.kt
+++ b/cgen-lib/src/test/java/generators/obj/abstractSyntaxTree/DataClassTests.kt
@@ -1,4 +1,4 @@
-package generators.obj.input
+package generators.obj.abstractSyntaxTree
import ce.defs.DataType
import ce.defs.NotDefined
@@ -21,7 +21,7 @@ class DataClassTests {
@Test
fun fieldAddsFieldWithDefaultValue() {
val dataClass = DataClass(name = "TestClass")
- dataClass.field("Field1", DataType.string())
+ dataClass.field("Field1", DataType.string)
val field = dataClass.subs.first() as DataField
Assertions.assertEquals("Field1", field.name)
Assertions.assertTrue(field.getType() is DataType.string)
@@ -33,10 +33,28 @@ class DataClassTests {
@Test
fun fieldAddsFieldWithSpecifiedValue() {
val dataClass = DataClass(name = "TestClass")
- dataClass.field("Field2", DataType.string(), "value")
+ dataClass.field("Field2", DataType.string, "value")
val field = dataClass.subs.first() as DataField
Assertions.assertEquals("Field2", field.name)
Assertions.assertTrue(field.getType() is DataType.string)
Assertions.assertEquals("value", field.getValue().simple)
}
+
+ @Test
+ fun testNewInstanceWithArgs() {
+ val dataClass = DataClass(name = "TestClass")
+ dataClass.field("strField", DataType.string)
+ val instance = dataClass.instance(
+ mapOf(
+ "strField" to "test"
+ )
+ )
+ Assertions.assertEquals(DataType.custom::class.java, instance.getType().javaClass)
+ Assertions.assertEquals(2, instance.subs.size)
+ Assertions.assertEquals(Input::class.java, instance.subs[1].javaClass)
+ val argField = instance.subs[1] as Input
+ Assertions.assertEquals("strField", argField.name)
+ Assertions.assertEquals("test", argField.getValue().simple)
+ Assertions.assertEquals(DataType.string, argField.getType())
+ }
}
\ No newline at end of file
diff --git a/cgen-lib/src/test/java/generators/obj/input/NewInstanceTest.kt b/cgen-lib/src/test/java/generators/obj/abstractSyntaxTree/NewInstanceTest.kt
similarity index 78%
rename from cgen-lib/src/test/java/generators/obj/input/NewInstanceTest.kt
rename to cgen-lib/src/test/java/generators/obj/abstractSyntaxTree/NewInstanceTest.kt
index 1e6672ee..1c073610 100644
--- a/cgen-lib/src/test/java/generators/obj/input/NewInstanceTest.kt
+++ b/cgen-lib/src/test/java/generators/obj/abstractSyntaxTree/NewInstanceTest.kt
@@ -1,4 +1,4 @@
-package generators.obj.input
+package generators.obj.abstractSyntaxTree
import ce.defs.DataType
import ce.defs.DataValueImpl
@@ -14,7 +14,7 @@ class NewInstanceTest {
val dc1instance = NewInstance("newInstance").setType(type = DataType.custom(dc1))
val instance = NewInstance(name = "test").setType(type = DataType.custom(DataClass("test")))
instance.argument("arg1", DataType.custom(dc1), dc1instance)
- val sub = instance.subs.firstOrNull { it is DataField } as DataField?
+ val sub = instance.subs.firstOrNull { it is Input } as Input?
assertEquals("arg1", sub!!.name)
assertEquals(dc1instance, sub.getValue().subs.first())
}
@@ -27,7 +27,7 @@ class NewInstanceTest {
dc1dataValue.addSub(dc1instance)
val instance = NewInstance(name = "test").setType(type = DataType.custom(DataClass("test")))
instance.argument("arg1", DataType.custom(dc1), dc1dataValue)
- val sub = instance.subs.firstOrNull { it is DataField } as DataField?
+ val sub = instance.subs.firstOrNull { it is Input } as Input?
assertEquals("arg1", sub!!.name)
assertEquals(dc1instance, sub.getValue().subs.first())
}
@@ -35,8 +35,8 @@ class NewInstanceTest {
@Test
fun argumentAddsSubWithCorrectValues() {
val instance = NewInstance(name = "test").setType(type = DataType.custom(DataClass("test")))
- instance.argument("arg1", DataType.string(false), "value1")
- val sub = instance.subs.firstOrNull { it is DataField } as DataField?
+ instance.argument("arg1", DataType.string, "value1")
+ val sub = instance.subs.firstOrNull { it is Input } as Input?
assertEquals("arg1", sub!!.name)
assertEquals("value1", sub.getValue().simple)
}
@@ -44,8 +44,8 @@ class NewInstanceTest {
@Test
fun argumentAddsSubWithNullValue() {
val instance = NewInstance(name = "test").setType(type = DataType.custom(DataClass("test")))
- instance.argument("arg2", DataType.string(), "STR")
- val sub = instance.subs.firstOrNull { it is DataField } as DataField?
+ instance.argument("arg2", DataType.string, "STR")
+ val sub = instance.subs.firstOrNull { it is Input } as Input?
assertNotNull(sub)
assertEquals("arg2", sub!!.name)
assertEquals("STR", sub.getValue().simple)
@@ -54,12 +54,12 @@ class NewInstanceTest {
@Test
fun argumentAddsMultipleSubs() {
val instance = NewInstance(name = "test").setType(type = DataType.custom(DataClass("test")))
- instance.argument("arg1", DataType.string(false), "value1")
+ instance.argument("arg1", DataType.string, "value1")
instance.argument("arg2", DataType.int32, 42)
// NewInstance should have 3 subs: "TypeLeaf", "arg1", "arg2"
assertEquals(3, instance.subs.size)
- val sub1 = instance.subs[1] as DataField
- val sub2 = instance.subs[2] as DataField
+ val sub1 = instance.subs[1] as Input
+ val sub2 = instance.subs[2] as Input
assertEquals("arg1", sub1.name)
assertEquals("value1", sub1.getValue().simple)
assertEquals("arg2", sub2.name)
diff --git a/cgen-lib/src/test/java/generators/obj/out/ImportsBlockTests.kt b/cgen-lib/src/test/java/generators/obj/syntaxParseTree/ImportsBlockTests.kt
similarity index 94%
rename from cgen-lib/src/test/java/generators/obj/out/ImportsBlockTests.kt
rename to cgen-lib/src/test/java/generators/obj/syntaxParseTree/ImportsBlockTests.kt
index 05641097..3b756d3f 100644
--- a/cgen-lib/src/test/java/generators/obj/out/ImportsBlockTests.kt
+++ b/cgen-lib/src/test/java/generators/obj/syntaxParseTree/ImportsBlockTests.kt
@@ -1,4 +1,4 @@
-package generators.obj.out
+package generators.obj.syntaxParseTree
import org.junit.jupiter.api.Test
diff --git a/cgen-lib/src/test/kotlin/ce/treeio/DataTypeSerializerTest.kt b/cgen-lib/src/test/kotlin/ce/treeio/DataTypeSerializerTest.kt
index 02803e52..b4c61319 100644
--- a/cgen-lib/src/test/kotlin/ce/treeio/DataTypeSerializerTest.kt
+++ b/cgen-lib/src/test/kotlin/ce/treeio/DataTypeSerializerTest.kt
@@ -40,9 +40,9 @@ class DataTypeSerializerTest {
fun getStringDataType() {
val serializer = DataTypeSerializer()
Assertions.assertEquals("string",
- serializer.stringValue(DataType.string(canBeNull = false)))
+ serializer.stringValue(DataType.string))
Assertions.assertEquals("stringNullable",
- serializer.stringValue(DataType.string(canBeNull = true)))
+ serializer.stringValue(DataType.stringNullable))
val stringNotNull = serializer.fromStringValue("string")
val stringNullable = serializer.fromStringValue("stringNullable")
@@ -50,7 +50,7 @@ class DataTypeSerializerTest {
Assertions.assertTrue(stringNotNull is DataType.string)
Assertions.assertFalse(stringNotNull.canBeNull)
- Assertions.assertTrue(stringNullable is DataType.string)
+ Assertions.assertTrue(stringNullable is DataType.stringNullable)
Assertions.assertTrue(stringNullable.canBeNull)
}
}
\ No newline at end of file
diff --git a/cgen-lib/src/test/kotlin/ce/treeio/NodeDeserializerTest.kt b/cgen-lib/src/test/kotlin/ce/treeio/NodeDeserializerTest.kt
index dd4d20e5..8695cec3 100644
--- a/cgen-lib/src/test/kotlin/ce/treeio/NodeDeserializerTest.kt
+++ b/cgen-lib/src/test/kotlin/ce/treeio/NodeDeserializerTest.kt
@@ -1,6 +1,6 @@
package ce.treeio
-import generators.obj.out.CommentsBlock
+import generators.obj.syntaxParseTree.CommentsBlock
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Test
import org.w3c.dom.Element
diff --git a/cgen-lib/src/test/kotlin/ce/treeio/TreeFunctionsTest.kt b/cgen-lib/src/test/kotlin/ce/treeio/TreeFunctionsTest.kt
index c8655509..271975c7 100644
--- a/cgen-lib/src/test/kotlin/ce/treeio/TreeFunctionsTest.kt
+++ b/cgen-lib/src/test/kotlin/ce/treeio/TreeFunctionsTest.kt
@@ -1,7 +1,7 @@
package ce.treeio
-import generators.obj.input.NamespaceImpl
-import generators.obj.input.Node
+import generators.obj.abstractSyntaxTree.NamespaceImpl
+import generators.obj.abstractSyntaxTree.Node
import org.junit.jupiter.api.Assertions.*
class TreeFunctionsTest {
diff --git a/cgen-lib/src/test/kotlin/ce/treeio/XmlNodeDeserializersTests.kt b/cgen-lib/src/test/kotlin/ce/treeio/XmlNodeDeserializersTests.kt
index e542fe8f..3bafcc89 100644
--- a/cgen-lib/src/test/kotlin/ce/treeio/XmlNodeDeserializersTests.kt
+++ b/cgen-lib/src/test/kotlin/ce/treeio/XmlNodeDeserializersTests.kt
@@ -1,9 +1,9 @@
package ce.treeio
import ce.defs.DataType
-import generators.obj.input.ConstantDesc
-import generators.obj.input.ConstantsBlock
-import generators.obj.input.DataField
+import generators.obj.abstractSyntaxTree.ConstantDesc
+import generators.obj.abstractSyntaxTree.ConstantsBlock
+import generators.obj.abstractSyntaxTree.DataField
import org.junit.jupiter.api.Assertions
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.assertThrows
diff --git a/cgen-lib/src/test/kotlin/ce/treeio/XmlTreeReaderTest.kt b/cgen-lib/src/test/kotlin/ce/treeio/XmlTreeReaderTest.kt
index 7c1d97e9..628515e3 100644
--- a/cgen-lib/src/test/kotlin/ce/treeio/XmlTreeReaderTest.kt
+++ b/cgen-lib/src/test/kotlin/ce/treeio/XmlTreeReaderTest.kt
@@ -2,16 +2,16 @@ package ce.treeio
import ce.defs.DataType
import ce.defs.NotDefined
-import generators.obj.input.ConstantDesc
-import generators.obj.input.ConstantsBlock
-import generators.obj.input.DataField
-import generators.obj.input.NamespaceImpl
-import generators.obj.out.CommentsBlock
-import generators.obj.out.FileDataImpl
-import generators.obj.out.ImportsBlock
-import generators.obj.out.NamespaceDeclaration
-import generators.obj.out.OutputTree
-import generators.obj.out.RegionImpl
+import generators.obj.abstractSyntaxTree.ConstantDesc
+import generators.obj.abstractSyntaxTree.ConstantsBlock
+import generators.obj.abstractSyntaxTree.DataField
+import generators.obj.abstractSyntaxTree.NamespaceImpl
+import generators.obj.syntaxParseTree.CommentsBlock
+import generators.obj.syntaxParseTree.FileDataImpl
+import generators.obj.syntaxParseTree.ImportsBlock
+import generators.obj.syntaxParseTree.NamespaceDeclaration
+import generators.obj.syntaxParseTree.OutputTree
+import generators.obj.syntaxParseTree.RegionImpl
import org.junit.jupiter.api.Assertions
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Assertions.assertFalse
diff --git a/cgen-parser/src/main/kotlin/ce/parser/domain/JsonToDataClassUseCase.kt b/cgen-parser/src/main/kotlin/ce/parser/domain/JsonToDataClassUseCase.kt
index 39a3277c..fe06ae2a 100644
--- a/cgen-parser/src/main/kotlin/ce/parser/domain/JsonToDataClassUseCase.kt
+++ b/cgen-parser/src/main/kotlin/ce/parser/domain/JsonToDataClassUseCase.kt
@@ -3,8 +3,8 @@ package ce.parser.domain
import ce.defs.DataType
import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.databind.SerializationFeature
-import generators.obj.input.DataClass
-import generators.obj.input.Node
+import generators.obj.abstractSyntaxTree.DataClass
+import generators.obj.abstractSyntaxTree.Node
import javax.inject.Inject
interface JsonToDataClassUseCase {
@@ -27,7 +27,7 @@ class JsonToDataClassUseCaseImpl @Inject constructor(): JsonToDataClassUseCase {
child.isBoolean -> dataClass.field(childName, DataType.bool)
child.isDouble -> dataClass.field(childName, DataType.float64)
child.isFloat -> dataClass.field(childName, DataType.float32)
- child.isTextual -> dataClass.field(childName, DataType.string(true))
+ child.isTextual -> dataClass.field(childName, DataType.stringNullable)
child.isLong -> dataClass.field(childName, DataType.int64)
child.isNumber -> dataClass.field(childName, DataType.int32)
// child.isArray
diff --git a/cgen-parser/src/test/java/ce/parser/domain/JsonToDataClassUseCaseImplTest.kt b/cgen-parser/src/test/java/ce/parser/domain/JsonToDataClassUseCaseImplTest.kt
index 06db6f82..c8391ffe 100644
--- a/cgen-parser/src/test/java/ce/parser/domain/JsonToDataClassUseCaseImplTest.kt
+++ b/cgen-parser/src/test/java/ce/parser/domain/JsonToDataClassUseCaseImplTest.kt
@@ -1,6 +1,6 @@
package ce.parser.domain
-import generators.obj.input.DataClass
+import generators.obj.abstractSyntaxTree.DataClass
import org.junit.jupiter.api.Assertions.*
import org.junit.jupiter.api.Disabled
import org.junit.jupiter.api.Test
diff --git a/test/dataclass.kts b/test/dataclass.kts
index 40384346..271eecf5 100644
--- a/test/dataclass.kts
+++ b/test/dataclass.kts
@@ -1,5 +1,5 @@
import ce.defs.*
-import generators.obj.input.DataField
+import generators.obj.abstractSyntaxTree.DataField
namespace("com.goldman").apply {
getNamespace("data").apply {
@@ -12,7 +12,7 @@ namespace("com.goldman").apply {
val money = dataClass("Money").apply {
field("sum", DataType.int32)
field("currency", DataType.custom(currency))
- field("name", DataType.string(canBeNull = true))
+ field("name", DataType.stringNullable)
field("attached", DataType.bool, false)
}
money.addstaticfield("EMPTY", DataType.custom(money), money.instance())
diff --git a/test/enumGoldErrors.groovy b/test/enumGoldErrors.groovy
index 7c5901e2..46b9d021 100644
--- a/test/enumGoldErrors.groovy
+++ b/test/enumGoldErrors.groovy
@@ -14,8 +14,8 @@ modeType.add("OEXEC", 3)
modeType.add("OTRUNC", 0x10)
ns.dataClass("GroovyData").tap {
- field("firstname", new DataType.string(true), NotDefined.INSTANCE)
- field("secondname", new DataType.string())
+ field("firstname", DataType.stringNullable.INSTANCE, NotDefined.INSTANCE)
+ field("secondname", DataType.string.INSTANCE)
field("age", DataType.int32.INSTANCE, 35)
}
diff --git a/test/interface.kts b/test/interface.kts
index 666a4b20..db51b74c 100644
--- a/test/interface.kts
+++ b/test/interface.kts
@@ -1,5 +1,5 @@
import ce.defs.*
-import generators.obj.input.*
+import generators.obj.abstractSyntaxTree.*
namespace("com.goldman.data").apply {
declareInterface("DataReader").apply {