Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 11 additions & 9 deletions AstClasses.ipynb
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
{
"cells": [
{
"metadata": {},
"cell_type": "markdown",
"id": "f72be856a0eccf2e",
"metadata": {},
"source": [
"# AST tree nodes\n",
"\n",
Expand All @@ -19,19 +20,20 @@
"</FieldNode>\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": {
Expand Down
42 changes: 35 additions & 7 deletions AstTransformations.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down Expand Up @@ -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)"
]
Expand All @@ -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",
"<NewInstance>\n",
" <TypeLeaf>some.class</TypeLeaf>\n",
" <Input \"a\"><TypeLeaf>string</TypeLeaf><DataValue \"someValue\" /></Input>\n",
" <Input \"b\"><TypeLeaf>int32</TypeLeaf><DataValue \"10\" /></Input>\n",
"</NewInstance>\n",
"```\n",
"\n",
"Transforms to the:\n",
"\n",
"```\n",
"<RValue>\n",
" <Constructor>\n",
" <Arguments>\n",
" <RValue>\n",
" <VarName a><=><\"someValue\">\n",
" </RValue>\n",
" <,>\n",
" <RValue>\n",
" <VarName b><=><10>\n",
" </RValue>\n",
" </Arguments>\n",
" </Constructor>\n",
"</RValue>\n",
"```"
]
}
],
"metadata": {
Expand Down
2 changes: 1 addition & 1 deletion InputClasses.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
4 changes: 2 additions & 2 deletions cgen-lib/cgen/dataclass.kts
Original file line number Diff line number Diff line change
Expand Up @@ -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, "")
}
}
4 changes: 2 additions & 2 deletions cgen-lib/cgen/enums.kts
Original file line number Diff line number Diff line change
Expand Up @@ -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")
Expand All @@ -22,7 +22,7 @@ namespace("ce.defs").apply {
}

dataClass("TargetConfiguration").apply {
field("outputFolder", DataType.string(), "")
field("outputFolder", DataType.string, "")
field("type", DataType.userClassTest2(targetEnum))
}
}
7 changes: 4 additions & 3 deletions cgen-lib/src/main/kotlin/ce/defs/DataType.kt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package ce.defs

import generators.obj.input.Block
import generators.obj.abstractSyntaxTree.Block

sealed class DataType(
val canBeNull: Boolean = false
Expand Down Expand Up @@ -64,15 +64,16 @@ 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)
class array(val elementDataType: DataType, nullable : Boolean = false) : DataType(nullable)
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)
}

6 changes: 3 additions & 3 deletions cgen-lib/src/main/kotlin/ce/defs/DataValue.kt
Original file line number Diff line number Diff line change
@@ -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 = "",
Expand Down
2 changes: 1 addition & 1 deletion cgen-lib/src/main/kotlin/ce/defs/Funcs.kt
Original file line number Diff line number Diff line change
@@ -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
Expand Down
2 changes: 1 addition & 1 deletion cgen-lib/src/main/kotlin/ce/defs/TargetExt.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
Original file line number Diff line number Diff line change
@@ -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 {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
Original file line number Diff line number Diff line change
@@ -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 {
Expand Down
Original file line number Diff line number Diff line change
@@ -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 {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -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 {
Expand Down
Original file line number Diff line number Diff line change
@@ -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()
Expand Down
Original file line number Diff line number Diff line change
@@ -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 {
Expand Down
Original file line number Diff line number Diff line change
@@ -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 {
Expand Down
Original file line number Diff line number Diff line change
@@ -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) {
Expand Down
Original file line number Diff line number Diff line change
@@ -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 {
Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -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 {
Expand Down
Original file line number Diff line number Diff line change
@@ -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 {
Expand Down
Original file line number Diff line number Diff line change
@@ -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) :
Expand Down
Loading
Loading