diff --git a/src/main/kotlin/SMNP.kt b/src/main/kotlin/SMNP.kt deleted file mode 100644 index c39ae61..0000000 --- a/src/main/kotlin/SMNP.kt +++ /dev/null @@ -1,6 +0,0 @@ -import interpreter.Interpreter - -fun main(args: Array) { - val interpreter = Interpreter() - interpreter.run("extend list as this { function play() { play(this); return null; } function x() {} }") -} \ No newline at end of file diff --git a/src/main/kotlin/dsl/ast/model/node/BoolLiteralNode.kt b/src/main/kotlin/dsl/ast/model/node/BoolLiteralNode.kt deleted file mode 100644 index 95babd2..0000000 --- a/src/main/kotlin/dsl/ast/model/node/BoolLiteralNode.kt +++ /dev/null @@ -1,5 +0,0 @@ -package dsl.ast.model.node - -import dsl.token.model.entity.Token - -class BoolLiteralNode(token: Token) : AtomAbstractNode(token) \ No newline at end of file diff --git a/src/main/kotlin/dsl/ast/model/node/FloatLiteralNode.kt b/src/main/kotlin/dsl/ast/model/node/FloatLiteralNode.kt deleted file mode 100644 index 82bb965..0000000 --- a/src/main/kotlin/dsl/ast/model/node/FloatLiteralNode.kt +++ /dev/null @@ -1,5 +0,0 @@ -package dsl.ast.model.node - -import dsl.token.model.entity.Token - -class FloatLiteralNode(token: Token) : AtomAbstractNode(token) \ No newline at end of file diff --git a/src/main/kotlin/dsl/ast/model/node/IdentifierNode.kt b/src/main/kotlin/dsl/ast/model/node/IdentifierNode.kt deleted file mode 100644 index 2cc9536..0000000 --- a/src/main/kotlin/dsl/ast/model/node/IdentifierNode.kt +++ /dev/null @@ -1,5 +0,0 @@ -package dsl.ast.model.node - -import dsl.token.model.entity.Token - -class IdentifierNode(token: Token) : AtomAbstractNode(token) \ No newline at end of file diff --git a/src/main/kotlin/dsl/ast/model/node/IntegerLiteralNode.kt b/src/main/kotlin/dsl/ast/model/node/IntegerLiteralNode.kt deleted file mode 100644 index 804b77f..0000000 --- a/src/main/kotlin/dsl/ast/model/node/IntegerLiteralNode.kt +++ /dev/null @@ -1,5 +0,0 @@ -package dsl.ast.model.node - -import dsl.token.model.entity.Token - -class IntegerLiteralNode(token: Token) : AtomAbstractNode(token) \ No newline at end of file diff --git a/src/main/kotlin/dsl/ast/model/node/NoneNode.kt b/src/main/kotlin/dsl/ast/model/node/NoneNode.kt deleted file mode 100644 index 2e6b39a..0000000 --- a/src/main/kotlin/dsl/ast/model/node/NoneNode.kt +++ /dev/null @@ -1,7 +0,0 @@ -package dsl.ast.model.node - -import dsl.token.model.entity.TokenPosition - -class NoneNode : Node(0, - TokenPosition.NONE -) \ No newline at end of file diff --git a/src/main/kotlin/dsl/ast/model/node/NoteLiteralNode.kt b/src/main/kotlin/dsl/ast/model/node/NoteLiteralNode.kt deleted file mode 100644 index 3d7abf2..0000000 --- a/src/main/kotlin/dsl/ast/model/node/NoteLiteralNode.kt +++ /dev/null @@ -1,5 +0,0 @@ -package dsl.ast.model.node - -import dsl.token.model.entity.Token - -class NoteLiteralNode(token: Token) : AtomAbstractNode(token) \ No newline at end of file diff --git a/src/main/kotlin/dsl/ast/model/node/RootNode.kt b/src/main/kotlin/dsl/ast/model/node/RootNode.kt deleted file mode 100644 index d52e56a..0000000 --- a/src/main/kotlin/dsl/ast/model/node/RootNode.kt +++ /dev/null @@ -1,5 +0,0 @@ -package dsl.ast.model.node - -import dsl.token.model.entity.TokenPosition - -class RootNode(nodes: List, position: TokenPosition) : Node(nodes, position) \ No newline at end of file diff --git a/src/main/kotlin/dsl/ast/model/node/StringLiteralNode.kt b/src/main/kotlin/dsl/ast/model/node/StringLiteralNode.kt deleted file mode 100644 index d5d62f4..0000000 --- a/src/main/kotlin/dsl/ast/model/node/StringLiteralNode.kt +++ /dev/null @@ -1,5 +0,0 @@ -package dsl.ast.model.node - -import dsl.token.model.entity.Token - -class StringLiteralNode(token: Token) : AtomAbstractNode(token) \ No newline at end of file diff --git a/src/main/kotlin/dsl/ast/model/node/TokenNode.kt b/src/main/kotlin/dsl/ast/model/node/TokenNode.kt deleted file mode 100644 index 3b1f4ed..0000000 --- a/src/main/kotlin/dsl/ast/model/node/TokenNode.kt +++ /dev/null @@ -1,5 +0,0 @@ -package dsl.ast.model.node - -import dsl.token.model.entity.Token - -class TokenNode(token: Token) : AtomAbstractNode(token) \ No newline at end of file diff --git a/src/main/kotlin/dsl/ast/parser/BoolLiteralParser.kt b/src/main/kotlin/dsl/ast/parser/BoolLiteralParser.kt deleted file mode 100644 index 646eb27..0000000 --- a/src/main/kotlin/dsl/ast/parser/BoolLiteralParser.kt +++ /dev/null @@ -1,12 +0,0 @@ -package dsl.ast.parser - -import dsl.ast.model.entity.ParserOutput -import dsl.ast.model.node.BoolLiteralNode -import dsl.token.model.entity.TokenList -import dsl.token.model.enumeration.TokenType - -class BoolLiteralParser : Parser() { - override fun tryToParse(input: TokenList): ParserOutput { - return terminal(TokenType.BOOL) { BoolLiteralNode(it) }.parse(input) - } -} \ No newline at end of file diff --git a/src/main/kotlin/dsl/ast/parser/FloatLiteralParser.kt b/src/main/kotlin/dsl/ast/parser/FloatLiteralParser.kt deleted file mode 100644 index f0026cf..0000000 --- a/src/main/kotlin/dsl/ast/parser/FloatLiteralParser.kt +++ /dev/null @@ -1,12 +0,0 @@ -package dsl.ast.parser - -import dsl.ast.model.entity.ParserOutput -import dsl.ast.model.node.FloatLiteralNode -import dsl.token.model.entity.TokenList -import dsl.token.model.enumeration.TokenType - -class FloatLiteralParser : Parser() { - override fun tryToParse(input: TokenList): ParserOutput { - return terminal(TokenType.FLOAT) { FloatLiteralNode(it) }.parse(input) - } -} \ No newline at end of file diff --git a/src/main/kotlin/dsl/ast/parser/IntegerLiteralParser.kt b/src/main/kotlin/dsl/ast/parser/IntegerLiteralParser.kt deleted file mode 100644 index 227d76a..0000000 --- a/src/main/kotlin/dsl/ast/parser/IntegerLiteralParser.kt +++ /dev/null @@ -1,12 +0,0 @@ -package dsl.ast.parser - -import dsl.ast.model.entity.ParserOutput -import dsl.ast.model.node.IntegerLiteralNode -import dsl.token.model.entity.TokenList -import dsl.token.model.enumeration.TokenType - -class IntegerLiteralParser : Parser() { - override fun tryToParse(input: TokenList): ParserOutput { - return terminal(TokenType.INTEGER) { IntegerLiteralNode(it) }.parse(input) - } -} \ No newline at end of file diff --git a/src/main/kotlin/dsl/ast/parser/NoteLiteralParser.kt b/src/main/kotlin/dsl/ast/parser/NoteLiteralParser.kt deleted file mode 100644 index b958398..0000000 --- a/src/main/kotlin/dsl/ast/parser/NoteLiteralParser.kt +++ /dev/null @@ -1,12 +0,0 @@ -package dsl.ast.parser - -import dsl.ast.model.entity.ParserOutput -import dsl.ast.model.node.NoteLiteralNode -import dsl.token.model.entity.TokenList -import dsl.token.model.enumeration.TokenType - -class NoteLiteralParser : Parser() { - override fun tryToParse(input: TokenList): ParserOutput { - return terminal(TokenType.NOTE) { NoteLiteralNode(it) }.parse(input) - } -} \ No newline at end of file diff --git a/src/main/kotlin/dsl/ast/parser/StringLiteralParser.kt b/src/main/kotlin/dsl/ast/parser/StringLiteralParser.kt deleted file mode 100644 index 8a19106..0000000 --- a/src/main/kotlin/dsl/ast/parser/StringLiteralParser.kt +++ /dev/null @@ -1,12 +0,0 @@ -package dsl.ast.parser - -import dsl.ast.model.entity.ParserOutput -import dsl.ast.model.node.StringLiteralNode -import dsl.token.model.entity.TokenList -import dsl.token.model.enumeration.TokenType - -class StringLiteralParser : Parser() { - override fun tryToParse(input: TokenList): ParserOutput { - return terminal(TokenType.STRING) { StringLiteralNode(it) }.parse(input) - } -} \ No newline at end of file diff --git a/src/main/kotlin/evaluation/environment/Environment.kt b/src/main/kotlin/evaluation/environment/Environment.kt deleted file mode 100644 index a6d75c1..0000000 --- a/src/main/kotlin/evaluation/environment/Environment.kt +++ /dev/null @@ -1,4 +0,0 @@ -package evaluation.environment - -class Environment { -} \ No newline at end of file diff --git a/src/main/kotlin/evaluation/evaluator/BoolLiteralEvaluator.kt b/src/main/kotlin/evaluation/evaluator/BoolLiteralEvaluator.kt deleted file mode 100644 index a7ad0ee..0000000 --- a/src/main/kotlin/evaluation/evaluator/BoolLiteralEvaluator.kt +++ /dev/null @@ -1,14 +0,0 @@ -package evaluation.evaluator - -import data.model.Value -import dsl.ast.model.node.BoolLiteralNode -import dsl.ast.model.node.Node -import evaluation.environment.Environment -import evaluation.model.entity.EvaluatorOutput - -class BoolLiteralEvaluator : Evaluator { - override fun evaluate(node: Node, environment: Environment): EvaluatorOutput { - val value = (node as BoolLiteralNode).token.value as Boolean - return EvaluatorOutput.value(Value.bool(value)) - } -} \ No newline at end of file diff --git a/src/main/kotlin/evaluation/evaluator/FloatLiteralEvaluator.kt b/src/main/kotlin/evaluation/evaluator/FloatLiteralEvaluator.kt deleted file mode 100644 index c362eb8..0000000 --- a/src/main/kotlin/evaluation/evaluator/FloatLiteralEvaluator.kt +++ /dev/null @@ -1,14 +0,0 @@ -package evaluation.evaluator - -import data.model.Value -import dsl.ast.model.node.FloatLiteralNode -import dsl.ast.model.node.Node -import evaluation.environment.Environment -import evaluation.model.entity.EvaluatorOutput - -class FloatLiteralEvaluator : Evaluator { - override fun evaluate(node: Node, environment: Environment): EvaluatorOutput { - val value = (node as FloatLiteralNode).token.value as Float - return EvaluatorOutput.value(Value.float(value)) - } -} \ No newline at end of file diff --git a/src/main/kotlin/evaluation/evaluator/IntegerLiteralEvaluator.kt b/src/main/kotlin/evaluation/evaluator/IntegerLiteralEvaluator.kt deleted file mode 100644 index fcf598c..0000000 --- a/src/main/kotlin/evaluation/evaluator/IntegerLiteralEvaluator.kt +++ /dev/null @@ -1,14 +0,0 @@ -package evaluation.evaluator - -import data.model.Value -import dsl.ast.model.node.IntegerLiteralNode -import dsl.ast.model.node.Node -import evaluation.environment.Environment -import evaluation.model.entity.EvaluatorOutput - -class IntegerLiteralEvaluator : Evaluator { - override fun evaluate(node: Node, environment: Environment): EvaluatorOutput { - val value = (node as IntegerLiteralNode).token.value as Int - return EvaluatorOutput.value(Value.int(value)) - } -} \ No newline at end of file diff --git a/src/main/kotlin/evaluation/evaluator/NoteLiteralEvaluator.kt b/src/main/kotlin/evaluation/evaluator/NoteLiteralEvaluator.kt deleted file mode 100644 index aa8736d..0000000 --- a/src/main/kotlin/evaluation/evaluator/NoteLiteralEvaluator.kt +++ /dev/null @@ -1,15 +0,0 @@ -package evaluation.evaluator - -import data.entity.Note -import data.model.Value -import dsl.ast.model.node.Node -import dsl.ast.model.node.NoteLiteralNode -import evaluation.environment.Environment -import evaluation.model.entity.EvaluatorOutput - -class NoteLiteralEvaluator : Evaluator { - override fun evaluate(node: Node, environment: Environment): EvaluatorOutput { - val value = (node as NoteLiteralNode).token.value as Note - return EvaluatorOutput.value(Value.note(value)) - } -} \ No newline at end of file diff --git a/src/main/kotlin/evaluation/evaluator/StringLiteralEvaluator.kt b/src/main/kotlin/evaluation/evaluator/StringLiteralEvaluator.kt deleted file mode 100644 index fc6908f..0000000 --- a/src/main/kotlin/evaluation/evaluator/StringLiteralEvaluator.kt +++ /dev/null @@ -1,14 +0,0 @@ -package evaluation.evaluator - -import data.model.Value -import dsl.ast.model.node.Node -import dsl.ast.model.node.StringLiteralNode -import evaluation.environment.Environment -import evaluation.model.entity.EvaluatorOutput - -class StringLiteralEvaluator : Evaluator { - override fun evaluate(node: Node, environment: Environment): EvaluatorOutput { - val value = (node as StringLiteralNode).token.value as String - return EvaluatorOutput.value(Value.string(value)) - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/smnp/SMNP.kt b/src/main/kotlin/io/smnp/SMNP.kt new file mode 100644 index 0000000..e81605c --- /dev/null +++ b/src/main/kotlin/io/smnp/SMNP.kt @@ -0,0 +1,5 @@ +package io.smnp + +fun main(args: Array) { + +} \ No newline at end of file diff --git a/src/main/kotlin/data/entity/Note.kt b/src/main/kotlin/io/smnp/data/entity/Note.kt similarity index 90% rename from src/main/kotlin/data/entity/Note.kt rename to src/main/kotlin/io/smnp/data/entity/Note.kt index 992bb44..0afbac6 100644 --- a/src/main/kotlin/data/entity/Note.kt +++ b/src/main/kotlin/io/smnp/data/entity/Note.kt @@ -1,6 +1,6 @@ -package data.entity +package io.smnp.data.entity -import data.enumeration.Pitch +import io.smnp.data.enumeration.Pitch class Note private constructor(val pitch: Pitch, val octave: Int, val duration: Int, val dot: Boolean) { data class Builder(var pitch: Pitch = Pitch.A, var octave: Int = 4, var duration: Int = 4, var dot: Boolean = false) { diff --git a/src/main/kotlin/data/enumeration/DataType.kt b/src/main/kotlin/io/smnp/data/enumeration/DataType.kt similarity index 93% rename from src/main/kotlin/data/enumeration/DataType.kt rename to src/main/kotlin/io/smnp/data/enumeration/DataType.kt index bbee3e8..497442e 100644 --- a/src/main/kotlin/data/enumeration/DataType.kt +++ b/src/main/kotlin/io/smnp/data/enumeration/DataType.kt @@ -1,6 +1,6 @@ -package data.enumeration +package io.smnp.data.enumeration -import data.entity.Note +import io.smnp.data.entity.Note import kotlin.reflect.KClass enum class DataType(val kotlinType: KClass?) { diff --git a/src/main/kotlin/data/enumeration/Pitch.kt b/src/main/kotlin/io/smnp/data/enumeration/Pitch.kt similarity index 97% rename from src/main/kotlin/data/enumeration/Pitch.kt rename to src/main/kotlin/io/smnp/data/enumeration/Pitch.kt index fa3dfcf..fc01a08 100644 --- a/src/main/kotlin/data/enumeration/Pitch.kt +++ b/src/main/kotlin/io/smnp/data/enumeration/Pitch.kt @@ -1,4 +1,4 @@ -package data.enumeration +package io.smnp.data.enumeration enum class Pitch { C, C_S, D, D_S, E, F, F_S, G, G_S, A, A_S, H; diff --git a/src/main/kotlin/data/model/Value.kt b/src/main/kotlin/io/smnp/data/model/Value.kt similarity index 94% rename from src/main/kotlin/data/model/Value.kt rename to src/main/kotlin/io/smnp/data/model/Value.kt index f7014c2..1784637 100644 --- a/src/main/kotlin/data/model/Value.kt +++ b/src/main/kotlin/io/smnp/data/model/Value.kt @@ -1,7 +1,7 @@ -package data.model +package io.smnp.data.model -import data.entity.Note -import data.enumeration.DataType +import io.smnp.data.entity.Note +import io.smnp.data.enumeration.DataType class Value private constructor(val type: DataType, val value: Any?, val properties: Map = emptyMap()) { init { diff --git a/src/main/kotlin/dsl/ast/model/entity/ParserOutput.kt b/src/main/kotlin/io/smnp/dsl/ast/model/entity/ParserOutput.kt similarity index 78% rename from src/main/kotlin/dsl/ast/model/entity/ParserOutput.kt rename to src/main/kotlin/io/smnp/dsl/ast/model/entity/ParserOutput.kt index 373e6cc..0af4ba4 100644 --- a/src/main/kotlin/dsl/ast/model/entity/ParserOutput.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/model/entity/ParserOutput.kt @@ -1,7 +1,7 @@ -package dsl.ast.model.entity +package io.smnp.dsl.ast.model.entity -import dsl.ast.model.enumeration.ParsingResult -import dsl.ast.model.node.Node +import io.smnp.dsl.ast.model.enumeration.ParsingResult +import io.smnp.dsl.ast.model.node.Node class ParserOutput private constructor(val result: ParsingResult, val node: Node) { fun map(mapper: (Node) -> Node): ParserOutput { diff --git a/src/main/kotlin/dsl/ast/model/enumeration/ParsingResult.kt b/src/main/kotlin/io/smnp/dsl/ast/model/enumeration/ParsingResult.kt similarity index 53% rename from src/main/kotlin/dsl/ast/model/enumeration/ParsingResult.kt rename to src/main/kotlin/io/smnp/dsl/ast/model/enumeration/ParsingResult.kt index c0aafc5..2e3b7f5 100644 --- a/src/main/kotlin/dsl/ast/model/enumeration/ParsingResult.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/model/enumeration/ParsingResult.kt @@ -1,4 +1,4 @@ -package dsl.ast.model.enumeration +package io.smnp.dsl.ast.model.enumeration enum class ParsingResult { OK, diff --git a/src/main/kotlin/dsl/ast/model/node/AbstractIterableNode.kt b/src/main/kotlin/io/smnp/dsl/ast/model/node/AbstractIterableNode.kt similarity index 64% rename from src/main/kotlin/dsl/ast/model/node/AbstractIterableNode.kt rename to src/main/kotlin/io/smnp/dsl/ast/model/node/AbstractIterableNode.kt index b2a917b..2a32367 100644 --- a/src/main/kotlin/dsl/ast/model/node/AbstractIterableNode.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/model/node/AbstractIterableNode.kt @@ -1,6 +1,6 @@ -package dsl.ast.model.node +package io.smnp.dsl.ast.model.node -import dsl.token.model.entity.TokenPosition +import io.smnp.dsl.token.model.entity.TokenPosition abstract class AbstractIterableNode(items: List, position: TokenPosition) : Node(items, position) { val items: List diff --git a/src/main/kotlin/dsl/ast/model/node/AccessOperatorNode.kt b/src/main/kotlin/io/smnp/dsl/ast/model/node/AccessOperatorNode.kt similarity index 76% rename from src/main/kotlin/dsl/ast/model/node/AccessOperatorNode.kt rename to src/main/kotlin/io/smnp/dsl/ast/model/node/AccessOperatorNode.kt index 0175781..23fe5a0 100644 --- a/src/main/kotlin/dsl/ast/model/node/AccessOperatorNode.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/model/node/AccessOperatorNode.kt @@ -1,3 +1,3 @@ -package dsl.ast.model.node +package io.smnp.dsl.ast.model.node class AccessOperatorNode(lhs: Node, operator: Node, rhs: Node) : BinaryOperatorAbstractNode(lhs, operator, rhs) \ No newline at end of file diff --git a/src/main/kotlin/dsl/ast/model/node/AssignmentOperatorNode.kt b/src/main/kotlin/io/smnp/dsl/ast/model/node/AssignmentOperatorNode.kt similarity index 76% rename from src/main/kotlin/dsl/ast/model/node/AssignmentOperatorNode.kt rename to src/main/kotlin/io/smnp/dsl/ast/model/node/AssignmentOperatorNode.kt index 468ec31..cc7cb0a 100644 --- a/src/main/kotlin/dsl/ast/model/node/AssignmentOperatorNode.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/model/node/AssignmentOperatorNode.kt @@ -1,3 +1,3 @@ -package dsl.ast.model.node +package io.smnp.dsl.ast.model.node class AssignmentOperatorNode(lhs: Node, operator: Node, rhs: Node) : BinaryOperatorAbstractNode(lhs, operator, rhs) \ No newline at end of file diff --git a/src/main/kotlin/dsl/ast/model/node/AtomAbstractNode.kt b/src/main/kotlin/io/smnp/dsl/ast/model/node/AtomAbstractNode.kt similarity index 81% rename from src/main/kotlin/dsl/ast/model/node/AtomAbstractNode.kt rename to src/main/kotlin/io/smnp/dsl/ast/model/node/AtomAbstractNode.kt index c03cdfb..6cbe089 100644 --- a/src/main/kotlin/dsl/ast/model/node/AtomAbstractNode.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/model/node/AtomAbstractNode.kt @@ -1,6 +1,6 @@ -package dsl.ast.model.node +package io.smnp.dsl.ast.model.node -import dsl.token.model.entity.Token +import io.smnp.dsl.token.model.entity.Token abstract class AtomAbstractNode(val token: Token) : Node(1, token.position) { override fun pretty(prefix: String, last: Boolean, first: Boolean) { diff --git a/src/main/kotlin/dsl/ast/model/node/BinaryOperatorAbstractNode.kt b/src/main/kotlin/io/smnp/dsl/ast/model/node/BinaryOperatorAbstractNode.kt similarity index 90% rename from src/main/kotlin/dsl/ast/model/node/BinaryOperatorAbstractNode.kt rename to src/main/kotlin/io/smnp/dsl/ast/model/node/BinaryOperatorAbstractNode.kt index ec5d5d7..94d6a22 100644 --- a/src/main/kotlin/dsl/ast/model/node/BinaryOperatorAbstractNode.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/model/node/BinaryOperatorAbstractNode.kt @@ -1,4 +1,4 @@ -package dsl.ast.model.node +package io.smnp.dsl.ast.model.node abstract class BinaryOperatorAbstractNode(lhs: Node, operator: Node, rhs: Node) : Node(3, operator.position) { val lhs: Node diff --git a/src/main/kotlin/dsl/ast/model/node/BlockNode.kt b/src/main/kotlin/io/smnp/dsl/ast/model/node/BlockNode.kt similarity index 86% rename from src/main/kotlin/dsl/ast/model/node/BlockNode.kt rename to src/main/kotlin/io/smnp/dsl/ast/model/node/BlockNode.kt index c6129f2..79b7597 100644 --- a/src/main/kotlin/dsl/ast/model/node/BlockNode.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/model/node/BlockNode.kt @@ -1,4 +1,4 @@ -package dsl.ast.model.node +package io.smnp.dsl.ast.model.node class BlockNode(begin: Node, statements: List, end: Node) : Node(statements, begin.position) { val statements: List diff --git a/src/main/kotlin/io/smnp/dsl/ast/model/node/BoolLiteralNode.kt b/src/main/kotlin/io/smnp/dsl/ast/model/node/BoolLiteralNode.kt new file mode 100644 index 0000000..82901e4 --- /dev/null +++ b/src/main/kotlin/io/smnp/dsl/ast/model/node/BoolLiteralNode.kt @@ -0,0 +1,5 @@ +package io.smnp.dsl.ast.model.node + +import io.smnp.dsl.token.model.entity.Token + +class BoolLiteralNode(token: Token) : AtomAbstractNode(token) \ No newline at end of file diff --git a/src/main/kotlin/dsl/ast/model/node/ConditionNode.kt b/src/main/kotlin/io/smnp/dsl/ast/model/node/ConditionNode.kt similarity index 92% rename from src/main/kotlin/dsl/ast/model/node/ConditionNode.kt rename to src/main/kotlin/io/smnp/dsl/ast/model/node/ConditionNode.kt index 8f9a691..461d4ba 100644 --- a/src/main/kotlin/dsl/ast/model/node/ConditionNode.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/model/node/ConditionNode.kt @@ -1,4 +1,4 @@ -package dsl.ast.model.node +package io.smnp.dsl.ast.model.node class ConditionNode(trueBranchToken: Node, condition: Node, trueBranch: Node, falseBranchToken: Node, falseBranch: Node) : Node(3, trueBranchToken.position) { val condition: Node diff --git a/src/main/kotlin/dsl/ast/model/node/ExtendNode.kt b/src/main/kotlin/io/smnp/dsl/ast/model/node/ExtendNode.kt similarity index 80% rename from src/main/kotlin/dsl/ast/model/node/ExtendNode.kt rename to src/main/kotlin/io/smnp/dsl/ast/model/node/ExtendNode.kt index 4f4f783..fbe701c 100644 --- a/src/main/kotlin/dsl/ast/model/node/ExtendNode.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/model/node/ExtendNode.kt @@ -1,6 +1,6 @@ -package dsl.ast.model.node +package io.smnp.dsl.ast.model.node -import dsl.token.model.entity.TokenPosition +import io.smnp.dsl.token.model.entity.TokenPosition class ExtendNode(type: Node, identifier: Node, functions: Node, position: TokenPosition) : Node(3, position) { val type: Node diff --git a/src/main/kotlin/io/smnp/dsl/ast/model/node/FloatLiteralNode.kt b/src/main/kotlin/io/smnp/dsl/ast/model/node/FloatLiteralNode.kt new file mode 100644 index 0000000..b704831 --- /dev/null +++ b/src/main/kotlin/io/smnp/dsl/ast/model/node/FloatLiteralNode.kt @@ -0,0 +1,5 @@ +package io.smnp.dsl.ast.model.node + +import io.smnp.dsl.token.model.entity.Token + +class FloatLiteralNode(token: Token) : AtomAbstractNode(token) \ No newline at end of file diff --git a/src/main/kotlin/dsl/ast/model/node/FunctionCallArgumentsNode.kt b/src/main/kotlin/io/smnp/dsl/ast/model/node/FunctionCallArgumentsNode.kt similarity index 57% rename from src/main/kotlin/dsl/ast/model/node/FunctionCallArgumentsNode.kt rename to src/main/kotlin/io/smnp/dsl/ast/model/node/FunctionCallArgumentsNode.kt index c7cd45c..a5e89b2 100644 --- a/src/main/kotlin/dsl/ast/model/node/FunctionCallArgumentsNode.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/model/node/FunctionCallArgumentsNode.kt @@ -1,5 +1,5 @@ -package dsl.ast.model.node +package io.smnp.dsl.ast.model.node -import dsl.token.model.entity.TokenPosition +import io.smnp.dsl.token.model.entity.TokenPosition class FunctionCallArgumentsNode(items: List, position: TokenPosition) : AbstractIterableNode(items, position) \ No newline at end of file diff --git a/src/main/kotlin/dsl/ast/model/node/FunctionCallNode.kt b/src/main/kotlin/io/smnp/dsl/ast/model/node/FunctionCallNode.kt similarity index 88% rename from src/main/kotlin/dsl/ast/model/node/FunctionCallNode.kt rename to src/main/kotlin/io/smnp/dsl/ast/model/node/FunctionCallNode.kt index 25593a8..bc61c0f 100644 --- a/src/main/kotlin/dsl/ast/model/node/FunctionCallNode.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/model/node/FunctionCallNode.kt @@ -1,4 +1,4 @@ -package dsl.ast.model.node +package io.smnp.dsl.ast.model.node class FunctionCallNode(identifier: Node, arguments: Node) : Node(2, identifier.position) { val identifier: Node diff --git a/src/main/kotlin/dsl/ast/model/node/FunctionDefinitionArgumentsNode.kt b/src/main/kotlin/io/smnp/dsl/ast/model/node/FunctionDefinitionArgumentsNode.kt similarity index 58% rename from src/main/kotlin/dsl/ast/model/node/FunctionDefinitionArgumentsNode.kt rename to src/main/kotlin/io/smnp/dsl/ast/model/node/FunctionDefinitionArgumentsNode.kt index 839b6b6..b330e00 100644 --- a/src/main/kotlin/dsl/ast/model/node/FunctionDefinitionArgumentsNode.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/model/node/FunctionDefinitionArgumentsNode.kt @@ -1,5 +1,5 @@ -package dsl.ast.model.node +package io.smnp.dsl.ast.model.node -import dsl.token.model.entity.TokenPosition +import io.smnp.dsl.token.model.entity.TokenPosition class FunctionDefinitionArgumentsNode(items: List, position: TokenPosition) : AbstractIterableNode(items, position) \ No newline at end of file diff --git a/src/main/kotlin/dsl/ast/model/node/FunctionDefinitionNode.kt b/src/main/kotlin/io/smnp/dsl/ast/model/node/FunctionDefinitionNode.kt similarity index 81% rename from src/main/kotlin/dsl/ast/model/node/FunctionDefinitionNode.kt rename to src/main/kotlin/io/smnp/dsl/ast/model/node/FunctionDefinitionNode.kt index 3d92df7..00b3a3f 100644 --- a/src/main/kotlin/dsl/ast/model/node/FunctionDefinitionNode.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/model/node/FunctionDefinitionNode.kt @@ -1,6 +1,6 @@ -package dsl.ast.model.node +package io.smnp.dsl.ast.model.node -import dsl.token.model.entity.TokenPosition +import io.smnp.dsl.token.model.entity.TokenPosition class FunctionDefinitionNode(identifier: Node, arguments: Node, body: Node, position: TokenPosition) : Node(3, position) { val identifier: Node diff --git a/src/main/kotlin/io/smnp/dsl/ast/model/node/IdentifierNode.kt b/src/main/kotlin/io/smnp/dsl/ast/model/node/IdentifierNode.kt new file mode 100644 index 0000000..ed56f21 --- /dev/null +++ b/src/main/kotlin/io/smnp/dsl/ast/model/node/IdentifierNode.kt @@ -0,0 +1,5 @@ +package io.smnp.dsl.ast.model.node + +import io.smnp.dsl.token.model.entity.Token + +class IdentifierNode(token: Token) : AtomAbstractNode(token) \ No newline at end of file diff --git a/src/main/kotlin/dsl/ast/model/node/ImportNode.kt b/src/main/kotlin/io/smnp/dsl/ast/model/node/ImportNode.kt similarity index 65% rename from src/main/kotlin/dsl/ast/model/node/ImportNode.kt rename to src/main/kotlin/io/smnp/dsl/ast/model/node/ImportNode.kt index c39ea2c..4862af0 100644 --- a/src/main/kotlin/dsl/ast/model/node/ImportNode.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/model/node/ImportNode.kt @@ -1,6 +1,6 @@ -package dsl.ast.model.node +package io.smnp.dsl.ast.model.node -import dsl.token.model.entity.TokenPosition +import io.smnp.dsl.token.model.entity.TokenPosition class ImportNode(path: Node, position: TokenPosition) : Node(1, position) { val path: Node diff --git a/src/main/kotlin/io/smnp/dsl/ast/model/node/IntegerLiteralNode.kt b/src/main/kotlin/io/smnp/dsl/ast/model/node/IntegerLiteralNode.kt new file mode 100644 index 0000000..670b51c --- /dev/null +++ b/src/main/kotlin/io/smnp/dsl/ast/model/node/IntegerLiteralNode.kt @@ -0,0 +1,5 @@ +package io.smnp.dsl.ast.model.node + +import io.smnp.dsl.token.model.entity.Token + +class IntegerLiteralNode(token: Token) : AtomAbstractNode(token) \ No newline at end of file diff --git a/src/main/kotlin/dsl/ast/model/node/ListNode.kt b/src/main/kotlin/io/smnp/dsl/ast/model/node/ListNode.kt similarity index 53% rename from src/main/kotlin/dsl/ast/model/node/ListNode.kt rename to src/main/kotlin/io/smnp/dsl/ast/model/node/ListNode.kt index 178246d..5ac29e1 100644 --- a/src/main/kotlin/dsl/ast/model/node/ListNode.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/model/node/ListNode.kt @@ -1,5 +1,5 @@ -package dsl.ast.model.node +package io.smnp.dsl.ast.model.node -import dsl.token.model.entity.TokenPosition +import io.smnp.dsl.token.model.entity.TokenPosition class ListNode(items: List, position: TokenPosition) : AbstractIterableNode(items, position) \ No newline at end of file diff --git a/src/main/kotlin/dsl/ast/model/node/LogicOperatorNode.kt b/src/main/kotlin/io/smnp/dsl/ast/model/node/LogicOperatorNode.kt similarity index 76% rename from src/main/kotlin/dsl/ast/model/node/LogicOperatorNode.kt rename to src/main/kotlin/io/smnp/dsl/ast/model/node/LogicOperatorNode.kt index be4458f..f49fc5e 100644 --- a/src/main/kotlin/dsl/ast/model/node/LogicOperatorNode.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/model/node/LogicOperatorNode.kt @@ -1,3 +1,3 @@ -package dsl.ast.model.node +package io.smnp.dsl.ast.model.node class LogicOperatorNode(lhs: Node, operator: Node, rhs: Node) : BinaryOperatorAbstractNode(lhs, operator, rhs) \ No newline at end of file diff --git a/src/main/kotlin/dsl/ast/model/node/LoopNode.kt b/src/main/kotlin/io/smnp/dsl/ast/model/node/LoopNode.kt similarity index 92% rename from src/main/kotlin/dsl/ast/model/node/LoopNode.kt rename to src/main/kotlin/io/smnp/dsl/ast/model/node/LoopNode.kt index 91198a2..1998b98 100644 --- a/src/main/kotlin/dsl/ast/model/node/LoopNode.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/model/node/LoopNode.kt @@ -1,4 +1,4 @@ -package dsl.ast.model.node +package io.smnp.dsl.ast.model.node class LoopNode(iterator: Node, parameters: Node, operator: Node, statement: Node, filter: Node): Node(4, operator.position) { val iterator: Node diff --git a/src/main/kotlin/dsl/ast/model/node/LoopParametersNode.kt b/src/main/kotlin/io/smnp/dsl/ast/model/node/LoopParametersNode.kt similarity index 55% rename from src/main/kotlin/dsl/ast/model/node/LoopParametersNode.kt rename to src/main/kotlin/io/smnp/dsl/ast/model/node/LoopParametersNode.kt index b17ed2d..a4096be 100644 --- a/src/main/kotlin/dsl/ast/model/node/LoopParametersNode.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/model/node/LoopParametersNode.kt @@ -1,5 +1,5 @@ -package dsl.ast.model.node +package io.smnp.dsl.ast.model.node -import dsl.token.model.entity.TokenPosition +import io.smnp.dsl.token.model.entity.TokenPosition class LoopParametersNode(items: List, position: TokenPosition) : AbstractIterableNode(items, position) \ No newline at end of file diff --git a/src/main/kotlin/dsl/ast/model/node/MapEntryNode.kt b/src/main/kotlin/io/smnp/dsl/ast/model/node/MapEntryNode.kt similarity index 87% rename from src/main/kotlin/dsl/ast/model/node/MapEntryNode.kt rename to src/main/kotlin/io/smnp/dsl/ast/model/node/MapEntryNode.kt index e734485..a82c529 100644 --- a/src/main/kotlin/dsl/ast/model/node/MapEntryNode.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/model/node/MapEntryNode.kt @@ -1,4 +1,4 @@ -package dsl.ast.model.node +package io.smnp.dsl.ast.model.node class MapEntryNode(key: Node, operator: Node, value: Node) : Node(2, operator.position) { val key: Node diff --git a/src/main/kotlin/dsl/ast/model/node/MapNode.kt b/src/main/kotlin/io/smnp/dsl/ast/model/node/MapNode.kt similarity index 53% rename from src/main/kotlin/dsl/ast/model/node/MapNode.kt rename to src/main/kotlin/io/smnp/dsl/ast/model/node/MapNode.kt index 080d0b6..ffc20f4 100644 --- a/src/main/kotlin/dsl/ast/model/node/MapNode.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/model/node/MapNode.kt @@ -1,5 +1,5 @@ -package dsl.ast.model.node +package io.smnp.dsl.ast.model.node -import dsl.token.model.entity.TokenPosition +import io.smnp.dsl.token.model.entity.TokenPosition class MapNode(items: List, position: TokenPosition) : AbstractIterableNode(items, position) \ No newline at end of file diff --git a/src/main/kotlin/dsl/ast/model/node/MinusOperatorNode.kt b/src/main/kotlin/io/smnp/dsl/ast/model/node/MinusOperatorNode.kt similarity index 74% rename from src/main/kotlin/dsl/ast/model/node/MinusOperatorNode.kt rename to src/main/kotlin/io/smnp/dsl/ast/model/node/MinusOperatorNode.kt index 573010d..115c676 100644 --- a/src/main/kotlin/dsl/ast/model/node/MinusOperatorNode.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/model/node/MinusOperatorNode.kt @@ -1,3 +1,3 @@ -package dsl.ast.model.node +package io.smnp.dsl.ast.model.node class MinusOperatorNode(operator: Node, operand: Node) : UnaryOperatorAbstractNode(operator, operand) \ No newline at end of file diff --git a/src/main/kotlin/dsl/ast/model/node/Node.kt b/src/main/kotlin/io/smnp/dsl/ast/model/node/Node.kt similarity index 93% rename from src/main/kotlin/dsl/ast/model/node/Node.kt rename to src/main/kotlin/io/smnp/dsl/ast/model/node/Node.kt index ed6f5a8..8bb8772 100644 --- a/src/main/kotlin/dsl/ast/model/node/Node.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/model/node/Node.kt @@ -1,6 +1,6 @@ -package dsl.ast.model.node +package io.smnp.dsl.ast.model.node -import dsl.token.model.entity.TokenPosition +import io.smnp.dsl.token.model.entity.TokenPosition abstract class Node(numberOfChildren: Int, val position: TokenPosition) { var children: MutableList = MutableList(numberOfChildren) { NONE } diff --git a/src/main/kotlin/io/smnp/dsl/ast/model/node/NoneNode.kt b/src/main/kotlin/io/smnp/dsl/ast/model/node/NoneNode.kt new file mode 100644 index 0000000..45915aa --- /dev/null +++ b/src/main/kotlin/io/smnp/dsl/ast/model/node/NoneNode.kt @@ -0,0 +1,7 @@ +package io.smnp.dsl.ast.model.node + +import io.smnp.dsl.token.model.entity.TokenPosition + +class NoneNode : Node(0, + TokenPosition.NONE +) \ No newline at end of file diff --git a/src/main/kotlin/dsl/ast/model/node/NotOperatorNode.kt b/src/main/kotlin/io/smnp/dsl/ast/model/node/NotOperatorNode.kt similarity index 74% rename from src/main/kotlin/dsl/ast/model/node/NotOperatorNode.kt rename to src/main/kotlin/io/smnp/dsl/ast/model/node/NotOperatorNode.kt index 67be59c..f2e49c2 100644 --- a/src/main/kotlin/dsl/ast/model/node/NotOperatorNode.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/model/node/NotOperatorNode.kt @@ -1,3 +1,3 @@ -package dsl.ast.model.node +package io.smnp.dsl.ast.model.node class NotOperatorNode(operator: Node, operand: Node) : UnaryOperatorAbstractNode(operator, operand) \ No newline at end of file diff --git a/src/main/kotlin/io/smnp/dsl/ast/model/node/NoteLiteralNode.kt b/src/main/kotlin/io/smnp/dsl/ast/model/node/NoteLiteralNode.kt new file mode 100644 index 0000000..681d585 --- /dev/null +++ b/src/main/kotlin/io/smnp/dsl/ast/model/node/NoteLiteralNode.kt @@ -0,0 +1,5 @@ +package io.smnp.dsl.ast.model.node + +import io.smnp.dsl.token.model.entity.Token + +class NoteLiteralNode(token: Token) : AtomAbstractNode(token) \ No newline at end of file diff --git a/src/main/kotlin/dsl/ast/model/node/OptionalFunctionDefinitionArgumentNode.kt b/src/main/kotlin/io/smnp/dsl/ast/model/node/OptionalFunctionDefinitionArgumentNode.kt similarity index 91% rename from src/main/kotlin/dsl/ast/model/node/OptionalFunctionDefinitionArgumentNode.kt rename to src/main/kotlin/io/smnp/dsl/ast/model/node/OptionalFunctionDefinitionArgumentNode.kt index 80347d0..0e737a7 100644 --- a/src/main/kotlin/dsl/ast/model/node/OptionalFunctionDefinitionArgumentNode.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/model/node/OptionalFunctionDefinitionArgumentNode.kt @@ -1,4 +1,4 @@ -package dsl.ast.model.node +package io.smnp.dsl.ast.model.node class OptionalFunctionDefinitionArgumentNode(identifier: Node, type: Node, defaultValue: Node) : Node(3, identifier.position) { val identifier: Node diff --git a/src/main/kotlin/dsl/ast/model/node/PowerOperatorNode.kt b/src/main/kotlin/io/smnp/dsl/ast/model/node/PowerOperatorNode.kt similarity index 76% rename from src/main/kotlin/dsl/ast/model/node/PowerOperatorNode.kt rename to src/main/kotlin/io/smnp/dsl/ast/model/node/PowerOperatorNode.kt index 5391a4e..464a9d8 100644 --- a/src/main/kotlin/dsl/ast/model/node/PowerOperatorNode.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/model/node/PowerOperatorNode.kt @@ -1,3 +1,3 @@ -package dsl.ast.model.node +package io.smnp.dsl.ast.model.node class PowerOperatorNode(lhs: Node, operator: Node, rhs: Node) : BinaryOperatorAbstractNode(lhs, operator, rhs) \ No newline at end of file diff --git a/src/main/kotlin/dsl/ast/model/node/ProductOperatorNode.kt b/src/main/kotlin/io/smnp/dsl/ast/model/node/ProductOperatorNode.kt similarity index 76% rename from src/main/kotlin/dsl/ast/model/node/ProductOperatorNode.kt rename to src/main/kotlin/io/smnp/dsl/ast/model/node/ProductOperatorNode.kt index 00506bf..ded7ca7 100644 --- a/src/main/kotlin/dsl/ast/model/node/ProductOperatorNode.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/model/node/ProductOperatorNode.kt @@ -1,3 +1,3 @@ -package dsl.ast.model.node +package io.smnp.dsl.ast.model.node class ProductOperatorNode(lhs: Node, operator: Node, rhs: Node) : BinaryOperatorAbstractNode(lhs, operator, rhs) \ No newline at end of file diff --git a/src/main/kotlin/dsl/ast/model/node/RegularFunctionDefinitionArgumentNode.kt b/src/main/kotlin/io/smnp/dsl/ast/model/node/RegularFunctionDefinitionArgumentNode.kt similarity index 90% rename from src/main/kotlin/dsl/ast/model/node/RegularFunctionDefinitionArgumentNode.kt rename to src/main/kotlin/io/smnp/dsl/ast/model/node/RegularFunctionDefinitionArgumentNode.kt index 5dd9495..bdca9f7 100644 --- a/src/main/kotlin/dsl/ast/model/node/RegularFunctionDefinitionArgumentNode.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/model/node/RegularFunctionDefinitionArgumentNode.kt @@ -1,4 +1,4 @@ -package dsl.ast.model.node +package io.smnp.dsl.ast.model.node class RegularFunctionDefinitionArgumentNode(identifier: Node, type: Node, vararg: Node) : Node(3, identifier.position) { val identifier diff --git a/src/main/kotlin/dsl/ast/model/node/RelationOperatorNode.kt b/src/main/kotlin/io/smnp/dsl/ast/model/node/RelationOperatorNode.kt similarity index 76% rename from src/main/kotlin/dsl/ast/model/node/RelationOperatorNode.kt rename to src/main/kotlin/io/smnp/dsl/ast/model/node/RelationOperatorNode.kt index 1879e86..5ce5170 100644 --- a/src/main/kotlin/dsl/ast/model/node/RelationOperatorNode.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/model/node/RelationOperatorNode.kt @@ -1,3 +1,3 @@ -package dsl.ast.model.node +package io.smnp.dsl.ast.model.node class RelationOperatorNode(lhs: Node, operator: Node, rhs: Node) : BinaryOperatorAbstractNode(lhs, operator, rhs) \ No newline at end of file diff --git a/src/main/kotlin/dsl/ast/model/node/ReturnNode.kt b/src/main/kotlin/io/smnp/dsl/ast/model/node/ReturnNode.kt similarity index 81% rename from src/main/kotlin/dsl/ast/model/node/ReturnNode.kt rename to src/main/kotlin/io/smnp/dsl/ast/model/node/ReturnNode.kt index 7f26c7f..5b5949d 100644 --- a/src/main/kotlin/dsl/ast/model/node/ReturnNode.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/model/node/ReturnNode.kt @@ -1,4 +1,4 @@ -package dsl.ast.model.node +package io.smnp.dsl.ast.model.node class ReturnNode(value: Node) : Node(1, value.position) { val value: Node diff --git a/src/main/kotlin/io/smnp/dsl/ast/model/node/RootNode.kt b/src/main/kotlin/io/smnp/dsl/ast/model/node/RootNode.kt new file mode 100644 index 0000000..1b20adc --- /dev/null +++ b/src/main/kotlin/io/smnp/dsl/ast/model/node/RootNode.kt @@ -0,0 +1,5 @@ +package io.smnp.dsl.ast.model.node + +import io.smnp.dsl.token.model.entity.TokenPosition + +class RootNode(nodes: List, position: TokenPosition) : Node(nodes, position) \ No newline at end of file diff --git a/src/main/kotlin/io/smnp/dsl/ast/model/node/StringLiteralNode.kt b/src/main/kotlin/io/smnp/dsl/ast/model/node/StringLiteralNode.kt new file mode 100644 index 0000000..e7bf0f2 --- /dev/null +++ b/src/main/kotlin/io/smnp/dsl/ast/model/node/StringLiteralNode.kt @@ -0,0 +1,5 @@ +package io.smnp.dsl.ast.model.node + +import io.smnp.dsl.token.model.entity.Token + +class StringLiteralNode(token: Token) : AtomAbstractNode(token) \ No newline at end of file diff --git a/src/main/kotlin/dsl/ast/model/node/SumOperatorNode.kt b/src/main/kotlin/io/smnp/dsl/ast/model/node/SumOperatorNode.kt similarity index 75% rename from src/main/kotlin/dsl/ast/model/node/SumOperatorNode.kt rename to src/main/kotlin/io/smnp/dsl/ast/model/node/SumOperatorNode.kt index 507f2da..3f866bb 100644 --- a/src/main/kotlin/dsl/ast/model/node/SumOperatorNode.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/model/node/SumOperatorNode.kt @@ -1,3 +1,3 @@ -package dsl.ast.model.node +package io.smnp.dsl.ast.model.node class SumOperatorNode(lhs: Node, operator: Node, rhs: Node) : BinaryOperatorAbstractNode(lhs, operator, rhs) \ No newline at end of file diff --git a/src/main/kotlin/dsl/ast/model/node/ThrowNode.kt b/src/main/kotlin/io/smnp/dsl/ast/model/node/ThrowNode.kt similarity index 81% rename from src/main/kotlin/dsl/ast/model/node/ThrowNode.kt rename to src/main/kotlin/io/smnp/dsl/ast/model/node/ThrowNode.kt index 24ab343..b7a5cff 100644 --- a/src/main/kotlin/dsl/ast/model/node/ThrowNode.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/model/node/ThrowNode.kt @@ -1,4 +1,4 @@ -package dsl.ast.model.node +package io.smnp.dsl.ast.model.node class ThrowNode(value: Node) : Node(1, value.position) { val value: Node diff --git a/src/main/kotlin/io/smnp/dsl/ast/model/node/TokenNode.kt b/src/main/kotlin/io/smnp/dsl/ast/model/node/TokenNode.kt new file mode 100644 index 0000000..fbb96a1 --- /dev/null +++ b/src/main/kotlin/io/smnp/dsl/ast/model/node/TokenNode.kt @@ -0,0 +1,5 @@ +package io.smnp.dsl.ast.model.node + +import io.smnp.dsl.token.model.entity.Token + +class TokenNode(token: Token) : AtomAbstractNode(token) \ No newline at end of file diff --git a/src/main/kotlin/dsl/ast/model/node/TypeNode.kt b/src/main/kotlin/io/smnp/dsl/ast/model/node/TypeNode.kt similarity index 87% rename from src/main/kotlin/dsl/ast/model/node/TypeNode.kt rename to src/main/kotlin/io/smnp/dsl/ast/model/node/TypeNode.kt index 8ae9cc6..c55bf87 100644 --- a/src/main/kotlin/dsl/ast/model/node/TypeNode.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/model/node/TypeNode.kt @@ -1,4 +1,4 @@ -package dsl.ast.model.node +package io.smnp.dsl.ast.model.node class TypeNode(type: Node, specifiers: Node) : Node(2, type.position) { val type: Node diff --git a/src/main/kotlin/dsl/ast/model/node/TypeSpecifierNode.kt b/src/main/kotlin/io/smnp/dsl/ast/model/node/TypeSpecifierNode.kt similarity index 55% rename from src/main/kotlin/dsl/ast/model/node/TypeSpecifierNode.kt rename to src/main/kotlin/io/smnp/dsl/ast/model/node/TypeSpecifierNode.kt index 56e54a1..24777e0 100644 --- a/src/main/kotlin/dsl/ast/model/node/TypeSpecifierNode.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/model/node/TypeSpecifierNode.kt @@ -1,5 +1,5 @@ -package dsl.ast.model.node +package io.smnp.dsl.ast.model.node -import dsl.token.model.entity.TokenPosition +import io.smnp.dsl.token.model.entity.TokenPosition class TypeSpecifierNode(items: List, position: TokenPosition) : AbstractIterableNode(items, position) \ No newline at end of file diff --git a/src/main/kotlin/dsl/ast/model/node/TypeSpecifiersNode.kt b/src/main/kotlin/io/smnp/dsl/ast/model/node/TypeSpecifiersNode.kt similarity index 54% rename from src/main/kotlin/dsl/ast/model/node/TypeSpecifiersNode.kt rename to src/main/kotlin/io/smnp/dsl/ast/model/node/TypeSpecifiersNode.kt index 2ff0c5a..25255e3 100644 --- a/src/main/kotlin/dsl/ast/model/node/TypeSpecifiersNode.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/model/node/TypeSpecifiersNode.kt @@ -1,5 +1,5 @@ -package dsl.ast.model.node +package io.smnp.dsl.ast.model.node -import dsl.token.model.entity.TokenPosition +import io.smnp.dsl.token.model.entity.TokenPosition class TypeSpecifiersNode(specifiers: List, position: TokenPosition) : Node(specifiers, position) \ No newline at end of file diff --git a/src/main/kotlin/dsl/ast/model/node/UnaryOperatorAbstractNode.kt b/src/main/kotlin/io/smnp/dsl/ast/model/node/UnaryOperatorAbstractNode.kt similarity index 88% rename from src/main/kotlin/dsl/ast/model/node/UnaryOperatorAbstractNode.kt rename to src/main/kotlin/io/smnp/dsl/ast/model/node/UnaryOperatorAbstractNode.kt index bcac202..294db7c 100644 --- a/src/main/kotlin/dsl/ast/model/node/UnaryOperatorAbstractNode.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/model/node/UnaryOperatorAbstractNode.kt @@ -1,4 +1,4 @@ -package dsl.ast.model.node +package io.smnp.dsl.ast.model.node abstract class UnaryOperatorAbstractNode(operator: Node, operand: Node) : Node(2, operator.position) { val operator: Node diff --git a/src/main/kotlin/dsl/ast/parser/AbstractIterableParser.kt b/src/main/kotlin/io/smnp/dsl/ast/parser/AbstractIterableParser.kt similarity index 80% rename from src/main/kotlin/dsl/ast/parser/AbstractIterableParser.kt rename to src/main/kotlin/io/smnp/dsl/ast/parser/AbstractIterableParser.kt index bf86651..b607c06 100644 --- a/src/main/kotlin/dsl/ast/parser/AbstractIterableParser.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/parser/AbstractIterableParser.kt @@ -1,10 +1,10 @@ -package dsl.ast.parser +package io.smnp.dsl.ast.parser -import dsl.ast.model.entity.ParserOutput -import dsl.ast.model.node.Node -import dsl.token.model.entity.TokenList -import dsl.token.model.entity.TokenPosition -import dsl.token.model.enumeration.TokenType +import io.smnp.dsl.ast.model.entity.ParserOutput +import io.smnp.dsl.ast.model.node.Node +import io.smnp.dsl.token.model.entity.TokenList +import io.smnp.dsl.token.model.entity.TokenPosition +import io.smnp.dsl.token.model.enumeration.TokenType abstract class AbstractIterableParser( private val beginTokenType: TokenType, diff --git a/src/main/kotlin/dsl/ast/parser/AssignmentOperatorParser.kt b/src/main/kotlin/io/smnp/dsl/ast/parser/AssignmentOperatorParser.kt similarity index 60% rename from src/main/kotlin/dsl/ast/parser/AssignmentOperatorParser.kt rename to src/main/kotlin/io/smnp/dsl/ast/parser/AssignmentOperatorParser.kt index 2c7347b..3ad8407 100644 --- a/src/main/kotlin/dsl/ast/parser/AssignmentOperatorParser.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/parser/AssignmentOperatorParser.kt @@ -1,9 +1,9 @@ -package dsl.ast.parser +package io.smnp.dsl.ast.parser -import dsl.ast.model.entity.ParserOutput -import dsl.ast.model.node.AssignmentOperatorNode -import dsl.token.model.entity.TokenList -import dsl.token.model.enumeration.TokenType +import io.smnp.dsl.ast.model.entity.ParserOutput +import io.smnp.dsl.ast.model.node.AssignmentOperatorNode +import io.smnp.dsl.token.model.entity.TokenList +import io.smnp.dsl.token.model.enumeration.TokenType class AssignmentOperatorParser : Parser() { override fun tryToParse(input: TokenList): ParserOutput { diff --git a/src/main/kotlin/dsl/ast/parser/AtomParser.kt b/src/main/kotlin/io/smnp/dsl/ast/parser/AtomParser.kt similarity index 74% rename from src/main/kotlin/dsl/ast/parser/AtomParser.kt rename to src/main/kotlin/io/smnp/dsl/ast/parser/AtomParser.kt index 81a896f..32be059 100644 --- a/src/main/kotlin/dsl/ast/parser/AtomParser.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/parser/AtomParser.kt @@ -1,8 +1,8 @@ -package dsl.ast.parser +package io.smnp.dsl.ast.parser -import dsl.ast.model.entity.ParserOutput -import dsl.token.model.entity.TokenList -import dsl.token.model.enumeration.TokenType +import io.smnp.dsl.ast.model.entity.ParserOutput +import io.smnp.dsl.token.model.entity.TokenList +import io.smnp.dsl.token.model.enumeration.TokenType class AtomParser : Parser() { override fun tryToParse(input: TokenList): ParserOutput { diff --git a/src/main/kotlin/dsl/ast/parser/BlockParser.kt b/src/main/kotlin/io/smnp/dsl/ast/parser/BlockParser.kt similarity index 61% rename from src/main/kotlin/dsl/ast/parser/BlockParser.kt rename to src/main/kotlin/io/smnp/dsl/ast/parser/BlockParser.kt index 43d7509..e8ee7c5 100644 --- a/src/main/kotlin/dsl/ast/parser/BlockParser.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/parser/BlockParser.kt @@ -1,9 +1,9 @@ -package dsl.ast.parser +package io.smnp.dsl.ast.parser -import dsl.ast.model.entity.ParserOutput -import dsl.ast.model.node.BlockNode -import dsl.token.model.entity.TokenList -import dsl.token.model.enumeration.TokenType +import io.smnp.dsl.ast.model.entity.ParserOutput +import io.smnp.dsl.ast.model.node.BlockNode +import io.smnp.dsl.token.model.entity.TokenList +import io.smnp.dsl.token.model.enumeration.TokenType class BlockParser : Parser() { override fun tryToParse(input: TokenList): ParserOutput { diff --git a/src/main/kotlin/io/smnp/dsl/ast/parser/BoolLiteralParser.kt b/src/main/kotlin/io/smnp/dsl/ast/parser/BoolLiteralParser.kt new file mode 100644 index 0000000..8d24997 --- /dev/null +++ b/src/main/kotlin/io/smnp/dsl/ast/parser/BoolLiteralParser.kt @@ -0,0 +1,12 @@ +package io.smnp.dsl.ast.parser + +import io.smnp.dsl.ast.model.entity.ParserOutput +import io.smnp.dsl.ast.model.node.BoolLiteralNode +import io.smnp.dsl.token.model.entity.TokenList +import io.smnp.dsl.token.model.enumeration.TokenType + +class BoolLiteralParser : Parser() { + override fun tryToParse(input: TokenList): ParserOutput { + return terminal(TokenType.BOOL) { BoolLiteralNode(it) }.parse(input) + } +} \ No newline at end of file diff --git a/src/main/kotlin/dsl/ast/parser/ComplexIdentifierParser.kt b/src/main/kotlin/io/smnp/dsl/ast/parser/ComplexIdentifierParser.kt similarity index 67% rename from src/main/kotlin/dsl/ast/parser/ComplexIdentifierParser.kt rename to src/main/kotlin/io/smnp/dsl/ast/parser/ComplexIdentifierParser.kt index 3ef238d..9fde887 100644 --- a/src/main/kotlin/dsl/ast/parser/ComplexIdentifierParser.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/parser/ComplexIdentifierParser.kt @@ -1,7 +1,7 @@ -package dsl.ast.parser +package io.smnp.dsl.ast.parser -import dsl.ast.model.entity.ParserOutput -import dsl.token.model.entity.TokenList +import io.smnp.dsl.ast.model.entity.ParserOutput +import io.smnp.dsl.token.model.entity.TokenList class ComplexIdentifierParser : Parser() { override fun tryToParse(input: TokenList): ParserOutput { diff --git a/src/main/kotlin/dsl/ast/parser/ConditionParser.kt b/src/main/kotlin/io/smnp/dsl/ast/parser/ConditionParser.kt similarity index 77% rename from src/main/kotlin/dsl/ast/parser/ConditionParser.kt rename to src/main/kotlin/io/smnp/dsl/ast/parser/ConditionParser.kt index f62a55a..cf533b5 100644 --- a/src/main/kotlin/dsl/ast/parser/ConditionParser.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/parser/ConditionParser.kt @@ -1,10 +1,10 @@ -package dsl.ast.parser +package io.smnp.dsl.ast.parser -import dsl.ast.model.entity.ParserOutput -import dsl.ast.model.node.ConditionNode -import dsl.ast.model.node.Node -import dsl.token.model.entity.TokenList -import dsl.token.model.enumeration.TokenType +import io.smnp.dsl.ast.model.entity.ParserOutput +import io.smnp.dsl.ast.model.node.ConditionNode +import io.smnp.dsl.ast.model.node.Node +import io.smnp.dsl.token.model.entity.TokenList +import io.smnp.dsl.token.model.enumeration.TokenType class ConditionParser : Parser() { override fun tryToParse(input: TokenList): ParserOutput { diff --git a/src/main/kotlin/dsl/ast/parser/ExpressionParser.kt b/src/main/kotlin/io/smnp/dsl/ast/parser/ExpressionParser.kt similarity index 62% rename from src/main/kotlin/dsl/ast/parser/ExpressionParser.kt rename to src/main/kotlin/io/smnp/dsl/ast/parser/ExpressionParser.kt index f035c14..f51f0a8 100644 --- a/src/main/kotlin/dsl/ast/parser/ExpressionParser.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/parser/ExpressionParser.kt @@ -1,7 +1,7 @@ -package dsl.ast.parser +package io.smnp.dsl.ast.parser -import dsl.ast.model.entity.ParserOutput -import dsl.token.model.entity.TokenList +import io.smnp.dsl.ast.model.entity.ParserOutput +import io.smnp.dsl.token.model.entity.TokenList class ExpressionParser : Parser() { override fun tryToParse(input: TokenList): ParserOutput { diff --git a/src/main/kotlin/dsl/ast/parser/ExtendParser.kt b/src/main/kotlin/io/smnp/dsl/ast/parser/ExtendParser.kt similarity index 82% rename from src/main/kotlin/dsl/ast/parser/ExtendParser.kt rename to src/main/kotlin/io/smnp/dsl/ast/parser/ExtendParser.kt index 98ce68f..4a1f195 100644 --- a/src/main/kotlin/dsl/ast/parser/ExtendParser.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/parser/ExtendParser.kt @@ -1,11 +1,11 @@ -package dsl.ast.parser +package io.smnp.dsl.ast.parser -import dsl.ast.model.entity.ParserOutput -import dsl.ast.model.node.BlockNode -import dsl.ast.model.node.ExtendNode -import dsl.ast.model.node.Node -import dsl.token.model.entity.TokenList -import dsl.token.model.enumeration.TokenType +import io.smnp.dsl.ast.model.entity.ParserOutput +import io.smnp.dsl.ast.model.node.BlockNode +import io.smnp.dsl.ast.model.node.ExtendNode +import io.smnp.dsl.ast.model.node.Node +import io.smnp.dsl.token.model.entity.TokenList +import io.smnp.dsl.token.model.enumeration.TokenType class ExtendParser : Parser() { override fun tryToParse(input: TokenList): ParserOutput { diff --git a/src/main/kotlin/dsl/ast/parser/FactorParser.kt b/src/main/kotlin/io/smnp/dsl/ast/parser/FactorParser.kt similarity index 68% rename from src/main/kotlin/dsl/ast/parser/FactorParser.kt rename to src/main/kotlin/io/smnp/dsl/ast/parser/FactorParser.kt index 3e388ec..2ec7726 100644 --- a/src/main/kotlin/dsl/ast/parser/FactorParser.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/parser/FactorParser.kt @@ -1,10 +1,10 @@ -package dsl.ast.parser +package io.smnp.dsl.ast.parser -import dsl.ast.model.entity.ParserOutput -import dsl.ast.model.node.NotOperatorNode -import dsl.ast.model.node.PowerOperatorNode -import dsl.token.model.entity.TokenList -import dsl.token.model.enumeration.TokenType +import io.smnp.dsl.ast.model.entity.ParserOutput +import io.smnp.dsl.ast.model.node.NotOperatorNode +import io.smnp.dsl.ast.model.node.PowerOperatorNode +import io.smnp.dsl.token.model.entity.TokenList +import io.smnp.dsl.token.model.enumeration.TokenType class FactorParser : Parser() { override fun tryToParse(input: TokenList): ParserOutput { diff --git a/src/main/kotlin/io/smnp/dsl/ast/parser/FloatLiteralParser.kt b/src/main/kotlin/io/smnp/dsl/ast/parser/FloatLiteralParser.kt new file mode 100644 index 0000000..ae1ea7b --- /dev/null +++ b/src/main/kotlin/io/smnp/dsl/ast/parser/FloatLiteralParser.kt @@ -0,0 +1,12 @@ +package io.smnp.dsl.ast.parser + +import io.smnp.dsl.ast.model.entity.ParserOutput +import io.smnp.dsl.ast.model.node.FloatLiteralNode +import io.smnp.dsl.token.model.entity.TokenList +import io.smnp.dsl.token.model.enumeration.TokenType + +class FloatLiteralParser : Parser() { + override fun tryToParse(input: TokenList): ParserOutput { + return terminal(TokenType.FLOAT) { FloatLiteralNode(it) }.parse(input) + } +} \ No newline at end of file diff --git a/src/main/kotlin/dsl/ast/parser/FunctionCallArgumentsParser.kt b/src/main/kotlin/io/smnp/dsl/ast/parser/FunctionCallArgumentsParser.kt similarity index 60% rename from src/main/kotlin/dsl/ast/parser/FunctionCallArgumentsParser.kt rename to src/main/kotlin/io/smnp/dsl/ast/parser/FunctionCallArgumentsParser.kt index 0815fec..0cbf9b5 100644 --- a/src/main/kotlin/dsl/ast/parser/FunctionCallArgumentsParser.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/parser/FunctionCallArgumentsParser.kt @@ -1,7 +1,7 @@ -package dsl.ast.parser +package io.smnp.dsl.ast.parser -import dsl.ast.model.node.FunctionCallArgumentsNode -import dsl.token.model.enumeration.TokenType +import io.smnp.dsl.ast.model.node.FunctionCallArgumentsNode +import io.smnp.dsl.token.model.enumeration.TokenType class FunctionCallArgumentsParser : AbstractIterableParser(TokenType.OPEN_PAREN, ExpressionParser(), TokenType.CLOSE_PAREN, { list, tokenPosition -> diff --git a/src/main/kotlin/dsl/ast/parser/FunctionCallParser.kt b/src/main/kotlin/io/smnp/dsl/ast/parser/FunctionCallParser.kt similarity index 61% rename from src/main/kotlin/dsl/ast/parser/FunctionCallParser.kt rename to src/main/kotlin/io/smnp/dsl/ast/parser/FunctionCallParser.kt index 77ae6ed..50f0714 100644 --- a/src/main/kotlin/dsl/ast/parser/FunctionCallParser.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/parser/FunctionCallParser.kt @@ -1,8 +1,8 @@ -package dsl.ast.parser +package io.smnp.dsl.ast.parser -import dsl.ast.model.entity.ParserOutput -import dsl.ast.model.node.FunctionCallNode -import dsl.token.model.entity.TokenList +import io.smnp.dsl.ast.model.entity.ParserOutput +import io.smnp.dsl.ast.model.node.FunctionCallNode +import io.smnp.dsl.token.model.entity.TokenList class FunctionCallParser : Parser() { override fun tryToParse(input: TokenList): ParserOutput { diff --git a/src/main/kotlin/dsl/ast/parser/FunctionDefinitionArgumentParser.kt b/src/main/kotlin/io/smnp/dsl/ast/parser/FunctionDefinitionArgumentParser.kt similarity index 68% rename from src/main/kotlin/dsl/ast/parser/FunctionDefinitionArgumentParser.kt rename to src/main/kotlin/io/smnp/dsl/ast/parser/FunctionDefinitionArgumentParser.kt index 55c20e8..475c231 100644 --- a/src/main/kotlin/dsl/ast/parser/FunctionDefinitionArgumentParser.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/parser/FunctionDefinitionArgumentParser.kt @@ -1,7 +1,7 @@ -package dsl.ast.parser +package io.smnp.dsl.ast.parser -import dsl.ast.model.entity.ParserOutput -import dsl.token.model.entity.TokenList +import io.smnp.dsl.ast.model.entity.ParserOutput +import io.smnp.dsl.token.model.entity.TokenList class FunctionDefinitionArgumentParser : Parser() { override fun tryToParse(input: TokenList): ParserOutput { diff --git a/src/main/kotlin/dsl/ast/parser/FunctionDefinitionArgumentsParser.kt b/src/main/kotlin/io/smnp/dsl/ast/parser/FunctionDefinitionArgumentsParser.kt similarity index 63% rename from src/main/kotlin/dsl/ast/parser/FunctionDefinitionArgumentsParser.kt rename to src/main/kotlin/io/smnp/dsl/ast/parser/FunctionDefinitionArgumentsParser.kt index bf9fdbe..ade3a23 100644 --- a/src/main/kotlin/dsl/ast/parser/FunctionDefinitionArgumentsParser.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/parser/FunctionDefinitionArgumentsParser.kt @@ -1,7 +1,7 @@ -package dsl.ast.parser +package io.smnp.dsl.ast.parser -import dsl.ast.model.node.FunctionDefinitionArgumentsNode -import dsl.token.model.enumeration.TokenType +import io.smnp.dsl.ast.model.node.FunctionDefinitionArgumentsNode +import io.smnp.dsl.token.model.enumeration.TokenType class FunctionDefinitionArgumentsParser : AbstractIterableParser( TokenType.OPEN_PAREN, diff --git a/src/main/kotlin/dsl/ast/parser/FunctionDefinitionParser.kt b/src/main/kotlin/io/smnp/dsl/ast/parser/FunctionDefinitionParser.kt similarity index 67% rename from src/main/kotlin/dsl/ast/parser/FunctionDefinitionParser.kt rename to src/main/kotlin/io/smnp/dsl/ast/parser/FunctionDefinitionParser.kt index 4e5eb2b..c566e8a 100644 --- a/src/main/kotlin/dsl/ast/parser/FunctionDefinitionParser.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/parser/FunctionDefinitionParser.kt @@ -1,9 +1,9 @@ -package dsl.ast.parser +package io.smnp.dsl.ast.parser -import dsl.ast.model.entity.ParserOutput -import dsl.ast.model.node.FunctionDefinitionNode -import dsl.token.model.entity.TokenList -import dsl.token.model.enumeration.TokenType +import io.smnp.dsl.ast.model.entity.ParserOutput +import io.smnp.dsl.ast.model.node.FunctionDefinitionNode +import io.smnp.dsl.token.model.entity.TokenList +import io.smnp.dsl.token.model.enumeration.TokenType class FunctionDefinitionParser : Parser() { override fun tryToParse(input: TokenList): ParserOutput { diff --git a/src/main/kotlin/dsl/ast/parser/ImportParser.kt b/src/main/kotlin/io/smnp/dsl/ast/parser/ImportParser.kt similarity index 64% rename from src/main/kotlin/dsl/ast/parser/ImportParser.kt rename to src/main/kotlin/io/smnp/dsl/ast/parser/ImportParser.kt index dab6b93..c98e937 100644 --- a/src/main/kotlin/dsl/ast/parser/ImportParser.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/parser/ImportParser.kt @@ -1,9 +1,9 @@ -package dsl.ast.parser +package io.smnp.dsl.ast.parser -import dsl.ast.model.entity.ParserOutput -import dsl.ast.model.node.ImportNode -import dsl.token.model.entity.TokenList -import dsl.token.model.enumeration.TokenType +import io.smnp.dsl.ast.model.entity.ParserOutput +import io.smnp.dsl.ast.model.node.ImportNode +import io.smnp.dsl.token.model.entity.TokenList +import io.smnp.dsl.token.model.enumeration.TokenType class ImportParser : Parser() { override fun tryToParse(input: TokenList): ParserOutput { diff --git a/src/main/kotlin/io/smnp/dsl/ast/parser/IntegerLiteralParser.kt b/src/main/kotlin/io/smnp/dsl/ast/parser/IntegerLiteralParser.kt new file mode 100644 index 0000000..bad24a7 --- /dev/null +++ b/src/main/kotlin/io/smnp/dsl/ast/parser/IntegerLiteralParser.kt @@ -0,0 +1,12 @@ +package io.smnp.dsl.ast.parser + +import io.smnp.dsl.ast.model.entity.ParserOutput +import io.smnp.dsl.ast.model.node.IntegerLiteralNode +import io.smnp.dsl.token.model.entity.TokenList +import io.smnp.dsl.token.model.enumeration.TokenType + +class IntegerLiteralParser : Parser() { + override fun tryToParse(input: TokenList): ParserOutput { + return terminal(TokenType.INTEGER) { IntegerLiteralNode(it) }.parse(input) + } +} \ No newline at end of file diff --git a/src/main/kotlin/dsl/ast/parser/ListParser.kt b/src/main/kotlin/io/smnp/dsl/ast/parser/ListParser.kt similarity index 61% rename from src/main/kotlin/dsl/ast/parser/ListParser.kt rename to src/main/kotlin/io/smnp/dsl/ast/parser/ListParser.kt index d3a30c3..becbaec 100644 --- a/src/main/kotlin/dsl/ast/parser/ListParser.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/parser/ListParser.kt @@ -1,7 +1,7 @@ -package dsl.ast.parser +package io.smnp.dsl.ast.parser -import dsl.ast.model.node.ListNode -import dsl.token.model.enumeration.TokenType +import io.smnp.dsl.ast.model.node.ListNode +import io.smnp.dsl.token.model.enumeration.TokenType class ListParser : AbstractIterableParser( TokenType.OPEN_SQUARE, diff --git a/src/main/kotlin/dsl/ast/parser/LiteralParser.kt b/src/main/kotlin/io/smnp/dsl/ast/parser/LiteralParser.kt similarity index 71% rename from src/main/kotlin/dsl/ast/parser/LiteralParser.kt rename to src/main/kotlin/io/smnp/dsl/ast/parser/LiteralParser.kt index 15f2864..96b7d77 100644 --- a/src/main/kotlin/dsl/ast/parser/LiteralParser.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/parser/LiteralParser.kt @@ -1,7 +1,7 @@ -package dsl.ast.parser +package io.smnp.dsl.ast.parser -import dsl.ast.model.entity.ParserOutput -import dsl.token.model.entity.TokenList +import io.smnp.dsl.ast.model.entity.ParserOutput +import io.smnp.dsl.token.model.entity.TokenList class LiteralParser : Parser() { override fun tryToParse(input: TokenList): ParserOutput { diff --git a/src/main/kotlin/dsl/ast/parser/LoopParametersParser.kt b/src/main/kotlin/io/smnp/dsl/ast/parser/LoopParametersParser.kt similarity index 61% rename from src/main/kotlin/dsl/ast/parser/LoopParametersParser.kt rename to src/main/kotlin/io/smnp/dsl/ast/parser/LoopParametersParser.kt index 221ab7b..8e5d4d3 100644 --- a/src/main/kotlin/dsl/ast/parser/LoopParametersParser.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/parser/LoopParametersParser.kt @@ -1,7 +1,7 @@ -package dsl.ast.parser +package io.smnp.dsl.ast.parser -import dsl.ast.model.node.LoopParametersNode -import dsl.token.model.enumeration.TokenType +import io.smnp.dsl.ast.model.node.LoopParametersNode +import io.smnp.dsl.token.model.enumeration.TokenType class LoopParametersParser : AbstractIterableParser( TokenType.OPEN_PAREN, diff --git a/src/main/kotlin/dsl/ast/parser/LoopParser.kt b/src/main/kotlin/io/smnp/dsl/ast/parser/LoopParser.kt similarity index 75% rename from src/main/kotlin/dsl/ast/parser/LoopParser.kt rename to src/main/kotlin/io/smnp/dsl/ast/parser/LoopParser.kt index 574054e..f9fc053 100644 --- a/src/main/kotlin/dsl/ast/parser/LoopParser.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/parser/LoopParser.kt @@ -1,10 +1,10 @@ -package dsl.ast.parser +package io.smnp.dsl.ast.parser -import dsl.ast.model.entity.ParserOutput -import dsl.ast.model.node.LoopNode -import dsl.ast.model.node.LoopParametersNode -import dsl.token.model.entity.TokenList -import dsl.token.model.enumeration.TokenType +import io.smnp.dsl.ast.model.entity.ParserOutput +import io.smnp.dsl.ast.model.node.LoopNode +import io.smnp.dsl.ast.model.node.LoopParametersNode +import io.smnp.dsl.token.model.entity.TokenList +import io.smnp.dsl.token.model.enumeration.TokenType class LoopParser : Parser() { override fun tryToParse(input: TokenList): ParserOutput { diff --git a/src/main/kotlin/dsl/ast/parser/MapEntryParser.kt b/src/main/kotlin/io/smnp/dsl/ast/parser/MapEntryParser.kt similarity index 65% rename from src/main/kotlin/dsl/ast/parser/MapEntryParser.kt rename to src/main/kotlin/io/smnp/dsl/ast/parser/MapEntryParser.kt index 20450bc..b8e0507 100644 --- a/src/main/kotlin/dsl/ast/parser/MapEntryParser.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/parser/MapEntryParser.kt @@ -1,9 +1,9 @@ -package dsl.ast.parser +package io.smnp.dsl.ast.parser -import dsl.ast.model.entity.ParserOutput -import dsl.ast.model.node.MapEntryNode -import dsl.token.model.entity.TokenList -import dsl.token.model.enumeration.TokenType +import io.smnp.dsl.ast.model.entity.ParserOutput +import io.smnp.dsl.ast.model.node.MapEntryNode +import io.smnp.dsl.token.model.entity.TokenList +import io.smnp.dsl.token.model.enumeration.TokenType class MapEntryParser : Parser() { override fun tryToParse(input: TokenList): ParserOutput { diff --git a/src/main/kotlin/dsl/ast/parser/MapParser.kt b/src/main/kotlin/io/smnp/dsl/ast/parser/MapParser.kt similarity index 58% rename from src/main/kotlin/dsl/ast/parser/MapParser.kt rename to src/main/kotlin/io/smnp/dsl/ast/parser/MapParser.kt index ea4cc55..c146055 100644 --- a/src/main/kotlin/dsl/ast/parser/MapParser.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/parser/MapParser.kt @@ -1,7 +1,7 @@ -package dsl.ast.parser +package io.smnp.dsl.ast.parser -import dsl.ast.model.node.MapNode -import dsl.token.model.enumeration.TokenType +import io.smnp.dsl.ast.model.node.MapNode +import io.smnp.dsl.token.model.enumeration.TokenType class MapParser : AbstractIterableParser(TokenType.OPEN_CURLY, MapEntryParser(), TokenType.CLOSE_CURLY, { list, tokenPosition -> diff --git a/src/main/kotlin/io/smnp/dsl/ast/parser/NoteLiteralParser.kt b/src/main/kotlin/io/smnp/dsl/ast/parser/NoteLiteralParser.kt new file mode 100644 index 0000000..c60f549 --- /dev/null +++ b/src/main/kotlin/io/smnp/dsl/ast/parser/NoteLiteralParser.kt @@ -0,0 +1,12 @@ +package io.smnp.dsl.ast.parser + +import io.smnp.dsl.ast.model.entity.ParserOutput +import io.smnp.dsl.ast.model.node.NoteLiteralNode +import io.smnp.dsl.token.model.entity.TokenList +import io.smnp.dsl.token.model.enumeration.TokenType + +class NoteLiteralParser : Parser() { + override fun tryToParse(input: TokenList): ParserOutput { + return terminal(TokenType.NOTE) { NoteLiteralNode(it) }.parse(input) + } +} \ No newline at end of file diff --git a/src/main/kotlin/dsl/ast/parser/OptionalFunctionDefinitionArgumentParser.kt b/src/main/kotlin/io/smnp/dsl/ast/parser/OptionalFunctionDefinitionArgumentParser.kt similarity index 67% rename from src/main/kotlin/dsl/ast/parser/OptionalFunctionDefinitionArgumentParser.kt rename to src/main/kotlin/io/smnp/dsl/ast/parser/OptionalFunctionDefinitionArgumentParser.kt index ac2cae7..a64366d 100644 --- a/src/main/kotlin/dsl/ast/parser/OptionalFunctionDefinitionArgumentParser.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/parser/OptionalFunctionDefinitionArgumentParser.kt @@ -1,9 +1,9 @@ -package dsl.ast.parser +package io.smnp.dsl.ast.parser -import dsl.ast.model.entity.ParserOutput -import dsl.ast.model.node.OptionalFunctionDefinitionArgumentNode -import dsl.token.model.entity.TokenList -import dsl.token.model.enumeration.TokenType +import io.smnp.dsl.ast.model.entity.ParserOutput +import io.smnp.dsl.ast.model.node.OptionalFunctionDefinitionArgumentNode +import io.smnp.dsl.token.model.entity.TokenList +import io.smnp.dsl.token.model.enumeration.TokenType class OptionalFunctionDefinitionArgumentParser : Parser() { override fun tryToParse(input: TokenList): ParserOutput { diff --git a/src/main/kotlin/dsl/ast/parser/Parser.kt b/src/main/kotlin/io/smnp/dsl/ast/parser/Parser.kt similarity index 94% rename from src/main/kotlin/dsl/ast/parser/Parser.kt rename to src/main/kotlin/io/smnp/dsl/ast/parser/Parser.kt index 2715b45..0480727 100644 --- a/src/main/kotlin/dsl/ast/parser/Parser.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/parser/Parser.kt @@ -1,14 +1,14 @@ -package dsl.ast.parser +package io.smnp.dsl.ast.parser -import dsl.ast.model.entity.ParserOutput -import dsl.ast.model.enumeration.ParsingResult -import dsl.ast.model.node.Node -import dsl.ast.model.node.TokenNode -import dsl.token.model.entity.Token -import dsl.token.model.entity.TokenList -import dsl.token.model.entity.TokenPosition -import dsl.token.model.enumeration.TokenType -import error.InvalidSyntaxException +import io.smnp.dsl.ast.model.entity.ParserOutput +import io.smnp.dsl.ast.model.enumeration.ParsingResult +import io.smnp.dsl.ast.model.node.Node +import io.smnp.dsl.ast.model.node.TokenNode +import io.smnp.dsl.token.model.entity.Token +import io.smnp.dsl.token.model.entity.TokenList +import io.smnp.dsl.token.model.entity.TokenPosition +import io.smnp.dsl.token.model.enumeration.TokenType +import io.smnp.error.InvalidSyntaxException abstract class Parser { fun parse(input: TokenList): ParserOutput { diff --git a/src/main/kotlin/dsl/ast/parser/RegularFunctionDefinitionArgumentParser.kt b/src/main/kotlin/io/smnp/dsl/ast/parser/RegularFunctionDefinitionArgumentParser.kt similarity index 64% rename from src/main/kotlin/dsl/ast/parser/RegularFunctionDefinitionArgumentParser.kt rename to src/main/kotlin/io/smnp/dsl/ast/parser/RegularFunctionDefinitionArgumentParser.kt index 6e49d87..3e5b943 100644 --- a/src/main/kotlin/dsl/ast/parser/RegularFunctionDefinitionArgumentParser.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/parser/RegularFunctionDefinitionArgumentParser.kt @@ -1,9 +1,9 @@ -package dsl.ast.parser +package io.smnp.dsl.ast.parser -import dsl.ast.model.entity.ParserOutput -import dsl.ast.model.node.RegularFunctionDefinitionArgumentNode -import dsl.token.model.entity.TokenList -import dsl.token.model.enumeration.TokenType +import io.smnp.dsl.ast.model.entity.ParserOutput +import io.smnp.dsl.ast.model.node.RegularFunctionDefinitionArgumentNode +import io.smnp.dsl.token.model.entity.TokenList +import io.smnp.dsl.token.model.enumeration.TokenType class RegularFunctionDefinitionArgumentParser : Parser() { override fun tryToParse(input: TokenList): ParserOutput { diff --git a/src/main/kotlin/dsl/ast/parser/ReturnParser.kt b/src/main/kotlin/io/smnp/dsl/ast/parser/ReturnParser.kt similarity index 54% rename from src/main/kotlin/dsl/ast/parser/ReturnParser.kt rename to src/main/kotlin/io/smnp/dsl/ast/parser/ReturnParser.kt index b1f2d88..1149c77 100644 --- a/src/main/kotlin/dsl/ast/parser/ReturnParser.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/parser/ReturnParser.kt @@ -1,9 +1,9 @@ -package dsl.ast.parser +package io.smnp.dsl.ast.parser -import dsl.ast.model.entity.ParserOutput -import dsl.ast.model.node.ReturnNode -import dsl.token.model.entity.TokenList -import dsl.token.model.enumeration.TokenType +import io.smnp.dsl.ast.model.entity.ParserOutput +import io.smnp.dsl.ast.model.node.ReturnNode +import io.smnp.dsl.token.model.entity.TokenList +import io.smnp.dsl.token.model.enumeration.TokenType class ReturnParser : Parser() { override fun tryToParse(input: TokenList): ParserOutput { diff --git a/src/main/kotlin/dsl/ast/parser/RootParser.kt b/src/main/kotlin/io/smnp/dsl/ast/parser/RootParser.kt similarity index 70% rename from src/main/kotlin/dsl/ast/parser/RootParser.kt rename to src/main/kotlin/io/smnp/dsl/ast/parser/RootParser.kt index 35eefc0..c53fead 100644 --- a/src/main/kotlin/dsl/ast/parser/RootParser.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/parser/RootParser.kt @@ -1,8 +1,8 @@ -package dsl.ast.parser +package io.smnp.dsl.ast.parser -import dsl.ast.model.entity.ParserOutput -import dsl.ast.model.node.RootNode -import dsl.token.model.entity.TokenList +import io.smnp.dsl.ast.model.entity.ParserOutput +import io.smnp.dsl.ast.model.node.RootNode +import io.smnp.dsl.token.model.entity.TokenList class RootParser : Parser() { override fun tryToParse(input: TokenList): ParserOutput { diff --git a/src/main/kotlin/dsl/ast/parser/SimpleIdentifierParser.kt b/src/main/kotlin/io/smnp/dsl/ast/parser/SimpleIdentifierParser.kt similarity index 54% rename from src/main/kotlin/dsl/ast/parser/SimpleIdentifierParser.kt rename to src/main/kotlin/io/smnp/dsl/ast/parser/SimpleIdentifierParser.kt index 1da610f..1461745 100644 --- a/src/main/kotlin/dsl/ast/parser/SimpleIdentifierParser.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/parser/SimpleIdentifierParser.kt @@ -1,9 +1,9 @@ -package dsl.ast.parser +package io.smnp.dsl.ast.parser -import dsl.ast.model.entity.ParserOutput -import dsl.ast.model.node.IdentifierNode -import dsl.token.model.entity.TokenList -import dsl.token.model.enumeration.TokenType +import io.smnp.dsl.ast.model.entity.ParserOutput +import io.smnp.dsl.ast.model.node.IdentifierNode +import io.smnp.dsl.token.model.entity.TokenList +import io.smnp.dsl.token.model.enumeration.TokenType class SimpleIdentifierParser : Parser() { override fun tryToParse(input: TokenList): ParserOutput { diff --git a/src/main/kotlin/dsl/ast/parser/StatementParser.kt b/src/main/kotlin/io/smnp/dsl/ast/parser/StatementParser.kt similarity index 70% rename from src/main/kotlin/dsl/ast/parser/StatementParser.kt rename to src/main/kotlin/io/smnp/dsl/ast/parser/StatementParser.kt index ba390ba..60fefd2 100644 --- a/src/main/kotlin/dsl/ast/parser/StatementParser.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/parser/StatementParser.kt @@ -1,8 +1,8 @@ -package dsl.ast.parser +package io.smnp.dsl.ast.parser -import dsl.ast.model.entity.ParserOutput -import dsl.token.model.entity.TokenList -import dsl.token.model.enumeration.TokenType +import io.smnp.dsl.ast.model.entity.ParserOutput +import io.smnp.dsl.token.model.entity.TokenList +import io.smnp.dsl.token.model.enumeration.TokenType class StatementParser : Parser() { override fun tryToParse(input: TokenList): ParserOutput { diff --git a/src/main/kotlin/io/smnp/dsl/ast/parser/StringLiteralParser.kt b/src/main/kotlin/io/smnp/dsl/ast/parser/StringLiteralParser.kt new file mode 100644 index 0000000..90641c2 --- /dev/null +++ b/src/main/kotlin/io/smnp/dsl/ast/parser/StringLiteralParser.kt @@ -0,0 +1,12 @@ +package io.smnp.dsl.ast.parser + +import io.smnp.dsl.ast.model.entity.ParserOutput +import io.smnp.dsl.ast.model.node.StringLiteralNode +import io.smnp.dsl.token.model.entity.TokenList +import io.smnp.dsl.token.model.enumeration.TokenType + +class StringLiteralParser : Parser() { + override fun tryToParse(input: TokenList): ParserOutput { + return terminal(TokenType.STRING) { StringLiteralNode(it) }.parse(input) + } +} \ No newline at end of file diff --git a/src/main/kotlin/dsl/ast/parser/SubexpressionParser.kt b/src/main/kotlin/io/smnp/dsl/ast/parser/SubexpressionParser.kt similarity index 77% rename from src/main/kotlin/dsl/ast/parser/SubexpressionParser.kt rename to src/main/kotlin/io/smnp/dsl/ast/parser/SubexpressionParser.kt index 4f27e14..f20ce8d 100644 --- a/src/main/kotlin/dsl/ast/parser/SubexpressionParser.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/parser/SubexpressionParser.kt @@ -1,11 +1,11 @@ -package dsl.ast.parser +package io.smnp.dsl.ast.parser -import dsl.ast.model.entity.ParserOutput -import dsl.ast.model.node.LogicOperatorNode -import dsl.ast.model.node.RelationOperatorNode -import dsl.ast.model.node.SumOperatorNode -import dsl.token.model.entity.TokenList -import dsl.token.model.enumeration.TokenType +import io.smnp.dsl.ast.model.entity.ParserOutput +import io.smnp.dsl.ast.model.node.LogicOperatorNode +import io.smnp.dsl.ast.model.node.RelationOperatorNode +import io.smnp.dsl.ast.model.node.SumOperatorNode +import io.smnp.dsl.token.model.entity.TokenList +import io.smnp.dsl.token.model.enumeration.TokenType class SubexpressionParser : Parser() { override fun tryToParse(input: TokenList): ParserOutput { diff --git a/src/main/kotlin/dsl/ast/parser/TermParser.kt b/src/main/kotlin/io/smnp/dsl/ast/parser/TermParser.kt similarity index 60% rename from src/main/kotlin/dsl/ast/parser/TermParser.kt rename to src/main/kotlin/io/smnp/dsl/ast/parser/TermParser.kt index 2c4e6f8..69f7141 100644 --- a/src/main/kotlin/dsl/ast/parser/TermParser.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/parser/TermParser.kt @@ -1,9 +1,9 @@ -package dsl.ast.parser +package io.smnp.dsl.ast.parser -import dsl.ast.model.entity.ParserOutput -import dsl.ast.model.node.ProductOperatorNode -import dsl.token.model.entity.TokenList -import dsl.token.model.enumeration.TokenType +import io.smnp.dsl.ast.model.entity.ParserOutput +import io.smnp.dsl.ast.model.node.ProductOperatorNode +import io.smnp.dsl.token.model.entity.TokenList +import io.smnp.dsl.token.model.enumeration.TokenType class TermParser : Parser() { override fun tryToParse(input: TokenList): ParserOutput { diff --git a/src/main/kotlin/dsl/ast/parser/ThrowParser.kt b/src/main/kotlin/io/smnp/dsl/ast/parser/ThrowParser.kt similarity index 54% rename from src/main/kotlin/dsl/ast/parser/ThrowParser.kt rename to src/main/kotlin/io/smnp/dsl/ast/parser/ThrowParser.kt index e8188f3..01c116a 100644 --- a/src/main/kotlin/dsl/ast/parser/ThrowParser.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/parser/ThrowParser.kt @@ -1,9 +1,9 @@ -package dsl.ast.parser +package io.smnp.dsl.ast.parser -import dsl.ast.model.entity.ParserOutput -import dsl.ast.model.node.ThrowNode -import dsl.token.model.entity.TokenList -import dsl.token.model.enumeration.TokenType +import io.smnp.dsl.ast.model.entity.ParserOutput +import io.smnp.dsl.ast.model.node.ThrowNode +import io.smnp.dsl.token.model.entity.TokenList +import io.smnp.dsl.token.model.enumeration.TokenType class ThrowParser : Parser() { override fun tryToParse(input: TokenList): ParserOutput { diff --git a/src/main/kotlin/dsl/ast/parser/TypeParser.kt b/src/main/kotlin/io/smnp/dsl/ast/parser/TypeParser.kt similarity index 60% rename from src/main/kotlin/dsl/ast/parser/TypeParser.kt rename to src/main/kotlin/io/smnp/dsl/ast/parser/TypeParser.kt index fd5c9aa..206c451 100644 --- a/src/main/kotlin/dsl/ast/parser/TypeParser.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/parser/TypeParser.kt @@ -1,9 +1,9 @@ -package dsl.ast.parser +package io.smnp.dsl.ast.parser -import dsl.ast.model.entity.ParserOutput -import dsl.ast.model.node.TypeNode -import dsl.ast.model.node.TypeSpecifiersNode -import dsl.token.model.entity.TokenList +import io.smnp.dsl.ast.model.entity.ParserOutput +import io.smnp.dsl.ast.model.node.TypeNode +import io.smnp.dsl.ast.model.node.TypeSpecifiersNode +import io.smnp.dsl.token.model.entity.TokenList class TypeParser : Parser() { override fun tryToParse(input: TokenList): ParserOutput { diff --git a/src/main/kotlin/dsl/ast/parser/TypeSpecifierParser.kt b/src/main/kotlin/io/smnp/dsl/ast/parser/TypeSpecifierParser.kt similarity index 58% rename from src/main/kotlin/dsl/ast/parser/TypeSpecifierParser.kt rename to src/main/kotlin/io/smnp/dsl/ast/parser/TypeSpecifierParser.kt index d739baa..d733676 100644 --- a/src/main/kotlin/dsl/ast/parser/TypeSpecifierParser.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/parser/TypeSpecifierParser.kt @@ -1,7 +1,7 @@ -package dsl.ast.parser +package io.smnp.dsl.ast.parser -import dsl.ast.model.node.TypeSpecifierNode -import dsl.token.model.enumeration.TokenType +import io.smnp.dsl.ast.model.node.TypeSpecifierNode +import io.smnp.dsl.token.model.enumeration.TokenType class TypeSpecifierParser : AbstractIterableParser(TokenType.OPEN_ANGLE, TypeParser(), TokenType.CLOSE_ANGLE, { list, tokenPosition -> diff --git a/src/main/kotlin/dsl/ast/parser/UnitParser.kt b/src/main/kotlin/io/smnp/dsl/ast/parser/UnitParser.kt similarity index 66% rename from src/main/kotlin/dsl/ast/parser/UnitParser.kt rename to src/main/kotlin/io/smnp/dsl/ast/parser/UnitParser.kt index 58153c0..0e4526d 100644 --- a/src/main/kotlin/dsl/ast/parser/UnitParser.kt +++ b/src/main/kotlin/io/smnp/dsl/ast/parser/UnitParser.kt @@ -1,10 +1,10 @@ -package dsl.ast.parser +package io.smnp.dsl.ast.parser -import dsl.ast.model.entity.ParserOutput -import dsl.ast.model.node.AccessOperatorNode -import dsl.ast.model.node.MinusOperatorNode -import dsl.token.model.entity.TokenList -import dsl.token.model.enumeration.TokenType +import io.smnp.dsl.ast.model.entity.ParserOutput +import io.smnp.dsl.ast.model.node.AccessOperatorNode +import io.smnp.dsl.ast.model.node.MinusOperatorNode +import io.smnp.dsl.token.model.entity.TokenList +import io.smnp.dsl.token.model.enumeration.TokenType class UnitParser : Parser() { override fun tryToParse(input: TokenList): ParserOutput { diff --git a/src/main/kotlin/dsl/token/model/entity/Token.kt b/src/main/kotlin/io/smnp/dsl/token/model/entity/Token.kt similarity index 85% rename from src/main/kotlin/dsl/token/model/entity/Token.kt rename to src/main/kotlin/io/smnp/dsl/token/model/entity/Token.kt index ccf1eed..50159f4 100644 --- a/src/main/kotlin/dsl/token/model/entity/Token.kt +++ b/src/main/kotlin/io/smnp/dsl/token/model/entity/Token.kt @@ -1,6 +1,6 @@ -package dsl.token.model.entity +package io.smnp.dsl.token.model.entity -import dsl.token.model.enumeration.TokenType +import io.smnp.dsl.token.model.enumeration.TokenType data class Token(val type: TokenType, val value: Any, val rawValue: String, val position: TokenPosition) { constructor(type: TokenType, value: String, position: TokenPosition): this(type, value, value, position) diff --git a/src/main/kotlin/dsl/token/model/entity/TokenList.kt b/src/main/kotlin/io/smnp/dsl/token/model/entity/TokenList.kt similarity index 97% rename from src/main/kotlin/dsl/token/model/entity/TokenList.kt rename to src/main/kotlin/io/smnp/dsl/token/model/entity/TokenList.kt index de54c1d..3ace227 100644 --- a/src/main/kotlin/dsl/token/model/entity/TokenList.kt +++ b/src/main/kotlin/io/smnp/dsl/token/model/entity/TokenList.kt @@ -1,4 +1,4 @@ -package dsl.token.model.entity +package io.smnp.dsl.token.model.entity class TokenList(val tokens: List, val lines: List) { private var cursor = 0 diff --git a/src/main/kotlin/dsl/token/model/entity/TokenPosition.kt b/src/main/kotlin/io/smnp/dsl/token/model/entity/TokenPosition.kt similarity index 89% rename from src/main/kotlin/dsl/token/model/entity/TokenPosition.kt rename to src/main/kotlin/io/smnp/dsl/token/model/entity/TokenPosition.kt index 68f5d7c..2798554 100644 --- a/src/main/kotlin/dsl/token/model/entity/TokenPosition.kt +++ b/src/main/kotlin/io/smnp/dsl/token/model/entity/TokenPosition.kt @@ -1,4 +1,4 @@ -package dsl.token.model.entity +package io.smnp.dsl.token.model.entity data class TokenPosition(val line: Int, val beginCol: Int, val endCol: Int) { companion object { diff --git a/src/main/kotlin/dsl/token/model/entity/TokenizerOutput.kt b/src/main/kotlin/io/smnp/dsl/token/model/entity/TokenizerOutput.kt similarity index 92% rename from src/main/kotlin/dsl/token/model/entity/TokenizerOutput.kt rename to src/main/kotlin/io/smnp/dsl/token/model/entity/TokenizerOutput.kt index f8c02eb..b4cf901 100644 --- a/src/main/kotlin/dsl/token/model/entity/TokenizerOutput.kt +++ b/src/main/kotlin/io/smnp/dsl/token/model/entity/TokenizerOutput.kt @@ -1,6 +1,6 @@ -package dsl.token.model.entity +package io.smnp.dsl.token.model.entity -import dsl.token.model.enumeration.TokenType +import io.smnp.dsl.token.model.enumeration.TokenType data class TokenizerOutput(val consumedChars: Int, val token: Token) { fun consumed(): Boolean { diff --git a/src/main/kotlin/dsl/token/model/enumeration/TokenType.kt b/src/main/kotlin/io/smnp/dsl/token/model/enumeration/TokenType.kt similarity index 95% rename from src/main/kotlin/dsl/token/model/enumeration/TokenType.kt rename to src/main/kotlin/io/smnp/dsl/token/model/enumeration/TokenType.kt index d131d96..e5d5dd5 100644 --- a/src/main/kotlin/dsl/token/model/enumeration/TokenType.kt +++ b/src/main/kotlin/io/smnp/dsl/token/model/enumeration/TokenType.kt @@ -1,4 +1,4 @@ -package dsl.token.model.enumeration +package io.smnp.dsl.token.model.enumeration enum class TokenType(val token: String) { NONE(""), diff --git a/src/main/kotlin/dsl/token/tokenizer/CommentTokenizer.kt b/src/main/kotlin/io/smnp/dsl/token/tokenizer/CommentTokenizer.kt similarity index 79% rename from src/main/kotlin/dsl/token/tokenizer/CommentTokenizer.kt rename to src/main/kotlin/io/smnp/dsl/token/tokenizer/CommentTokenizer.kt index 7aef5a7..7812579 100644 --- a/src/main/kotlin/dsl/token/tokenizer/CommentTokenizer.kt +++ b/src/main/kotlin/io/smnp/dsl/token/tokenizer/CommentTokenizer.kt @@ -1,7 +1,7 @@ -package dsl.token.tokenizer +package io.smnp.dsl.token.tokenizer -import dsl.token.model.entity.TokenizerOutput -import dsl.token.model.enumeration.TokenType +import io.smnp.dsl.token.model.entity.TokenizerOutput +import io.smnp.dsl.token.model.enumeration.TokenType class CommentTokenizer : Tokenizer { override fun tokenize(input: String, current: Int, line: Int): TokenizerOutput { diff --git a/src/main/kotlin/dsl/token/tokenizer/DefaultTokenizer.kt b/src/main/kotlin/io/smnp/dsl/token/tokenizer/DefaultTokenizer.kt similarity index 84% rename from src/main/kotlin/dsl/token/tokenizer/DefaultTokenizer.kt rename to src/main/kotlin/io/smnp/dsl/token/tokenizer/DefaultTokenizer.kt index af54959..55bd77c 100644 --- a/src/main/kotlin/dsl/token/tokenizer/DefaultTokenizer.kt +++ b/src/main/kotlin/io/smnp/dsl/token/tokenizer/DefaultTokenizer.kt @@ -1,16 +1,16 @@ -package dsl.token.tokenizer +package io.smnp.dsl.token.tokenizer -import dsl.token.model.entity.Token -import dsl.token.model.entity.TokenList -import dsl.token.model.entity.TokenPosition -import dsl.token.model.entity.TokenizerOutput -import dsl.token.model.enumeration.TokenType -import dsl.token.tokenizer.Tokenizer.Companion.default -import dsl.token.tokenizer.Tokenizer.Companion.keywords -import dsl.token.tokenizer.Tokenizer.Companion.mapValue -import dsl.token.tokenizer.Tokenizer.Companion.regex -import dsl.token.tokenizer.Tokenizer.Companion.separated -import error.InvalidSyntaxException +import io.smnp.dsl.token.model.entity.Token +import io.smnp.dsl.token.model.entity.TokenList +import io.smnp.dsl.token.model.entity.TokenPosition +import io.smnp.dsl.token.model.entity.TokenizerOutput +import io.smnp.dsl.token.model.enumeration.TokenType +import io.smnp.dsl.token.tokenizer.Tokenizer.Companion.default +import io.smnp.dsl.token.tokenizer.Tokenizer.Companion.keywords +import io.smnp.dsl.token.tokenizer.Tokenizer.Companion.mapValue +import io.smnp.dsl.token.tokenizer.Tokenizer.Companion.regex +import io.smnp.dsl.token.tokenizer.Tokenizer.Companion.separated +import io.smnp.error.InvalidSyntaxException class DefaultTokenizer : Tokenizer { private val tokenizers = listOf( diff --git a/src/main/kotlin/dsl/token/tokenizer/FloatTokenizer.kt b/src/main/kotlin/io/smnp/dsl/token/tokenizer/FloatTokenizer.kt similarity index 71% rename from src/main/kotlin/dsl/token/tokenizer/FloatTokenizer.kt rename to src/main/kotlin/io/smnp/dsl/token/tokenizer/FloatTokenizer.kt index 9786581..0a08f42 100644 --- a/src/main/kotlin/dsl/token/tokenizer/FloatTokenizer.kt +++ b/src/main/kotlin/io/smnp/dsl/token/tokenizer/FloatTokenizer.kt @@ -1,8 +1,8 @@ -package dsl.token.tokenizer +package io.smnp.dsl.token.tokenizer -import dsl.token.model.entity.Token -import dsl.token.model.entity.TokenizerOutput -import dsl.token.model.enumeration.TokenType +import io.smnp.dsl.token.model.entity.Token +import io.smnp.dsl.token.model.entity.TokenizerOutput +import io.smnp.dsl.token.model.enumeration.TokenType class FloatTokenizer : Tokenizer { override fun tokenize(input: String, current: Int, line: Int): TokenizerOutput { diff --git a/src/main/kotlin/dsl/token/tokenizer/NoteTokenizer.kt b/src/main/kotlin/io/smnp/dsl/token/tokenizer/NoteTokenizer.kt similarity index 93% rename from src/main/kotlin/dsl/token/tokenizer/NoteTokenizer.kt rename to src/main/kotlin/io/smnp/dsl/token/tokenizer/NoteTokenizer.kt index f7a8c46..5d50a55 100644 --- a/src/main/kotlin/dsl/token/tokenizer/NoteTokenizer.kt +++ b/src/main/kotlin/io/smnp/dsl/token/tokenizer/NoteTokenizer.kt @@ -1,9 +1,9 @@ -package dsl.token.tokenizer +package io.smnp.dsl.token.tokenizer -import data.entity.Note -import data.enumeration.Pitch -import dsl.token.model.entity.TokenizerOutput -import dsl.token.model.enumeration.TokenType +import io.smnp.data.entity.Note +import io.smnp.data.enumeration.Pitch +import io.smnp.dsl.token.model.entity.TokenizerOutput +import io.smnp.dsl.token.model.enumeration.TokenType class NoteTokenizer : Tokenizer { override fun tokenize(input: String, current: Int, line: Int): TokenizerOutput { diff --git a/src/main/kotlin/dsl/token/tokenizer/StringTokenizer.kt b/src/main/kotlin/io/smnp/dsl/token/tokenizer/StringTokenizer.kt similarity index 83% rename from src/main/kotlin/dsl/token/tokenizer/StringTokenizer.kt rename to src/main/kotlin/io/smnp/dsl/token/tokenizer/StringTokenizer.kt index 32cd6d0..972680f 100644 --- a/src/main/kotlin/dsl/token/tokenizer/StringTokenizer.kt +++ b/src/main/kotlin/io/smnp/dsl/token/tokenizer/StringTokenizer.kt @@ -1,7 +1,7 @@ -package dsl.token.tokenizer +package io.smnp.dsl.token.tokenizer -import dsl.token.model.entity.TokenizerOutput -import dsl.token.model.enumeration.TokenType +import io.smnp.dsl.token.model.entity.TokenizerOutput +import io.smnp.dsl.token.model.enumeration.TokenType class StringTokenizer : Tokenizer { override fun tokenize(input: String, current: Int, line: Int): TokenizerOutput { diff --git a/src/main/kotlin/dsl/token/tokenizer/Tokenizer.kt b/src/main/kotlin/io/smnp/dsl/token/tokenizer/Tokenizer.kt similarity index 93% rename from src/main/kotlin/dsl/token/tokenizer/Tokenizer.kt rename to src/main/kotlin/io/smnp/dsl/token/tokenizer/Tokenizer.kt index e23e53b..b630e4c 100644 --- a/src/main/kotlin/dsl/token/tokenizer/Tokenizer.kt +++ b/src/main/kotlin/io/smnp/dsl/token/tokenizer/Tokenizer.kt @@ -1,9 +1,9 @@ -package dsl.token.tokenizer +package io.smnp.dsl.token.tokenizer -import dsl.token.model.entity.Token -import dsl.token.model.entity.TokenPosition -import dsl.token.model.entity.TokenizerOutput -import dsl.token.model.enumeration.TokenType +import io.smnp.dsl.token.model.entity.Token +import io.smnp.dsl.token.model.entity.TokenPosition +import io.smnp.dsl.token.model.entity.TokenizerOutput +import io.smnp.dsl.token.model.enumeration.TokenType interface Tokenizer { fun tokenize(input: String, current: Int, line: Int): TokenizerOutput @@ -70,7 +70,7 @@ interface Tokenizer { } } - // Isolate dsl.token (for example "function" | "functions" | "function s") + // Isolate io.smnp.dsl.token (for example "function" | "functions" | "function s") fun separated(tokenizer: Tokenizer, end: String = "\\W"): Tokenizer { return object : Tokenizer { override fun tokenize(input: String, current: Int, line: Int): TokenizerOutput { @@ -91,7 +91,7 @@ interface Tokenizer { } } - // Change dsl.token value (rawValue will be kept) + // Change io.smnp.dsl.token value (rawValue will be kept) fun mapValue(tokenizer: Tokenizer, mapper: (Any) -> Any): Tokenizer { return object : Tokenizer { override fun tokenize(input: String, current: Int, line: Int): TokenizerOutput { diff --git a/src/main/kotlin/error/InvalidSyntaxException.kt b/src/main/kotlin/io/smnp/error/InvalidSyntaxException.kt similarity index 74% rename from src/main/kotlin/error/InvalidSyntaxException.kt rename to src/main/kotlin/io/smnp/error/InvalidSyntaxException.kt index f6cef2e..5fc48b4 100644 --- a/src/main/kotlin/error/InvalidSyntaxException.kt +++ b/src/main/kotlin/io/smnp/error/InvalidSyntaxException.kt @@ -1,6 +1,6 @@ -package error +package io.smnp.error -import dsl.token.model.entity.TokenPosition +import io.smnp.dsl.token.model.entity.TokenPosition class InvalidSyntaxException(message: String?, val position: TokenPosition?) : Exception(message) { override val message: String? diff --git a/src/main/kotlin/io/smnp/evaluation/environment/Environment.kt b/src/main/kotlin/io/smnp/evaluation/environment/Environment.kt new file mode 100644 index 0000000..7b3a9b6 --- /dev/null +++ b/src/main/kotlin/io/smnp/evaluation/environment/Environment.kt @@ -0,0 +1,4 @@ +package io.smnp.evaluation.environment + +class Environment { +} \ No newline at end of file diff --git a/src/main/kotlin/io/smnp/evaluation/evaluator/BoolLiteralEvaluator.kt b/src/main/kotlin/io/smnp/evaluation/evaluator/BoolLiteralEvaluator.kt new file mode 100644 index 0000000..b8e4fbc --- /dev/null +++ b/src/main/kotlin/io/smnp/evaluation/evaluator/BoolLiteralEvaluator.kt @@ -0,0 +1,14 @@ +package io.smnp.evaluation.evaluator + +import io.smnp.data.model.Value +import io.smnp.dsl.ast.model.node.BoolLiteralNode +import io.smnp.dsl.ast.model.node.Node +import io.smnp.evaluation.environment.Environment +import io.smnp.evaluation.model.entity.EvaluatorOutput + +class BoolLiteralEvaluator : Evaluator { + override fun evaluate(node: Node, environment: Environment): EvaluatorOutput { + val value = (node as BoolLiteralNode).token.value as Boolean + return EvaluatorOutput.value(Value.bool(value)) + } +} \ No newline at end of file diff --git a/src/main/kotlin/evaluation/evaluator/Evaluator.kt b/src/main/kotlin/io/smnp/evaluation/evaluator/Evaluator.kt similarity index 83% rename from src/main/kotlin/evaluation/evaluator/Evaluator.kt rename to src/main/kotlin/io/smnp/evaluation/evaluator/Evaluator.kt index 913c40b..31d52db 100644 --- a/src/main/kotlin/evaluation/evaluator/Evaluator.kt +++ b/src/main/kotlin/io/smnp/evaluation/evaluator/Evaluator.kt @@ -1,9 +1,9 @@ -package evaluation.evaluator +package io.smnp.evaluation.evaluator -import dsl.ast.model.node.Node -import evaluation.environment.Environment -import evaluation.model.entity.EvaluatorOutput -import evaluation.model.enumeration.EvaluationResult +import io.smnp.dsl.ast.model.node.Node +import io.smnp.evaluation.environment.Environment +import io.smnp.evaluation.model.entity.EvaluatorOutput +import io.smnp.evaluation.model.enumeration.EvaluationResult import kotlin.reflect.KClass interface Evaluator { diff --git a/src/main/kotlin/io/smnp/evaluation/evaluator/FloatLiteralEvaluator.kt b/src/main/kotlin/io/smnp/evaluation/evaluator/FloatLiteralEvaluator.kt new file mode 100644 index 0000000..181635d --- /dev/null +++ b/src/main/kotlin/io/smnp/evaluation/evaluator/FloatLiteralEvaluator.kt @@ -0,0 +1,14 @@ +package io.smnp.evaluation.evaluator + +import io.smnp.data.model.Value +import io.smnp.dsl.ast.model.node.FloatLiteralNode +import io.smnp.dsl.ast.model.node.Node +import io.smnp.evaluation.environment.Environment +import io.smnp.evaluation.model.entity.EvaluatorOutput + +class FloatLiteralEvaluator : Evaluator { + override fun evaluate(node: Node, environment: Environment): EvaluatorOutput { + val value = (node as FloatLiteralNode).token.value as Float + return EvaluatorOutput.value(Value.float(value)) + } +} \ No newline at end of file diff --git a/src/main/kotlin/io/smnp/evaluation/evaluator/IntegerLiteralEvaluator.kt b/src/main/kotlin/io/smnp/evaluation/evaluator/IntegerLiteralEvaluator.kt new file mode 100644 index 0000000..e33f9d4 --- /dev/null +++ b/src/main/kotlin/io/smnp/evaluation/evaluator/IntegerLiteralEvaluator.kt @@ -0,0 +1,14 @@ +package io.smnp.evaluation.evaluator + +import io.smnp.data.model.Value +import io.smnp.dsl.ast.model.node.IntegerLiteralNode +import io.smnp.dsl.ast.model.node.Node +import io.smnp.evaluation.environment.Environment +import io.smnp.evaluation.model.entity.EvaluatorOutput + +class IntegerLiteralEvaluator : Evaluator { + override fun evaluate(node: Node, environment: Environment): EvaluatorOutput { + val value = (node as IntegerLiteralNode).token.value as Int + return EvaluatorOutput.value(Value.int(value)) + } +} \ No newline at end of file diff --git a/src/main/kotlin/evaluation/evaluator/ListEvaluator.kt b/src/main/kotlin/io/smnp/evaluation/evaluator/ListEvaluator.kt similarity index 58% rename from src/main/kotlin/evaluation/evaluator/ListEvaluator.kt rename to src/main/kotlin/io/smnp/evaluation/evaluator/ListEvaluator.kt index 9831ae8..83228c6 100644 --- a/src/main/kotlin/evaluation/evaluator/ListEvaluator.kt +++ b/src/main/kotlin/io/smnp/evaluation/evaluator/ListEvaluator.kt @@ -1,10 +1,10 @@ -package evaluation.evaluator +package io.smnp.evaluation.evaluator -import data.model.Value -import dsl.ast.model.node.ListNode -import dsl.ast.model.node.Node -import evaluation.environment.Environment -import evaluation.model.entity.EvaluatorOutput +import io.smnp.data.model.Value +import io.smnp.dsl.ast.model.node.ListNode +import io.smnp.dsl.ast.model.node.Node +import io.smnp.evaluation.environment.Environment +import io.smnp.evaluation.model.entity.EvaluatorOutput class ListEvaluator : Evaluator { override fun evaluate(node: Node, environment: Environment): EvaluatorOutput { diff --git a/src/main/kotlin/evaluation/evaluator/MapEvaluator.kt b/src/main/kotlin/io/smnp/evaluation/evaluator/MapEvaluator.kt similarity index 60% rename from src/main/kotlin/evaluation/evaluator/MapEvaluator.kt rename to src/main/kotlin/io/smnp/evaluation/evaluator/MapEvaluator.kt index d2c75e8..c0c102a 100644 --- a/src/main/kotlin/evaluation/evaluator/MapEvaluator.kt +++ b/src/main/kotlin/io/smnp/evaluation/evaluator/MapEvaluator.kt @@ -1,11 +1,11 @@ -package evaluation.evaluator +package io.smnp.evaluation.evaluator -import data.model.Value -import dsl.ast.model.node.MapEntryNode -import dsl.ast.model.node.MapNode -import dsl.ast.model.node.Node -import evaluation.environment.Environment -import evaluation.model.entity.EvaluatorOutput +import io.smnp.data.model.Value +import io.smnp.dsl.ast.model.node.MapEntryNode +import io.smnp.dsl.ast.model.node.MapNode +import io.smnp.dsl.ast.model.node.Node +import io.smnp.evaluation.environment.Environment +import io.smnp.evaluation.model.entity.EvaluatorOutput class MapEvaluator : Evaluator { override fun evaluate(node: Node, environment: Environment): EvaluatorOutput { diff --git a/src/main/kotlin/io/smnp/evaluation/evaluator/NoteLiteralEvaluator.kt b/src/main/kotlin/io/smnp/evaluation/evaluator/NoteLiteralEvaluator.kt new file mode 100644 index 0000000..eeacbf2 --- /dev/null +++ b/src/main/kotlin/io/smnp/evaluation/evaluator/NoteLiteralEvaluator.kt @@ -0,0 +1,15 @@ +package io.smnp.evaluation.evaluator + +import io.smnp.data.entity.Note +import io.smnp.data.model.Value +import io.smnp.dsl.ast.model.node.Node +import io.smnp.dsl.ast.model.node.NoteLiteralNode +import io.smnp.evaluation.environment.Environment +import io.smnp.evaluation.model.entity.EvaluatorOutput + +class NoteLiteralEvaluator : Evaluator { + override fun evaluate(node: Node, environment: Environment): EvaluatorOutput { + val value = (node as NoteLiteralNode).token.value as Note + return EvaluatorOutput.value(Value.note(value)) + } +} \ No newline at end of file diff --git a/src/main/kotlin/evaluation/evaluator/RootEvaluator.kt b/src/main/kotlin/io/smnp/evaluation/evaluator/RootEvaluator.kt similarity index 68% rename from src/main/kotlin/evaluation/evaluator/RootEvaluator.kt rename to src/main/kotlin/io/smnp/evaluation/evaluator/RootEvaluator.kt index 0039575..2a5dcac 100644 --- a/src/main/kotlin/evaluation/evaluator/RootEvaluator.kt +++ b/src/main/kotlin/io/smnp/evaluation/evaluator/RootEvaluator.kt @@ -1,10 +1,10 @@ -package evaluation.evaluator +package io.smnp.evaluation.evaluator -import dsl.ast.model.node.* -import evaluation.environment.Environment -import evaluation.evaluator.Evaluator.Companion.forward -import evaluation.evaluator.Evaluator.Companion.oneOf -import evaluation.model.entity.EvaluatorOutput +import io.smnp.dsl.ast.model.node.* +import io.smnp.evaluation.environment.Environment +import io.smnp.evaluation.evaluator.Evaluator.Companion.forward +import io.smnp.evaluation.evaluator.Evaluator.Companion.oneOf +import io.smnp.evaluation.model.entity.EvaluatorOutput class RootEvaluator : Evaluator { override fun evaluate(node: Node, environment: Environment): EvaluatorOutput { diff --git a/src/main/kotlin/io/smnp/evaluation/evaluator/StringLiteralEvaluator.kt b/src/main/kotlin/io/smnp/evaluation/evaluator/StringLiteralEvaluator.kt new file mode 100644 index 0000000..c8c0c60 --- /dev/null +++ b/src/main/kotlin/io/smnp/evaluation/evaluator/StringLiteralEvaluator.kt @@ -0,0 +1,14 @@ +package io.smnp.evaluation.evaluator + +import io.smnp.data.model.Value +import io.smnp.dsl.ast.model.node.Node +import io.smnp.dsl.ast.model.node.StringLiteralNode +import io.smnp.evaluation.environment.Environment +import io.smnp.evaluation.model.entity.EvaluatorOutput + +class StringLiteralEvaluator : Evaluator { + override fun evaluate(node: Node, environment: Environment): EvaluatorOutput { + val value = (node as StringLiteralNode).token.value as String + return EvaluatorOutput.value(Value.string(value)) + } +} \ No newline at end of file diff --git a/src/main/kotlin/evaluation/model/entity/EvaluatorOutput.kt b/src/main/kotlin/io/smnp/evaluation/model/entity/EvaluatorOutput.kt similarity index 78% rename from src/main/kotlin/evaluation/model/entity/EvaluatorOutput.kt rename to src/main/kotlin/io/smnp/evaluation/model/entity/EvaluatorOutput.kt index 7033c31..8f0fd7b 100644 --- a/src/main/kotlin/evaluation/model/entity/EvaluatorOutput.kt +++ b/src/main/kotlin/io/smnp/evaluation/model/entity/EvaluatorOutput.kt @@ -1,7 +1,7 @@ -package evaluation.model.entity +package io.smnp.evaluation.model.entity -import data.model.Value -import evaluation.model.enumeration.EvaluationResult +import io.smnp.data.model.Value +import io.smnp.evaluation.model.enumeration.EvaluationResult class EvaluatorOutput private constructor(val result: EvaluationResult, val value: Value?) { companion object { diff --git a/src/main/kotlin/evaluation/model/enumeration/EvaluationResult.kt b/src/main/kotlin/io/smnp/evaluation/model/enumeration/EvaluationResult.kt similarity index 57% rename from src/main/kotlin/evaluation/model/enumeration/EvaluationResult.kt rename to src/main/kotlin/io/smnp/evaluation/model/enumeration/EvaluationResult.kt index 5923ade..30d49d9 100644 --- a/src/main/kotlin/evaluation/model/enumeration/EvaluationResult.kt +++ b/src/main/kotlin/io/smnp/evaluation/model/enumeration/EvaluationResult.kt @@ -1,4 +1,4 @@ -package evaluation.model.enumeration +package io.smnp.evaluation.model.enumeration enum class EvaluationResult { OK, diff --git a/src/main/kotlin/interpreter/Interpreter.kt b/src/main/kotlin/io/smnp/interpreter/Interpreter.kt similarity index 83% rename from src/main/kotlin/interpreter/Interpreter.kt rename to src/main/kotlin/io/smnp/interpreter/Interpreter.kt index 6af04e2..c1948dc 100644 --- a/src/main/kotlin/interpreter/Interpreter.kt +++ b/src/main/kotlin/io/smnp/interpreter/Interpreter.kt @@ -1,7 +1,7 @@ -package interpreter +package io.smnp.interpreter -import dsl.ast.parser.RootParser -import dsl.token.tokenizer.DefaultTokenizer +import io.smnp.dsl.ast.parser.RootParser +import io.smnp.dsl.token.tokenizer.DefaultTokenizer import java.io.File class Interpreter {