diff --git a/api/src/main/kotlin/io/smnp/callable/function/Function.kt b/api/src/main/kotlin/com/bartlomiejpluta/smnp/callable/function/Function.kt similarity index 83% rename from api/src/main/kotlin/io/smnp/callable/function/Function.kt rename to api/src/main/kotlin/com/bartlomiejpluta/smnp/callable/function/Function.kt index 86d966b..e5e59a8 100644 --- a/api/src/main/kotlin/io/smnp/callable/function/Function.kt +++ b/api/src/main/kotlin/com/bartlomiejpluta/smnp/callable/function/Function.kt @@ -1,8 +1,8 @@ -package io.smnp.callable.function +package com.bartlomiejpluta.smnp.callable.function -import io.smnp.environment.Environment -import io.smnp.type.model.Value -import io.smnp.type.module.Module +import com.bartlomiejpluta.smnp.environment.Environment +import com.bartlomiejpluta.smnp.type.model.Value +import com.bartlomiejpluta.smnp.type.module.Module abstract class Function(val name: String) { private var definitions: List = mutableListOf() diff --git a/api/src/main/kotlin/com/bartlomiejpluta/smnp/callable/function/FunctionDefinition.kt b/api/src/main/kotlin/com/bartlomiejpluta/smnp/callable/function/FunctionDefinition.kt new file mode 100644 index 0000000..63d1f14 --- /dev/null +++ b/api/src/main/kotlin/com/bartlomiejpluta/smnp/callable/function/FunctionDefinition.kt @@ -0,0 +1,7 @@ +package com.bartlomiejpluta.smnp.callable.function + +import com.bartlomiejpluta.smnp.callable.signature.Signature +import com.bartlomiejpluta.smnp.environment.Environment +import com.bartlomiejpluta.smnp.type.model.Value + +class FunctionDefinition(val signature: Signature, val body: (Environment, List) -> Value) \ No newline at end of file diff --git a/api/src/main/kotlin/io/smnp/callable/function/FunctionDefinitionTool.kt b/api/src/main/kotlin/com/bartlomiejpluta/smnp/callable/function/FunctionDefinitionTool.kt similarity index 68% rename from api/src/main/kotlin/io/smnp/callable/function/FunctionDefinitionTool.kt rename to api/src/main/kotlin/com/bartlomiejpluta/smnp/callable/function/FunctionDefinitionTool.kt index aa783cc..2843059 100644 --- a/api/src/main/kotlin/io/smnp/callable/function/FunctionDefinitionTool.kt +++ b/api/src/main/kotlin/com/bartlomiejpluta/smnp/callable/function/FunctionDefinitionTool.kt @@ -1,8 +1,8 @@ -package io.smnp.callable.function +package com.bartlomiejpluta.smnp.callable.function -import io.smnp.callable.signature.Signature -import io.smnp.environment.Environment -import io.smnp.type.model.Value +import com.bartlomiejpluta.smnp.callable.signature.Signature +import com.bartlomiejpluta.smnp.environment.Environment +import com.bartlomiejpluta.smnp.type.model.Value class FunctionDefinitionTool { val definitions: MutableList = mutableListOf() diff --git a/api/src/main/kotlin/io/smnp/callable/method/Method.kt b/api/src/main/kotlin/com/bartlomiejpluta/smnp/callable/method/Method.kt similarity index 81% rename from api/src/main/kotlin/io/smnp/callable/method/Method.kt rename to api/src/main/kotlin/com/bartlomiejpluta/smnp/callable/method/Method.kt index 6b91897..36bc50d 100644 --- a/api/src/main/kotlin/io/smnp/callable/method/Method.kt +++ b/api/src/main/kotlin/com/bartlomiejpluta/smnp/callable/method/Method.kt @@ -1,9 +1,9 @@ -package io.smnp.callable.method +package com.bartlomiejpluta.smnp.callable.method -import io.smnp.environment.Environment -import io.smnp.type.matcher.Matcher -import io.smnp.type.model.Value -import io.smnp.type.module.Module +import com.bartlomiejpluta.smnp.environment.Environment +import com.bartlomiejpluta.smnp.type.matcher.Matcher +import com.bartlomiejpluta.smnp.type.model.Value +import com.bartlomiejpluta.smnp.type.module.Module abstract class Method(val typeMatcher: Matcher, val name: String) { private var definitions: List = mutableListOf() diff --git a/api/src/main/kotlin/com/bartlomiejpluta/smnp/callable/method/MethodDefinition.kt b/api/src/main/kotlin/com/bartlomiejpluta/smnp/callable/method/MethodDefinition.kt new file mode 100644 index 0000000..249f4cb --- /dev/null +++ b/api/src/main/kotlin/com/bartlomiejpluta/smnp/callable/method/MethodDefinition.kt @@ -0,0 +1,7 @@ +package com.bartlomiejpluta.smnp.callable.method + +import com.bartlomiejpluta.smnp.callable.signature.Signature +import com.bartlomiejpluta.smnp.environment.Environment +import com.bartlomiejpluta.smnp.type.model.Value + +class MethodDefinition(val signature: Signature, val body: (Environment, Value, List) -> Value) \ No newline at end of file diff --git a/api/src/main/kotlin/io/smnp/callable/method/MethodDefinitionTool.kt b/api/src/main/kotlin/com/bartlomiejpluta/smnp/callable/method/MethodDefinitionTool.kt similarity index 68% rename from api/src/main/kotlin/io/smnp/callable/method/MethodDefinitionTool.kt rename to api/src/main/kotlin/com/bartlomiejpluta/smnp/callable/method/MethodDefinitionTool.kt index c0448a5..2e93b83 100644 --- a/api/src/main/kotlin/io/smnp/callable/method/MethodDefinitionTool.kt +++ b/api/src/main/kotlin/com/bartlomiejpluta/smnp/callable/method/MethodDefinitionTool.kt @@ -1,8 +1,8 @@ -package io.smnp.callable.method +package com.bartlomiejpluta.smnp.callable.method -import io.smnp.callable.signature.Signature -import io.smnp.environment.Environment -import io.smnp.type.model.Value +import com.bartlomiejpluta.smnp.callable.signature.Signature +import com.bartlomiejpluta.smnp.environment.Environment +import com.bartlomiejpluta.smnp.type.model.Value class MethodDefinitionTool { val definitions: MutableList = mutableListOf() diff --git a/api/src/main/kotlin/io/smnp/callable/signature/ActualSignatureFormatter.kt b/api/src/main/kotlin/com/bartlomiejpluta/smnp/callable/signature/ActualSignatureFormatter.kt similarity index 91% rename from api/src/main/kotlin/io/smnp/callable/signature/ActualSignatureFormatter.kt rename to api/src/main/kotlin/com/bartlomiejpluta/smnp/callable/signature/ActualSignatureFormatter.kt index fbd5cd8..4998f85 100644 --- a/api/src/main/kotlin/io/smnp/callable/signature/ActualSignatureFormatter.kt +++ b/api/src/main/kotlin/com/bartlomiejpluta/smnp/callable/signature/ActualSignatureFormatter.kt @@ -1,7 +1,7 @@ -package io.smnp.callable.signature +package com.bartlomiejpluta.smnp.callable.signature -import io.smnp.type.enumeration.DataType -import io.smnp.type.model.Value +import com.bartlomiejpluta.smnp.type.enumeration.DataType +import com.bartlomiejpluta.smnp.type.model.Value object ActualSignatureFormatter { fun format(value: Value): String { diff --git a/api/src/main/kotlin/io/smnp/callable/signature/ArgumentsList.kt b/api/src/main/kotlin/com/bartlomiejpluta/smnp/callable/signature/ArgumentsList.kt similarity index 83% rename from api/src/main/kotlin/io/smnp/callable/signature/ArgumentsList.kt rename to api/src/main/kotlin/com/bartlomiejpluta/smnp/callable/signature/ArgumentsList.kt index 7de3b49..02d72b1 100644 --- a/api/src/main/kotlin/io/smnp/callable/signature/ArgumentsList.kt +++ b/api/src/main/kotlin/com/bartlomiejpluta/smnp/callable/signature/ArgumentsList.kt @@ -1,6 +1,6 @@ -package io.smnp.callable.signature +package com.bartlomiejpluta.smnp.callable.signature -import io.smnp.type.model.Value +import com.bartlomiejpluta.smnp.type.model.Value class ArgumentsList(val signatureMatched: Boolean, val arguments: List) { operator fun get(index: Int) = arguments[index] diff --git a/api/src/main/kotlin/io/smnp/callable/signature/Signature.kt b/api/src/main/kotlin/com/bartlomiejpluta/smnp/callable/signature/Signature.kt similarity index 71% rename from api/src/main/kotlin/io/smnp/callable/signature/Signature.kt rename to api/src/main/kotlin/com/bartlomiejpluta/smnp/callable/signature/Signature.kt index 05d4e74..dddd743 100644 --- a/api/src/main/kotlin/io/smnp/callable/signature/Signature.kt +++ b/api/src/main/kotlin/com/bartlomiejpluta/smnp/callable/signature/Signature.kt @@ -1,7 +1,7 @@ -package io.smnp.callable.signature +package com.bartlomiejpluta.smnp.callable.signature -import io.smnp.type.matcher.Matcher -import io.smnp.type.model.Value +import com.bartlomiejpluta.smnp.type.matcher.Matcher +import com.bartlomiejpluta.smnp.type.model.Value interface Signature { fun parse(arguments: List): ArgumentsList diff --git a/api/src/main/kotlin/io/smnp/callable/signature/SimpleSignature.kt b/api/src/main/kotlin/com/bartlomiejpluta/smnp/callable/signature/SimpleSignature.kt similarity index 77% rename from api/src/main/kotlin/io/smnp/callable/signature/SimpleSignature.kt rename to api/src/main/kotlin/com/bartlomiejpluta/smnp/callable/signature/SimpleSignature.kt index f559d55..be8a0ba 100644 --- a/api/src/main/kotlin/io/smnp/callable/signature/SimpleSignature.kt +++ b/api/src/main/kotlin/com/bartlomiejpluta/smnp/callable/signature/SimpleSignature.kt @@ -1,7 +1,7 @@ -package io.smnp.callable.signature +package com.bartlomiejpluta.smnp.callable.signature -import io.smnp.type.matcher.Matcher -import io.smnp.type.model.Value +import com.bartlomiejpluta.smnp.type.matcher.Matcher +import com.bartlomiejpluta.smnp.type.model.Value class SimpleSignature(private vararg val signature: Matcher) : Signature { diff --git a/api/src/main/kotlin/io/smnp/callable/signature/VarargSignature.kt b/api/src/main/kotlin/com/bartlomiejpluta/smnp/callable/signature/VarargSignature.kt similarity index 89% rename from api/src/main/kotlin/io/smnp/callable/signature/VarargSignature.kt rename to api/src/main/kotlin/com/bartlomiejpluta/smnp/callable/signature/VarargSignature.kt index dd03802..b161ab6 100644 --- a/api/src/main/kotlin/io/smnp/callable/signature/VarargSignature.kt +++ b/api/src/main/kotlin/com/bartlomiejpluta/smnp/callable/signature/VarargSignature.kt @@ -1,7 +1,7 @@ -package io.smnp.callable.signature +package com.bartlomiejpluta.smnp.callable.signature -import io.smnp.type.matcher.Matcher -import io.smnp.type.model.Value +import com.bartlomiejpluta.smnp.type.matcher.Matcher +import com.bartlomiejpluta.smnp.type.model.Value class VarargSignature(private val varargMatcher: Matcher, private vararg val signature: Matcher) : Signature { diff --git a/api/src/main/kotlin/io/smnp/collection/Stack.kt b/api/src/main/kotlin/com/bartlomiejpluta/smnp/collection/Stack.kt similarity index 91% rename from api/src/main/kotlin/io/smnp/collection/Stack.kt rename to api/src/main/kotlin/com/bartlomiejpluta/smnp/collection/Stack.kt index ca69efa..80a7e36 100644 --- a/api/src/main/kotlin/io/smnp/collection/Stack.kt +++ b/api/src/main/kotlin/com/bartlomiejpluta/smnp/collection/Stack.kt @@ -1,4 +1,4 @@ -package io.smnp.collection +package com.bartlomiejpluta.smnp.collection class Stack private constructor(private val list: MutableList) : List by list { fun push(item: T) { diff --git a/api/src/main/kotlin/io/smnp/data/entity/Note.kt b/api/src/main/kotlin/com/bartlomiejpluta/smnp/data/entity/Note.kt similarity index 86% rename from api/src/main/kotlin/io/smnp/data/entity/Note.kt rename to api/src/main/kotlin/com/bartlomiejpluta/smnp/data/entity/Note.kt index a913684..09ee4d1 100644 --- a/api/src/main/kotlin/io/smnp/data/entity/Note.kt +++ b/api/src/main/kotlin/com/bartlomiejpluta/smnp/data/entity/Note.kt @@ -1,7 +1,7 @@ -package io.smnp.data.entity +package com.bartlomiejpluta.smnp.data.entity -import io.smnp.data.enumeration.Pitch -import io.smnp.math.Fraction +import com.bartlomiejpluta.smnp.data.enumeration.Pitch +import com.bartlomiejpluta.smnp.math.Fraction class Note(val pitch: Pitch, val octave: Int, duration: Fraction, dot: Boolean) { val duration = if(dot) duration * Fraction(3, 2) else duration diff --git a/api/src/main/kotlin/io/smnp/data/enumeration/Pitch.kt b/api/src/main/kotlin/com/bartlomiejpluta/smnp/data/enumeration/Pitch.kt similarity index 95% rename from api/src/main/kotlin/io/smnp/data/enumeration/Pitch.kt rename to api/src/main/kotlin/com/bartlomiejpluta/smnp/data/enumeration/Pitch.kt index fc01a08..260f73d 100644 --- a/api/src/main/kotlin/io/smnp/data/enumeration/Pitch.kt +++ b/api/src/main/kotlin/com/bartlomiejpluta/smnp/data/enumeration/Pitch.kt @@ -1,4 +1,4 @@ -package io.smnp.data.enumeration +package com.bartlomiejpluta.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/api/src/main/kotlin/io/smnp/environment/Environment.kt b/api/src/main/kotlin/com/bartlomiejpluta/smnp/environment/Environment.kt similarity index 71% rename from api/src/main/kotlin/io/smnp/environment/Environment.kt rename to api/src/main/kotlin/com/bartlomiejpluta/smnp/environment/Environment.kt index 64512bb..c29ea67 100644 --- a/api/src/main/kotlin/io/smnp/environment/Environment.kt +++ b/api/src/main/kotlin/com/bartlomiejpluta/smnp/environment/Environment.kt @@ -1,9 +1,9 @@ -package io.smnp.environment +package com.bartlomiejpluta.smnp.environment -import io.smnp.callable.function.Function -import io.smnp.callable.method.Method -import io.smnp.type.model.Value -import io.smnp.type.module.Module +import com.bartlomiejpluta.smnp.callable.function.Function +import com.bartlomiejpluta.smnp.callable.method.Method +import com.bartlomiejpluta.smnp.type.model.Value +import com.bartlomiejpluta.smnp.type.module.Module interface Environment { fun loadModule(path: String) diff --git a/api/src/main/kotlin/io/smnp/error/CustomException.kt b/api/src/main/kotlin/com/bartlomiejpluta/smnp/error/CustomException.kt similarity index 65% rename from api/src/main/kotlin/io/smnp/error/CustomException.kt rename to api/src/main/kotlin/com/bartlomiejpluta/smnp/error/CustomException.kt index b491388..d48ac84 100644 --- a/api/src/main/kotlin/io/smnp/error/CustomException.kt +++ b/api/src/main/kotlin/com/bartlomiejpluta/smnp/error/CustomException.kt @@ -1,3 +1,3 @@ -package io.smnp.error +package com.bartlomiejpluta.smnp.error class CustomException(message: String?) : SmnpException("Error", message) \ No newline at end of file diff --git a/api/src/main/kotlin/io/smnp/error/EnvironmentException.kt b/api/src/main/kotlin/com/bartlomiejpluta/smnp/error/EnvironmentException.kt similarity index 62% rename from api/src/main/kotlin/io/smnp/error/EnvironmentException.kt rename to api/src/main/kotlin/com/bartlomiejpluta/smnp/error/EnvironmentException.kt index d631f78..ed453f3 100644 --- a/api/src/main/kotlin/io/smnp/error/EnvironmentException.kt +++ b/api/src/main/kotlin/com/bartlomiejpluta/smnp/error/EnvironmentException.kt @@ -1,6 +1,6 @@ -package io.smnp.error +package com.bartlomiejpluta.smnp.error -import io.smnp.environment.Environment +import com.bartlomiejpluta.smnp.environment.Environment class EnvironmentException(exception: SmnpException, val environment: Environment) : SmnpException( exception.friendlyName, exception.message, exception diff --git a/api/src/main/kotlin/io/smnp/error/EvaluationException.kt b/api/src/main/kotlin/com/bartlomiejpluta/smnp/error/EvaluationException.kt similarity index 68% rename from api/src/main/kotlin/io/smnp/error/EvaluationException.kt rename to api/src/main/kotlin/com/bartlomiejpluta/smnp/error/EvaluationException.kt index 9355a4b..880fc7e 100644 --- a/api/src/main/kotlin/io/smnp/error/EvaluationException.kt +++ b/api/src/main/kotlin/com/bartlomiejpluta/smnp/error/EvaluationException.kt @@ -1,3 +1,3 @@ -package io.smnp.error +package com.bartlomiejpluta.smnp.error class EvaluationException(message: String?) : SmnpException("Runtime error", message) \ No newline at end of file diff --git a/api/src/main/kotlin/io/smnp/error/FunctionInvocationException.kt b/api/src/main/kotlin/com/bartlomiejpluta/smnp/error/FunctionInvocationException.kt similarity index 73% rename from api/src/main/kotlin/io/smnp/error/FunctionInvocationException.kt rename to api/src/main/kotlin/com/bartlomiejpluta/smnp/error/FunctionInvocationException.kt index c1b9c5b..c941d87 100644 --- a/api/src/main/kotlin/io/smnp/error/FunctionInvocationException.kt +++ b/api/src/main/kotlin/com/bartlomiejpluta/smnp/error/FunctionInvocationException.kt @@ -1,3 +1,3 @@ -package io.smnp.error +package com.bartlomiejpluta.smnp.error class FunctionInvocationException(message: String?) : SmnpException("Function invocation error", message) \ No newline at end of file diff --git a/api/src/main/kotlin/io/smnp/error/MethodInvocationException.kt b/api/src/main/kotlin/com/bartlomiejpluta/smnp/error/MethodInvocationException.kt similarity index 72% rename from api/src/main/kotlin/io/smnp/error/MethodInvocationException.kt rename to api/src/main/kotlin/com/bartlomiejpluta/smnp/error/MethodInvocationException.kt index 1da4cd2..e3aa39a 100644 --- a/api/src/main/kotlin/io/smnp/error/MethodInvocationException.kt +++ b/api/src/main/kotlin/com/bartlomiejpluta/smnp/error/MethodInvocationException.kt @@ -1,3 +1,3 @@ -package io.smnp.error +package com.bartlomiejpluta.smnp.error class MethodInvocationException(message: String?) : SmnpException("Method invocation error", message) \ No newline at end of file diff --git a/api/src/main/kotlin/io/smnp/error/ShouldNeverReachThisLineException.kt b/api/src/main/kotlin/com/bartlomiejpluta/smnp/error/ShouldNeverReachThisLineException.kt similarity index 80% rename from api/src/main/kotlin/io/smnp/error/ShouldNeverReachThisLineException.kt rename to api/src/main/kotlin/com/bartlomiejpluta/smnp/error/ShouldNeverReachThisLineException.kt index 9310958..19d8a18 100644 --- a/api/src/main/kotlin/io/smnp/error/ShouldNeverReachThisLineException.kt +++ b/api/src/main/kotlin/com/bartlomiejpluta/smnp/error/ShouldNeverReachThisLineException.kt @@ -1,4 +1,4 @@ -package io.smnp.error +package com.bartlomiejpluta.smnp.error class ShouldNeverReachThisLineException : Exception( "This exception should never be thrown. Please check stack trace and investigate the source of error." diff --git a/api/src/main/kotlin/io/smnp/error/SmnpException.kt b/api/src/main/kotlin/com/bartlomiejpluta/smnp/error/SmnpException.kt similarity index 89% rename from api/src/main/kotlin/io/smnp/error/SmnpException.kt rename to api/src/main/kotlin/com/bartlomiejpluta/smnp/error/SmnpException.kt index 47e40c9..f05b3e1 100644 --- a/api/src/main/kotlin/io/smnp/error/SmnpException.kt +++ b/api/src/main/kotlin/com/bartlomiejpluta/smnp/error/SmnpException.kt @@ -1,4 +1,4 @@ -package io.smnp.error +package com.bartlomiejpluta.smnp.error abstract class SmnpException(val friendlyName: String, message: String? = null, val exception: SmnpException? = null) : Exception(message) { val exceptionChain: List diff --git a/api/src/main/kotlin/io/smnp/ext/provider/HybridModuleProvider.kt b/api/src/main/kotlin/com/bartlomiejpluta/smnp/ext/provider/HybridModuleProvider.kt similarity index 85% rename from api/src/main/kotlin/io/smnp/ext/provider/HybridModuleProvider.kt rename to api/src/main/kotlin/com/bartlomiejpluta/smnp/ext/provider/HybridModuleProvider.kt index 61609ec..4837dbb 100644 --- a/api/src/main/kotlin/io/smnp/ext/provider/HybridModuleProvider.kt +++ b/api/src/main/kotlin/com/bartlomiejpluta/smnp/ext/provider/HybridModuleProvider.kt @@ -1,9 +1,9 @@ -package io.smnp.ext.provider +package com.bartlomiejpluta.smnp.ext.provider -import io.smnp.callable.function.Function -import io.smnp.callable.method.Method -import io.smnp.interpreter.LanguageModuleInterpreter -import io.smnp.type.module.Module +import com.bartlomiejpluta.smnp.callable.function.Function +import com.bartlomiejpluta.smnp.callable.method.Method +import com.bartlomiejpluta.smnp.interpreter.LanguageModuleInterpreter +import com.bartlomiejpluta.smnp.type.module.Module abstract class HybridModuleProvider(path: String) : ModuleProvider(path) { open fun functions(): List = emptyList() diff --git a/api/src/main/kotlin/io/smnp/ext/provider/LanguageModuleProvider.kt b/api/src/main/kotlin/com/bartlomiejpluta/smnp/ext/provider/LanguageModuleProvider.kt similarity index 83% rename from api/src/main/kotlin/io/smnp/ext/provider/LanguageModuleProvider.kt rename to api/src/main/kotlin/com/bartlomiejpluta/smnp/ext/provider/LanguageModuleProvider.kt index 44d7f33..28bf010 100644 --- a/api/src/main/kotlin/io/smnp/ext/provider/LanguageModuleProvider.kt +++ b/api/src/main/kotlin/com/bartlomiejpluta/smnp/ext/provider/LanguageModuleProvider.kt @@ -1,7 +1,7 @@ -package io.smnp.ext.provider +package com.bartlomiejpluta.smnp.ext.provider -import io.smnp.interpreter.LanguageModuleInterpreter -import io.smnp.type.module.Module +import com.bartlomiejpluta.smnp.interpreter.LanguageModuleInterpreter +import com.bartlomiejpluta.smnp.type.module.Module abstract class LanguageModuleProvider(path: String) : ModuleProvider(path) { open fun files() = listOf("main.mus") diff --git a/api/src/main/kotlin/io/smnp/ext/provider/ModuleProvider.kt b/api/src/main/kotlin/com/bartlomiejpluta/smnp/ext/provider/ModuleProvider.kt similarity index 61% rename from api/src/main/kotlin/io/smnp/ext/provider/ModuleProvider.kt rename to api/src/main/kotlin/com/bartlomiejpluta/smnp/ext/provider/ModuleProvider.kt index 659f716..965aecc 100644 --- a/api/src/main/kotlin/io/smnp/ext/provider/ModuleProvider.kt +++ b/api/src/main/kotlin/com/bartlomiejpluta/smnp/ext/provider/ModuleProvider.kt @@ -1,8 +1,8 @@ -package io.smnp.ext.provider +package com.bartlomiejpluta.smnp.ext.provider -import io.smnp.environment.Environment -import io.smnp.interpreter.LanguageModuleInterpreter -import io.smnp.type.module.Module +import com.bartlomiejpluta.smnp.environment.Environment +import com.bartlomiejpluta.smnp.interpreter.LanguageModuleInterpreter +import com.bartlomiejpluta.smnp.type.module.Module import org.pf4j.ExtensionPoint abstract class ModuleProvider(val path: String) : ExtensionPoint { diff --git a/api/src/main/kotlin/io/smnp/ext/provider/NativeModuleProvider.kt b/api/src/main/kotlin/com/bartlomiejpluta/smnp/ext/provider/NativeModuleProvider.kt similarity index 52% rename from api/src/main/kotlin/io/smnp/ext/provider/NativeModuleProvider.kt rename to api/src/main/kotlin/com/bartlomiejpluta/smnp/ext/provider/NativeModuleProvider.kt index 0762f9d..bf57b82 100644 --- a/api/src/main/kotlin/io/smnp/ext/provider/NativeModuleProvider.kt +++ b/api/src/main/kotlin/com/bartlomiejpluta/smnp/ext/provider/NativeModuleProvider.kt @@ -1,10 +1,9 @@ -package io.smnp.ext.provider +package com.bartlomiejpluta.smnp.ext.provider -import io.smnp.callable.function.Function -import io.smnp.callable.method.Method -import io.smnp.ext.provider.ModuleProvider -import io.smnp.interpreter.LanguageModuleInterpreter -import io.smnp.type.module.Module +import com.bartlomiejpluta.smnp.callable.function.Function +import com.bartlomiejpluta.smnp.callable.method.Method +import com.bartlomiejpluta.smnp.interpreter.LanguageModuleInterpreter +import com.bartlomiejpluta.smnp.type.module.Module abstract class NativeModuleProvider(path: String) : ModuleProvider(path) { open fun functions(): List = emptyList() diff --git a/api/src/main/kotlin/io/smnp/ext/registry/ModuleRegistry.kt b/api/src/main/kotlin/com/bartlomiejpluta/smnp/ext/registry/ModuleRegistry.kt similarity index 53% rename from api/src/main/kotlin/io/smnp/ext/registry/ModuleRegistry.kt rename to api/src/main/kotlin/com/bartlomiejpluta/smnp/ext/registry/ModuleRegistry.kt index fdb832d..cf57918 100644 --- a/api/src/main/kotlin/io/smnp/ext/registry/ModuleRegistry.kt +++ b/api/src/main/kotlin/com/bartlomiejpluta/smnp/ext/registry/ModuleRegistry.kt @@ -1,7 +1,7 @@ -package io.smnp.ext.registry +package com.bartlomiejpluta.smnp.ext.registry -import io.smnp.environment.Environment -import io.smnp.ext.provider.ModuleProvider +import com.bartlomiejpluta.smnp.environment.Environment +import com.bartlomiejpluta.smnp.ext.provider.ModuleProvider interface ModuleRegistry { fun requestModuleProviderForPath(path: String): ModuleProvider? diff --git a/api/src/main/kotlin/com/bartlomiejpluta/smnp/interpreter/LanguageModuleInterpreter.kt b/api/src/main/kotlin/com/bartlomiejpluta/smnp/interpreter/LanguageModuleInterpreter.kt new file mode 100644 index 0000000..f0b7dba --- /dev/null +++ b/api/src/main/kotlin/com/bartlomiejpluta/smnp/interpreter/LanguageModuleInterpreter.kt @@ -0,0 +1,7 @@ +package com.bartlomiejpluta.smnp.interpreter + +import com.bartlomiejpluta.smnp.environment.Environment + +interface LanguageModuleInterpreter { + fun run(code: String, source: String): Environment +} \ No newline at end of file diff --git a/api/src/main/kotlin/io/smnp/math/Fraction.kt b/api/src/main/kotlin/com/bartlomiejpluta/smnp/math/Fraction.kt similarity index 98% rename from api/src/main/kotlin/io/smnp/math/Fraction.kt rename to api/src/main/kotlin/com/bartlomiejpluta/smnp/math/Fraction.kt index 20fae62..9ef6c6f 100644 --- a/api/src/main/kotlin/io/smnp/math/Fraction.kt +++ b/api/src/main/kotlin/com/bartlomiejpluta/smnp/math/Fraction.kt @@ -1,4 +1,4 @@ -package io.smnp.math +package com.bartlomiejpluta.smnp.math class Fraction(val numerator: Int, val denominator: Int) : Comparable { init { diff --git a/api/src/main/kotlin/io/smnp/runtime/model/CallStack.kt b/api/src/main/kotlin/com/bartlomiejpluta/smnp/runtime/model/CallStack.kt similarity index 79% rename from api/src/main/kotlin/io/smnp/runtime/model/CallStack.kt rename to api/src/main/kotlin/com/bartlomiejpluta/smnp/runtime/model/CallStack.kt index b09fdf3..c90e4aa 100644 --- a/api/src/main/kotlin/io/smnp/runtime/model/CallStack.kt +++ b/api/src/main/kotlin/com/bartlomiejpluta/smnp/runtime/model/CallStack.kt @@ -1,8 +1,8 @@ -package io.smnp.runtime.model +package com.bartlomiejpluta.smnp.runtime.model -import io.smnp.collection.Stack -import io.smnp.type.model.Value -import io.smnp.type.module.Module +import com.bartlomiejpluta.smnp.collection.Stack +import com.bartlomiejpluta.smnp.type.model.Value +import com.bartlomiejpluta.smnp.type.module.Module class CallStack { diff --git a/api/src/main/kotlin/io/smnp/runtime/model/CallStackFrame.kt b/api/src/main/kotlin/com/bartlomiejpluta/smnp/runtime/model/CallStackFrame.kt similarity index 76% rename from api/src/main/kotlin/io/smnp/runtime/model/CallStackFrame.kt rename to api/src/main/kotlin/com/bartlomiejpluta/smnp/runtime/model/CallStackFrame.kt index cac6c63..0878c66 100644 --- a/api/src/main/kotlin/io/smnp/runtime/model/CallStackFrame.kt +++ b/api/src/main/kotlin/com/bartlomiejpluta/smnp/runtime/model/CallStackFrame.kt @@ -1,10 +1,10 @@ -package io.smnp.runtime.model +package com.bartlomiejpluta.smnp.runtime.model -import io.smnp.callable.signature.ActualSignatureFormatter -import io.smnp.collection.Stack -import io.smnp.error.EvaluationException -import io.smnp.type.model.Value -import io.smnp.type.module.Module +import com.bartlomiejpluta.smnp.callable.signature.ActualSignatureFormatter +import com.bartlomiejpluta.smnp.collection.Stack +import com.bartlomiejpluta.smnp.error.EvaluationException +import com.bartlomiejpluta.smnp.type.model.Value +import com.bartlomiejpluta.smnp.type.module.Module data class CallStackFrame( val module: Module, diff --git a/api/src/main/kotlin/io/smnp/type/enumeration/DataType.kt b/api/src/main/kotlin/com/bartlomiejpluta/smnp/type/enumeration/DataType.kt similarity index 84% rename from api/src/main/kotlin/io/smnp/type/enumeration/DataType.kt rename to api/src/main/kotlin/com/bartlomiejpluta/smnp/type/enumeration/DataType.kt index dcbce1f..804c7af 100644 --- a/api/src/main/kotlin/io/smnp/type/enumeration/DataType.kt +++ b/api/src/main/kotlin/com/bartlomiejpluta/smnp/type/enumeration/DataType.kt @@ -1,7 +1,7 @@ -package io.smnp.type.enumeration +package com.bartlomiejpluta.smnp.type.enumeration -import io.smnp.data.entity.Note -import io.smnp.type.model.Value +import com.bartlomiejpluta.smnp.data.entity.Note +import com.bartlomiejpluta.smnp.type.model.Value import kotlin.reflect.KClass enum class DataType(private val kotlinType: KClass, val stringifier: (Any) -> String) { diff --git a/api/src/main/kotlin/io/smnp/type/matcher/Matcher.kt b/api/src/main/kotlin/com/bartlomiejpluta/smnp/type/matcher/Matcher.kt similarity index 96% rename from api/src/main/kotlin/io/smnp/type/matcher/Matcher.kt rename to api/src/main/kotlin/com/bartlomiejpluta/smnp/type/matcher/Matcher.kt index 6e0dbce..fff8cbf 100644 --- a/api/src/main/kotlin/io/smnp/type/matcher/Matcher.kt +++ b/api/src/main/kotlin/com/bartlomiejpluta/smnp/type/matcher/Matcher.kt @@ -1,7 +1,7 @@ -package io.smnp.type.matcher +package com.bartlomiejpluta.smnp.type.matcher -import io.smnp.type.enumeration.DataType -import io.smnp.type.model.Value +import com.bartlomiejpluta.smnp.type.enumeration.DataType +import com.bartlomiejpluta.smnp.type.model.Value class Matcher(val type: DataType?, private val matcher: (Value) -> Boolean, private val string: String, val optional: Boolean = false) { diff --git a/api/src/main/kotlin/io/smnp/type/model/Value.kt b/api/src/main/kotlin/com/bartlomiejpluta/smnp/type/model/Value.kt similarity index 93% rename from api/src/main/kotlin/io/smnp/type/model/Value.kt rename to api/src/main/kotlin/com/bartlomiejpluta/smnp/type/model/Value.kt index e535136..0b56498 100644 --- a/api/src/main/kotlin/io/smnp/type/model/Value.kt +++ b/api/src/main/kotlin/com/bartlomiejpluta/smnp/type/model/Value.kt @@ -1,8 +1,8 @@ -package io.smnp.type.model +package com.bartlomiejpluta.smnp.type.model -import io.smnp.data.entity.Note -import io.smnp.error.ShouldNeverReachThisLineException -import io.smnp.type.enumeration.DataType +import com.bartlomiejpluta.smnp.data.entity.Note +import com.bartlomiejpluta.smnp.error.ShouldNeverReachThisLineException +import com.bartlomiejpluta.smnp.type.enumeration.DataType data class Value(val type: DataType, val value: Any, val properties: Map = emptyMap()) { init { diff --git a/api/src/main/kotlin/io/smnp/type/module/Module.kt b/api/src/main/kotlin/com/bartlomiejpluta/smnp/type/module/Module.kt similarity index 95% rename from api/src/main/kotlin/io/smnp/type/module/Module.kt rename to api/src/main/kotlin/com/bartlomiejpluta/smnp/type/module/Module.kt index e282e1b..1d6694c 100644 --- a/api/src/main/kotlin/io/smnp/type/module/Module.kt +++ b/api/src/main/kotlin/com/bartlomiejpluta/smnp/type/module/Module.kt @@ -1,8 +1,8 @@ -package io.smnp.type.module +package com.bartlomiejpluta.smnp.type.module -import io.smnp.callable.function.Function -import io.smnp.callable.method.Method -import io.smnp.type.model.Value +import com.bartlomiejpluta.smnp.callable.function.Function +import com.bartlomiejpluta.smnp.callable.method.Method +import com.bartlomiejpluta.smnp.type.model.Value class Module( var name: String, diff --git a/api/src/main/kotlin/io/smnp/util/config/ConfigMap.kt b/api/src/main/kotlin/com/bartlomiejpluta/smnp/util/config/ConfigMap.kt similarity index 82% rename from api/src/main/kotlin/io/smnp/util/config/ConfigMap.kt rename to api/src/main/kotlin/com/bartlomiejpluta/smnp/util/config/ConfigMap.kt index 8fa6815..07f5bc2 100644 --- a/api/src/main/kotlin/io/smnp/util/config/ConfigMap.kt +++ b/api/src/main/kotlin/com/bartlomiejpluta/smnp/util/config/ConfigMap.kt @@ -1,7 +1,7 @@ -package io.smnp.util.config +package com.bartlomiejpluta.smnp.util.config -import io.smnp.error.ShouldNeverReachThisLineException -import io.smnp.type.model.Value +import com.bartlomiejpluta.smnp.error.ShouldNeverReachThisLineException +import com.bartlomiejpluta.smnp.type.model.Value class ConfigMap(private val map: Map) { private val raw by lazy { map.map { (key, value) -> key.unwrap() to value }.toMap() as Map } diff --git a/api/src/main/kotlin/io/smnp/util/config/ConfigMapSchema.kt b/api/src/main/kotlin/com/bartlomiejpluta/smnp/util/config/ConfigMapSchema.kt similarity index 84% rename from api/src/main/kotlin/io/smnp/util/config/ConfigMapSchema.kt rename to api/src/main/kotlin/com/bartlomiejpluta/smnp/util/config/ConfigMapSchema.kt index 475a9b8..98c836c 100644 --- a/api/src/main/kotlin/io/smnp/util/config/ConfigMapSchema.kt +++ b/api/src/main/kotlin/com/bartlomiejpluta/smnp/util/config/ConfigMapSchema.kt @@ -1,9 +1,9 @@ -package io.smnp.util.config +package com.bartlomiejpluta.smnp.util.config -import io.smnp.error.CustomException -import io.smnp.type.enumeration.DataType -import io.smnp.type.matcher.Matcher -import io.smnp.type.model.Value +import com.bartlomiejpluta.smnp.error.CustomException +import com.bartlomiejpluta.smnp.type.enumeration.DataType +import com.bartlomiejpluta.smnp.type.matcher.Matcher +import com.bartlomiejpluta.smnp.type.model.Value class ConfigMapSchema { private data class Parameter(val matcher: Matcher, val required: Boolean, val default: Value) diff --git a/api/src/main/kotlin/io/smnp/callable/function/FunctionDefinition.kt b/api/src/main/kotlin/io/smnp/callable/function/FunctionDefinition.kt deleted file mode 100644 index b40ea7a..0000000 --- a/api/src/main/kotlin/io/smnp/callable/function/FunctionDefinition.kt +++ /dev/null @@ -1,7 +0,0 @@ -package io.smnp.callable.function - -import io.smnp.callable.signature.Signature -import io.smnp.environment.Environment -import io.smnp.type.model.Value - -class FunctionDefinition(val signature: Signature, val body: (Environment, List) -> Value) \ No newline at end of file diff --git a/api/src/main/kotlin/io/smnp/callable/method/MethodDefinition.kt b/api/src/main/kotlin/io/smnp/callable/method/MethodDefinition.kt deleted file mode 100644 index e9f87ac..0000000 --- a/api/src/main/kotlin/io/smnp/callable/method/MethodDefinition.kt +++ /dev/null @@ -1,7 +0,0 @@ -package io.smnp.callable.method - -import io.smnp.callable.signature.Signature -import io.smnp.environment.Environment -import io.smnp.type.model.Value - -class MethodDefinition(val signature: Signature, val body: (Environment, Value, List) -> Value) \ No newline at end of file diff --git a/api/src/main/kotlin/io/smnp/interpreter/LanguageModuleInterpreter.kt b/api/src/main/kotlin/io/smnp/interpreter/LanguageModuleInterpreter.kt deleted file mode 100644 index 110e6e6..0000000 --- a/api/src/main/kotlin/io/smnp/interpreter/LanguageModuleInterpreter.kt +++ /dev/null @@ -1,7 +0,0 @@ -package io.smnp.interpreter - -import io.smnp.environment.Environment - -interface LanguageModuleInterpreter { - fun run(code: String, source: String): Environment -} \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 7990914..2a0d27e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -24,7 +24,7 @@ jar { zip64 true manifest { - attributes 'Main-Class': 'io.smnp.SMNPKt' + attributes 'Main-Class': 'com.bartlomiejpluta.smnp.SMNPKt' } // This line of code recursively collects and copies all of a project's files diff --git a/app/src/main/kotlin/io/smnp/SMNP.kt b/app/src/main/kotlin/com/bartlomiejpluta/smnp/SMNP.kt similarity index 75% rename from app/src/main/kotlin/io/smnp/SMNP.kt rename to app/src/main/kotlin/com/bartlomiejpluta/smnp/SMNP.kt index d764f18..592cd5b 100644 --- a/app/src/main/kotlin/io/smnp/SMNP.kt +++ b/app/src/main/kotlin/com/bartlomiejpluta/smnp/SMNP.kt @@ -1,17 +1,17 @@ -package io.smnp +package com.bartlomiejpluta.smnp +import com.bartlomiejpluta.smnp.cli.model.entity.Arguments +import com.bartlomiejpluta.smnp.cli.model.enumeration.ModulesPrintMode +import com.bartlomiejpluta.smnp.environment.DefaultEnvironment +import com.bartlomiejpluta.smnp.error.EnvironmentException +import com.bartlomiejpluta.smnp.error.PositionException +import com.bartlomiejpluta.smnp.error.SmnpException +import com.bartlomiejpluta.smnp.ext.registry.DefaultModuleRegistry +import com.bartlomiejpluta.smnp.interpreter.DefaultInterpreter +import com.bartlomiejpluta.smnp.preset.PresetProvider.providePresetCode +import com.bartlomiejpluta.smnp.type.model.Value import com.xenomachina.argparser.ArgParser import com.xenomachina.argparser.mainBody -import io.smnp.cli.model.entity.Arguments -import io.smnp.cli.model.enumeration.ModulesPrintMode -import io.smnp.environment.DefaultEnvironment -import io.smnp.error.EnvironmentException -import io.smnp.error.PositionException -import io.smnp.error.SmnpException -import io.smnp.ext.registry.DefaultModuleRegistry -import io.smnp.interpreter.DefaultInterpreter -import io.smnp.preset.PresetProvider.providePresetCode -import io.smnp.type.model.Value import kotlin.system.exitProcess fun main(args: Array): Unit = mainBody { diff --git a/app/src/main/kotlin/io/smnp/cli/model/entity/Arguments.kt b/app/src/main/kotlin/com/bartlomiejpluta/smnp/cli/model/entity/Arguments.kt similarity index 93% rename from app/src/main/kotlin/io/smnp/cli/model/entity/Arguments.kt rename to app/src/main/kotlin/com/bartlomiejpluta/smnp/cli/model/entity/Arguments.kt index 3abdc45..171fa87 100644 --- a/app/src/main/kotlin/io/smnp/cli/model/entity/Arguments.kt +++ b/app/src/main/kotlin/com/bartlomiejpluta/smnp/cli/model/entity/Arguments.kt @@ -1,9 +1,9 @@ -package io.smnp.cli.model.entity +package com.bartlomiejpluta.smnp.cli.model.entity +import com.bartlomiejpluta.smnp.cli.model.enumeration.ModulesPrintMode +import com.bartlomiejpluta.smnp.preset.PresetProvider import com.xenomachina.argparser.ArgParser import com.xenomachina.argparser.default -import io.smnp.cli.model.enumeration.ModulesPrintMode -import io.smnp.preset.PresetProvider import java.io.File class Arguments(parser: ArgParser) { diff --git a/app/src/main/kotlin/io/smnp/cli/model/enumeration/ModulesPrintMode.kt b/app/src/main/kotlin/com/bartlomiejpluta/smnp/cli/model/enumeration/ModulesPrintMode.kt similarity index 52% rename from app/src/main/kotlin/io/smnp/cli/model/enumeration/ModulesPrintMode.kt rename to app/src/main/kotlin/com/bartlomiejpluta/smnp/cli/model/enumeration/ModulesPrintMode.kt index 79a887e..5a18008 100644 --- a/app/src/main/kotlin/io/smnp/cli/model/enumeration/ModulesPrintMode.kt +++ b/app/src/main/kotlin/com/bartlomiejpluta/smnp/cli/model/enumeration/ModulesPrintMode.kt @@ -1,4 +1,4 @@ -package io.smnp.cli.model.enumeration +package com.bartlomiejpluta.smnp.cli.model.enumeration enum class ModulesPrintMode { LIST, diff --git a/app/src/main/kotlin/io/smnp/preset/PresetProvider.kt b/app/src/main/kotlin/com/bartlomiejpluta/smnp/preset/PresetProvider.kt similarity index 87% rename from app/src/main/kotlin/io/smnp/preset/PresetProvider.kt rename to app/src/main/kotlin/com/bartlomiejpluta/smnp/preset/PresetProvider.kt index a162a5b..a76d0f7 100644 --- a/app/src/main/kotlin/io/smnp/preset/PresetProvider.kt +++ b/app/src/main/kotlin/com/bartlomiejpluta/smnp/preset/PresetProvider.kt @@ -1,6 +1,6 @@ -package io.smnp.preset +package com.bartlomiejpluta.smnp.preset -import io.smnp.error.PresetException +import com.bartlomiejpluta.smnp.error.PresetException import java.io.File import java.nio.file.Paths diff --git a/build.gradle b/build.gradle index 92da42d..63b4c32 100644 --- a/build.gradle +++ b/build.gradle @@ -11,7 +11,7 @@ configure(subprojects - project(':modules')) { mavenCentral() } - group 'io.bartek' + group 'com.bartlomiejpluta' version '1.0-SNAPSHOT' sourceCompatibility = 1.8 diff --git a/core/src/main/kotlin/io/smnp/callable/function/CustomFunction.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/callable/function/CustomFunction.kt similarity index 65% rename from core/src/main/kotlin/io/smnp/callable/function/CustomFunction.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/callable/function/CustomFunction.kt index df25e77..82ba202 100644 --- a/core/src/main/kotlin/io/smnp/callable/function/CustomFunction.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/callable/function/CustomFunction.kt @@ -1,13 +1,13 @@ -package io.smnp.callable.function +package com.bartlomiejpluta.smnp.callable.function -import io.smnp.callable.util.FunctionEnvironmentProvider -import io.smnp.callable.util.FunctionSignatureParser -import io.smnp.dsl.ast.model.node.FunctionDefinitionArgumentsNode -import io.smnp.dsl.ast.model.node.FunctionDefinitionNode -import io.smnp.dsl.ast.model.node.IdentifierNode -import io.smnp.evaluation.evaluator.BlockEvaluator -import io.smnp.evaluation.model.exception.Return -import io.smnp.type.model.Value +import com.bartlomiejpluta.smnp.callable.util.FunctionEnvironmentProvider +import com.bartlomiejpluta.smnp.callable.util.FunctionSignatureParser +import com.bartlomiejpluta.smnp.dsl.ast.model.node.FunctionDefinitionArgumentsNode +import com.bartlomiejpluta.smnp.dsl.ast.model.node.FunctionDefinitionNode +import com.bartlomiejpluta.smnp.dsl.ast.model.node.IdentifierNode +import com.bartlomiejpluta.smnp.evaluation.evaluator.BlockEvaluator +import com.bartlomiejpluta.smnp.evaluation.model.exception.Return +import com.bartlomiejpluta.smnp.type.model.Value object CustomFunction { fun create(node: FunctionDefinitionNode): Function { diff --git a/core/src/main/kotlin/io/smnp/callable/method/CustomMethod.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/callable/method/CustomMethod.kt similarity index 64% rename from core/src/main/kotlin/io/smnp/callable/method/CustomMethod.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/callable/method/CustomMethod.kt index 974674e..62b9237 100644 --- a/core/src/main/kotlin/io/smnp/callable/method/CustomMethod.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/callable/method/CustomMethod.kt @@ -1,14 +1,14 @@ -package io.smnp.callable.method +package com.bartlomiejpluta.smnp.callable.method -import io.smnp.callable.util.FunctionEnvironmentProvider -import io.smnp.callable.util.FunctionSignatureParser -import io.smnp.dsl.ast.model.node.FunctionDefinitionArgumentsNode -import io.smnp.dsl.ast.model.node.FunctionDefinitionNode -import io.smnp.dsl.ast.model.node.IdentifierNode -import io.smnp.evaluation.evaluator.BlockEvaluator -import io.smnp.evaluation.model.exception.Return -import io.smnp.type.matcher.Matcher -import io.smnp.type.model.Value +import com.bartlomiejpluta.smnp.callable.util.FunctionEnvironmentProvider +import com.bartlomiejpluta.smnp.callable.util.FunctionSignatureParser +import com.bartlomiejpluta.smnp.dsl.ast.model.node.FunctionDefinitionArgumentsNode +import com.bartlomiejpluta.smnp.dsl.ast.model.node.FunctionDefinitionNode +import com.bartlomiejpluta.smnp.dsl.ast.model.node.IdentifierNode +import com.bartlomiejpluta.smnp.evaluation.evaluator.BlockEvaluator +import com.bartlomiejpluta.smnp.evaluation.model.exception.Return +import com.bartlomiejpluta.smnp.type.matcher.Matcher +import com.bartlomiejpluta.smnp.type.model.Value object CustomMethod { fun create(type: Matcher, node: FunctionDefinitionNode): Method { diff --git a/core/src/main/kotlin/io/smnp/callable/util/FunctionEnvironmentProvider.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/callable/util/FunctionEnvironmentProvider.kt similarity index 66% rename from core/src/main/kotlin/io/smnp/callable/util/FunctionEnvironmentProvider.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/callable/util/FunctionEnvironmentProvider.kt index cb05e70..596cce8 100644 --- a/core/src/main/kotlin/io/smnp/callable/util/FunctionEnvironmentProvider.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/callable/util/FunctionEnvironmentProvider.kt @@ -1,13 +1,13 @@ -package io.smnp.callable.util +package com.bartlomiejpluta.smnp.callable.util -import io.smnp.dsl.ast.model.node.FunctionDefinitionArgumentsNode -import io.smnp.dsl.ast.model.node.IdentifierNode -import io.smnp.dsl.ast.model.node.OptionalFunctionDefinitionArgumentNode -import io.smnp.dsl.ast.model.node.RegularFunctionDefinitionArgumentNode -import io.smnp.environment.Environment -import io.smnp.error.ShouldNeverReachThisLineException -import io.smnp.evaluation.evaluator.ExpressionEvaluator -import io.smnp.type.model.Value +import com.bartlomiejpluta.smnp.dsl.ast.model.node.FunctionDefinitionArgumentsNode +import com.bartlomiejpluta.smnp.dsl.ast.model.node.IdentifierNode +import com.bartlomiejpluta.smnp.dsl.ast.model.node.OptionalFunctionDefinitionArgumentNode +import com.bartlomiejpluta.smnp.dsl.ast.model.node.RegularFunctionDefinitionArgumentNode +import com.bartlomiejpluta.smnp.environment.Environment +import com.bartlomiejpluta.smnp.error.ShouldNeverReachThisLineException +import com.bartlomiejpluta.smnp.evaluation.evaluator.ExpressionEvaluator +import com.bartlomiejpluta.smnp.type.model.Value object FunctionEnvironmentProvider { private val evaluator = ExpressionEvaluator() diff --git a/core/src/main/kotlin/io/smnp/callable/util/FunctionSignatureParser.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/callable/util/FunctionSignatureParser.kt similarity index 86% rename from core/src/main/kotlin/io/smnp/callable/util/FunctionSignatureParser.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/callable/util/FunctionSignatureParser.kt index 8c2db26..b34fc5b 100644 --- a/core/src/main/kotlin/io/smnp/callable/util/FunctionSignatureParser.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/callable/util/FunctionSignatureParser.kt @@ -1,17 +1,17 @@ -package io.smnp.callable.util +package com.bartlomiejpluta.smnp.callable.util -import io.smnp.callable.signature.Signature -import io.smnp.dsl.ast.model.node.* -import io.smnp.error.InvalidSignatureException -import io.smnp.error.ShouldNeverReachThisLineException -import io.smnp.type.enumeration.DataType -import io.smnp.type.matcher.Matcher -import io.smnp.type.matcher.Matcher.Companion.anyType -import io.smnp.type.matcher.Matcher.Companion.listOfMatchers -import io.smnp.type.matcher.Matcher.Companion.mapOfMatchers -import io.smnp.type.matcher.Matcher.Companion.ofType -import io.smnp.type.matcher.Matcher.Companion.oneOf -import io.smnp.type.matcher.Matcher.Companion.optional +import com.bartlomiejpluta.smnp.callable.signature.Signature +import com.bartlomiejpluta.smnp.dsl.ast.model.node.* +import com.bartlomiejpluta.smnp.error.InvalidSignatureException +import com.bartlomiejpluta.smnp.error.ShouldNeverReachThisLineException +import com.bartlomiejpluta.smnp.type.enumeration.DataType +import com.bartlomiejpluta.smnp.type.matcher.Matcher +import com.bartlomiejpluta.smnp.type.matcher.Matcher.Companion.anyType +import com.bartlomiejpluta.smnp.type.matcher.Matcher.Companion.listOfMatchers +import com.bartlomiejpluta.smnp.type.matcher.Matcher.Companion.mapOfMatchers +import com.bartlomiejpluta.smnp.type.matcher.Matcher.Companion.ofType +import com.bartlomiejpluta.smnp.type.matcher.Matcher.Companion.oneOf +import com.bartlomiejpluta.smnp.type.matcher.Matcher.Companion.optional object FunctionSignatureParser { private data class SignatureMetadata(val hasRegular: Boolean, val hasOptional: Boolean, val hasVararg: Boolean) diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/model/entity/ParserOutput.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/entity/ParserOutput.kt similarity index 72% rename from core/src/main/kotlin/io/smnp/dsl/ast/model/entity/ParserOutput.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/entity/ParserOutput.kt index 0af4ba4..34ba755 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/model/entity/ParserOutput.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/entity/ParserOutput.kt @@ -1,7 +1,7 @@ -package io.smnp.dsl.ast.model.entity +package com.bartlomiejpluta.smnp.dsl.ast.model.entity -import io.smnp.dsl.ast.model.enumeration.ParsingResult -import io.smnp.dsl.ast.model.node.Node +import com.bartlomiejpluta.smnp.dsl.ast.model.enumeration.ParsingResult +import com.bartlomiejpluta.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/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/enumeration/ParsingResult.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/enumeration/ParsingResult.kt new file mode 100644 index 0000000..9add9ac --- /dev/null +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/enumeration/ParsingResult.kt @@ -0,0 +1,6 @@ +package com.bartlomiejpluta.smnp.dsl.ast.model.enumeration + +enum class ParsingResult { + OK, + FAILED +} \ No newline at end of file diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/AbstractIterableNode.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/AbstractIterableNode.kt similarity index 56% rename from core/src/main/kotlin/io/smnp/dsl/ast/model/node/AbstractIterableNode.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/AbstractIterableNode.kt index 2a32367..05342f1 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/AbstractIterableNode.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/AbstractIterableNode.kt @@ -1,6 +1,6 @@ -package io.smnp.dsl.ast.model.node +package com.bartlomiejpluta.smnp.dsl.ast.model.node -import io.smnp.dsl.token.model.entity.TokenPosition +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenPosition abstract class AbstractIterableNode(items: List, position: TokenPosition) : Node(items, position) { val items: List diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/AccessOperatorNode.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/AccessOperatorNode.kt similarity index 68% rename from core/src/main/kotlin/io/smnp/dsl/ast/model/node/AccessOperatorNode.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/AccessOperatorNode.kt index 23fe5a0..c432018 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/AccessOperatorNode.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/AccessOperatorNode.kt @@ -1,3 +1,3 @@ -package io.smnp.dsl.ast.model.node +package com.bartlomiejpluta.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/core/src/main/kotlin/io/smnp/dsl/ast/model/node/AssignmentOperatorNode.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/AssignmentOperatorNode.kt similarity index 69% rename from core/src/main/kotlin/io/smnp/dsl/ast/model/node/AssignmentOperatorNode.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/AssignmentOperatorNode.kt index cc7cb0a..557d48f 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/AssignmentOperatorNode.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/AssignmentOperatorNode.kt @@ -1,3 +1,3 @@ -package io.smnp.dsl.ast.model.node +package com.bartlomiejpluta.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/core/src/main/kotlin/io/smnp/dsl/ast/model/node/AtomAbstractNode.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/AtomAbstractNode.kt similarity index 76% rename from core/src/main/kotlin/io/smnp/dsl/ast/model/node/AtomAbstractNode.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/AtomAbstractNode.kt index 6cbe089..d9783f6 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/AtomAbstractNode.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/AtomAbstractNode.kt @@ -1,6 +1,6 @@ -package io.smnp.dsl.ast.model.node +package com.bartlomiejpluta.smnp.dsl.ast.model.node -import io.smnp.dsl.token.model.entity.Token +import com.bartlomiejpluta.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/core/src/main/kotlin/io/smnp/dsl/ast/model/node/BinaryOperatorAbstractNode.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/BinaryOperatorAbstractNode.kt similarity index 90% rename from core/src/main/kotlin/io/smnp/dsl/ast/model/node/BinaryOperatorAbstractNode.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/BinaryOperatorAbstractNode.kt index 0783b06..00144ff 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/BinaryOperatorAbstractNode.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/BinaryOperatorAbstractNode.kt @@ -1,4 +1,4 @@ -package io.smnp.dsl.ast.model.node +package com.bartlomiejpluta.smnp.dsl.ast.model.node abstract class BinaryOperatorAbstractNode(lhs: Node, operator: Node, rhs: Node) : Node(3, operator.position) { operator fun component1() = children[0] diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/BlockNode.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/BlockNode.kt similarity index 80% rename from core/src/main/kotlin/io/smnp/dsl/ast/model/node/BlockNode.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/BlockNode.kt index 79b7597..52baf70 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/BlockNode.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/BlockNode.kt @@ -1,4 +1,4 @@ -package io.smnp.dsl.ast.model.node +package com.bartlomiejpluta.smnp.dsl.ast.model.node class BlockNode(begin: Node, statements: List, end: Node) : Node(statements, begin.position) { val statements: List diff --git a/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/BoolLiteralNode.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/BoolLiteralNode.kt new file mode 100644 index 0000000..c83e132 --- /dev/null +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/BoolLiteralNode.kt @@ -0,0 +1,5 @@ +package com.bartlomiejpluta.smnp.dsl.ast.model.node + +import com.bartlomiejpluta.smnp.dsl.token.model.entity.Token + +class BoolLiteralNode(token: Token) : AtomAbstractNode(token) \ No newline at end of file diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/ConditionNode.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/ConditionNode.kt similarity index 91% rename from core/src/main/kotlin/io/smnp/dsl/ast/model/node/ConditionNode.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/ConditionNode.kt index f909104..0179668 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/ConditionNode.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/ConditionNode.kt @@ -1,4 +1,4 @@ -package io.smnp.dsl.ast.model.node +package com.bartlomiejpluta.smnp.dsl.ast.model.node class ConditionNode(trueBranchToken: Node, condition: Node, trueBranch: Node, falseBranchToken: Node, falseBranch: Node) : Node(3, trueBranchToken.position) { operator fun component1(): Node = children[0] diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/ExtendNode.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/ExtendNode.kt similarity index 75% rename from core/src/main/kotlin/io/smnp/dsl/ast/model/node/ExtendNode.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/ExtendNode.kt index 4831503..6db3030 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/ExtendNode.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/ExtendNode.kt @@ -1,6 +1,6 @@ -package io.smnp.dsl.ast.model.node +package com.bartlomiejpluta.smnp.dsl.ast.model.node -import io.smnp.dsl.token.model.entity.TokenPosition +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenPosition class ExtendNode(type: Node, functions: Node, position: TokenPosition) : Node(2, position) { operator fun component1(): Node = children[0] diff --git a/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/FloatLiteralNode.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/FloatLiteralNode.kt new file mode 100644 index 0000000..4aecda7 --- /dev/null +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/FloatLiteralNode.kt @@ -0,0 +1,5 @@ +package com.bartlomiejpluta.smnp.dsl.ast.model.node + +import com.bartlomiejpluta.smnp.dsl.token.model.entity.Token + +class FloatLiteralNode(token: Token) : AtomAbstractNode(token) \ No newline at end of file diff --git a/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/FunctionCallArgumentsNode.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/FunctionCallArgumentsNode.kt new file mode 100644 index 0000000..f6257ca --- /dev/null +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/FunctionCallArgumentsNode.kt @@ -0,0 +1,5 @@ +package com.bartlomiejpluta.smnp.dsl.ast.model.node + +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenPosition + +class FunctionCallArgumentsNode(items: List, position: TokenPosition) : AbstractIterableNode(items, position) \ No newline at end of file diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/FunctionCallNode.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/FunctionCallNode.kt similarity index 87% rename from core/src/main/kotlin/io/smnp/dsl/ast/model/node/FunctionCallNode.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/FunctionCallNode.kt index 387cdfc..c315b42 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/FunctionCallNode.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/FunctionCallNode.kt @@ -1,4 +1,4 @@ -package io.smnp.dsl.ast.model.node +package com.bartlomiejpluta.smnp.dsl.ast.model.node class FunctionCallNode(identifier: Node, arguments: Node) : Node(2, identifier.position) { operator fun component1() = children[0] diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/FunctionDefinitionArgumentsNode.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/FunctionDefinitionArgumentsNode.kt similarity index 50% rename from core/src/main/kotlin/io/smnp/dsl/ast/model/node/FunctionDefinitionArgumentsNode.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/FunctionDefinitionArgumentsNode.kt index b330e00..131be2b 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/FunctionDefinitionArgumentsNode.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/FunctionDefinitionArgumentsNode.kt @@ -1,5 +1,5 @@ -package io.smnp.dsl.ast.model.node +package com.bartlomiejpluta.smnp.dsl.ast.model.node -import io.smnp.dsl.token.model.entity.TokenPosition +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenPosition class FunctionDefinitionArgumentsNode(items: List, position: TokenPosition) : AbstractIterableNode(items, position) \ No newline at end of file diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/FunctionDefinitionNode.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/FunctionDefinitionNode.kt similarity index 80% rename from core/src/main/kotlin/io/smnp/dsl/ast/model/node/FunctionDefinitionNode.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/FunctionDefinitionNode.kt index 1e2a0c2..85b80bd 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/FunctionDefinitionNode.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/FunctionDefinitionNode.kt @@ -1,6 +1,6 @@ -package io.smnp.dsl.ast.model.node +package com.bartlomiejpluta.smnp.dsl.ast.model.node -import io.smnp.dsl.token.model.entity.TokenPosition +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenPosition class FunctionDefinitionNode(identifier: Node, arguments: Node, body: Node, position: TokenPosition) : Node(3, position) { operator fun component1() = children[0] diff --git a/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/IdentifierNode.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/IdentifierNode.kt new file mode 100644 index 0000000..3c4552e --- /dev/null +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/IdentifierNode.kt @@ -0,0 +1,5 @@ +package com.bartlomiejpluta.smnp.dsl.ast.model.node + +import com.bartlomiejpluta.smnp.dsl.token.model.entity.Token + +class IdentifierNode(token: Token) : AtomAbstractNode(token) \ No newline at end of file diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/ImportNode.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/ImportNode.kt similarity index 52% rename from core/src/main/kotlin/io/smnp/dsl/ast/model/node/ImportNode.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/ImportNode.kt index cabad5d..3b75d6d 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/ImportNode.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/ImportNode.kt @@ -1,6 +1,6 @@ -package io.smnp.dsl.ast.model.node +package com.bartlomiejpluta.smnp.dsl.ast.model.node -import io.smnp.dsl.token.model.entity.TokenPosition +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenPosition class ImportNode(path: List, position: TokenPosition) : Node(path, position) { val path: List diff --git a/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/IntegerLiteralNode.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/IntegerLiteralNode.kt new file mode 100644 index 0000000..b9624b0 --- /dev/null +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/IntegerLiteralNode.kt @@ -0,0 +1,5 @@ +package com.bartlomiejpluta.smnp.dsl.ast.model.node + +import com.bartlomiejpluta.smnp.dsl.token.model.entity.Token + +class IntegerLiteralNode(token: Token) : AtomAbstractNode(token) \ No newline at end of file diff --git a/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/ListNode.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/ListNode.kt new file mode 100644 index 0000000..8f2b97d --- /dev/null +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/ListNode.kt @@ -0,0 +1,5 @@ +package com.bartlomiejpluta.smnp.dsl.ast.model.node + +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenPosition + +class ListNode(items: List, position: TokenPosition) : AbstractIterableNode(items, position) \ No newline at end of file diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/LogicOperatorNode.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/LogicOperatorNode.kt similarity index 68% rename from core/src/main/kotlin/io/smnp/dsl/ast/model/node/LogicOperatorNode.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/LogicOperatorNode.kt index f49fc5e..40e3652 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/LogicOperatorNode.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/LogicOperatorNode.kt @@ -1,3 +1,3 @@ -package io.smnp.dsl.ast.model.node +package com.bartlomiejpluta.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/core/src/main/kotlin/io/smnp/dsl/ast/model/node/LoopNode.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/LoopNode.kt similarity index 92% rename from core/src/main/kotlin/io/smnp/dsl/ast/model/node/LoopNode.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/LoopNode.kt index cdf7e7d..d3c0c46 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/LoopNode.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/LoopNode.kt @@ -1,4 +1,4 @@ -package io.smnp.dsl.ast.model.node +package com.bartlomiejpluta.smnp.dsl.ast.model.node class LoopNode(iterator: Node, parameters: Node, operator: Node, statement: Node, filter: Node): Node(4, operator.position) { operator fun component1() = children[0] diff --git a/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/LoopParametersNode.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/LoopParametersNode.kt new file mode 100644 index 0000000..76f9b78 --- /dev/null +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/LoopParametersNode.kt @@ -0,0 +1,5 @@ +package com.bartlomiejpluta.smnp.dsl.ast.model.node + +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenPosition + +class LoopParametersNode(items: List, position: TokenPosition) : AbstractIterableNode(items, position) \ No newline at end of file diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/MapEntryNode.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/MapEntryNode.kt similarity index 82% rename from core/src/main/kotlin/io/smnp/dsl/ast/model/node/MapEntryNode.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/MapEntryNode.kt index a82c529..3587adf 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/MapEntryNode.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/MapEntryNode.kt @@ -1,4 +1,4 @@ -package io.smnp.dsl.ast.model.node +package com.bartlomiejpluta.smnp.dsl.ast.model.node class MapEntryNode(key: Node, operator: Node, value: Node) : Node(2, operator.position) { val key: Node diff --git a/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/MapNode.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/MapNode.kt new file mode 100644 index 0000000..ba64ad3 --- /dev/null +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/MapNode.kt @@ -0,0 +1,5 @@ +package com.bartlomiejpluta.smnp.dsl.ast.model.node + +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenPosition + +class MapNode(items: List, position: TokenPosition) : AbstractIterableNode(items, position) \ No newline at end of file diff --git a/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/MeasureNode.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/MeasureNode.kt new file mode 100644 index 0000000..a2d77a2 --- /dev/null +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/MeasureNode.kt @@ -0,0 +1,5 @@ +package com.bartlomiejpluta.smnp.dsl.ast.model.node + +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenPosition + +class MeasureNode(items: List, position: TokenPosition) : AbstractIterableNode(items, position) \ No newline at end of file diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/MinusOperatorNode.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/MinusOperatorNode.kt similarity index 66% rename from core/src/main/kotlin/io/smnp/dsl/ast/model/node/MinusOperatorNode.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/MinusOperatorNode.kt index 115c676..24ed559 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/MinusOperatorNode.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/MinusOperatorNode.kt @@ -1,3 +1,3 @@ -package io.smnp.dsl.ast.model.node +package com.bartlomiejpluta.smnp.dsl.ast.model.node class MinusOperatorNode(operator: Node, operand: Node) : UnaryOperatorAbstractNode(operator, operand) \ No newline at end of file diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/Node.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/Node.kt similarity index 89% rename from core/src/main/kotlin/io/smnp/dsl/ast/model/node/Node.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/Node.kt index 9dbfd35..5ae4c26 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/Node.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/Node.kt @@ -1,6 +1,6 @@ -package io.smnp.dsl.ast.model.node +package com.bartlomiejpluta.smnp.dsl.ast.model.node -import io.smnp.dsl.token.model.entity.TokenPosition +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenPosition abstract class Node(numberOfChildren: Int, val position: TokenPosition) { var children: MutableList = MutableList(numberOfChildren) { NONE } diff --git a/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/NoneNode.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/NoneNode.kt new file mode 100644 index 0000000..26beba4 --- /dev/null +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/NoneNode.kt @@ -0,0 +1,7 @@ +package com.bartlomiejpluta.smnp.dsl.ast.model.node + +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenPosition + +class NoneNode : Node(0, + TokenPosition.NONE +) \ No newline at end of file diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/NotOperatorNode.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/NotOperatorNode.kt similarity index 65% rename from core/src/main/kotlin/io/smnp/dsl/ast/model/node/NotOperatorNode.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/NotOperatorNode.kt index f2e49c2..146d2c9 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/NotOperatorNode.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/NotOperatorNode.kt @@ -1,3 +1,3 @@ -package io.smnp.dsl.ast.model.node +package com.bartlomiejpluta.smnp.dsl.ast.model.node class NotOperatorNode(operator: Node, operand: Node) : UnaryOperatorAbstractNode(operator, operand) \ No newline at end of file diff --git a/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/NoteLiteralNode.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/NoteLiteralNode.kt new file mode 100644 index 0000000..8c83272 --- /dev/null +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/NoteLiteralNode.kt @@ -0,0 +1,5 @@ +package com.bartlomiejpluta.smnp.dsl.ast.model.node + +import com.bartlomiejpluta.smnp.dsl.token.model.entity.Token + +class NoteLiteralNode(token: Token) : AtomAbstractNode(token) \ No newline at end of file diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/OptionalFunctionDefinitionArgumentNode.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/OptionalFunctionDefinitionArgumentNode.kt similarity index 88% rename from core/src/main/kotlin/io/smnp/dsl/ast/model/node/OptionalFunctionDefinitionArgumentNode.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/OptionalFunctionDefinitionArgumentNode.kt index 0e737a7..3b65075 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/OptionalFunctionDefinitionArgumentNode.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/OptionalFunctionDefinitionArgumentNode.kt @@ -1,4 +1,4 @@ -package io.smnp.dsl.ast.model.node +package com.bartlomiejpluta.smnp.dsl.ast.model.node class OptionalFunctionDefinitionArgumentNode(identifier: Node, type: Node, defaultValue: Node) : Node(3, identifier.position) { val identifier: Node diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/PowerOperatorNode.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/PowerOperatorNode.kt similarity index 68% rename from core/src/main/kotlin/io/smnp/dsl/ast/model/node/PowerOperatorNode.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/PowerOperatorNode.kt index 464a9d8..1ee5aae 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/PowerOperatorNode.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/PowerOperatorNode.kt @@ -1,3 +1,3 @@ -package io.smnp.dsl.ast.model.node +package com.bartlomiejpluta.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/core/src/main/kotlin/io/smnp/dsl/ast/model/node/ProductOperatorNode.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/ProductOperatorNode.kt similarity index 68% rename from core/src/main/kotlin/io/smnp/dsl/ast/model/node/ProductOperatorNode.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/ProductOperatorNode.kt index ded7ca7..0399061 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/ProductOperatorNode.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/ProductOperatorNode.kt @@ -1,3 +1,3 @@ -package io.smnp.dsl.ast.model.node +package com.bartlomiejpluta.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/core/src/main/kotlin/io/smnp/dsl/ast/model/node/RegularFunctionDefinitionArgumentNode.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/RegularFunctionDefinitionArgumentNode.kt similarity index 87% rename from core/src/main/kotlin/io/smnp/dsl/ast/model/node/RegularFunctionDefinitionArgumentNode.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/RegularFunctionDefinitionArgumentNode.kt index bdca9f7..f2d2609 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/RegularFunctionDefinitionArgumentNode.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/RegularFunctionDefinitionArgumentNode.kt @@ -1,4 +1,4 @@ -package io.smnp.dsl.ast.model.node +package com.bartlomiejpluta.smnp.dsl.ast.model.node class RegularFunctionDefinitionArgumentNode(identifier: Node, type: Node, vararg: Node) : Node(3, identifier.position) { val identifier diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/RelationOperatorNode.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/RelationOperatorNode.kt similarity index 68% rename from core/src/main/kotlin/io/smnp/dsl/ast/model/node/RelationOperatorNode.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/RelationOperatorNode.kt index 5ce5170..5dd73d0 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/RelationOperatorNode.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/RelationOperatorNode.kt @@ -1,3 +1,3 @@ -package io.smnp.dsl.ast.model.node +package com.bartlomiejpluta.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/core/src/main/kotlin/io/smnp/dsl/ast/model/node/ReturnNode.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/ReturnNode.kt similarity index 78% rename from core/src/main/kotlin/io/smnp/dsl/ast/model/node/ReturnNode.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/ReturnNode.kt index bd853a4..6278da9 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/ReturnNode.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/ReturnNode.kt @@ -1,4 +1,4 @@ -package io.smnp.dsl.ast.model.node +package com.bartlomiejpluta.smnp.dsl.ast.model.node class ReturnNode(value: Node) : Node(1, value.position) { operator fun component1() = children[0] diff --git a/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/RootNode.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/RootNode.kt new file mode 100644 index 0000000..d3f768d --- /dev/null +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/RootNode.kt @@ -0,0 +1,5 @@ +package com.bartlomiejpluta.smnp.dsl.ast.model.node + +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenPosition + +class RootNode(nodes: List, position: TokenPosition) : Node(nodes, position) \ No newline at end of file diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/SingleTypeNode.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/SingleTypeNode.kt similarity index 82% rename from core/src/main/kotlin/io/smnp/dsl/ast/model/node/SingleTypeNode.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/SingleTypeNode.kt index 5aff4df..74c0f91 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/SingleTypeNode.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/SingleTypeNode.kt @@ -1,4 +1,4 @@ -package io.smnp.dsl.ast.model.node +package com.bartlomiejpluta.smnp.dsl.ast.model.node class SingleTypeNode(type: Node, specifiers: Node) : Node(2, type.position) { val type: Node diff --git a/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/StaffNode.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/StaffNode.kt new file mode 100644 index 0000000..ddeef0a --- /dev/null +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/StaffNode.kt @@ -0,0 +1,5 @@ +package com.bartlomiejpluta.smnp.dsl.ast.model.node + +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenPosition + +class StaffNode(items: List, position: TokenPosition) : AbstractIterableNode(items, position) \ No newline at end of file diff --git a/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/StringLiteralNode.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/StringLiteralNode.kt new file mode 100644 index 0000000..ecb9332 --- /dev/null +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/StringLiteralNode.kt @@ -0,0 +1,5 @@ +package com.bartlomiejpluta.smnp.dsl.ast.model.node + +import com.bartlomiejpluta.smnp.dsl.token.model.entity.Token + +class StringLiteralNode(token: Token) : AtomAbstractNode(token) \ No newline at end of file diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/SumOperatorNode.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/SumOperatorNode.kt similarity index 67% rename from core/src/main/kotlin/io/smnp/dsl/ast/model/node/SumOperatorNode.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/SumOperatorNode.kt index 3f866bb..eb16c97 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/SumOperatorNode.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/SumOperatorNode.kt @@ -1,3 +1,3 @@ -package io.smnp.dsl.ast.model.node +package com.bartlomiejpluta.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/core/src/main/kotlin/io/smnp/dsl/ast/model/node/ThrowNode.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/ThrowNode.kt similarity index 74% rename from core/src/main/kotlin/io/smnp/dsl/ast/model/node/ThrowNode.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/ThrowNode.kt index b7a5cff..c06260e 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/ThrowNode.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/ThrowNode.kt @@ -1,4 +1,4 @@ -package io.smnp.dsl.ast.model.node +package com.bartlomiejpluta.smnp.dsl.ast.model.node class ThrowNode(value: Node) : Node(1, value.position) { val value: Node diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/TimeSignatureNode.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/TimeSignatureNode.kt similarity index 83% rename from core/src/main/kotlin/io/smnp/dsl/ast/model/node/TimeSignatureNode.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/TimeSignatureNode.kt index 2d04181..c636bf4 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/TimeSignatureNode.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/TimeSignatureNode.kt @@ -1,4 +1,4 @@ -package io.smnp.dsl.ast.model.node +package com.bartlomiejpluta.smnp.dsl.ast.model.node class TimeSignatureNode(numerator: Node, denominator: Node) : Node(2, numerator.position) { val numerator: Node diff --git a/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/TokenNode.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/TokenNode.kt new file mode 100644 index 0000000..bd3d24b --- /dev/null +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/TokenNode.kt @@ -0,0 +1,5 @@ +package com.bartlomiejpluta.smnp.dsl.ast.model.node + +import com.bartlomiejpluta.smnp.dsl.token.model.entity.Token + +class TokenNode(token: Token) : AtomAbstractNode(token) \ No newline at end of file diff --git a/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/TypeSpecifierNode.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/TypeSpecifierNode.kt new file mode 100644 index 0000000..301829e --- /dev/null +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/TypeSpecifierNode.kt @@ -0,0 +1,5 @@ +package com.bartlomiejpluta.smnp.dsl.ast.model.node + +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenPosition + +class TypeSpecifierNode(items: List, position: TokenPosition) : AbstractIterableNode(items, position) \ No newline at end of file diff --git a/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/TypeSpecifiersNode.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/TypeSpecifiersNode.kt new file mode 100644 index 0000000..a22fcbe --- /dev/null +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/TypeSpecifiersNode.kt @@ -0,0 +1,5 @@ +package com.bartlomiejpluta.smnp.dsl.ast.model.node + +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenPosition + +class TypeSpecifiersNode(specifiers: List, position: TokenPosition) : Node(specifiers, position) \ No newline at end of file diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/UnaryOperatorAbstractNode.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/UnaryOperatorAbstractNode.kt similarity index 87% rename from core/src/main/kotlin/io/smnp/dsl/ast/model/node/UnaryOperatorAbstractNode.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/UnaryOperatorAbstractNode.kt index b00b8c1..9c48777 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/UnaryOperatorAbstractNode.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/UnaryOperatorAbstractNode.kt @@ -1,4 +1,4 @@ -package io.smnp.dsl.ast.model.node +package com.bartlomiejpluta.smnp.dsl.ast.model.node abstract class UnaryOperatorAbstractNode(operator: Node, operand: Node) : Node(2, operator.position) { operator fun component1() = children[0] diff --git a/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/UnionTypeNode.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/UnionTypeNode.kt new file mode 100644 index 0000000..abb8aa0 --- /dev/null +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/model/node/UnionTypeNode.kt @@ -0,0 +1,5 @@ +package com.bartlomiejpluta.smnp.dsl.ast.model.node + +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenPosition + +class UnionTypeNode(items: List, position: TokenPosition) : AbstractIterableNode(items, position) \ No newline at end of file diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/parser/AbstractIterableParser.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/AbstractIterableParser.kt similarity index 77% rename from core/src/main/kotlin/io/smnp/dsl/ast/parser/AbstractIterableParser.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/AbstractIterableParser.kt index b251403..e68038f 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/parser/AbstractIterableParser.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/AbstractIterableParser.kt @@ -1,10 +1,10 @@ -package io.smnp.dsl.ast.parser +package com.bartlomiejpluta.smnp.dsl.ast.parser -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 +import com.bartlomiejpluta.smnp.dsl.ast.model.entity.ParserOutput +import com.bartlomiejpluta.smnp.dsl.ast.model.node.Node +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenList +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenPosition +import com.bartlomiejpluta.smnp.dsl.token.model.enumeration.TokenType abstract class AbstractIterableParser( private val beginTokenType: TokenType, diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/parser/AssignmentOperatorParser.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/AssignmentOperatorParser.kt similarity index 52% rename from core/src/main/kotlin/io/smnp/dsl/ast/parser/AssignmentOperatorParser.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/AssignmentOperatorParser.kt index 86a37c7..6f71b02 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/parser/AssignmentOperatorParser.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/AssignmentOperatorParser.kt @@ -1,9 +1,9 @@ -package io.smnp.dsl.ast.parser +package com.bartlomiejpluta.smnp.dsl.ast.parser -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 +import com.bartlomiejpluta.smnp.dsl.ast.model.entity.ParserOutput +import com.bartlomiejpluta.smnp.dsl.ast.model.node.AssignmentOperatorNode +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenList +import com.bartlomiejpluta.smnp.dsl.token.model.enumeration.TokenType class AssignmentOperatorParser : Parser() { override fun tryToParse(input: TokenList): ParserOutput { diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/parser/AtomParser.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/AtomParser.kt similarity index 69% rename from core/src/main/kotlin/io/smnp/dsl/ast/parser/AtomParser.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/AtomParser.kt index 956aba1..375155d 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/parser/AtomParser.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/AtomParser.kt @@ -1,8 +1,8 @@ -package io.smnp.dsl.ast.parser +package com.bartlomiejpluta.smnp.dsl.ast.parser -import io.smnp.dsl.ast.model.entity.ParserOutput -import io.smnp.dsl.token.model.entity.TokenList -import io.smnp.dsl.token.model.enumeration.TokenType +import com.bartlomiejpluta.smnp.dsl.ast.model.entity.ParserOutput +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenList +import com.bartlomiejpluta.smnp.dsl.token.model.enumeration.TokenType class AtomParser : Parser() { override fun tryToParse(input: TokenList): ParserOutput { diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/parser/BlockParser.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/BlockParser.kt similarity index 53% rename from core/src/main/kotlin/io/smnp/dsl/ast/parser/BlockParser.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/BlockParser.kt index e8ee7c5..1ead552 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/parser/BlockParser.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/BlockParser.kt @@ -1,9 +1,9 @@ -package io.smnp.dsl.ast.parser +package com.bartlomiejpluta.smnp.dsl.ast.parser -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 +import com.bartlomiejpluta.smnp.dsl.ast.model.entity.ParserOutput +import com.bartlomiejpluta.smnp.dsl.ast.model.node.BlockNode +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenList +import com.bartlomiejpluta.smnp.dsl.token.model.enumeration.TokenType class BlockParser : Parser() { override fun tryToParse(input: TokenList): ParserOutput { diff --git a/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/BoolLiteralParser.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/BoolLiteralParser.kt new file mode 100644 index 0000000..7a157e8 --- /dev/null +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/BoolLiteralParser.kt @@ -0,0 +1,12 @@ +package com.bartlomiejpluta.smnp.dsl.ast.parser + +import com.bartlomiejpluta.smnp.dsl.ast.model.entity.ParserOutput +import com.bartlomiejpluta.smnp.dsl.ast.model.node.BoolLiteralNode +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenList +import com.bartlomiejpluta.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/core/src/main/kotlin/io/smnp/dsl/ast/parser/ComplexIdentifierParser.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/ComplexIdentifierParser.kt similarity index 60% rename from core/src/main/kotlin/io/smnp/dsl/ast/parser/ComplexIdentifierParser.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/ComplexIdentifierParser.kt index 9fde887..83a85ae 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/parser/ComplexIdentifierParser.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/ComplexIdentifierParser.kt @@ -1,7 +1,7 @@ -package io.smnp.dsl.ast.parser +package com.bartlomiejpluta.smnp.dsl.ast.parser -import io.smnp.dsl.ast.model.entity.ParserOutput -import io.smnp.dsl.token.model.entity.TokenList +import com.bartlomiejpluta.smnp.dsl.ast.model.entity.ParserOutput +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenList class ComplexIdentifierParser : Parser() { override fun tryToParse(input: TokenList): ParserOutput { diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/parser/ConditionParser.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/ConditionParser.kt similarity index 78% rename from core/src/main/kotlin/io/smnp/dsl/ast/parser/ConditionParser.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/ConditionParser.kt index b3123c6..db31906 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/parser/ConditionParser.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/ConditionParser.kt @@ -1,10 +1,10 @@ -package io.smnp.dsl.ast.parser +package com.bartlomiejpluta.smnp.dsl.ast.parser -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 +import com.bartlomiejpluta.smnp.dsl.ast.model.entity.ParserOutput +import com.bartlomiejpluta.smnp.dsl.ast.model.node.ConditionNode +import com.bartlomiejpluta.smnp.dsl.ast.model.node.Node +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenList +import com.bartlomiejpluta.smnp.dsl.token.model.enumeration.TokenType class ConditionParser : Parser() { override fun tryToParse(input: TokenList): ParserOutput { diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/parser/ExpressionParser.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/ExpressionParser.kt similarity index 54% rename from core/src/main/kotlin/io/smnp/dsl/ast/parser/ExpressionParser.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/ExpressionParser.kt index f51f0a8..f9293d9 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/parser/ExpressionParser.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/ExpressionParser.kt @@ -1,7 +1,7 @@ -package io.smnp.dsl.ast.parser +package com.bartlomiejpluta.smnp.dsl.ast.parser -import io.smnp.dsl.ast.model.entity.ParserOutput -import io.smnp.dsl.token.model.entity.TokenList +import com.bartlomiejpluta.smnp.dsl.ast.model.entity.ParserOutput +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenList class ExpressionParser : Parser() { override fun tryToParse(input: TokenList): ParserOutput { diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/parser/ExtendParser.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/ExtendParser.kt similarity index 75% rename from core/src/main/kotlin/io/smnp/dsl/ast/parser/ExtendParser.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/ExtendParser.kt index 562a847..0179638 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/parser/ExtendParser.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/ExtendParser.kt @@ -1,11 +1,11 @@ -package io.smnp.dsl.ast.parser +package com.bartlomiejpluta.smnp.dsl.ast.parser -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 +import com.bartlomiejpluta.smnp.dsl.ast.model.entity.ParserOutput +import com.bartlomiejpluta.smnp.dsl.ast.model.node.BlockNode +import com.bartlomiejpluta.smnp.dsl.ast.model.node.ExtendNode +import com.bartlomiejpluta.smnp.dsl.ast.model.node.Node +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenList +import com.bartlomiejpluta.smnp.dsl.token.model.enumeration.TokenType class ExtendParser : Parser() { override fun tryToParse(input: TokenList): ParserOutput { diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/parser/FactorParser.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/FactorParser.kt similarity index 61% rename from core/src/main/kotlin/io/smnp/dsl/ast/parser/FactorParser.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/FactorParser.kt index c51b1ed..bf7599e 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/parser/FactorParser.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/FactorParser.kt @@ -1,10 +1,10 @@ -package io.smnp.dsl.ast.parser +package com.bartlomiejpluta.smnp.dsl.ast.parser -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 +import com.bartlomiejpluta.smnp.dsl.ast.model.entity.ParserOutput +import com.bartlomiejpluta.smnp.dsl.ast.model.node.NotOperatorNode +import com.bartlomiejpluta.smnp.dsl.ast.model.node.PowerOperatorNode +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenList +import com.bartlomiejpluta.smnp.dsl.token.model.enumeration.TokenType class FactorParser : Parser() { override fun tryToParse(input: TokenList): ParserOutput { diff --git a/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/FloatLiteralParser.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/FloatLiteralParser.kt new file mode 100644 index 0000000..1fc3f9b --- /dev/null +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/FloatLiteralParser.kt @@ -0,0 +1,12 @@ +package com.bartlomiejpluta.smnp.dsl.ast.parser + +import com.bartlomiejpluta.smnp.dsl.ast.model.entity.ParserOutput +import com.bartlomiejpluta.smnp.dsl.ast.model.node.FloatLiteralNode +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenList +import com.bartlomiejpluta.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/core/src/main/kotlin/io/smnp/dsl/ast/parser/FunctionCallArgumentsParser.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/FunctionCallArgumentsParser.kt similarity index 56% rename from core/src/main/kotlin/io/smnp/dsl/ast/parser/FunctionCallArgumentsParser.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/FunctionCallArgumentsParser.kt index a8de20d..efef260 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/parser/FunctionCallArgumentsParser.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/FunctionCallArgumentsParser.kt @@ -1,7 +1,7 @@ -package io.smnp.dsl.ast.parser +package com.bartlomiejpluta.smnp.dsl.ast.parser -import io.smnp.dsl.ast.model.node.FunctionCallArgumentsNode -import io.smnp.dsl.token.model.enumeration.TokenType +import com.bartlomiejpluta.smnp.dsl.ast.model.node.FunctionCallArgumentsNode +import com.bartlomiejpluta.smnp.dsl.token.model.enumeration.TokenType class FunctionCallArgumentsParser : AbstractIterableParser( diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/parser/FunctionCallParser.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/FunctionCallParser.kt similarity index 54% rename from core/src/main/kotlin/io/smnp/dsl/ast/parser/FunctionCallParser.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/FunctionCallParser.kt index 610c31c..502fc3d 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/parser/FunctionCallParser.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/FunctionCallParser.kt @@ -1,8 +1,8 @@ -package io.smnp.dsl.ast.parser +package com.bartlomiejpluta.smnp.dsl.ast.parser -import io.smnp.dsl.ast.model.entity.ParserOutput -import io.smnp.dsl.ast.model.node.FunctionCallNode -import io.smnp.dsl.token.model.entity.TokenList +import com.bartlomiejpluta.smnp.dsl.ast.model.entity.ParserOutput +import com.bartlomiejpluta.smnp.dsl.ast.model.node.FunctionCallNode +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenList class FunctionCallParser : Parser() { override fun tryToParse(input: TokenList): ParserOutput { diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/parser/FunctionDefinitionArgumentParser.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/FunctionDefinitionArgumentParser.kt similarity index 64% rename from core/src/main/kotlin/io/smnp/dsl/ast/parser/FunctionDefinitionArgumentParser.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/FunctionDefinitionArgumentParser.kt index 2b60120..b8503bd 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/parser/FunctionDefinitionArgumentParser.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/FunctionDefinitionArgumentParser.kt @@ -1,7 +1,7 @@ -package io.smnp.dsl.ast.parser +package com.bartlomiejpluta.smnp.dsl.ast.parser -import io.smnp.dsl.ast.model.entity.ParserOutput -import io.smnp.dsl.token.model.entity.TokenList +import com.bartlomiejpluta.smnp.dsl.ast.model.entity.ParserOutput +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenList class FunctionDefinitionArgumentParser : Parser() { override fun tryToParse(input: TokenList): ParserOutput { diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/parser/FunctionDefinitionArgumentsParser.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/FunctionDefinitionArgumentsParser.kt similarity index 56% rename from core/src/main/kotlin/io/smnp/dsl/ast/parser/FunctionDefinitionArgumentsParser.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/FunctionDefinitionArgumentsParser.kt index 2d02df9..c95cfcb 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/parser/FunctionDefinitionArgumentsParser.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/FunctionDefinitionArgumentsParser.kt @@ -1,7 +1,7 @@ -package io.smnp.dsl.ast.parser +package com.bartlomiejpluta.smnp.dsl.ast.parser -import io.smnp.dsl.ast.model.node.FunctionDefinitionArgumentsNode -import io.smnp.dsl.token.model.enumeration.TokenType +import com.bartlomiejpluta.smnp.dsl.ast.model.node.FunctionDefinitionArgumentsNode +import com.bartlomiejpluta.smnp.dsl.token.model.enumeration.TokenType class FunctionDefinitionArgumentsParser : AbstractIterableParser( TokenType.OPEN_PAREN, diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/parser/FunctionDefinitionParser.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/FunctionDefinitionParser.kt similarity index 63% rename from core/src/main/kotlin/io/smnp/dsl/ast/parser/FunctionDefinitionParser.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/FunctionDefinitionParser.kt index 1f8b325..81c981e 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/parser/FunctionDefinitionParser.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/FunctionDefinitionParser.kt @@ -1,9 +1,9 @@ -package io.smnp.dsl.ast.parser +package com.bartlomiejpluta.smnp.dsl.ast.parser -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 +import com.bartlomiejpluta.smnp.dsl.ast.model.entity.ParserOutput +import com.bartlomiejpluta.smnp.dsl.ast.model.node.FunctionDefinitionNode +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenList +import com.bartlomiejpluta.smnp.dsl.token.model.enumeration.TokenType class FunctionDefinitionParser : Parser() { override fun tryToParse(input: TokenList): ParserOutput { diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/parser/ImportParser.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/ImportParser.kt similarity index 67% rename from core/src/main/kotlin/io/smnp/dsl/ast/parser/ImportParser.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/ImportParser.kt index 44a5d5f..2705c1e 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/parser/ImportParser.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/ImportParser.kt @@ -1,10 +1,10 @@ -package io.smnp.dsl.ast.parser +package com.bartlomiejpluta.smnp.dsl.ast.parser -import io.smnp.dsl.ast.model.entity.ParserOutput -import io.smnp.dsl.ast.model.node.ImportNode -import io.smnp.dsl.ast.model.node.Node -import io.smnp.dsl.token.model.entity.TokenList -import io.smnp.dsl.token.model.enumeration.TokenType +import com.bartlomiejpluta.smnp.dsl.ast.model.entity.ParserOutput +import com.bartlomiejpluta.smnp.dsl.ast.model.node.ImportNode +import com.bartlomiejpluta.smnp.dsl.ast.model.node.Node +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenList +import com.bartlomiejpluta.smnp.dsl.token.model.enumeration.TokenType class ImportParser : Parser() { override fun tryToParse(input: TokenList): ParserOutput { diff --git a/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/IntegerLiteralParser.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/IntegerLiteralParser.kt new file mode 100644 index 0000000..cefc7d5 --- /dev/null +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/IntegerLiteralParser.kt @@ -0,0 +1,12 @@ +package com.bartlomiejpluta.smnp.dsl.ast.parser + +import com.bartlomiejpluta.smnp.dsl.ast.model.entity.ParserOutput +import com.bartlomiejpluta.smnp.dsl.ast.model.node.IntegerLiteralNode +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenList +import com.bartlomiejpluta.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/core/src/main/kotlin/io/smnp/dsl/ast/parser/ListParser.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/ListParser.kt similarity index 55% rename from core/src/main/kotlin/io/smnp/dsl/ast/parser/ListParser.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/ListParser.kt index 2d67fe3..06940f4 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/parser/ListParser.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/ListParser.kt @@ -1,7 +1,7 @@ -package io.smnp.dsl.ast.parser +package com.bartlomiejpluta.smnp.dsl.ast.parser -import io.smnp.dsl.ast.model.node.ListNode -import io.smnp.dsl.token.model.enumeration.TokenType +import com.bartlomiejpluta.smnp.dsl.ast.model.node.ListNode +import com.bartlomiejpluta.smnp.dsl.token.model.enumeration.TokenType class ListParser : AbstractIterableParser( TokenType.OPEN_SQUARE, diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/parser/LiteralParser.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/LiteralParser.kt similarity index 64% rename from core/src/main/kotlin/io/smnp/dsl/ast/parser/LiteralParser.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/LiteralParser.kt index 96b7d77..8c2b4df 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/parser/LiteralParser.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/LiteralParser.kt @@ -1,7 +1,7 @@ -package io.smnp.dsl.ast.parser +package com.bartlomiejpluta.smnp.dsl.ast.parser -import io.smnp.dsl.ast.model.entity.ParserOutput -import io.smnp.dsl.token.model.entity.TokenList +import com.bartlomiejpluta.smnp.dsl.ast.model.entity.ParserOutput +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenList class LiteralParser : Parser() { override fun tryToParse(input: TokenList): ParserOutput { diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/parser/LoopParametersParser.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/LoopParametersParser.kt similarity index 56% rename from core/src/main/kotlin/io/smnp/dsl/ast/parser/LoopParametersParser.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/LoopParametersParser.kt index 8c863ba..a99d3e9 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/parser/LoopParametersParser.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/LoopParametersParser.kt @@ -1,7 +1,7 @@ -package io.smnp.dsl.ast.parser +package com.bartlomiejpluta.smnp.dsl.ast.parser -import io.smnp.dsl.ast.model.node.LoopParametersNode -import io.smnp.dsl.token.model.enumeration.TokenType +import com.bartlomiejpluta.smnp.dsl.ast.model.node.LoopParametersNode +import com.bartlomiejpluta.smnp.dsl.token.model.enumeration.TokenType class LoopParametersParser : AbstractIterableParser( TokenType.OPEN_PAREN, diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/parser/LoopParser.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/LoopParser.kt similarity index 72% rename from core/src/main/kotlin/io/smnp/dsl/ast/parser/LoopParser.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/LoopParser.kt index b7585f1..f1f0e00 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/parser/LoopParser.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/LoopParser.kt @@ -1,10 +1,10 @@ -package io.smnp.dsl.ast.parser +package com.bartlomiejpluta.smnp.dsl.ast.parser -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 +import com.bartlomiejpluta.smnp.dsl.ast.model.entity.ParserOutput +import com.bartlomiejpluta.smnp.dsl.ast.model.node.LoopNode +import com.bartlomiejpluta.smnp.dsl.ast.model.node.LoopParametersNode +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenList +import com.bartlomiejpluta.smnp.dsl.token.model.enumeration.TokenType class LoopParser : Parser() { override fun tryToParse(input: TokenList): ParserOutput { diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/parser/MapEntryParser.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/MapEntryParser.kt similarity index 58% rename from core/src/main/kotlin/io/smnp/dsl/ast/parser/MapEntryParser.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/MapEntryParser.kt index cff0422..e8f54d6 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/parser/MapEntryParser.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/MapEntryParser.kt @@ -1,9 +1,9 @@ -package io.smnp.dsl.ast.parser +package com.bartlomiejpluta.smnp.dsl.ast.parser -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 +import com.bartlomiejpluta.smnp.dsl.ast.model.entity.ParserOutput +import com.bartlomiejpluta.smnp.dsl.ast.model.node.MapEntryNode +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenList +import com.bartlomiejpluta.smnp.dsl.token.model.enumeration.TokenType class MapEntryParser : Parser() { override fun tryToParse(input: TokenList): ParserOutput { diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/parser/MapParser.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/MapParser.kt similarity index 55% rename from core/src/main/kotlin/io/smnp/dsl/ast/parser/MapParser.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/MapParser.kt index e2d10aa..7d328bc 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/parser/MapParser.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/MapParser.kt @@ -1,7 +1,7 @@ -package io.smnp.dsl.ast.parser +package com.bartlomiejpluta.smnp.dsl.ast.parser -import io.smnp.dsl.ast.model.node.MapNode -import io.smnp.dsl.token.model.enumeration.TokenType +import com.bartlomiejpluta.smnp.dsl.ast.model.node.MapNode +import com.bartlomiejpluta.smnp.dsl.token.model.enumeration.TokenType class MapParser : AbstractIterableParser( diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/parser/MeasureParser.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/MeasureParser.kt similarity index 54% rename from core/src/main/kotlin/io/smnp/dsl/ast/parser/MeasureParser.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/MeasureParser.kt index 31c48ac..1729ba4 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/parser/MeasureParser.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/MeasureParser.kt @@ -1,8 +1,8 @@ -package io.smnp.dsl.ast.parser +package com.bartlomiejpluta.smnp.dsl.ast.parser -import io.smnp.dsl.ast.model.entity.ParserOutput -import io.smnp.dsl.ast.model.node.MeasureNode -import io.smnp.dsl.token.model.entity.TokenList +import com.bartlomiejpluta.smnp.dsl.ast.model.entity.ParserOutput +import com.bartlomiejpluta.smnp.dsl.ast.model.node.MeasureNode +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenList class MeasureParser : Parser() { diff --git a/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/NoteLiteralParser.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/NoteLiteralParser.kt new file mode 100644 index 0000000..f40339b --- /dev/null +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/NoteLiteralParser.kt @@ -0,0 +1,12 @@ +package com.bartlomiejpluta.smnp.dsl.ast.parser + +import com.bartlomiejpluta.smnp.dsl.ast.model.entity.ParserOutput +import com.bartlomiejpluta.smnp.dsl.ast.model.node.NoteLiteralNode +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenList +import com.bartlomiejpluta.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/core/src/main/kotlin/io/smnp/dsl/ast/parser/OptionalFunctionDefinitionArgumentParser.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/OptionalFunctionDefinitionArgumentParser.kt similarity index 57% rename from core/src/main/kotlin/io/smnp/dsl/ast/parser/OptionalFunctionDefinitionArgumentParser.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/OptionalFunctionDefinitionArgumentParser.kt index b309ca4..2ccfb79 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/parser/OptionalFunctionDefinitionArgumentParser.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/OptionalFunctionDefinitionArgumentParser.kt @@ -1,11 +1,11 @@ -package io.smnp.dsl.ast.parser +package com.bartlomiejpluta.smnp.dsl.ast.parser -import io.smnp.dsl.ast.model.entity.ParserOutput -import io.smnp.dsl.ast.model.node.OptionalFunctionDefinitionArgumentNode -import io.smnp.dsl.ast.model.node.UnionTypeNode -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 com.bartlomiejpluta.smnp.dsl.ast.model.entity.ParserOutput +import com.bartlomiejpluta.smnp.dsl.ast.model.node.OptionalFunctionDefinitionArgumentNode +import com.bartlomiejpluta.smnp.dsl.ast.model.node.UnionTypeNode +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenList +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenPosition +import com.bartlomiejpluta.smnp.dsl.token.model.enumeration.TokenType class OptionalFunctionDefinitionArgumentParser : Parser() { override fun tryToParse(input: TokenList): ParserOutput { diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/parser/Parser.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/Parser.kt similarity index 91% rename from core/src/main/kotlin/io/smnp/dsl/ast/parser/Parser.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/Parser.kt index ffb9d07..241bab8 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/parser/Parser.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/Parser.kt @@ -1,15 +1,15 @@ -package io.smnp.dsl.ast.parser +package com.bartlomiejpluta.smnp.dsl.ast.parser -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 -import io.smnp.error.PositionException +import com.bartlomiejpluta.smnp.dsl.ast.model.entity.ParserOutput +import com.bartlomiejpluta.smnp.dsl.ast.model.enumeration.ParsingResult +import com.bartlomiejpluta.smnp.dsl.ast.model.node.Node +import com.bartlomiejpluta.smnp.dsl.ast.model.node.TokenNode +import com.bartlomiejpluta.smnp.dsl.token.model.entity.Token +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenList +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenPosition +import com.bartlomiejpluta.smnp.dsl.token.model.enumeration.TokenType +import com.bartlomiejpluta.smnp.error.InvalidSyntaxException +import com.bartlomiejpluta.smnp.error.PositionException abstract class Parser { fun parse(input: TokenList): ParserOutput { diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/parser/RegularFunctionDefinitionArgumentParser.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/RegularFunctionDefinitionArgumentParser.kt similarity index 55% rename from core/src/main/kotlin/io/smnp/dsl/ast/parser/RegularFunctionDefinitionArgumentParser.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/RegularFunctionDefinitionArgumentParser.kt index 567bb74..eb95b33 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/parser/RegularFunctionDefinitionArgumentParser.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/RegularFunctionDefinitionArgumentParser.kt @@ -1,11 +1,11 @@ -package io.smnp.dsl.ast.parser +package com.bartlomiejpluta.smnp.dsl.ast.parser -import io.smnp.dsl.ast.model.entity.ParserOutput -import io.smnp.dsl.ast.model.node.RegularFunctionDefinitionArgumentNode -import io.smnp.dsl.ast.model.node.UnionTypeNode -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 com.bartlomiejpluta.smnp.dsl.ast.model.entity.ParserOutput +import com.bartlomiejpluta.smnp.dsl.ast.model.node.RegularFunctionDefinitionArgumentNode +import com.bartlomiejpluta.smnp.dsl.ast.model.node.UnionTypeNode +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenList +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenPosition +import com.bartlomiejpluta.smnp.dsl.token.model.enumeration.TokenType class RegularFunctionDefinitionArgumentParser : Parser() { override fun tryToParse(input: TokenList): ParserOutput { diff --git a/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/ReturnParser.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/ReturnParser.kt new file mode 100644 index 0000000..8b094a8 --- /dev/null +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/ReturnParser.kt @@ -0,0 +1,17 @@ +package com.bartlomiejpluta.smnp.dsl.ast.parser + +import com.bartlomiejpluta.smnp.dsl.ast.model.entity.ParserOutput +import com.bartlomiejpluta.smnp.dsl.ast.model.node.ReturnNode +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenList +import com.bartlomiejpluta.smnp.dsl.token.model.enumeration.TokenType + +class ReturnParser : Parser() { + override fun tryToParse(input: TokenList): ParserOutput { + return allOf( + terminal(TokenType.RETURN), + optional(assert(ExpressionParser(), "expression")) + ) { (_, value) -> + ReturnNode(value) + }.parse(input) + } +} \ No newline at end of file diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/parser/RootParser.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/RootParser.kt similarity index 60% rename from core/src/main/kotlin/io/smnp/dsl/ast/parser/RootParser.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/RootParser.kt index 0a8d045..b1d56a2 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/parser/RootParser.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/RootParser.kt @@ -1,12 +1,12 @@ -package io.smnp.dsl.ast.parser +package com.bartlomiejpluta.smnp.dsl.ast.parser -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.RootNode -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 com.bartlomiejpluta.smnp.dsl.ast.model.entity.ParserOutput +import com.bartlomiejpluta.smnp.dsl.ast.model.enumeration.ParsingResult +import com.bartlomiejpluta.smnp.dsl.ast.model.node.Node +import com.bartlomiejpluta.smnp.dsl.ast.model.node.RootNode +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenList +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenPosition +import com.bartlomiejpluta.smnp.dsl.token.model.enumeration.TokenType class RootParser : Parser() { override fun tryToParse(input: TokenList): ParserOutput { diff --git a/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/SimpleIdentifierParser.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/SimpleIdentifierParser.kt new file mode 100644 index 0000000..4f3f735 --- /dev/null +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/SimpleIdentifierParser.kt @@ -0,0 +1,16 @@ +package com.bartlomiejpluta.smnp.dsl.ast.parser + +import com.bartlomiejpluta.smnp.dsl.ast.model.entity.ParserOutput +import com.bartlomiejpluta.smnp.dsl.ast.model.node.IdentifierNode +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenList +import com.bartlomiejpluta.smnp.dsl.token.model.enumeration.TokenType + +class SimpleIdentifierParser : Parser() { + override fun tryToParse(input: TokenList): ParserOutput { + val identifierParser = terminal(TokenType.IDENTIFIER) { IdentifierNode(it) } + + return oneOf( + identifierParser + ).parse(input) + } +} \ No newline at end of file diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/parser/SingleTypeParser.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/SingleTypeParser.kt similarity index 54% rename from core/src/main/kotlin/io/smnp/dsl/ast/parser/SingleTypeParser.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/SingleTypeParser.kt index 79d9cfb..851bc78 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/parser/SingleTypeParser.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/SingleTypeParser.kt @@ -1,9 +1,9 @@ -package io.smnp.dsl.ast.parser +package com.bartlomiejpluta.smnp.dsl.ast.parser -import io.smnp.dsl.ast.model.entity.ParserOutput -import io.smnp.dsl.ast.model.node.SingleTypeNode -import io.smnp.dsl.ast.model.node.TypeSpecifiersNode -import io.smnp.dsl.token.model.entity.TokenList +import com.bartlomiejpluta.smnp.dsl.ast.model.entity.ParserOutput +import com.bartlomiejpluta.smnp.dsl.ast.model.node.SingleTypeNode +import com.bartlomiejpluta.smnp.dsl.ast.model.node.TypeSpecifiersNode +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenList class SingleTypeParser : Parser() { override fun tryToParse(input: TokenList): ParserOutput { diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/parser/StaffParser.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/StaffParser.kt similarity index 50% rename from core/src/main/kotlin/io/smnp/dsl/ast/parser/StaffParser.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/StaffParser.kt index 025e1a9..617b4b8 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/parser/StaffParser.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/StaffParser.kt @@ -1,7 +1,7 @@ -package io.smnp.dsl.ast.parser +package com.bartlomiejpluta.smnp.dsl.ast.parser -import io.smnp.dsl.ast.model.node.StaffNode -import io.smnp.dsl.token.model.enumeration.TokenType +import com.bartlomiejpluta.smnp.dsl.ast.model.node.StaffNode +import com.bartlomiejpluta.smnp.dsl.token.model.enumeration.TokenType class StaffParser : AbstractIterableParser( TokenType.DOLLAR, diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/parser/StatementParser.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/StatementParser.kt similarity index 63% rename from core/src/main/kotlin/io/smnp/dsl/ast/parser/StatementParser.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/StatementParser.kt index 390bdf0..bcdb684 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/parser/StatementParser.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/StatementParser.kt @@ -1,8 +1,8 @@ -package io.smnp.dsl.ast.parser +package com.bartlomiejpluta.smnp.dsl.ast.parser -import io.smnp.dsl.ast.model.entity.ParserOutput -import io.smnp.dsl.token.model.entity.TokenList -import io.smnp.dsl.token.model.enumeration.TokenType +import com.bartlomiejpluta.smnp.dsl.ast.model.entity.ParserOutput +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenList +import com.bartlomiejpluta.smnp.dsl.token.model.enumeration.TokenType class StatementParser : Parser() { override fun tryToParse(input: TokenList): ParserOutput { diff --git a/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/StringLiteralParser.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/StringLiteralParser.kt new file mode 100644 index 0000000..ced294c --- /dev/null +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/StringLiteralParser.kt @@ -0,0 +1,12 @@ +package com.bartlomiejpluta.smnp.dsl.ast.parser + +import com.bartlomiejpluta.smnp.dsl.ast.model.entity.ParserOutput +import com.bartlomiejpluta.smnp.dsl.ast.model.node.StringLiteralNode +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenList +import com.bartlomiejpluta.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/core/src/main/kotlin/io/smnp/dsl/ast/parser/SubexpressionParser.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/SubexpressionParser.kt similarity index 71% rename from core/src/main/kotlin/io/smnp/dsl/ast/parser/SubexpressionParser.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/SubexpressionParser.kt index 25db0fd..7b051a6 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/parser/SubexpressionParser.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/SubexpressionParser.kt @@ -1,11 +1,11 @@ -package io.smnp.dsl.ast.parser +package com.bartlomiejpluta.smnp.dsl.ast.parser -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 +import com.bartlomiejpluta.smnp.dsl.ast.model.entity.ParserOutput +import com.bartlomiejpluta.smnp.dsl.ast.model.node.LogicOperatorNode +import com.bartlomiejpluta.smnp.dsl.ast.model.node.RelationOperatorNode +import com.bartlomiejpluta.smnp.dsl.ast.model.node.SumOperatorNode +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenList +import com.bartlomiejpluta.smnp.dsl.token.model.enumeration.TokenType class SubexpressionParser : Parser() { override fun tryToParse(input: TokenList): ParserOutput { diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/parser/TermParser.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/TermParser.kt similarity index 54% rename from core/src/main/kotlin/io/smnp/dsl/ast/parser/TermParser.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/TermParser.kt index c2fa619..c6c87cd 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/parser/TermParser.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/TermParser.kt @@ -1,9 +1,9 @@ -package io.smnp.dsl.ast.parser +package com.bartlomiejpluta.smnp.dsl.ast.parser -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 +import com.bartlomiejpluta.smnp.dsl.ast.model.entity.ParserOutput +import com.bartlomiejpluta.smnp.dsl.ast.model.node.ProductOperatorNode +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenList +import com.bartlomiejpluta.smnp.dsl.token.model.enumeration.TokenType class TermParser : Parser() { override fun tryToParse(input: TokenList): ParserOutput { diff --git a/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/ThrowParser.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/ThrowParser.kt new file mode 100644 index 0000000..8ee998f --- /dev/null +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/ThrowParser.kt @@ -0,0 +1,15 @@ +package com.bartlomiejpluta.smnp.dsl.ast.parser + +import com.bartlomiejpluta.smnp.dsl.ast.model.entity.ParserOutput +import com.bartlomiejpluta.smnp.dsl.ast.model.node.ThrowNode +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenList +import com.bartlomiejpluta.smnp.dsl.token.model.enumeration.TokenType + +class ThrowParser : Parser() { + override fun tryToParse(input: TokenList): ParserOutput { + return allOf( + terminal(TokenType.THROW), + optional(SubexpressionParser()) + ) { (_, value) -> ThrowNode(value) }.parse(input) + } +} \ No newline at end of file diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/parser/TimeSignatureParser.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/TimeSignatureParser.kt similarity index 50% rename from core/src/main/kotlin/io/smnp/dsl/ast/parser/TimeSignatureParser.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/TimeSignatureParser.kt index 0122b94..13e46a9 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/parser/TimeSignatureParser.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/TimeSignatureParser.kt @@ -1,9 +1,9 @@ -package io.smnp.dsl.ast.parser +package com.bartlomiejpluta.smnp.dsl.ast.parser -import io.smnp.dsl.ast.model.entity.ParserOutput -import io.smnp.dsl.ast.model.node.TimeSignatureNode -import io.smnp.dsl.token.model.entity.TokenList -import io.smnp.dsl.token.model.enumeration.TokenType +import com.bartlomiejpluta.smnp.dsl.ast.model.entity.ParserOutput +import com.bartlomiejpluta.smnp.dsl.ast.model.node.TimeSignatureNode +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenList +import com.bartlomiejpluta.smnp.dsl.token.model.enumeration.TokenType class TimeSignatureParser : Parser() { diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/parser/TypeParser.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/TypeParser.kt similarity index 51% rename from core/src/main/kotlin/io/smnp/dsl/ast/parser/TypeParser.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/TypeParser.kt index 1596b28..71e7eb8 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/parser/TypeParser.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/TypeParser.kt @@ -1,9 +1,9 @@ -package io.smnp.dsl.ast.parser +package com.bartlomiejpluta.smnp.dsl.ast.parser -import io.smnp.dsl.ast.model.entity.ParserOutput -import io.smnp.dsl.ast.model.node.SingleTypeNode -import io.smnp.dsl.ast.model.node.UnionTypeNode -import io.smnp.dsl.token.model.entity.TokenList +import com.bartlomiejpluta.smnp.dsl.ast.model.entity.ParserOutput +import com.bartlomiejpluta.smnp.dsl.ast.model.node.SingleTypeNode +import com.bartlomiejpluta.smnp.dsl.ast.model.node.UnionTypeNode +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenList class TypeParser : Parser() { override fun tryToParse(input: TokenList): ParserOutput { diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/parser/TypeSpecifierParser.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/TypeSpecifierParser.kt similarity index 56% rename from core/src/main/kotlin/io/smnp/dsl/ast/parser/TypeSpecifierParser.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/TypeSpecifierParser.kt index ef00d13..254ffae 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/parser/TypeSpecifierParser.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/TypeSpecifierParser.kt @@ -1,7 +1,7 @@ -package io.smnp.dsl.ast.parser +package com.bartlomiejpluta.smnp.dsl.ast.parser -import io.smnp.dsl.ast.model.node.TypeSpecifierNode -import io.smnp.dsl.token.model.enumeration.TokenType +import com.bartlomiejpluta.smnp.dsl.ast.model.node.TypeSpecifierNode +import com.bartlomiejpluta.smnp.dsl.token.model.enumeration.TokenType class TypeSpecifierParser : AbstractIterableParser( diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/parser/UnionTypeParser.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/UnionTypeParser.kt similarity index 53% rename from core/src/main/kotlin/io/smnp/dsl/ast/parser/UnionTypeParser.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/UnionTypeParser.kt index ce484bd..4e423fc 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/parser/UnionTypeParser.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/UnionTypeParser.kt @@ -1,7 +1,7 @@ -package io.smnp.dsl.ast.parser +package com.bartlomiejpluta.smnp.dsl.ast.parser -import io.smnp.dsl.ast.model.node.UnionTypeNode -import io.smnp.dsl.token.model.enumeration.TokenType +import com.bartlomiejpluta.smnp.dsl.ast.model.node.UnionTypeNode +import com.bartlomiejpluta.smnp.dsl.token.model.enumeration.TokenType class UnionTypeParser : AbstractIterableParser( TokenType.OPEN_ANGLE, diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/parser/UnitParser.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/UnitParser.kt similarity index 61% rename from core/src/main/kotlin/io/smnp/dsl/ast/parser/UnitParser.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/UnitParser.kt index 7960fd6..01ae0fd 100644 --- a/core/src/main/kotlin/io/smnp/dsl/ast/parser/UnitParser.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/ast/parser/UnitParser.kt @@ -1,10 +1,10 @@ -package io.smnp.dsl.ast.parser +package com.bartlomiejpluta.smnp.dsl.ast.parser -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 +import com.bartlomiejpluta.smnp.dsl.ast.model.entity.ParserOutput +import com.bartlomiejpluta.smnp.dsl.ast.model.node.AccessOperatorNode +import com.bartlomiejpluta.smnp.dsl.ast.model.node.MinusOperatorNode +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenList +import com.bartlomiejpluta.smnp.dsl.token.model.enumeration.TokenType class UnitParser : Parser() { override fun tryToParse(input: TokenList): ParserOutput { diff --git a/core/src/main/kotlin/io/smnp/dsl/token/model/entity/Token.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/token/model/entity/Token.kt similarity index 80% rename from core/src/main/kotlin/io/smnp/dsl/token/model/entity/Token.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/token/model/entity/Token.kt index b60ea34..15def37 100644 --- a/core/src/main/kotlin/io/smnp/dsl/token/model/entity/Token.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/token/model/entity/Token.kt @@ -1,6 +1,6 @@ -package io.smnp.dsl.token.model.entity +package com.bartlomiejpluta.smnp.dsl.token.model.entity -import io.smnp.dsl.token.model.enumeration.TokenType +import com.bartlomiejpluta.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/core/src/main/kotlin/io/smnp/dsl/token/model/entity/TokenList.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/token/model/entity/TokenList.kt similarity index 95% rename from core/src/main/kotlin/io/smnp/dsl/token/model/entity/TokenList.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/token/model/entity/TokenList.kt index 3ace227..c734f9c 100644 --- a/core/src/main/kotlin/io/smnp/dsl/token/model/entity/TokenList.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/token/model/entity/TokenList.kt @@ -1,4 +1,4 @@ -package io.smnp.dsl.token.model.entity +package com.bartlomiejpluta.smnp.dsl.token.model.entity class TokenList(val tokens: List, val lines: List) { private var cursor = 0 diff --git a/core/src/main/kotlin/io/smnp/dsl/token/model/entity/TokenPosition.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/token/model/entity/TokenPosition.kt similarity index 85% rename from core/src/main/kotlin/io/smnp/dsl/token/model/entity/TokenPosition.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/token/model/entity/TokenPosition.kt index 6a90f03..16793b9 100644 --- a/core/src/main/kotlin/io/smnp/dsl/token/model/entity/TokenPosition.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/token/model/entity/TokenPosition.kt @@ -1,4 +1,4 @@ -package io.smnp.dsl.token.model.entity +package com.bartlomiejpluta.smnp.dsl.token.model.entity data class TokenPosition(val source: String, val line: Int, val beginCol: Int, val endCol: Int) { companion object { diff --git a/core/src/main/kotlin/io/smnp/dsl/token/model/entity/TokenizerOutput.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/token/model/entity/TokenizerOutput.kt similarity index 89% rename from core/src/main/kotlin/io/smnp/dsl/token/model/entity/TokenizerOutput.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/token/model/entity/TokenizerOutput.kt index b6b5f7e..a3008c4 100644 --- a/core/src/main/kotlin/io/smnp/dsl/token/model/entity/TokenizerOutput.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/token/model/entity/TokenizerOutput.kt @@ -1,6 +1,6 @@ -package io.smnp.dsl.token.model.entity +package com.bartlomiejpluta.smnp.dsl.token.model.entity -import io.smnp.dsl.token.model.enumeration.TokenType +import com.bartlomiejpluta.smnp.dsl.token.model.enumeration.TokenType data class TokenizerOutput(val consumedChars: Int, val token: Token) { fun consumed(): Boolean { diff --git a/core/src/main/kotlin/io/smnp/dsl/token/model/enumeration/TokenType.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/token/model/enumeration/TokenType.kt similarity index 94% rename from core/src/main/kotlin/io/smnp/dsl/token/model/enumeration/TokenType.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/token/model/enumeration/TokenType.kt index 0938f75..07f0902 100644 --- a/core/src/main/kotlin/io/smnp/dsl/token/model/enumeration/TokenType.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/token/model/enumeration/TokenType.kt @@ -1,4 +1,4 @@ -package io.smnp.dsl.token.model.enumeration +package com.bartlomiejpluta.smnp.dsl.token.model.enumeration enum class TokenType(val token: String) { NONE(""), diff --git a/core/src/main/kotlin/io/smnp/dsl/token/tokenizer/CommentTokenizer.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/token/tokenizer/CommentTokenizer.kt similarity index 75% rename from core/src/main/kotlin/io/smnp/dsl/token/tokenizer/CommentTokenizer.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/token/tokenizer/CommentTokenizer.kt index 6e09d77..e2b8ab0 100644 --- a/core/src/main/kotlin/io/smnp/dsl/token/tokenizer/CommentTokenizer.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/token/tokenizer/CommentTokenizer.kt @@ -1,7 +1,7 @@ -package io.smnp.dsl.token.tokenizer +package com.bartlomiejpluta.smnp.dsl.token.tokenizer -import io.smnp.dsl.token.model.entity.TokenizerOutput -import io.smnp.dsl.token.model.enumeration.TokenType +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenizerOutput +import com.bartlomiejpluta.smnp.dsl.token.model.enumeration.TokenType class CommentTokenizer : Tokenizer { override fun tokenize(input: String, current: Int, line: Int, source: String): TokenizerOutput { diff --git a/core/src/main/kotlin/io/smnp/dsl/token/tokenizer/DefaultTokenizer.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/token/tokenizer/DefaultTokenizer.kt similarity index 80% rename from core/src/main/kotlin/io/smnp/dsl/token/tokenizer/DefaultTokenizer.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/token/tokenizer/DefaultTokenizer.kt index 5e76048..0fb8be6 100644 --- a/core/src/main/kotlin/io/smnp/dsl/token/tokenizer/DefaultTokenizer.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/token/tokenizer/DefaultTokenizer.kt @@ -1,17 +1,17 @@ -package io.smnp.dsl.token.tokenizer +package com.bartlomiejpluta.smnp.dsl.token.tokenizer -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 -import io.smnp.error.PositionException +import com.bartlomiejpluta.smnp.dsl.token.model.entity.Token +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenList +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenPosition +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenizerOutput +import com.bartlomiejpluta.smnp.dsl.token.model.enumeration.TokenType +import com.bartlomiejpluta.smnp.dsl.token.tokenizer.Tokenizer.Companion.default +import com.bartlomiejpluta.smnp.dsl.token.tokenizer.Tokenizer.Companion.keywords +import com.bartlomiejpluta.smnp.dsl.token.tokenizer.Tokenizer.Companion.mapValue +import com.bartlomiejpluta.smnp.dsl.token.tokenizer.Tokenizer.Companion.regex +import com.bartlomiejpluta.smnp.dsl.token.tokenizer.Tokenizer.Companion.separated +import com.bartlomiejpluta.smnp.error.InvalidSyntaxException +import com.bartlomiejpluta.smnp.error.PositionException class DefaultTokenizer : Tokenizer { private val tokenizers = listOf( diff --git a/core/src/main/kotlin/io/smnp/dsl/token/tokenizer/FloatTokenizer.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/token/tokenizer/FloatTokenizer.kt similarity index 65% rename from core/src/main/kotlin/io/smnp/dsl/token/tokenizer/FloatTokenizer.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/token/tokenizer/FloatTokenizer.kt index 7554bc7..d401c04 100644 --- a/core/src/main/kotlin/io/smnp/dsl/token/tokenizer/FloatTokenizer.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/token/tokenizer/FloatTokenizer.kt @@ -1,8 +1,8 @@ -package io.smnp.dsl.token.tokenizer +package com.bartlomiejpluta.smnp.dsl.token.tokenizer -import io.smnp.dsl.token.model.entity.Token -import io.smnp.dsl.token.model.entity.TokenizerOutput -import io.smnp.dsl.token.model.enumeration.TokenType +import com.bartlomiejpluta.smnp.dsl.token.model.entity.Token +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenizerOutput +import com.bartlomiejpluta.smnp.dsl.token.model.enumeration.TokenType class FloatTokenizer : Tokenizer { override fun tokenize(input: String, current: Int, line: Int, source: String): TokenizerOutput { diff --git a/core/src/main/kotlin/io/smnp/dsl/token/tokenizer/NoteTokenizer.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/token/tokenizer/NoteTokenizer.kt similarity index 88% rename from core/src/main/kotlin/io/smnp/dsl/token/tokenizer/NoteTokenizer.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/token/tokenizer/NoteTokenizer.kt index 9fc81dd..2c8cd56 100644 --- a/core/src/main/kotlin/io/smnp/dsl/token/tokenizer/NoteTokenizer.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/token/tokenizer/NoteTokenizer.kt @@ -1,10 +1,10 @@ -package io.smnp.dsl.token.tokenizer +package com.bartlomiejpluta.smnp.dsl.token.tokenizer -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 -import io.smnp.math.Fraction +import com.bartlomiejpluta.smnp.data.entity.Note +import com.bartlomiejpluta.smnp.data.enumeration.Pitch +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenizerOutput +import com.bartlomiejpluta.smnp.dsl.token.model.enumeration.TokenType +import com.bartlomiejpluta.smnp.math.Fraction class NoteTokenizer : Tokenizer { override fun tokenize(input: String, current: Int, line: Int, source: String): TokenizerOutput { diff --git a/core/src/main/kotlin/io/smnp/dsl/token/tokenizer/StringTokenizer.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/token/tokenizer/StringTokenizer.kt similarity index 79% rename from core/src/main/kotlin/io/smnp/dsl/token/tokenizer/StringTokenizer.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/token/tokenizer/StringTokenizer.kt index 0942bc7..6a0dd5f 100644 --- a/core/src/main/kotlin/io/smnp/dsl/token/tokenizer/StringTokenizer.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/token/tokenizer/StringTokenizer.kt @@ -1,7 +1,7 @@ -package io.smnp.dsl.token.tokenizer +package com.bartlomiejpluta.smnp.dsl.token.tokenizer -import io.smnp.dsl.token.model.entity.TokenizerOutput -import io.smnp.dsl.token.model.enumeration.TokenType +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenizerOutput +import com.bartlomiejpluta.smnp.dsl.token.model.enumeration.TokenType class StringTokenizer : Tokenizer { override fun tokenize(input: String, current: Int, line: Int, source: String): TokenizerOutput { diff --git a/core/src/main/kotlin/io/smnp/dsl/token/tokenizer/Tokenizer.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/token/tokenizer/Tokenizer.kt similarity index 92% rename from core/src/main/kotlin/io/smnp/dsl/token/tokenizer/Tokenizer.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/token/tokenizer/Tokenizer.kt index ae5d9fa..80977a0 100644 --- a/core/src/main/kotlin/io/smnp/dsl/token/tokenizer/Tokenizer.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/dsl/token/tokenizer/Tokenizer.kt @@ -1,9 +1,9 @@ -package io.smnp.dsl.token.tokenizer +package com.bartlomiejpluta.smnp.dsl.token.tokenizer -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 +import com.bartlomiejpluta.smnp.dsl.token.model.entity.Token +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenPosition +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenizerOutput +import com.bartlomiejpluta.smnp.dsl.token.model.enumeration.TokenType interface Tokenizer { fun tokenize(input: String, current: Int, line: Int, source: String): TokenizerOutput @@ -90,7 +90,7 @@ interface Tokenizer { } } - // Isolate io.io.smnp.dsl.token (for example "function" | "functions" | "function s") + // Isolate io.com.bartlomiejpluta.smnp.dsl.token (for example "function" | "functions" | "function s") fun separated(tokenizer: Tokenizer, end: String = "\\W"): Tokenizer { return object : Tokenizer { override fun tokenize( @@ -116,7 +116,7 @@ interface Tokenizer { } } - // Change io.io.smnp.dsl.token value (rawValue will be kept) + // Change io.com.bartlomiejpluta.smnp.dsl.token value (rawValue will be kept) fun mapValue(tokenizer: Tokenizer, mapper: (Any) -> Any): Tokenizer { return object : Tokenizer { override fun tokenize( diff --git a/core/src/main/kotlin/io/smnp/environment/DefaultEnvironment.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/environment/DefaultEnvironment.kt similarity index 86% rename from core/src/main/kotlin/io/smnp/environment/DefaultEnvironment.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/environment/DefaultEnvironment.kt index 945a1cb..db13edd 100644 --- a/core/src/main/kotlin/io/smnp/environment/DefaultEnvironment.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/environment/DefaultEnvironment.kt @@ -1,17 +1,17 @@ -package io.smnp.environment +package com.bartlomiejpluta.smnp.environment -import io.smnp.callable.function.Function -import io.smnp.callable.method.Method -import io.smnp.callable.signature.ActualSignatureFormatter.format -import io.smnp.error.FunctionInvocationException -import io.smnp.error.MethodInvocationException -import io.smnp.ext.registry.DefaultModuleRegistry -import io.smnp.ext.registry.DefaultModuleRegistry.requestModuleProviderForPath -import io.smnp.ext.provider.ModuleProvider -import io.smnp.interpreter.DefaultLanguageModuleInterpreter -import io.smnp.runtime.model.CallStack -import io.smnp.type.model.Value -import io.smnp.type.module.Module +import com.bartlomiejpluta.smnp.callable.function.Function +import com.bartlomiejpluta.smnp.callable.method.Method +import com.bartlomiejpluta.smnp.callable.signature.ActualSignatureFormatter.format +import com.bartlomiejpluta.smnp.error.FunctionInvocationException +import com.bartlomiejpluta.smnp.error.MethodInvocationException +import com.bartlomiejpluta.smnp.ext.provider.ModuleProvider +import com.bartlomiejpluta.smnp.ext.registry.DefaultModuleRegistry +import com.bartlomiejpluta.smnp.ext.registry.DefaultModuleRegistry.requestModuleProviderForPath +import com.bartlomiejpluta.smnp.interpreter.DefaultLanguageModuleInterpreter +import com.bartlomiejpluta.smnp.runtime.model.CallStack +import com.bartlomiejpluta.smnp.type.model.Value +import com.bartlomiejpluta.smnp.type.module.Module class DefaultEnvironment : Environment { private val rootModule = Module.create("") diff --git a/core/src/main/kotlin/io/smnp/error/InvalidSignatureException.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/error/InvalidSignatureException.kt similarity index 71% rename from core/src/main/kotlin/io/smnp/error/InvalidSignatureException.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/error/InvalidSignatureException.kt index 5bfc88e..227e1aa 100644 --- a/core/src/main/kotlin/io/smnp/error/InvalidSignatureException.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/error/InvalidSignatureException.kt @@ -1,3 +1,3 @@ -package io.smnp.error +package com.bartlomiejpluta.smnp.error class InvalidSignatureException(message: String?) : SmnpException("Invalid signature", message) \ No newline at end of file diff --git a/core/src/main/kotlin/io/smnp/error/InvalidSyntaxException.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/error/InvalidSyntaxException.kt similarity index 69% rename from core/src/main/kotlin/io/smnp/error/InvalidSyntaxException.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/error/InvalidSyntaxException.kt index 2479ef2..0e46b11 100644 --- a/core/src/main/kotlin/io/smnp/error/InvalidSyntaxException.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/error/InvalidSyntaxException.kt @@ -1,3 +1,3 @@ -package io.smnp.error +package com.bartlomiejpluta.smnp.error class InvalidSyntaxException(message: String?) : SmnpException("Syntax error", message) \ No newline at end of file diff --git a/core/src/main/kotlin/io/smnp/error/ModuleException.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/error/ModuleException.kt similarity index 67% rename from core/src/main/kotlin/io/smnp/error/ModuleException.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/error/ModuleException.kt index a8a2c80..e19afc9 100644 --- a/core/src/main/kotlin/io/smnp/error/ModuleException.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/error/ModuleException.kt @@ -1,3 +1,3 @@ -package io.smnp.error +package com.bartlomiejpluta.smnp.error class ModuleException(message: String?) : SmnpException("Module error", message) \ No newline at end of file diff --git a/core/src/main/kotlin/io/smnp/error/PositionException.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/error/PositionException.kt similarity index 58% rename from core/src/main/kotlin/io/smnp/error/PositionException.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/error/PositionException.kt index 6ce3da4..eebd274 100644 --- a/core/src/main/kotlin/io/smnp/error/PositionException.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/error/PositionException.kt @@ -1,6 +1,6 @@ -package io.smnp.error +package com.bartlomiejpluta.smnp.error -import io.smnp.dsl.token.model.entity.TokenPosition +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenPosition class PositionException(exception: SmnpException, val position: TokenPosition) : SmnpException( exception.friendlyName, exception.message, exception diff --git a/core/src/main/kotlin/io/smnp/error/PresetException.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/error/PresetException.kt similarity index 67% rename from core/src/main/kotlin/io/smnp/error/PresetException.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/error/PresetException.kt index 2c79294..4d2f896 100644 --- a/core/src/main/kotlin/io/smnp/error/PresetException.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/error/PresetException.kt @@ -1,3 +1,3 @@ -package io.smnp.error +package com.bartlomiejpluta.smnp.error class PresetException(message: String?) : SmnpException("Preset error", message) \ No newline at end of file diff --git a/core/src/main/kotlin/io/smnp/evaluation/evaluator/AccessOperatorEvaluator.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/AccessOperatorEvaluator.kt similarity index 77% rename from core/src/main/kotlin/io/smnp/evaluation/evaluator/AccessOperatorEvaluator.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/AccessOperatorEvaluator.kt index c7e2b25..28a8744 100644 --- a/core/src/main/kotlin/io/smnp/evaluation/evaluator/AccessOperatorEvaluator.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/AccessOperatorEvaluator.kt @@ -1,11 +1,11 @@ -package io.smnp.evaluation.evaluator +package com.bartlomiejpluta.smnp.evaluation.evaluator -import io.smnp.dsl.ast.model.node.* -import io.smnp.environment.Environment -import io.smnp.error.SmnpException -import io.smnp.evaluation.model.entity.EvaluatorOutput -import io.smnp.evaluation.util.ContextExceptionFactory -import io.smnp.evaluation.util.ContextExceptionFactory.contextEvaluationException +import com.bartlomiejpluta.smnp.dsl.ast.model.node.* +import com.bartlomiejpluta.smnp.environment.Environment +import com.bartlomiejpluta.smnp.error.SmnpException +import com.bartlomiejpluta.smnp.evaluation.model.entity.EvaluatorOutput +import com.bartlomiejpluta.smnp.evaluation.util.ContextExceptionFactory +import com.bartlomiejpluta.smnp.evaluation.util.ContextExceptionFactory.contextEvaluationException class AccessOperatorEvaluator : Evaluator() { override fun supportedNodes() = listOf(AccessOperatorNode::class) diff --git a/core/src/main/kotlin/io/smnp/evaluation/evaluator/AssignmentOperatorEvaluator.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/AssignmentOperatorEvaluator.kt similarity index 61% rename from core/src/main/kotlin/io/smnp/evaluation/evaluator/AssignmentOperatorEvaluator.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/AssignmentOperatorEvaluator.kt index 495306a..1c4fe82 100644 --- a/core/src/main/kotlin/io/smnp/evaluation/evaluator/AssignmentOperatorEvaluator.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/AssignmentOperatorEvaluator.kt @@ -1,12 +1,12 @@ -package io.smnp.evaluation.evaluator +package com.bartlomiejpluta.smnp.evaluation.evaluator -import io.smnp.dsl.ast.model.node.AssignmentOperatorNode -import io.smnp.dsl.ast.model.node.IdentifierNode -import io.smnp.dsl.ast.model.node.Node -import io.smnp.environment.Environment -import io.smnp.evaluation.model.entity.EvaluatorOutput -import io.smnp.evaluation.util.ContextExceptionFactory.contextEvaluationException -import io.smnp.type.enumeration.DataType +import com.bartlomiejpluta.smnp.dsl.ast.model.node.AssignmentOperatorNode +import com.bartlomiejpluta.smnp.dsl.ast.model.node.IdentifierNode +import com.bartlomiejpluta.smnp.dsl.ast.model.node.Node +import com.bartlomiejpluta.smnp.environment.Environment +import com.bartlomiejpluta.smnp.evaluation.model.entity.EvaluatorOutput +import com.bartlomiejpluta.smnp.evaluation.util.ContextExceptionFactory.contextEvaluationException +import com.bartlomiejpluta.smnp.type.enumeration.DataType class AssignmentOperatorEvaluator : Evaluator() { private val evaluator = assert(ExpressionEvaluator(), "expression") diff --git a/core/src/main/kotlin/io/smnp/evaluation/evaluator/BlockEvaluator.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/BlockEvaluator.kt similarity index 61% rename from core/src/main/kotlin/io/smnp/evaluation/evaluator/BlockEvaluator.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/BlockEvaluator.kt index b1d3ddd..664aada 100644 --- a/core/src/main/kotlin/io/smnp/evaluation/evaluator/BlockEvaluator.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/BlockEvaluator.kt @@ -1,10 +1,10 @@ -package io.smnp.evaluation.evaluator +package com.bartlomiejpluta.smnp.evaluation.evaluator -import io.smnp.dsl.ast.model.node.BlockNode -import io.smnp.dsl.ast.model.node.Node -import io.smnp.environment.Environment -import io.smnp.evaluation.model.entity.EvaluatorOutput -import io.smnp.evaluation.model.enumeration.EvaluationResult +import com.bartlomiejpluta.smnp.dsl.ast.model.node.BlockNode +import com.bartlomiejpluta.smnp.dsl.ast.model.node.Node +import com.bartlomiejpluta.smnp.environment.Environment +import com.bartlomiejpluta.smnp.evaluation.model.entity.EvaluatorOutput +import com.bartlomiejpluta.smnp.evaluation.model.enumeration.EvaluationResult class BlockEvaluator(private val dedicatedScope: Boolean) : Evaluator() { override fun supportedNodes() = listOf(BlockNode::class) diff --git a/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/BoolLiteralEvaluator.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/BoolLiteralEvaluator.kt new file mode 100644 index 0000000..814c557 --- /dev/null +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/BoolLiteralEvaluator.kt @@ -0,0 +1,16 @@ +package com.bartlomiejpluta.smnp.evaluation.evaluator + +import com.bartlomiejpluta.smnp.dsl.ast.model.node.BoolLiteralNode +import com.bartlomiejpluta.smnp.dsl.ast.model.node.Node +import com.bartlomiejpluta.smnp.environment.Environment +import com.bartlomiejpluta.smnp.evaluation.model.entity.EvaluatorOutput +import com.bartlomiejpluta.smnp.type.model.Value + +class BoolLiteralEvaluator : Evaluator() { + override fun supportedNodes() = listOf(BoolLiteralNode::class) + + override fun tryToEvaluate(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/core/src/main/kotlin/io/smnp/evaluation/evaluator/ConditionEvaluator.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/ConditionEvaluator.kt similarity index 65% rename from core/src/main/kotlin/io/smnp/evaluation/evaluator/ConditionEvaluator.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/ConditionEvaluator.kt index a8d7a95..2f25883 100644 --- a/core/src/main/kotlin/io/smnp/evaluation/evaluator/ConditionEvaluator.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/ConditionEvaluator.kt @@ -1,12 +1,12 @@ -package io.smnp.evaluation.evaluator +package com.bartlomiejpluta.smnp.evaluation.evaluator -import io.smnp.dsl.ast.model.node.ConditionNode -import io.smnp.dsl.ast.model.node.Node -import io.smnp.dsl.ast.model.node.NoneNode -import io.smnp.environment.Environment -import io.smnp.evaluation.model.entity.EvaluatorOutput -import io.smnp.evaluation.util.ContextExceptionFactory.contextEvaluationException -import io.smnp.type.enumeration.DataType +import com.bartlomiejpluta.smnp.dsl.ast.model.node.ConditionNode +import com.bartlomiejpluta.smnp.dsl.ast.model.node.Node +import com.bartlomiejpluta.smnp.dsl.ast.model.node.NoneNode +import com.bartlomiejpluta.smnp.environment.Environment +import com.bartlomiejpluta.smnp.evaluation.model.entity.EvaluatorOutput +import com.bartlomiejpluta.smnp.evaluation.util.ContextExceptionFactory.contextEvaluationException +import com.bartlomiejpluta.smnp.type.enumeration.DataType class ConditionEvaluator : Evaluator() { private val expressionEvaluator = ExpressionEvaluator() diff --git a/core/src/main/kotlin/io/smnp/evaluation/evaluator/DefaultEvaluator.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/DefaultEvaluator.kt similarity index 63% rename from core/src/main/kotlin/io/smnp/evaluation/evaluator/DefaultEvaluator.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/DefaultEvaluator.kt index 73e9aa1..bde8f81 100644 --- a/core/src/main/kotlin/io/smnp/evaluation/evaluator/DefaultEvaluator.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/DefaultEvaluator.kt @@ -1,8 +1,8 @@ -package io.smnp.evaluation.evaluator +package com.bartlomiejpluta.smnp.evaluation.evaluator -import io.smnp.dsl.ast.model.node.Node -import io.smnp.environment.Environment -import io.smnp.evaluation.model.entity.EvaluatorOutput +import com.bartlomiejpluta.smnp.dsl.ast.model.node.Node +import com.bartlomiejpluta.smnp.environment.Environment +import com.bartlomiejpluta.smnp.evaluation.model.entity.EvaluatorOutput class DefaultEvaluator : Evaluator() { override fun supportedNodes() = listOf(Node::class) diff --git a/core/src/main/kotlin/io/smnp/evaluation/evaluator/Evaluator.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/Evaluator.kt similarity index 84% rename from core/src/main/kotlin/io/smnp/evaluation/evaluator/Evaluator.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/Evaluator.kt index eacab1f..9894a06 100644 --- a/core/src/main/kotlin/io/smnp/evaluation/evaluator/Evaluator.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/Evaluator.kt @@ -1,10 +1,10 @@ -package io.smnp.evaluation.evaluator +package com.bartlomiejpluta.smnp.evaluation.evaluator -import io.smnp.dsl.ast.model.node.Node -import io.smnp.environment.Environment -import io.smnp.evaluation.model.entity.EvaluatorOutput -import io.smnp.evaluation.model.enumeration.EvaluationResult -import io.smnp.evaluation.util.ContextExceptionFactory.contextEvaluationException +import com.bartlomiejpluta.smnp.dsl.ast.model.node.Node +import com.bartlomiejpluta.smnp.environment.Environment +import com.bartlomiejpluta.smnp.evaluation.model.entity.EvaluatorOutput +import com.bartlomiejpluta.smnp.evaluation.model.enumeration.EvaluationResult +import com.bartlomiejpluta.smnp.evaluation.util.ContextExceptionFactory.contextEvaluationException import kotlin.reflect.KClass abstract class Evaluator { diff --git a/core/src/main/kotlin/io/smnp/evaluation/evaluator/ExpressionEvaluator.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/ExpressionEvaluator.kt similarity index 79% rename from core/src/main/kotlin/io/smnp/evaluation/evaluator/ExpressionEvaluator.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/ExpressionEvaluator.kt index bdbcb31..3e469b4 100644 --- a/core/src/main/kotlin/io/smnp/evaluation/evaluator/ExpressionEvaluator.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/ExpressionEvaluator.kt @@ -1,9 +1,9 @@ -package io.smnp.evaluation.evaluator +package com.bartlomiejpluta.smnp.evaluation.evaluator -import io.smnp.dsl.ast.model.node.Node -import io.smnp.environment.Environment -import io.smnp.evaluation.model.entity.EvaluatorOutput -import io.smnp.evaluation.model.enumeration.EvaluationResult +import com.bartlomiejpluta.smnp.dsl.ast.model.node.Node +import com.bartlomiejpluta.smnp.environment.Environment +import com.bartlomiejpluta.smnp.evaluation.model.entity.EvaluatorOutput +import com.bartlomiejpluta.smnp.evaluation.model.enumeration.EvaluationResult class ExpressionEvaluator : Evaluator() { override fun supportedNodes() = listOf(Node::class) diff --git a/core/src/main/kotlin/io/smnp/evaluation/evaluator/ExtendEvaluator.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/ExtendEvaluator.kt similarity index 50% rename from core/src/main/kotlin/io/smnp/evaluation/evaluator/ExtendEvaluator.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/ExtendEvaluator.kt index 89d7231..63c2c6b 100644 --- a/core/src/main/kotlin/io/smnp/evaluation/evaluator/ExtendEvaluator.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/ExtendEvaluator.kt @@ -1,15 +1,15 @@ -package io.smnp.evaluation.evaluator +package com.bartlomiejpluta.smnp.evaluation.evaluator -import io.smnp.callable.method.CustomMethod -import io.smnp.callable.util.FunctionSignatureParser -import io.smnp.dsl.ast.model.node.ExtendNode -import io.smnp.dsl.ast.model.node.FunctionDefinitionNode -import io.smnp.dsl.ast.model.node.Node -import io.smnp.dsl.ast.model.node.SingleTypeNode -import io.smnp.environment.Environment -import io.smnp.error.SmnpException -import io.smnp.evaluation.model.entity.EvaluatorOutput -import io.smnp.evaluation.util.ContextExceptionFactory.wrapWithContext +import com.bartlomiejpluta.smnp.callable.method.CustomMethod +import com.bartlomiejpluta.smnp.callable.util.FunctionSignatureParser +import com.bartlomiejpluta.smnp.dsl.ast.model.node.ExtendNode +import com.bartlomiejpluta.smnp.dsl.ast.model.node.FunctionDefinitionNode +import com.bartlomiejpluta.smnp.dsl.ast.model.node.Node +import com.bartlomiejpluta.smnp.dsl.ast.model.node.SingleTypeNode +import com.bartlomiejpluta.smnp.environment.Environment +import com.bartlomiejpluta.smnp.error.SmnpException +import com.bartlomiejpluta.smnp.evaluation.model.entity.EvaluatorOutput +import com.bartlomiejpluta.smnp.evaluation.util.ContextExceptionFactory.wrapWithContext class ExtendEvaluator : Evaluator() { override fun supportedNodes() = listOf(ExtendNode::class) diff --git a/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/FloatLiteralEvaluator.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/FloatLiteralEvaluator.kt new file mode 100644 index 0000000..bfbc850 --- /dev/null +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/FloatLiteralEvaluator.kt @@ -0,0 +1,16 @@ +package com.bartlomiejpluta.smnp.evaluation.evaluator + +import com.bartlomiejpluta.smnp.dsl.ast.model.node.FloatLiteralNode +import com.bartlomiejpluta.smnp.dsl.ast.model.node.Node +import com.bartlomiejpluta.smnp.environment.Environment +import com.bartlomiejpluta.smnp.evaluation.model.entity.EvaluatorOutput +import com.bartlomiejpluta.smnp.type.model.Value + +class FloatLiteralEvaluator : Evaluator() { + override fun supportedNodes() = listOf(FloatLiteralNode::class) + + override fun tryToEvaluate(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/core/src/main/kotlin/io/smnp/evaluation/evaluator/FunctionCallEvaluator.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/FunctionCallEvaluator.kt similarity index 55% rename from core/src/main/kotlin/io/smnp/evaluation/evaluator/FunctionCallEvaluator.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/FunctionCallEvaluator.kt index 8789664..d7b7841 100644 --- a/core/src/main/kotlin/io/smnp/evaluation/evaluator/FunctionCallEvaluator.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/FunctionCallEvaluator.kt @@ -1,13 +1,13 @@ -package io.smnp.evaluation.evaluator +package com.bartlomiejpluta.smnp.evaluation.evaluator -import io.smnp.dsl.ast.model.node.FunctionCallArgumentsNode -import io.smnp.dsl.ast.model.node.FunctionCallNode -import io.smnp.dsl.ast.model.node.IdentifierNode -import io.smnp.dsl.ast.model.node.Node -import io.smnp.environment.Environment -import io.smnp.error.SmnpException -import io.smnp.evaluation.model.entity.EvaluatorOutput -import io.smnp.evaluation.util.ContextExceptionFactory.wrapWithContext +import com.bartlomiejpluta.smnp.dsl.ast.model.node.FunctionCallArgumentsNode +import com.bartlomiejpluta.smnp.dsl.ast.model.node.FunctionCallNode +import com.bartlomiejpluta.smnp.dsl.ast.model.node.IdentifierNode +import com.bartlomiejpluta.smnp.dsl.ast.model.node.Node +import com.bartlomiejpluta.smnp.environment.Environment +import com.bartlomiejpluta.smnp.error.SmnpException +import com.bartlomiejpluta.smnp.evaluation.model.entity.EvaluatorOutput +import com.bartlomiejpluta.smnp.evaluation.util.ContextExceptionFactory.wrapWithContext class FunctionCallEvaluator : Evaluator() { override fun supportedNodes() = listOf(FunctionCallNode::class) diff --git a/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/FunctionDefinitionEvaluator.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/FunctionDefinitionEvaluator.kt new file mode 100644 index 0000000..46f9203 --- /dev/null +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/FunctionDefinitionEvaluator.kt @@ -0,0 +1,25 @@ +package com.bartlomiejpluta.smnp.evaluation.evaluator + +import com.bartlomiejpluta.smnp.callable.function.CustomFunction +import com.bartlomiejpluta.smnp.dsl.ast.model.node.FunctionDefinitionNode +import com.bartlomiejpluta.smnp.dsl.ast.model.node.Node +import com.bartlomiejpluta.smnp.environment.Environment +import com.bartlomiejpluta.smnp.error.SmnpException +import com.bartlomiejpluta.smnp.evaluation.model.entity.EvaluatorOutput +import com.bartlomiejpluta.smnp.evaluation.util.ContextExceptionFactory.wrapWithContext + +class FunctionDefinitionEvaluator : Evaluator() { + override fun supportedNodes() = listOf(FunctionDefinitionNode::class) + + override fun tryToEvaluate(node: Node, environment: Environment): EvaluatorOutput { + val function = CustomFunction.create(node as FunctionDefinitionNode) + + try { + environment.defineFunction(function) + } catch (e: SmnpException) { + throw wrapWithContext(e, node.position, environment) + } + + return EvaluatorOutput.ok() + } +} \ No newline at end of file diff --git a/core/src/main/kotlin/io/smnp/evaluation/evaluator/IdentifierEvaluator.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/IdentifierEvaluator.kt similarity index 50% rename from core/src/main/kotlin/io/smnp/evaluation/evaluator/IdentifierEvaluator.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/IdentifierEvaluator.kt index 5c9dc19..30be148 100644 --- a/core/src/main/kotlin/io/smnp/evaluation/evaluator/IdentifierEvaluator.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/IdentifierEvaluator.kt @@ -1,11 +1,11 @@ -package io.smnp.evaluation.evaluator +package com.bartlomiejpluta.smnp.evaluation.evaluator -import io.smnp.dsl.ast.model.node.IdentifierNode -import io.smnp.dsl.ast.model.node.Node -import io.smnp.environment.Environment -import io.smnp.error.EvaluationException -import io.smnp.evaluation.model.entity.EvaluatorOutput -import io.smnp.evaluation.util.ContextExceptionFactory.wrapWithContext +import com.bartlomiejpluta.smnp.dsl.ast.model.node.IdentifierNode +import com.bartlomiejpluta.smnp.dsl.ast.model.node.Node +import com.bartlomiejpluta.smnp.environment.Environment +import com.bartlomiejpluta.smnp.error.EvaluationException +import com.bartlomiejpluta.smnp.evaluation.model.entity.EvaluatorOutput +import com.bartlomiejpluta.smnp.evaluation.util.ContextExceptionFactory.wrapWithContext class IdentifierEvaluator : Evaluator() { override fun supportedNodes() = listOf(IdentifierNode::class) diff --git a/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/ImportEvaluator.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/ImportEvaluator.kt new file mode 100644 index 0000000..08bb3d8 --- /dev/null +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/ImportEvaluator.kt @@ -0,0 +1,25 @@ +package com.bartlomiejpluta.smnp.evaluation.evaluator + +import com.bartlomiejpluta.smnp.dsl.ast.model.node.IdentifierNode +import com.bartlomiejpluta.smnp.dsl.ast.model.node.ImportNode +import com.bartlomiejpluta.smnp.dsl.ast.model.node.Node +import com.bartlomiejpluta.smnp.environment.Environment +import com.bartlomiejpluta.smnp.error.SmnpException +import com.bartlomiejpluta.smnp.evaluation.model.entity.EvaluatorOutput +import com.bartlomiejpluta.smnp.evaluation.util.ContextExceptionFactory.wrapWithContext + +class ImportEvaluator : Evaluator() { + override fun supportedNodes() = listOf(ImportNode::class) + + override fun tryToEvaluate(node: Node, environment: Environment): EvaluatorOutput { + val path = (node as ImportNode).path.joinToString(".") { (it as IdentifierNode).token.rawValue } + + try { + environment.loadModule(path) + } catch (e: SmnpException) { + throw wrapWithContext(e, node.position, environment) + } + + return EvaluatorOutput.ok() + } +} \ No newline at end of file diff --git a/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/IntegerLiteralEvaluator.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/IntegerLiteralEvaluator.kt new file mode 100644 index 0000000..e503abb --- /dev/null +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/IntegerLiteralEvaluator.kt @@ -0,0 +1,16 @@ +package com.bartlomiejpluta.smnp.evaluation.evaluator + +import com.bartlomiejpluta.smnp.dsl.ast.model.node.IntegerLiteralNode +import com.bartlomiejpluta.smnp.dsl.ast.model.node.Node +import com.bartlomiejpluta.smnp.environment.Environment +import com.bartlomiejpluta.smnp.evaluation.model.entity.EvaluatorOutput +import com.bartlomiejpluta.smnp.type.model.Value + +class IntegerLiteralEvaluator : Evaluator() { + override fun supportedNodes() = listOf(IntegerLiteralNode::class) + + override fun tryToEvaluate(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/core/src/main/kotlin/io/smnp/evaluation/evaluator/ListEvaluator.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/ListEvaluator.kt similarity index 55% rename from core/src/main/kotlin/io/smnp/evaluation/evaluator/ListEvaluator.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/ListEvaluator.kt index 281a281..c8d4ad0 100644 --- a/core/src/main/kotlin/io/smnp/evaluation/evaluator/ListEvaluator.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/ListEvaluator.kt @@ -1,10 +1,10 @@ -package io.smnp.evaluation.evaluator +package com.bartlomiejpluta.smnp.evaluation.evaluator -import io.smnp.dsl.ast.model.node.ListNode -import io.smnp.dsl.ast.model.node.Node -import io.smnp.environment.Environment -import io.smnp.evaluation.model.entity.EvaluatorOutput -import io.smnp.type.model.Value +import com.bartlomiejpluta.smnp.dsl.ast.model.node.ListNode +import com.bartlomiejpluta.smnp.dsl.ast.model.node.Node +import com.bartlomiejpluta.smnp.environment.Environment +import com.bartlomiejpluta.smnp.evaluation.model.entity.EvaluatorOutput +import com.bartlomiejpluta.smnp.type.model.Value class ListEvaluator : Evaluator() { override fun supportedNodes() = listOf(ListNode::class) diff --git a/core/src/main/kotlin/io/smnp/evaluation/evaluator/LogicOperatorEvaluator.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/LogicOperatorEvaluator.kt similarity index 66% rename from core/src/main/kotlin/io/smnp/evaluation/evaluator/LogicOperatorEvaluator.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/LogicOperatorEvaluator.kt index aeaf16c..23a63f2 100644 --- a/core/src/main/kotlin/io/smnp/evaluation/evaluator/LogicOperatorEvaluator.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/LogicOperatorEvaluator.kt @@ -1,15 +1,15 @@ -package io.smnp.evaluation.evaluator +package com.bartlomiejpluta.smnp.evaluation.evaluator -import io.smnp.dsl.ast.model.node.LogicOperatorNode -import io.smnp.dsl.ast.model.node.Node -import io.smnp.dsl.ast.model.node.TokenNode -import io.smnp.dsl.token.model.enumeration.TokenType -import io.smnp.environment.Environment -import io.smnp.error.ShouldNeverReachThisLineException -import io.smnp.evaluation.model.entity.EvaluatorOutput -import io.smnp.evaluation.util.ContextExceptionFactory.contextEvaluationException -import io.smnp.type.enumeration.DataType -import io.smnp.type.model.Value +import com.bartlomiejpluta.smnp.dsl.ast.model.node.LogicOperatorNode +import com.bartlomiejpluta.smnp.dsl.ast.model.node.Node +import com.bartlomiejpluta.smnp.dsl.ast.model.node.TokenNode +import com.bartlomiejpluta.smnp.dsl.token.model.enumeration.TokenType +import com.bartlomiejpluta.smnp.environment.Environment +import com.bartlomiejpluta.smnp.error.ShouldNeverReachThisLineException +import com.bartlomiejpluta.smnp.evaluation.model.entity.EvaluatorOutput +import com.bartlomiejpluta.smnp.evaluation.util.ContextExceptionFactory.contextEvaluationException +import com.bartlomiejpluta.smnp.type.enumeration.DataType +import com.bartlomiejpluta.smnp.type.model.Value class LogicOperatorEvaluator : Evaluator() { private val evaluator = ExpressionEvaluator() diff --git a/core/src/main/kotlin/io/smnp/evaluation/evaluator/LoopEvaluator.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/LoopEvaluator.kt similarity index 91% rename from core/src/main/kotlin/io/smnp/evaluation/evaluator/LoopEvaluator.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/LoopEvaluator.kt index e0ef40d..555a514 100644 --- a/core/src/main/kotlin/io/smnp/evaluation/evaluator/LoopEvaluator.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/LoopEvaluator.kt @@ -1,14 +1,14 @@ -package io.smnp.evaluation.evaluator +package com.bartlomiejpluta.smnp.evaluation.evaluator -import io.smnp.dsl.ast.model.node.IdentifierNode -import io.smnp.dsl.ast.model.node.LoopNode -import io.smnp.dsl.ast.model.node.Node -import io.smnp.environment.Environment -import io.smnp.evaluation.model.entity.EvaluatorOutput -import io.smnp.evaluation.model.enumeration.EvaluationResult -import io.smnp.evaluation.util.ContextExceptionFactory.contextEvaluationException -import io.smnp.type.enumeration.DataType.* -import io.smnp.type.model.Value +import com.bartlomiejpluta.smnp.dsl.ast.model.node.IdentifierNode +import com.bartlomiejpluta.smnp.dsl.ast.model.node.LoopNode +import com.bartlomiejpluta.smnp.dsl.ast.model.node.Node +import com.bartlomiejpluta.smnp.environment.Environment +import com.bartlomiejpluta.smnp.evaluation.model.entity.EvaluatorOutput +import com.bartlomiejpluta.smnp.evaluation.model.enumeration.EvaluationResult +import com.bartlomiejpluta.smnp.evaluation.util.ContextExceptionFactory.contextEvaluationException +import com.bartlomiejpluta.smnp.type.enumeration.DataType.* +import com.bartlomiejpluta.smnp.type.model.Value class LoopEvaluator : Evaluator() { private val defaultEvaluator = assert(DefaultEvaluator(), "correct statement") diff --git a/core/src/main/kotlin/io/smnp/evaluation/evaluator/MapEvaluator.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/MapEvaluator.kt similarity index 59% rename from core/src/main/kotlin/io/smnp/evaluation/evaluator/MapEvaluator.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/MapEvaluator.kt index 2e9e7e0..1be1e99 100644 --- a/core/src/main/kotlin/io/smnp/evaluation/evaluator/MapEvaluator.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/MapEvaluator.kt @@ -1,14 +1,14 @@ -package io.smnp.evaluation.evaluator +package com.bartlomiejpluta.smnp.evaluation.evaluator -import io.smnp.dsl.ast.model.node.IdentifierNode -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.environment.Environment -import io.smnp.evaluation.model.entity.EvaluatorOutput -import io.smnp.evaluation.util.ContextExceptionFactory.contextEvaluationException -import io.smnp.type.enumeration.DataType.* -import io.smnp.type.model.Value +import com.bartlomiejpluta.smnp.dsl.ast.model.node.IdentifierNode +import com.bartlomiejpluta.smnp.dsl.ast.model.node.MapEntryNode +import com.bartlomiejpluta.smnp.dsl.ast.model.node.MapNode +import com.bartlomiejpluta.smnp.dsl.ast.model.node.Node +import com.bartlomiejpluta.smnp.environment.Environment +import com.bartlomiejpluta.smnp.evaluation.model.entity.EvaluatorOutput +import com.bartlomiejpluta.smnp.evaluation.util.ContextExceptionFactory.contextEvaluationException +import com.bartlomiejpluta.smnp.type.enumeration.DataType.* +import com.bartlomiejpluta.smnp.type.model.Value class MapEvaluator : Evaluator() { private val evaluator = ExpressionEvaluator() diff --git a/core/src/main/kotlin/io/smnp/evaluation/evaluator/MinusOperatorEvaluator.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/MinusOperatorEvaluator.kt similarity index 66% rename from core/src/main/kotlin/io/smnp/evaluation/evaluator/MinusOperatorEvaluator.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/MinusOperatorEvaluator.kt index 41447f4..a507dcb 100644 --- a/core/src/main/kotlin/io/smnp/evaluation/evaluator/MinusOperatorEvaluator.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/MinusOperatorEvaluator.kt @@ -1,12 +1,12 @@ -package io.smnp.evaluation.evaluator +package com.bartlomiejpluta.smnp.evaluation.evaluator -import io.smnp.dsl.ast.model.node.MinusOperatorNode -import io.smnp.dsl.ast.model.node.Node -import io.smnp.environment.Environment -import io.smnp.evaluation.model.entity.EvaluatorOutput -import io.smnp.evaluation.util.ContextExceptionFactory.contextEvaluationException -import io.smnp.type.enumeration.DataType -import io.smnp.type.model.Value +import com.bartlomiejpluta.smnp.dsl.ast.model.node.MinusOperatorNode +import com.bartlomiejpluta.smnp.dsl.ast.model.node.Node +import com.bartlomiejpluta.smnp.environment.Environment +import com.bartlomiejpluta.smnp.evaluation.model.entity.EvaluatorOutput +import com.bartlomiejpluta.smnp.evaluation.util.ContextExceptionFactory.contextEvaluationException +import com.bartlomiejpluta.smnp.type.enumeration.DataType +import com.bartlomiejpluta.smnp.type.model.Value class MinusOperatorEvaluator : Evaluator() { override fun supportedNodes() = listOf(MinusOperatorNode::class) diff --git a/core/src/main/kotlin/io/smnp/evaluation/evaluator/NotOperatorEvaluator.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/NotOperatorEvaluator.kt similarity index 55% rename from core/src/main/kotlin/io/smnp/evaluation/evaluator/NotOperatorEvaluator.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/NotOperatorEvaluator.kt index 11b836a..813643e 100644 --- a/core/src/main/kotlin/io/smnp/evaluation/evaluator/NotOperatorEvaluator.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/NotOperatorEvaluator.kt @@ -1,12 +1,12 @@ -package io.smnp.evaluation.evaluator +package com.bartlomiejpluta.smnp.evaluation.evaluator -import io.smnp.dsl.ast.model.node.Node -import io.smnp.dsl.ast.model.node.NotOperatorNode -import io.smnp.environment.Environment -import io.smnp.evaluation.model.entity.EvaluatorOutput -import io.smnp.evaluation.util.ContextExceptionFactory.contextEvaluationException -import io.smnp.type.enumeration.DataType -import io.smnp.type.model.Value +import com.bartlomiejpluta.smnp.dsl.ast.model.node.Node +import com.bartlomiejpluta.smnp.dsl.ast.model.node.NotOperatorNode +import com.bartlomiejpluta.smnp.environment.Environment +import com.bartlomiejpluta.smnp.evaluation.model.entity.EvaluatorOutput +import com.bartlomiejpluta.smnp.evaluation.util.ContextExceptionFactory.contextEvaluationException +import com.bartlomiejpluta.smnp.type.enumeration.DataType +import com.bartlomiejpluta.smnp.type.model.Value class NotOperatorEvaluator : Evaluator() { val evaluator = assert(ExpressionEvaluator(), "expression") diff --git a/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/NoteLiteralEvaluator.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/NoteLiteralEvaluator.kt new file mode 100644 index 0000000..e077637 --- /dev/null +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/NoteLiteralEvaluator.kt @@ -0,0 +1,17 @@ +package com.bartlomiejpluta.smnp.evaluation.evaluator + +import com.bartlomiejpluta.smnp.data.entity.Note +import com.bartlomiejpluta.smnp.dsl.ast.model.node.Node +import com.bartlomiejpluta.smnp.dsl.ast.model.node.NoteLiteralNode +import com.bartlomiejpluta.smnp.environment.Environment +import com.bartlomiejpluta.smnp.evaluation.model.entity.EvaluatorOutput +import com.bartlomiejpluta.smnp.type.model.Value + +class NoteLiteralEvaluator : Evaluator() { + override fun supportedNodes() = listOf(NoteLiteralNode::class) + + override fun tryToEvaluate(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/core/src/main/kotlin/io/smnp/evaluation/evaluator/PowerOperatorEvaluator.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/PowerOperatorEvaluator.kt similarity index 62% rename from core/src/main/kotlin/io/smnp/evaluation/evaluator/PowerOperatorEvaluator.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/PowerOperatorEvaluator.kt index 3122cd1..73e308f 100644 --- a/core/src/main/kotlin/io/smnp/evaluation/evaluator/PowerOperatorEvaluator.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/PowerOperatorEvaluator.kt @@ -1,11 +1,11 @@ -package io.smnp.evaluation.evaluator +package com.bartlomiejpluta.smnp.evaluation.evaluator -import io.smnp.dsl.ast.model.node.Node -import io.smnp.dsl.ast.model.node.PowerOperatorNode -import io.smnp.environment.Environment -import io.smnp.evaluation.model.entity.EvaluatorOutput -import io.smnp.evaluation.util.ContextExceptionFactory.contextEvaluationException -import io.smnp.type.model.Value +import com.bartlomiejpluta.smnp.dsl.ast.model.node.Node +import com.bartlomiejpluta.smnp.dsl.ast.model.node.PowerOperatorNode +import com.bartlomiejpluta.smnp.environment.Environment +import com.bartlomiejpluta.smnp.evaluation.model.entity.EvaluatorOutput +import com.bartlomiejpluta.smnp.evaluation.util.ContextExceptionFactory.contextEvaluationException +import com.bartlomiejpluta.smnp.type.model.Value import kotlin.math.pow class PowerOperatorEvaluator : Evaluator() { diff --git a/core/src/main/kotlin/io/smnp/evaluation/evaluator/ProductOperatorEvaluator.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/ProductOperatorEvaluator.kt similarity index 63% rename from core/src/main/kotlin/io/smnp/evaluation/evaluator/ProductOperatorEvaluator.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/ProductOperatorEvaluator.kt index d532d98..166ce10 100644 --- a/core/src/main/kotlin/io/smnp/evaluation/evaluator/ProductOperatorEvaluator.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/ProductOperatorEvaluator.kt @@ -1,15 +1,15 @@ -package io.smnp.evaluation.evaluator +package com.bartlomiejpluta.smnp.evaluation.evaluator -import io.smnp.dsl.ast.model.node.Node -import io.smnp.dsl.ast.model.node.ProductOperatorNode -import io.smnp.dsl.ast.model.node.TokenNode -import io.smnp.dsl.token.model.enumeration.TokenType -import io.smnp.environment.Environment -import io.smnp.error.ShouldNeverReachThisLineException -import io.smnp.evaluation.model.entity.EvaluatorOutput -import io.smnp.evaluation.util.ContextExceptionFactory.contextEvaluationException -import io.smnp.evaluation.util.NumberUnification.unify -import io.smnp.type.model.Value +import com.bartlomiejpluta.smnp.dsl.ast.model.node.Node +import com.bartlomiejpluta.smnp.dsl.ast.model.node.ProductOperatorNode +import com.bartlomiejpluta.smnp.dsl.ast.model.node.TokenNode +import com.bartlomiejpluta.smnp.dsl.token.model.enumeration.TokenType +import com.bartlomiejpluta.smnp.environment.Environment +import com.bartlomiejpluta.smnp.error.ShouldNeverReachThisLineException +import com.bartlomiejpluta.smnp.evaluation.model.entity.EvaluatorOutput +import com.bartlomiejpluta.smnp.evaluation.util.ContextExceptionFactory.contextEvaluationException +import com.bartlomiejpluta.smnp.evaluation.util.NumberUnification.unify +import com.bartlomiejpluta.smnp.type.model.Value class ProductOperatorEvaluator : Evaluator() { override fun supportedNodes() = listOf(ProductOperatorNode::class) diff --git a/core/src/main/kotlin/io/smnp/evaluation/evaluator/RelationOperatorEvaluator.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/RelationOperatorEvaluator.kt similarity index 70% rename from core/src/main/kotlin/io/smnp/evaluation/evaluator/RelationOperatorEvaluator.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/RelationOperatorEvaluator.kt index ffaeef0..7cc88a6 100644 --- a/core/src/main/kotlin/io/smnp/evaluation/evaluator/RelationOperatorEvaluator.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/RelationOperatorEvaluator.kt @@ -1,14 +1,14 @@ -package io.smnp.evaluation.evaluator +package com.bartlomiejpluta.smnp.evaluation.evaluator -import io.smnp.dsl.ast.model.node.Node -import io.smnp.dsl.ast.model.node.RelationOperatorNode -import io.smnp.dsl.ast.model.node.TokenNode -import io.smnp.environment.Environment -import io.smnp.error.ShouldNeverReachThisLineException -import io.smnp.evaluation.model.entity.EvaluatorOutput -import io.smnp.evaluation.util.ContextExceptionFactory.contextEvaluationException -import io.smnp.evaluation.util.NumberUnification.unify -import io.smnp.type.model.Value +import com.bartlomiejpluta.smnp.dsl.ast.model.node.Node +import com.bartlomiejpluta.smnp.dsl.ast.model.node.RelationOperatorNode +import com.bartlomiejpluta.smnp.dsl.ast.model.node.TokenNode +import com.bartlomiejpluta.smnp.environment.Environment +import com.bartlomiejpluta.smnp.error.ShouldNeverReachThisLineException +import com.bartlomiejpluta.smnp.evaluation.model.entity.EvaluatorOutput +import com.bartlomiejpluta.smnp.evaluation.util.ContextExceptionFactory.contextEvaluationException +import com.bartlomiejpluta.smnp.evaluation.util.NumberUnification.unify +import com.bartlomiejpluta.smnp.type.model.Value class RelationOperatorEvaluator : Evaluator() { override fun supportedNodes() = listOf(RelationOperatorNode::class) diff --git a/core/src/main/kotlin/io/smnp/evaluation/evaluator/ReturnEvaluator.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/ReturnEvaluator.kt similarity index 70% rename from core/src/main/kotlin/io/smnp/evaluation/evaluator/ReturnEvaluator.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/ReturnEvaluator.kt index 515b07d..3f8e62f 100644 --- a/core/src/main/kotlin/io/smnp/evaluation/evaluator/ReturnEvaluator.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/ReturnEvaluator.kt @@ -1,10 +1,10 @@ -package io.smnp.evaluation.evaluator +package com.bartlomiejpluta.smnp.evaluation.evaluator -import io.smnp.dsl.ast.model.node.Node -import io.smnp.dsl.ast.model.node.ReturnNode -import io.smnp.environment.Environment -import io.smnp.evaluation.model.entity.EvaluatorOutput -import io.smnp.evaluation.model.exception.Return +import com.bartlomiejpluta.smnp.dsl.ast.model.node.Node +import com.bartlomiejpluta.smnp.dsl.ast.model.node.ReturnNode +import com.bartlomiejpluta.smnp.environment.Environment +import com.bartlomiejpluta.smnp.evaluation.model.entity.EvaluatorOutput +import com.bartlomiejpluta.smnp.evaluation.model.exception.Return class ReturnEvaluator : Evaluator() { override fun supportedNodes() = listOf(ReturnNode::class) diff --git a/core/src/main/kotlin/io/smnp/evaluation/evaluator/RootEvaluator.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/RootEvaluator.kt similarity index 63% rename from core/src/main/kotlin/io/smnp/evaluation/evaluator/RootEvaluator.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/RootEvaluator.kt index 11ae0d4..e40f81b 100644 --- a/core/src/main/kotlin/io/smnp/evaluation/evaluator/RootEvaluator.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/RootEvaluator.kt @@ -1,9 +1,9 @@ -package io.smnp.evaluation.evaluator +package com.bartlomiejpluta.smnp.evaluation.evaluator -import io.smnp.dsl.ast.model.node.Node -import io.smnp.dsl.ast.model.node.RootNode -import io.smnp.environment.Environment -import io.smnp.evaluation.model.entity.EvaluatorOutput +import com.bartlomiejpluta.smnp.dsl.ast.model.node.Node +import com.bartlomiejpluta.smnp.dsl.ast.model.node.RootNode +import com.bartlomiejpluta.smnp.environment.Environment +import com.bartlomiejpluta.smnp.evaluation.model.entity.EvaluatorOutput class RootEvaluator : Evaluator() { override fun supportedNodes() = listOf(RootNode::class) diff --git a/core/src/main/kotlin/io/smnp/evaluation/evaluator/StaffEvaluator.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/StaffEvaluator.kt similarity index 83% rename from core/src/main/kotlin/io/smnp/evaluation/evaluator/StaffEvaluator.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/StaffEvaluator.kt index a07de02..ae2f3e2 100644 --- a/core/src/main/kotlin/io/smnp/evaluation/evaluator/StaffEvaluator.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/StaffEvaluator.kt @@ -1,13 +1,13 @@ -package io.smnp.evaluation.evaluator +package com.bartlomiejpluta.smnp.evaluation.evaluator -import io.smnp.data.entity.Note -import io.smnp.dsl.ast.model.node.* -import io.smnp.environment.Environment -import io.smnp.evaluation.model.entity.EvaluatorOutput -import io.smnp.evaluation.util.ContextExceptionFactory.contextEvaluationException -import io.smnp.math.Fraction -import io.smnp.type.enumeration.DataType -import io.smnp.type.model.Value +import com.bartlomiejpluta.smnp.data.entity.Note +import com.bartlomiejpluta.smnp.dsl.ast.model.node.* +import com.bartlomiejpluta.smnp.environment.Environment +import com.bartlomiejpluta.smnp.evaluation.model.entity.EvaluatorOutput +import com.bartlomiejpluta.smnp.evaluation.util.ContextExceptionFactory.contextEvaluationException +import com.bartlomiejpluta.smnp.math.Fraction +import com.bartlomiejpluta.smnp.type.enumeration.DataType +import com.bartlomiejpluta.smnp.type.model.Value class StaffEvaluator : Evaluator() { private val evaluator = ExpressionEvaluator() diff --git a/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/StringLiteralEvaluator.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/StringLiteralEvaluator.kt new file mode 100644 index 0000000..404d6c5 --- /dev/null +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/StringLiteralEvaluator.kt @@ -0,0 +1,16 @@ +package com.bartlomiejpluta.smnp.evaluation.evaluator + +import com.bartlomiejpluta.smnp.dsl.ast.model.node.Node +import com.bartlomiejpluta.smnp.dsl.ast.model.node.StringLiteralNode +import com.bartlomiejpluta.smnp.environment.Environment +import com.bartlomiejpluta.smnp.evaluation.model.entity.EvaluatorOutput +import com.bartlomiejpluta.smnp.type.model.Value + +class StringLiteralEvaluator : Evaluator() { + override fun supportedNodes() = listOf(StringLiteralNode::class) + + override fun tryToEvaluate(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/core/src/main/kotlin/io/smnp/evaluation/evaluator/SumOperatorEvaluator.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/SumOperatorEvaluator.kt similarity index 67% rename from core/src/main/kotlin/io/smnp/evaluation/evaluator/SumOperatorEvaluator.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/SumOperatorEvaluator.kt index d282276..ebb5830 100644 --- a/core/src/main/kotlin/io/smnp/evaluation/evaluator/SumOperatorEvaluator.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/SumOperatorEvaluator.kt @@ -1,21 +1,21 @@ -package io.smnp.evaluation.evaluator +package com.bartlomiejpluta.smnp.evaluation.evaluator -import io.smnp.data.entity.Note -import io.smnp.dsl.ast.model.node.Node -import io.smnp.dsl.ast.model.node.SumOperatorNode -import io.smnp.dsl.ast.model.node.TokenNode -import io.smnp.dsl.token.model.enumeration.TokenType -import io.smnp.environment.Environment -import io.smnp.error.ShouldNeverReachThisLineException -import io.smnp.evaluation.model.entity.EvaluatorOutput -import io.smnp.evaluation.util.ContextExceptionFactory.contextEvaluationException -import io.smnp.evaluation.util.NumberUnification.unify -import io.smnp.math.Fraction -import io.smnp.type.enumeration.DataType.* -import io.smnp.type.model.Value -import io.smnp.type.model.Value.Companion.list -import io.smnp.type.model.Value.Companion.note -import io.smnp.type.model.Value.Companion.string +import com.bartlomiejpluta.smnp.data.entity.Note +import com.bartlomiejpluta.smnp.dsl.ast.model.node.Node +import com.bartlomiejpluta.smnp.dsl.ast.model.node.SumOperatorNode +import com.bartlomiejpluta.smnp.dsl.ast.model.node.TokenNode +import com.bartlomiejpluta.smnp.dsl.token.model.enumeration.TokenType +import com.bartlomiejpluta.smnp.environment.Environment +import com.bartlomiejpluta.smnp.error.ShouldNeverReachThisLineException +import com.bartlomiejpluta.smnp.evaluation.model.entity.EvaluatorOutput +import com.bartlomiejpluta.smnp.evaluation.util.ContextExceptionFactory.contextEvaluationException +import com.bartlomiejpluta.smnp.evaluation.util.NumberUnification.unify +import com.bartlomiejpluta.smnp.math.Fraction +import com.bartlomiejpluta.smnp.type.enumeration.DataType.* +import com.bartlomiejpluta.smnp.type.model.Value +import com.bartlomiejpluta.smnp.type.model.Value.Companion.list +import com.bartlomiejpluta.smnp.type.model.Value.Companion.note +import com.bartlomiejpluta.smnp.type.model.Value.Companion.string class SumOperatorEvaluator : Evaluator() { override fun supportedNodes() = listOf(SumOperatorNode::class) diff --git a/core/src/main/kotlin/io/smnp/evaluation/evaluator/ThrowEvaluator.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/ThrowEvaluator.kt similarity index 54% rename from core/src/main/kotlin/io/smnp/evaluation/evaluator/ThrowEvaluator.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/ThrowEvaluator.kt index 1704883..270ed3a 100644 --- a/core/src/main/kotlin/io/smnp/evaluation/evaluator/ThrowEvaluator.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/evaluator/ThrowEvaluator.kt @@ -1,15 +1,13 @@ -package io.smnp.evaluation.evaluator +package com.bartlomiejpluta.smnp.evaluation.evaluator -import io.smnp.dsl.ast.model.node.Node -import io.smnp.dsl.ast.model.node.ThrowNode -import io.smnp.environment.Environment -import io.smnp.error.CustomException -import io.smnp.error.EvaluationException -import io.smnp.evaluation.model.entity.EvaluatorOutput -import io.smnp.evaluation.util.ContextExceptionFactory -import io.smnp.evaluation.util.ContextExceptionFactory.contextEvaluationException -import io.smnp.evaluation.util.ContextExceptionFactory.wrapWithContext -import io.smnp.type.enumeration.DataType +import com.bartlomiejpluta.smnp.dsl.ast.model.node.Node +import com.bartlomiejpluta.smnp.dsl.ast.model.node.ThrowNode +import com.bartlomiejpluta.smnp.environment.Environment +import com.bartlomiejpluta.smnp.error.CustomException +import com.bartlomiejpluta.smnp.evaluation.model.entity.EvaluatorOutput +import com.bartlomiejpluta.smnp.evaluation.util.ContextExceptionFactory.contextEvaluationException +import com.bartlomiejpluta.smnp.evaluation.util.ContextExceptionFactory.wrapWithContext +import com.bartlomiejpluta.smnp.type.enumeration.DataType class ThrowEvaluator : Evaluator() { override fun supportedNodes() = listOf(ThrowNode::class) diff --git a/core/src/main/kotlin/io/smnp/evaluation/model/entity/EvaluatorOutput.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/model/entity/EvaluatorOutput.kt similarity index 77% rename from core/src/main/kotlin/io/smnp/evaluation/model/entity/EvaluatorOutput.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/model/entity/EvaluatorOutput.kt index 3e96596..4f880c0 100644 --- a/core/src/main/kotlin/io/smnp/evaluation/model/entity/EvaluatorOutput.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/model/entity/EvaluatorOutput.kt @@ -1,7 +1,7 @@ -package io.smnp.evaluation.model.entity +package com.bartlomiejpluta.smnp.evaluation.model.entity -import io.smnp.evaluation.model.enumeration.EvaluationResult -import io.smnp.type.model.Value +import com.bartlomiejpluta.smnp.evaluation.model.enumeration.EvaluationResult +import com.bartlomiejpluta.smnp.type.model.Value class EvaluatorOutput private constructor(val result: EvaluationResult, val value: Value) { diff --git a/core/src/main/kotlin/io/smnp/evaluation/model/enumeration/EvaluationResult.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/model/enumeration/EvaluationResult.kt similarity index 50% rename from core/src/main/kotlin/io/smnp/evaluation/model/enumeration/EvaluationResult.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/model/enumeration/EvaluationResult.kt index 30d49d9..0f5da4c 100644 --- a/core/src/main/kotlin/io/smnp/evaluation/model/enumeration/EvaluationResult.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/model/enumeration/EvaluationResult.kt @@ -1,4 +1,4 @@ -package io.smnp.evaluation.model.enumeration +package com.bartlomiejpluta.smnp.evaluation.model.enumeration enum class EvaluationResult { OK, diff --git a/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/model/exception/Return.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/model/exception/Return.kt new file mode 100644 index 0000000..aa75886 --- /dev/null +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/model/exception/Return.kt @@ -0,0 +1,5 @@ +package com.bartlomiejpluta.smnp.evaluation.model.exception + +import com.bartlomiejpluta.smnp.type.model.Value + +class Return(val value: Value) : Exception() \ No newline at end of file diff --git a/core/src/main/kotlin/io/smnp/evaluation/util/ContextExceptionFactory.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/util/ContextExceptionFactory.kt similarity index 57% rename from core/src/main/kotlin/io/smnp/evaluation/util/ContextExceptionFactory.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/util/ContextExceptionFactory.kt index 117364b..bc493dd 100644 --- a/core/src/main/kotlin/io/smnp/evaluation/util/ContextExceptionFactory.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/util/ContextExceptionFactory.kt @@ -1,11 +1,11 @@ -package io.smnp.evaluation.util +package com.bartlomiejpluta.smnp.evaluation.util -import io.smnp.dsl.token.model.entity.TokenPosition -import io.smnp.environment.Environment -import io.smnp.error.EnvironmentException -import io.smnp.error.EvaluationException -import io.smnp.error.PositionException -import io.smnp.error.SmnpException +import com.bartlomiejpluta.smnp.dsl.token.model.entity.TokenPosition +import com.bartlomiejpluta.smnp.environment.Environment +import com.bartlomiejpluta.smnp.error.EnvironmentException +import com.bartlomiejpluta.smnp.error.EvaluationException +import com.bartlomiejpluta.smnp.error.PositionException +import com.bartlomiejpluta.smnp.error.SmnpException object ContextExceptionFactory { fun contextEvaluationException(message: String, position: TokenPosition, environment: Environment): SmnpException { diff --git a/core/src/main/kotlin/io/smnp/evaluation/util/NumberUnification.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/util/NumberUnification.kt similarity index 68% rename from core/src/main/kotlin/io/smnp/evaluation/util/NumberUnification.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/util/NumberUnification.kt index c785298..c14e3e1 100644 --- a/core/src/main/kotlin/io/smnp/evaluation/util/NumberUnification.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/evaluation/util/NumberUnification.kt @@ -1,7 +1,7 @@ -package io.smnp.evaluation.util +package com.bartlomiejpluta.smnp.evaluation.util -import io.smnp.type.enumeration.DataType -import io.smnp.type.model.Value +import com.bartlomiejpluta.smnp.type.enumeration.DataType +import com.bartlomiejpluta.smnp.type.model.Value object NumberUnification { fun unify(vararg numbers: Value, int: (List) -> Value, float: (List) -> Value): Value { diff --git a/core/src/main/kotlin/io/smnp/ext/registry/DefaultModuleRegistry.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/ext/registry/DefaultModuleRegistry.kt similarity index 81% rename from core/src/main/kotlin/io/smnp/ext/registry/DefaultModuleRegistry.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/ext/registry/DefaultModuleRegistry.kt index 0c936f2..67eceb1 100644 --- a/core/src/main/kotlin/io/smnp/ext/registry/DefaultModuleRegistry.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/ext/registry/DefaultModuleRegistry.kt @@ -1,8 +1,8 @@ -package io.smnp.ext.registry +package com.bartlomiejpluta.smnp.ext.registry -import io.smnp.environment.Environment -import io.smnp.error.ModuleException -import io.smnp.ext.provider.ModuleProvider +import com.bartlomiejpluta.smnp.environment.Environment +import com.bartlomiejpluta.smnp.error.ModuleException +import com.bartlomiejpluta.smnp.ext.provider.ModuleProvider import org.pf4j.DefaultPluginManager import java.nio.file.Paths diff --git a/core/src/main/kotlin/io/smnp/interpreter/DefaultInterpreter.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/interpreter/DefaultInterpreter.kt similarity index 79% rename from core/src/main/kotlin/io/smnp/interpreter/DefaultInterpreter.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/interpreter/DefaultInterpreter.kt index 5b51dbc..4c4a590 100644 --- a/core/src/main/kotlin/io/smnp/interpreter/DefaultInterpreter.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/interpreter/DefaultInterpreter.kt @@ -1,10 +1,10 @@ -package io.smnp.interpreter +package com.bartlomiejpluta.smnp.interpreter -import io.smnp.dsl.ast.parser.RootParser -import io.smnp.dsl.token.tokenizer.DefaultTokenizer -import io.smnp.environment.DefaultEnvironment -import io.smnp.environment.Environment -import io.smnp.evaluation.evaluator.RootEvaluator +import com.bartlomiejpluta.smnp.dsl.ast.parser.RootParser +import com.bartlomiejpluta.smnp.dsl.token.tokenizer.DefaultTokenizer +import com.bartlomiejpluta.smnp.environment.DefaultEnvironment +import com.bartlomiejpluta.smnp.environment.Environment +import com.bartlomiejpluta.smnp.evaluation.evaluator.RootEvaluator import java.io.File class DefaultInterpreter { diff --git a/core/src/main/kotlin/io/smnp/interpreter/DefaultLanguageModuleInterpreter.kt b/core/src/main/kotlin/com/bartlomiejpluta/smnp/interpreter/DefaultLanguageModuleInterpreter.kt similarity index 58% rename from core/src/main/kotlin/io/smnp/interpreter/DefaultLanguageModuleInterpreter.kt rename to core/src/main/kotlin/com/bartlomiejpluta/smnp/interpreter/DefaultLanguageModuleInterpreter.kt index 5b0f053..20d7915 100644 --- a/core/src/main/kotlin/io/smnp/interpreter/DefaultLanguageModuleInterpreter.kt +++ b/core/src/main/kotlin/com/bartlomiejpluta/smnp/interpreter/DefaultLanguageModuleInterpreter.kt @@ -1,13 +1,13 @@ -package io.smnp.interpreter +package com.bartlomiejpluta.smnp.interpreter -import io.smnp.dsl.ast.parser.RootParser -import io.smnp.dsl.token.tokenizer.DefaultTokenizer -import io.smnp.environment.DefaultEnvironment -import io.smnp.environment.Environment -import io.smnp.evaluation.evaluator.Evaluator -import io.smnp.evaluation.evaluator.ExtendEvaluator -import io.smnp.evaluation.evaluator.FunctionDefinitionEvaluator -import io.smnp.evaluation.model.enumeration.EvaluationResult +import com.bartlomiejpluta.smnp.dsl.ast.parser.RootParser +import com.bartlomiejpluta.smnp.dsl.token.tokenizer.DefaultTokenizer +import com.bartlomiejpluta.smnp.environment.DefaultEnvironment +import com.bartlomiejpluta.smnp.environment.Environment +import com.bartlomiejpluta.smnp.evaluation.evaluator.Evaluator +import com.bartlomiejpluta.smnp.evaluation.evaluator.ExtendEvaluator +import com.bartlomiejpluta.smnp.evaluation.evaluator.FunctionDefinitionEvaluator +import com.bartlomiejpluta.smnp.evaluation.model.enumeration.EvaluationResult class DefaultLanguageModuleInterpreter : LanguageModuleInterpreter { private val tokenizer = DefaultTokenizer() diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/model/enumeration/ParsingResult.kt b/core/src/main/kotlin/io/smnp/dsl/ast/model/enumeration/ParsingResult.kt deleted file mode 100644 index 2e3b7f5..0000000 --- a/core/src/main/kotlin/io/smnp/dsl/ast/model/enumeration/ParsingResult.kt +++ /dev/null @@ -1,6 +0,0 @@ -package io.smnp.dsl.ast.model.enumeration - -enum class ParsingResult { - OK, - FAILED -} \ No newline at end of file diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/BoolLiteralNode.kt b/core/src/main/kotlin/io/smnp/dsl/ast/model/node/BoolLiteralNode.kt deleted file mode 100644 index 82901e4..0000000 --- a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/BoolLiteralNode.kt +++ /dev/null @@ -1,5 +0,0 @@ -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/core/src/main/kotlin/io/smnp/dsl/ast/model/node/FloatLiteralNode.kt b/core/src/main/kotlin/io/smnp/dsl/ast/model/node/FloatLiteralNode.kt deleted file mode 100644 index b704831..0000000 --- a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/FloatLiteralNode.kt +++ /dev/null @@ -1,5 +0,0 @@ -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/core/src/main/kotlin/io/smnp/dsl/ast/model/node/FunctionCallArgumentsNode.kt b/core/src/main/kotlin/io/smnp/dsl/ast/model/node/FunctionCallArgumentsNode.kt deleted file mode 100644 index a5e89b2..0000000 --- a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/FunctionCallArgumentsNode.kt +++ /dev/null @@ -1,5 +0,0 @@ -package io.smnp.dsl.ast.model.node - -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/core/src/main/kotlin/io/smnp/dsl/ast/model/node/IdentifierNode.kt b/core/src/main/kotlin/io/smnp/dsl/ast/model/node/IdentifierNode.kt deleted file mode 100644 index ed56f21..0000000 --- a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/IdentifierNode.kt +++ /dev/null @@ -1,5 +0,0 @@ -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/core/src/main/kotlin/io/smnp/dsl/ast/model/node/IntegerLiteralNode.kt b/core/src/main/kotlin/io/smnp/dsl/ast/model/node/IntegerLiteralNode.kt deleted file mode 100644 index 670b51c..0000000 --- a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/IntegerLiteralNode.kt +++ /dev/null @@ -1,5 +0,0 @@ -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/core/src/main/kotlin/io/smnp/dsl/ast/model/node/ListNode.kt b/core/src/main/kotlin/io/smnp/dsl/ast/model/node/ListNode.kt deleted file mode 100644 index 5ac29e1..0000000 --- a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/ListNode.kt +++ /dev/null @@ -1,5 +0,0 @@ -package io.smnp.dsl.ast.model.node - -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/core/src/main/kotlin/io/smnp/dsl/ast/model/node/LoopParametersNode.kt b/core/src/main/kotlin/io/smnp/dsl/ast/model/node/LoopParametersNode.kt deleted file mode 100644 index a4096be..0000000 --- a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/LoopParametersNode.kt +++ /dev/null @@ -1,5 +0,0 @@ -package io.smnp.dsl.ast.model.node - -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/core/src/main/kotlin/io/smnp/dsl/ast/model/node/MapNode.kt b/core/src/main/kotlin/io/smnp/dsl/ast/model/node/MapNode.kt deleted file mode 100644 index ffc20f4..0000000 --- a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/MapNode.kt +++ /dev/null @@ -1,5 +0,0 @@ -package io.smnp.dsl.ast.model.node - -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/core/src/main/kotlin/io/smnp/dsl/ast/model/node/MeasureNode.kt b/core/src/main/kotlin/io/smnp/dsl/ast/model/node/MeasureNode.kt deleted file mode 100644 index 7508aa7..0000000 --- a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/MeasureNode.kt +++ /dev/null @@ -1,5 +0,0 @@ -package io.smnp.dsl.ast.model.node - -import io.smnp.dsl.token.model.entity.TokenPosition - -class MeasureNode(items: List, position: TokenPosition) : AbstractIterableNode(items, position) \ No newline at end of file diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/NoneNode.kt b/core/src/main/kotlin/io/smnp/dsl/ast/model/node/NoneNode.kt deleted file mode 100644 index 45915aa..0000000 --- a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/NoneNode.kt +++ /dev/null @@ -1,7 +0,0 @@ -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/core/src/main/kotlin/io/smnp/dsl/ast/model/node/NoteLiteralNode.kt b/core/src/main/kotlin/io/smnp/dsl/ast/model/node/NoteLiteralNode.kt deleted file mode 100644 index 681d585..0000000 --- a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/NoteLiteralNode.kt +++ /dev/null @@ -1,5 +0,0 @@ -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/core/src/main/kotlin/io/smnp/dsl/ast/model/node/RootNode.kt b/core/src/main/kotlin/io/smnp/dsl/ast/model/node/RootNode.kt deleted file mode 100644 index 1b20adc..0000000 --- a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/RootNode.kt +++ /dev/null @@ -1,5 +0,0 @@ -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/core/src/main/kotlin/io/smnp/dsl/ast/model/node/StaffNode.kt b/core/src/main/kotlin/io/smnp/dsl/ast/model/node/StaffNode.kt deleted file mode 100644 index 3cc44f3..0000000 --- a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/StaffNode.kt +++ /dev/null @@ -1,5 +0,0 @@ -package io.smnp.dsl.ast.model.node - -import io.smnp.dsl.token.model.entity.TokenPosition - -class StaffNode(items: List, position: TokenPosition) : AbstractIterableNode(items, position) \ No newline at end of file diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/StringLiteralNode.kt b/core/src/main/kotlin/io/smnp/dsl/ast/model/node/StringLiteralNode.kt deleted file mode 100644 index e7bf0f2..0000000 --- a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/StringLiteralNode.kt +++ /dev/null @@ -1,5 +0,0 @@ -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/core/src/main/kotlin/io/smnp/dsl/ast/model/node/TokenNode.kt b/core/src/main/kotlin/io/smnp/dsl/ast/model/node/TokenNode.kt deleted file mode 100644 index fbb96a1..0000000 --- a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/TokenNode.kt +++ /dev/null @@ -1,5 +0,0 @@ -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/core/src/main/kotlin/io/smnp/dsl/ast/model/node/TypeSpecifierNode.kt b/core/src/main/kotlin/io/smnp/dsl/ast/model/node/TypeSpecifierNode.kt deleted file mode 100644 index 24777e0..0000000 --- a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/TypeSpecifierNode.kt +++ /dev/null @@ -1,5 +0,0 @@ -package io.smnp.dsl.ast.model.node - -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/core/src/main/kotlin/io/smnp/dsl/ast/model/node/TypeSpecifiersNode.kt b/core/src/main/kotlin/io/smnp/dsl/ast/model/node/TypeSpecifiersNode.kt deleted file mode 100644 index 25255e3..0000000 --- a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/TypeSpecifiersNode.kt +++ /dev/null @@ -1,5 +0,0 @@ -package io.smnp.dsl.ast.model.node - -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/core/src/main/kotlin/io/smnp/dsl/ast/model/node/UnionTypeNode.kt b/core/src/main/kotlin/io/smnp/dsl/ast/model/node/UnionTypeNode.kt deleted file mode 100644 index 5f4d6d8..0000000 --- a/core/src/main/kotlin/io/smnp/dsl/ast/model/node/UnionTypeNode.kt +++ /dev/null @@ -1,5 +0,0 @@ -package io.smnp.dsl.ast.model.node - -import io.smnp.dsl.token.model.entity.TokenPosition - -class UnionTypeNode(items: List, position: TokenPosition) : AbstractIterableNode(items, position) \ No newline at end of file diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/parser/BoolLiteralParser.kt b/core/src/main/kotlin/io/smnp/dsl/ast/parser/BoolLiteralParser.kt deleted file mode 100644 index 8d24997..0000000 --- a/core/src/main/kotlin/io/smnp/dsl/ast/parser/BoolLiteralParser.kt +++ /dev/null @@ -1,12 +0,0 @@ -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/core/src/main/kotlin/io/smnp/dsl/ast/parser/FloatLiteralParser.kt b/core/src/main/kotlin/io/smnp/dsl/ast/parser/FloatLiteralParser.kt deleted file mode 100644 index ae1ea7b..0000000 --- a/core/src/main/kotlin/io/smnp/dsl/ast/parser/FloatLiteralParser.kt +++ /dev/null @@ -1,12 +0,0 @@ -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/core/src/main/kotlin/io/smnp/dsl/ast/parser/IntegerLiteralParser.kt b/core/src/main/kotlin/io/smnp/dsl/ast/parser/IntegerLiteralParser.kt deleted file mode 100644 index bad24a7..0000000 --- a/core/src/main/kotlin/io/smnp/dsl/ast/parser/IntegerLiteralParser.kt +++ /dev/null @@ -1,12 +0,0 @@ -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/core/src/main/kotlin/io/smnp/dsl/ast/parser/NoteLiteralParser.kt b/core/src/main/kotlin/io/smnp/dsl/ast/parser/NoteLiteralParser.kt deleted file mode 100644 index c60f549..0000000 --- a/core/src/main/kotlin/io/smnp/dsl/ast/parser/NoteLiteralParser.kt +++ /dev/null @@ -1,12 +0,0 @@ -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/core/src/main/kotlin/io/smnp/dsl/ast/parser/ReturnParser.kt b/core/src/main/kotlin/io/smnp/dsl/ast/parser/ReturnParser.kt deleted file mode 100644 index 72c696c..0000000 --- a/core/src/main/kotlin/io/smnp/dsl/ast/parser/ReturnParser.kt +++ /dev/null @@ -1,17 +0,0 @@ -package io.smnp.dsl.ast.parser - -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 { - return allOf( - terminal(TokenType.RETURN), - optional(assert(ExpressionParser(), "expression")) - ) { (_, value) -> - ReturnNode(value) - }.parse(input) - } -} \ No newline at end of file diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/parser/SimpleIdentifierParser.kt b/core/src/main/kotlin/io/smnp/dsl/ast/parser/SimpleIdentifierParser.kt deleted file mode 100644 index 1461745..0000000 --- a/core/src/main/kotlin/io/smnp/dsl/ast/parser/SimpleIdentifierParser.kt +++ /dev/null @@ -1,16 +0,0 @@ -package io.smnp.dsl.ast.parser - -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 { - val identifierParser = terminal(TokenType.IDENTIFIER) { IdentifierNode(it) } - - return oneOf( - identifierParser - ).parse(input) - } -} \ No newline at end of file diff --git a/core/src/main/kotlin/io/smnp/dsl/ast/parser/StringLiteralParser.kt b/core/src/main/kotlin/io/smnp/dsl/ast/parser/StringLiteralParser.kt deleted file mode 100644 index 90641c2..0000000 --- a/core/src/main/kotlin/io/smnp/dsl/ast/parser/StringLiteralParser.kt +++ /dev/null @@ -1,12 +0,0 @@ -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/core/src/main/kotlin/io/smnp/dsl/ast/parser/ThrowParser.kt b/core/src/main/kotlin/io/smnp/dsl/ast/parser/ThrowParser.kt deleted file mode 100644 index efaa515..0000000 --- a/core/src/main/kotlin/io/smnp/dsl/ast/parser/ThrowParser.kt +++ /dev/null @@ -1,15 +0,0 @@ -package io.smnp.dsl.ast.parser - -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 { - return allOf( - terminal(TokenType.THROW), - optional(SubexpressionParser()) - ) { (_, value) -> ThrowNode(value) }.parse(input) - } -} \ No newline at end of file diff --git a/core/src/main/kotlin/io/smnp/evaluation/evaluator/BoolLiteralEvaluator.kt b/core/src/main/kotlin/io/smnp/evaluation/evaluator/BoolLiteralEvaluator.kt deleted file mode 100644 index 7df568d..0000000 --- a/core/src/main/kotlin/io/smnp/evaluation/evaluator/BoolLiteralEvaluator.kt +++ /dev/null @@ -1,16 +0,0 @@ -package io.smnp.evaluation.evaluator - -import io.smnp.dsl.ast.model.node.BoolLiteralNode -import io.smnp.dsl.ast.model.node.Node -import io.smnp.environment.Environment -import io.smnp.evaluation.model.entity.EvaluatorOutput -import io.smnp.type.model.Value - -class BoolLiteralEvaluator : Evaluator() { - override fun supportedNodes() = listOf(BoolLiteralNode::class) - - override fun tryToEvaluate(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/core/src/main/kotlin/io/smnp/evaluation/evaluator/FloatLiteralEvaluator.kt b/core/src/main/kotlin/io/smnp/evaluation/evaluator/FloatLiteralEvaluator.kt deleted file mode 100644 index f7fee58..0000000 --- a/core/src/main/kotlin/io/smnp/evaluation/evaluator/FloatLiteralEvaluator.kt +++ /dev/null @@ -1,16 +0,0 @@ -package io.smnp.evaluation.evaluator - -import io.smnp.dsl.ast.model.node.FloatLiteralNode -import io.smnp.dsl.ast.model.node.Node -import io.smnp.environment.Environment -import io.smnp.evaluation.model.entity.EvaluatorOutput -import io.smnp.type.model.Value - -class FloatLiteralEvaluator : Evaluator() { - override fun supportedNodes() = listOf(FloatLiteralNode::class) - - override fun tryToEvaluate(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/core/src/main/kotlin/io/smnp/evaluation/evaluator/FunctionDefinitionEvaluator.kt b/core/src/main/kotlin/io/smnp/evaluation/evaluator/FunctionDefinitionEvaluator.kt deleted file mode 100644 index e55d28c..0000000 --- a/core/src/main/kotlin/io/smnp/evaluation/evaluator/FunctionDefinitionEvaluator.kt +++ /dev/null @@ -1,25 +0,0 @@ -package io.smnp.evaluation.evaluator - -import io.smnp.callable.function.CustomFunction -import io.smnp.dsl.ast.model.node.FunctionDefinitionNode -import io.smnp.dsl.ast.model.node.Node -import io.smnp.environment.Environment -import io.smnp.error.SmnpException -import io.smnp.evaluation.model.entity.EvaluatorOutput -import io.smnp.evaluation.util.ContextExceptionFactory.wrapWithContext - -class FunctionDefinitionEvaluator : Evaluator() { - override fun supportedNodes() = listOf(FunctionDefinitionNode::class) - - override fun tryToEvaluate(node: Node, environment: Environment): EvaluatorOutput { - val function = CustomFunction.create(node as FunctionDefinitionNode) - - try { - environment.defineFunction(function) - } catch (e: SmnpException) { - throw wrapWithContext(e, node.position, environment) - } - - return EvaluatorOutput.ok() - } -} \ No newline at end of file diff --git a/core/src/main/kotlin/io/smnp/evaluation/evaluator/ImportEvaluator.kt b/core/src/main/kotlin/io/smnp/evaluation/evaluator/ImportEvaluator.kt deleted file mode 100644 index 546a3f8..0000000 --- a/core/src/main/kotlin/io/smnp/evaluation/evaluator/ImportEvaluator.kt +++ /dev/null @@ -1,25 +0,0 @@ -package io.smnp.evaluation.evaluator - -import io.smnp.dsl.ast.model.node.IdentifierNode -import io.smnp.dsl.ast.model.node.ImportNode -import io.smnp.dsl.ast.model.node.Node -import io.smnp.environment.Environment -import io.smnp.error.SmnpException -import io.smnp.evaluation.model.entity.EvaluatorOutput -import io.smnp.evaluation.util.ContextExceptionFactory.wrapWithContext - -class ImportEvaluator : Evaluator() { - override fun supportedNodes() = listOf(ImportNode::class) - - override fun tryToEvaluate(node: Node, environment: Environment): EvaluatorOutput { - val path = (node as ImportNode).path.joinToString(".") { (it as IdentifierNode).token.rawValue } - - try { - environment.loadModule(path) - } catch (e: SmnpException) { - throw wrapWithContext(e, node.position, environment) - } - - return EvaluatorOutput.ok() - } -} \ No newline at end of file diff --git a/core/src/main/kotlin/io/smnp/evaluation/evaluator/IntegerLiteralEvaluator.kt b/core/src/main/kotlin/io/smnp/evaluation/evaluator/IntegerLiteralEvaluator.kt deleted file mode 100644 index e9ccec0..0000000 --- a/core/src/main/kotlin/io/smnp/evaluation/evaluator/IntegerLiteralEvaluator.kt +++ /dev/null @@ -1,16 +0,0 @@ -package io.smnp.evaluation.evaluator - -import io.smnp.dsl.ast.model.node.IntegerLiteralNode -import io.smnp.dsl.ast.model.node.Node -import io.smnp.environment.Environment -import io.smnp.evaluation.model.entity.EvaluatorOutput -import io.smnp.type.model.Value - -class IntegerLiteralEvaluator : Evaluator() { - override fun supportedNodes() = listOf(IntegerLiteralNode::class) - - override fun tryToEvaluate(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/core/src/main/kotlin/io/smnp/evaluation/evaluator/NoteLiteralEvaluator.kt b/core/src/main/kotlin/io/smnp/evaluation/evaluator/NoteLiteralEvaluator.kt deleted file mode 100644 index 1f3ccfa..0000000 --- a/core/src/main/kotlin/io/smnp/evaluation/evaluator/NoteLiteralEvaluator.kt +++ /dev/null @@ -1,17 +0,0 @@ -package io.smnp.evaluation.evaluator - -import io.smnp.data.entity.Note -import io.smnp.dsl.ast.model.node.Node -import io.smnp.dsl.ast.model.node.NoteLiteralNode -import io.smnp.environment.Environment -import io.smnp.evaluation.model.entity.EvaluatorOutput -import io.smnp.type.model.Value - -class NoteLiteralEvaluator : Evaluator() { - override fun supportedNodes() = listOf(NoteLiteralNode::class) - - override fun tryToEvaluate(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/core/src/main/kotlin/io/smnp/evaluation/evaluator/StringLiteralEvaluator.kt b/core/src/main/kotlin/io/smnp/evaluation/evaluator/StringLiteralEvaluator.kt deleted file mode 100644 index 499f84a..0000000 --- a/core/src/main/kotlin/io/smnp/evaluation/evaluator/StringLiteralEvaluator.kt +++ /dev/null @@ -1,16 +0,0 @@ -package io.smnp.evaluation.evaluator - -import io.smnp.dsl.ast.model.node.Node -import io.smnp.dsl.ast.model.node.StringLiteralNode -import io.smnp.environment.Environment -import io.smnp.evaluation.model.entity.EvaluatorOutput -import io.smnp.type.model.Value - -class StringLiteralEvaluator : Evaluator() { - override fun supportedNodes() = listOf(StringLiteralNode::class) - - override fun tryToEvaluate(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/core/src/main/kotlin/io/smnp/evaluation/model/exception/Return.kt b/core/src/main/kotlin/io/smnp/evaluation/model/exception/Return.kt deleted file mode 100644 index 24cd715..0000000 --- a/core/src/main/kotlin/io/smnp/evaluation/model/exception/Return.kt +++ /dev/null @@ -1,5 +0,0 @@ -package io.smnp.evaluation.model.exception - -import io.smnp.type.model.Value - -class Return(val value: Value) : Exception() \ No newline at end of file diff --git a/modules/build.gradle b/modules/build.gradle index 2c74a13..1b6fc7c 100644 --- a/modules/build.gradle +++ b/modules/build.gradle @@ -8,7 +8,7 @@ subprojects { mavenCentral() } - group 'io.bartek' + group 'com.bartlomiejpluta' version '1.0-SNAPSHOT' sourceCompatibility = 1.8 diff --git a/modules/collection/src/main/kotlin/io/smnp/ext/collection/CollectionModule.kt b/modules/collection/src/main/kotlin/com/bartlomiejpluta/smnp/ext/collection/CollectionModule.kt similarity index 65% rename from modules/collection/src/main/kotlin/io/smnp/ext/collection/CollectionModule.kt rename to modules/collection/src/main/kotlin/com/bartlomiejpluta/smnp/ext/collection/CollectionModule.kt index c69120d..5b8b875 100644 --- a/modules/collection/src/main/kotlin/io/smnp/ext/collection/CollectionModule.kt +++ b/modules/collection/src/main/kotlin/com/bartlomiejpluta/smnp/ext/collection/CollectionModule.kt @@ -1,6 +1,6 @@ -package io.smnp.ext.collection +package com.bartlomiejpluta.smnp.ext.collection -import io.smnp.ext.provider.LanguageModuleProvider +import com.bartlomiejpluta.smnp.ext.provider.LanguageModuleProvider import org.pf4j.Extension @Extension diff --git a/modules/debug/src/main/kotlin/com/bartlomiejpluta/smnp/ext/debug/DebugModule.kt b/modules/debug/src/main/kotlin/com/bartlomiejpluta/smnp/ext/debug/DebugModule.kt new file mode 100644 index 0000000..38446f9 --- /dev/null +++ b/modules/debug/src/main/kotlin/com/bartlomiejpluta/smnp/ext/debug/DebugModule.kt @@ -0,0 +1,10 @@ +package com.bartlomiejpluta.smnp.ext.debug + +import com.bartlomiejpluta.smnp.ext.debug.function.StackTraceFuction +import com.bartlomiejpluta.smnp.ext.provider.NativeModuleProvider +import org.pf4j.Extension + +@Extension +class DebugModule : NativeModuleProvider("smnp.lang.debug") { + override fun functions() = listOf(StackTraceFuction()) +} \ No newline at end of file diff --git a/modules/debug/src/main/kotlin/com/bartlomiejpluta/smnp/ext/debug/function/StackTraceFuction.kt b/modules/debug/src/main/kotlin/com/bartlomiejpluta/smnp/ext/debug/function/StackTraceFuction.kt new file mode 100644 index 0000000..747ee26 --- /dev/null +++ b/modules/debug/src/main/kotlin/com/bartlomiejpluta/smnp/ext/debug/function/StackTraceFuction.kt @@ -0,0 +1,18 @@ +package com.bartlomiejpluta.smnp.ext.debug.function + +import com.bartlomiejpluta.smnp.callable.function.Function +import com.bartlomiejpluta.smnp.callable.function.FunctionDefinitionTool +import com.bartlomiejpluta.smnp.callable.signature.Signature +import com.bartlomiejpluta.smnp.type.enumeration.DataType.BOOL +import com.bartlomiejpluta.smnp.type.matcher.Matcher.Companion.ofType +import com.bartlomiejpluta.smnp.type.matcher.Matcher.Companion.optional +import com.bartlomiejpluta.smnp.type.model.Value + +class StackTraceFuction : Function("stacktrace") { + override fun define(new: FunctionDefinitionTool) { + new function Signature.simple(optional(ofType(BOOL))) body { env, args -> + env.printCallStack(args.getOrNull(0)?.value as Boolean? ?: false) + Value.void() + } + } +} \ No newline at end of file diff --git a/modules/debug/src/main/kotlin/io/smnp/ext/debug/DebugModule.kt b/modules/debug/src/main/kotlin/io/smnp/ext/debug/DebugModule.kt deleted file mode 100644 index dff9be6..0000000 --- a/modules/debug/src/main/kotlin/io/smnp/ext/debug/DebugModule.kt +++ /dev/null @@ -1,10 +0,0 @@ -package io.smnp.ext.debug - -import io.smnp.ext.provider.NativeModuleProvider -import io.smnp.ext.debug.function.StackTraceFuction -import org.pf4j.Extension - -@Extension -class DebugModule : NativeModuleProvider("smnp.lang.debug") { - override fun functions() = listOf(StackTraceFuction()) -} \ No newline at end of file diff --git a/modules/debug/src/main/kotlin/io/smnp/ext/debug/function/StackTraceFuction.kt b/modules/debug/src/main/kotlin/io/smnp/ext/debug/function/StackTraceFuction.kt deleted file mode 100644 index 0a65bfa..0000000 --- a/modules/debug/src/main/kotlin/io/smnp/ext/debug/function/StackTraceFuction.kt +++ /dev/null @@ -1,18 +0,0 @@ -package io.smnp.ext.debug.function - -import io.smnp.callable.function.Function -import io.smnp.callable.function.FunctionDefinitionTool -import io.smnp.callable.signature.Signature -import io.smnp.type.enumeration.DataType.BOOL -import io.smnp.type.matcher.Matcher.Companion.ofType -import io.smnp.type.matcher.Matcher.Companion.optional -import io.smnp.type.model.Value - -class StackTraceFuction : Function("stacktrace") { - override fun define(new: FunctionDefinitionTool) { - new function Signature.simple(optional(ofType(BOOL))) body { env, args -> - env.printCallStack(args.getOrNull(0)?.value as Boolean? ?: false) - Value.void() - } - } -} \ No newline at end of file diff --git a/modules/dsp/src/main/kotlin/com/bartlomiejpluta/smnp/ext/dsp/DspModule.kt b/modules/dsp/src/main/kotlin/com/bartlomiejpluta/smnp/ext/dsp/DspModule.kt new file mode 100644 index 0000000..2e99eac --- /dev/null +++ b/modules/dsp/src/main/kotlin/com/bartlomiejpluta/smnp/ext/dsp/DspModule.kt @@ -0,0 +1,11 @@ +package com.bartlomiejpluta.smnp.ext.dsp + +import com.bartlomiejpluta.smnp.ext.dsp.function.FftFunction +import com.bartlomiejpluta.smnp.ext.dsp.function.PlotFunction +import com.bartlomiejpluta.smnp.ext.provider.NativeModuleProvider +import org.pf4j.Extension + +@Extension +class DspModule : NativeModuleProvider("smnp.dsp") { + override fun functions() = listOf(PlotFunction(), FftFunction()) +} \ No newline at end of file diff --git a/modules/dsp/src/main/kotlin/com/bartlomiejpluta/smnp/ext/dsp/function/FftFunction.kt b/modules/dsp/src/main/kotlin/com/bartlomiejpluta/smnp/ext/dsp/function/FftFunction.kt new file mode 100644 index 0000000..ee6a5cb --- /dev/null +++ b/modules/dsp/src/main/kotlin/com/bartlomiejpluta/smnp/ext/dsp/function/FftFunction.kt @@ -0,0 +1,19 @@ +package com.bartlomiejpluta.smnp.ext.dsp.function + +import com.bartlomiejpluta.smnp.callable.function.Function +import com.bartlomiejpluta.smnp.callable.function.FunctionDefinitionTool +import com.bartlomiejpluta.smnp.callable.signature.Signature.Companion.simple +import com.bartlomiejpluta.smnp.ext.dsp.lib.fft.FourierTransform.fft +import com.bartlomiejpluta.smnp.type.enumeration.DataType.FLOAT +import com.bartlomiejpluta.smnp.type.enumeration.DataType.INT +import com.bartlomiejpluta.smnp.type.matcher.Matcher.Companion.listOf +import com.bartlomiejpluta.smnp.type.model.Value + +class FftFunction : Function("fft") { + override fun define(new: FunctionDefinitionTool) { + new function simple(listOf(INT, FLOAT)) body { _, (signal) -> + val x = (signal.unwrap() as List).map { it.toDouble() } + Value.list(fft(x).map { Value.float(it.mod.toFloat()) }) + } + } +} \ No newline at end of file diff --git a/modules/dsp/src/main/kotlin/io/smnp/ext/dsp/function/PlotFunction.kt b/modules/dsp/src/main/kotlin/com/bartlomiejpluta/smnp/ext/dsp/function/PlotFunction.kt similarity index 79% rename from modules/dsp/src/main/kotlin/io/smnp/ext/dsp/function/PlotFunction.kt rename to modules/dsp/src/main/kotlin/com/bartlomiejpluta/smnp/ext/dsp/function/PlotFunction.kt index b013d45..793a342 100644 --- a/modules/dsp/src/main/kotlin/io/smnp/ext/dsp/function/PlotFunction.kt +++ b/modules/dsp/src/main/kotlin/com/bartlomiejpluta/smnp/ext/dsp/function/PlotFunction.kt @@ -1,16 +1,16 @@ -package io.smnp.ext.dsp.function +package com.bartlomiejpluta.smnp.ext.dsp.function -import io.smnp.callable.function.Function -import io.smnp.callable.function.FunctionDefinitionTool -import io.smnp.callable.signature.Signature.Companion.vararg -import io.smnp.error.CustomException -import io.smnp.type.enumeration.DataType.* -import io.smnp.type.matcher.Matcher.Companion.anyType -import io.smnp.type.matcher.Matcher.Companion.listOf -import io.smnp.type.matcher.Matcher.Companion.mapOfMatchers -import io.smnp.type.matcher.Matcher.Companion.ofType -import io.smnp.type.model.Value -import io.smnp.util.config.ConfigMapSchema +import com.bartlomiejpluta.smnp.callable.function.Function +import com.bartlomiejpluta.smnp.callable.function.FunctionDefinitionTool +import com.bartlomiejpluta.smnp.callable.signature.Signature.Companion.vararg +import com.bartlomiejpluta.smnp.error.CustomException +import com.bartlomiejpluta.smnp.type.enumeration.DataType.* +import com.bartlomiejpluta.smnp.type.matcher.Matcher.Companion.anyType +import com.bartlomiejpluta.smnp.type.matcher.Matcher.Companion.listOf +import com.bartlomiejpluta.smnp.type.matcher.Matcher.Companion.mapOfMatchers +import com.bartlomiejpluta.smnp.type.matcher.Matcher.Companion.ofType +import com.bartlomiejpluta.smnp.type.model.Value +import com.bartlomiejpluta.smnp.util.config.ConfigMapSchema import org.knowm.xchart.BitmapEncoder import org.knowm.xchart.BitmapEncoder.BitmapFormat import org.knowm.xchart.SwingWrapper diff --git a/modules/dsp/src/main/kotlin/io/smnp/ext/dsp/lib/complex/Complex.kt b/modules/dsp/src/main/kotlin/com/bartlomiejpluta/smnp/ext/dsp/lib/complex/Complex.kt similarity index 92% rename from modules/dsp/src/main/kotlin/io/smnp/ext/dsp/lib/complex/Complex.kt rename to modules/dsp/src/main/kotlin/com/bartlomiejpluta/smnp/ext/dsp/lib/complex/Complex.kt index 5d2035a..5916aca 100644 --- a/modules/dsp/src/main/kotlin/io/smnp/ext/dsp/lib/complex/Complex.kt +++ b/modules/dsp/src/main/kotlin/com/bartlomiejpluta/smnp/ext/dsp/lib/complex/Complex.kt @@ -1,4 +1,4 @@ -package io.smnp.ext.dsp.lib.complex +package com.bartlomiejpluta.smnp.ext.dsp.lib.complex import kotlin.math.atan2 import kotlin.math.pow diff --git a/modules/dsp/src/main/kotlin/io/smnp/ext/dsp/lib/fft/FourierTransform.kt b/modules/dsp/src/main/kotlin/com/bartlomiejpluta/smnp/ext/dsp/lib/fft/FourierTransform.kt similarity index 91% rename from modules/dsp/src/main/kotlin/io/smnp/ext/dsp/lib/fft/FourierTransform.kt rename to modules/dsp/src/main/kotlin/com/bartlomiejpluta/smnp/ext/dsp/lib/fft/FourierTransform.kt index 9dee219..c3df71d 100644 --- a/modules/dsp/src/main/kotlin/io/smnp/ext/dsp/lib/fft/FourierTransform.kt +++ b/modules/dsp/src/main/kotlin/com/bartlomiejpluta/smnp/ext/dsp/lib/fft/FourierTransform.kt @@ -1,6 +1,6 @@ -package io.smnp.ext.dsp.lib.fft +package com.bartlomiejpluta.smnp.ext.dsp.lib.fft -import io.smnp.ext.dsp.lib.complex.Complex +import com.bartlomiejpluta.smnp.ext.dsp.lib.complex.Complex import kotlin.math.abs import kotlin.math.ceil import kotlin.math.log diff --git a/modules/dsp/src/main/kotlin/io/smnp/ext/dsp/DspModule.kt b/modules/dsp/src/main/kotlin/io/smnp/ext/dsp/DspModule.kt deleted file mode 100644 index df73617..0000000 --- a/modules/dsp/src/main/kotlin/io/smnp/ext/dsp/DspModule.kt +++ /dev/null @@ -1,11 +0,0 @@ -package io.smnp.ext.dsp - -import io.smnp.ext.dsp.function.FftFunction -import io.smnp.ext.dsp.function.PlotFunction -import io.smnp.ext.provider.NativeModuleProvider -import org.pf4j.Extension - -@Extension -class DspModule : NativeModuleProvider("smnp.dsp") { - override fun functions() = listOf(PlotFunction(), FftFunction()) -} \ No newline at end of file diff --git a/modules/dsp/src/main/kotlin/io/smnp/ext/dsp/function/FftFunction.kt b/modules/dsp/src/main/kotlin/io/smnp/ext/dsp/function/FftFunction.kt deleted file mode 100644 index 477893a..0000000 --- a/modules/dsp/src/main/kotlin/io/smnp/ext/dsp/function/FftFunction.kt +++ /dev/null @@ -1,19 +0,0 @@ -package io.smnp.ext.dsp.function - -import io.smnp.callable.function.Function -import io.smnp.callable.function.FunctionDefinitionTool -import io.smnp.callable.signature.Signature.Companion.simple -import io.smnp.ext.dsp.lib.fft.FourierTransform.fft -import io.smnp.type.enumeration.DataType.FLOAT -import io.smnp.type.enumeration.DataType.INT -import io.smnp.type.matcher.Matcher.Companion.listOf -import io.smnp.type.model.Value - -class FftFunction : Function("fft") { - override fun define(new: FunctionDefinitionTool) { - new function simple(listOf(INT, FLOAT)) body { _, (signal) -> - val x = (signal.unwrap() as List).map { it.toDouble() } - Value.list(fft(x).map { Value.float(it.mod.toFloat()) }) - } - } -} \ No newline at end of file diff --git a/modules/io/src/main/kotlin/com/bartlomiejpluta/smnp/ext/io/IoModule.kt b/modules/io/src/main/kotlin/com/bartlomiejpluta/smnp/ext/io/IoModule.kt new file mode 100644 index 0000000..ca7e2aa --- /dev/null +++ b/modules/io/src/main/kotlin/com/bartlomiejpluta/smnp/ext/io/IoModule.kt @@ -0,0 +1,11 @@ +package com.bartlomiejpluta.smnp.ext.io + +import com.bartlomiejpluta.smnp.ext.io.function.PrintlnFunction +import com.bartlomiejpluta.smnp.ext.io.function.ReadFunction +import com.bartlomiejpluta.smnp.ext.provider.NativeModuleProvider +import org.pf4j.Extension + +@Extension +class IoModule : NativeModuleProvider("smnp.io") { + override fun functions() = listOf(PrintlnFunction(), ReadFunction()) +} \ No newline at end of file diff --git a/modules/io/src/main/kotlin/com/bartlomiejpluta/smnp/ext/io/function/PrintlnFunction.kt b/modules/io/src/main/kotlin/com/bartlomiejpluta/smnp/ext/io/function/PrintlnFunction.kt new file mode 100644 index 0000000..1b14303 --- /dev/null +++ b/modules/io/src/main/kotlin/com/bartlomiejpluta/smnp/ext/io/function/PrintlnFunction.kt @@ -0,0 +1,16 @@ +package com.bartlomiejpluta.smnp.ext.io.function + +import com.bartlomiejpluta.smnp.callable.function.Function +import com.bartlomiejpluta.smnp.callable.function.FunctionDefinitionTool +import com.bartlomiejpluta.smnp.callable.signature.Signature.Companion.vararg +import com.bartlomiejpluta.smnp.type.matcher.Matcher.Companion.anyType +import com.bartlomiejpluta.smnp.type.model.Value + +class PrintlnFunction : Function("println") { + override fun define(new: FunctionDefinitionTool) { + new function vararg(anyType()) body { _, (vararg) -> + println((vararg.value as List).joinToString("") { it.stringify() }) + Value.void() + } + } +} \ No newline at end of file diff --git a/modules/io/src/main/kotlin/com/bartlomiejpluta/smnp/ext/io/function/ReadFunction.kt b/modules/io/src/main/kotlin/com/bartlomiejpluta/smnp/ext/io/function/ReadFunction.kt new file mode 100644 index 0000000..805b645 --- /dev/null +++ b/modules/io/src/main/kotlin/com/bartlomiejpluta/smnp/ext/io/function/ReadFunction.kt @@ -0,0 +1,18 @@ +package com.bartlomiejpluta.smnp.ext.io.function + +import com.bartlomiejpluta.smnp.callable.function.Function +import com.bartlomiejpluta.smnp.callable.function.FunctionDefinitionTool +import com.bartlomiejpluta.smnp.callable.signature.Signature.Companion.simple +import com.bartlomiejpluta.smnp.type.enumeration.DataType.STRING +import com.bartlomiejpluta.smnp.type.matcher.Matcher.Companion.ofType +import com.bartlomiejpluta.smnp.type.matcher.Matcher.Companion.optional +import com.bartlomiejpluta.smnp.type.model.Value + +class ReadFunction : Function("read") { + override fun define(new: FunctionDefinitionTool) { + new function simple(optional(ofType(STRING))) body { _, arguments -> + arguments.getOrNull(0)?.let { print(it.value) } + Value.string(readLine() ?: "") + } + } +} \ No newline at end of file diff --git a/modules/io/src/main/kotlin/io/smnp/ext/io/IoModule.kt b/modules/io/src/main/kotlin/io/smnp/ext/io/IoModule.kt deleted file mode 100644 index b653229..0000000 --- a/modules/io/src/main/kotlin/io/smnp/ext/io/IoModule.kt +++ /dev/null @@ -1,11 +0,0 @@ -package io.smnp.ext.io - -import io.smnp.ext.provider.NativeModuleProvider -import io.smnp.ext.io.function.PrintlnFunction -import io.smnp.ext.io.function.ReadFunction -import org.pf4j.Extension - -@Extension -class IoModule : NativeModuleProvider("smnp.io") { - override fun functions() = listOf(PrintlnFunction(), ReadFunction()) -} \ No newline at end of file diff --git a/modules/io/src/main/kotlin/io/smnp/ext/io/function/PrintlnFunction.kt b/modules/io/src/main/kotlin/io/smnp/ext/io/function/PrintlnFunction.kt deleted file mode 100644 index 081fe9c..0000000 --- a/modules/io/src/main/kotlin/io/smnp/ext/io/function/PrintlnFunction.kt +++ /dev/null @@ -1,16 +0,0 @@ -package io.smnp.ext.io.function - -import io.smnp.callable.function.Function -import io.smnp.callable.function.FunctionDefinitionTool -import io.smnp.callable.signature.Signature.Companion.vararg -import io.smnp.type.matcher.Matcher.Companion.anyType -import io.smnp.type.model.Value - -class PrintlnFunction : Function("println") { - override fun define(new: FunctionDefinitionTool) { - new function vararg(anyType()) body { _, (vararg) -> - println((vararg.value as List).joinToString("") { it.stringify() }) - Value.void() - } - } -} \ No newline at end of file diff --git a/modules/io/src/main/kotlin/io/smnp/ext/io/function/ReadFunction.kt b/modules/io/src/main/kotlin/io/smnp/ext/io/function/ReadFunction.kt deleted file mode 100644 index c307b52..0000000 --- a/modules/io/src/main/kotlin/io/smnp/ext/io/function/ReadFunction.kt +++ /dev/null @@ -1,18 +0,0 @@ -package io.smnp.ext.io.function - -import io.smnp.callable.function.Function -import io.smnp.callable.function.FunctionDefinitionTool -import io.smnp.callable.signature.Signature.Companion.simple -import io.smnp.type.enumeration.DataType.STRING -import io.smnp.type.matcher.Matcher.Companion.ofType -import io.smnp.type.matcher.Matcher.Companion.optional -import io.smnp.type.model.Value - -class ReadFunction : Function("read") { - override fun define(new: FunctionDefinitionTool) { - new function simple(optional(ofType(STRING))) body { _, arguments -> - arguments.getOrNull(0)?.let { print(it.value) } - Value.string(readLine() ?: "") - } - } -} \ No newline at end of file diff --git a/modules/lang/src/main/kotlin/com/bartlomiejpluta/smnp/ext/lang/LangModule.kt b/modules/lang/src/main/kotlin/com/bartlomiejpluta/smnp/ext/lang/LangModule.kt new file mode 100644 index 0000000..91cfa61 --- /dev/null +++ b/modules/lang/src/main/kotlin/com/bartlomiejpluta/smnp/ext/lang/LangModule.kt @@ -0,0 +1,17 @@ +package com.bartlomiejpluta.smnp.ext.lang + +import com.bartlomiejpluta.smnp.ext.lang.constructor.IntConstructor +import com.bartlomiejpluta.smnp.ext.lang.constructor.NoteConstructor +import com.bartlomiejpluta.smnp.ext.lang.function.TypeOfFunction +import com.bartlomiejpluta.smnp.ext.lang.method.CharAtMethod +import com.bartlomiejpluta.smnp.ext.lang.method.ListAccessMethod +import com.bartlomiejpluta.smnp.ext.lang.method.MapAccessMethod +import com.bartlomiejpluta.smnp.ext.lang.method.StringifyMethod +import com.bartlomiejpluta.smnp.ext.provider.NativeModuleProvider +import org.pf4j.Extension + +@Extension +class LangModule : NativeModuleProvider("smnp.lang") { + override fun functions() = listOf(IntConstructor(), NoteConstructor(), TypeOfFunction()) + override fun methods() = listOf(ListAccessMethod(), MapAccessMethod(), CharAtMethod(), StringifyMethod()) +} \ No newline at end of file diff --git a/modules/lang/src/main/kotlin/com/bartlomiejpluta/smnp/ext/lang/constructor/IntConstructor.kt b/modules/lang/src/main/kotlin/com/bartlomiejpluta/smnp/ext/lang/constructor/IntConstructor.kt new file mode 100644 index 0000000..e275a06 --- /dev/null +++ b/modules/lang/src/main/kotlin/com/bartlomiejpluta/smnp/ext/lang/constructor/IntConstructor.kt @@ -0,0 +1,21 @@ +package com.bartlomiejpluta.smnp.ext.lang.constructor + +import com.bartlomiejpluta.smnp.callable.function.Function +import com.bartlomiejpluta.smnp.callable.function.FunctionDefinitionTool +import com.bartlomiejpluta.smnp.callable.signature.Signature.Companion.simple +import com.bartlomiejpluta.smnp.type.enumeration.DataType.FLOAT +import com.bartlomiejpluta.smnp.type.enumeration.DataType.INT +import com.bartlomiejpluta.smnp.type.matcher.Matcher.Companion.ofType +import com.bartlomiejpluta.smnp.type.model.Value + +class IntConstructor : Function("Int") { + override fun define(new: FunctionDefinitionTool) { + new function simple(ofType(INT)) body { _, (int) -> + int + } + + new function simple(ofType(FLOAT)) body { _, (float) -> + Value.int((float.value as Float).toInt()) + } + } +} \ No newline at end of file diff --git a/modules/lang/src/main/kotlin/io/smnp/ext/lang/constructor/NoteConstructor.kt b/modules/lang/src/main/kotlin/com/bartlomiejpluta/smnp/ext/lang/constructor/NoteConstructor.kt similarity index 63% rename from modules/lang/src/main/kotlin/io/smnp/ext/lang/constructor/NoteConstructor.kt rename to modules/lang/src/main/kotlin/com/bartlomiejpluta/smnp/ext/lang/constructor/NoteConstructor.kt index 388a07e..2e77403 100644 --- a/modules/lang/src/main/kotlin/io/smnp/ext/lang/constructor/NoteConstructor.kt +++ b/modules/lang/src/main/kotlin/com/bartlomiejpluta/smnp/ext/lang/constructor/NoteConstructor.kt @@ -1,14 +1,14 @@ -package io.smnp.ext.lang.constructor +package com.bartlomiejpluta.smnp.ext.lang.constructor -import io.smnp.callable.function.Function -import io.smnp.callable.function.FunctionDefinitionTool -import io.smnp.callable.signature.Signature.Companion.simple -import io.smnp.data.entity.Note -import io.smnp.data.enumeration.Pitch -import io.smnp.math.Fraction -import io.smnp.type.enumeration.DataType.* -import io.smnp.type.matcher.Matcher.Companion.ofType -import io.smnp.type.model.Value +import com.bartlomiejpluta.smnp.callable.function.Function +import com.bartlomiejpluta.smnp.callable.function.FunctionDefinitionTool +import com.bartlomiejpluta.smnp.callable.signature.Signature.Companion.simple +import com.bartlomiejpluta.smnp.data.entity.Note +import com.bartlomiejpluta.smnp.data.enumeration.Pitch +import com.bartlomiejpluta.smnp.math.Fraction +import com.bartlomiejpluta.smnp.type.enumeration.DataType.* +import com.bartlomiejpluta.smnp.type.matcher.Matcher.Companion.ofType +import com.bartlomiejpluta.smnp.type.model.Value class NoteConstructor : Function("Note") { override fun define(new: FunctionDefinitionTool) { diff --git a/modules/lang/src/main/kotlin/com/bartlomiejpluta/smnp/ext/lang/function/TypeOfFunction.kt b/modules/lang/src/main/kotlin/com/bartlomiejpluta/smnp/ext/lang/function/TypeOfFunction.kt new file mode 100644 index 0000000..9e3a69e --- /dev/null +++ b/modules/lang/src/main/kotlin/com/bartlomiejpluta/smnp/ext/lang/function/TypeOfFunction.kt @@ -0,0 +1,15 @@ +package com.bartlomiejpluta.smnp.ext.lang.function + +import com.bartlomiejpluta.smnp.callable.function.Function +import com.bartlomiejpluta.smnp.callable.function.FunctionDefinitionTool +import com.bartlomiejpluta.smnp.callable.signature.Signature.Companion.simple +import com.bartlomiejpluta.smnp.type.matcher.Matcher.Companion.anyType +import com.bartlomiejpluta.smnp.type.model.Value + +class TypeOfFunction : Function("typeOf") { + override fun define(new: FunctionDefinitionTool) { + new function simple(anyType()) body { _, (obj) -> + Value.string(obj.typeName) + } + } +} \ No newline at end of file diff --git a/modules/lang/src/main/kotlin/com/bartlomiejpluta/smnp/ext/lang/method/CharAtMethod.kt b/modules/lang/src/main/kotlin/com/bartlomiejpluta/smnp/ext/lang/method/CharAtMethod.kt new file mode 100644 index 0000000..8510c6f --- /dev/null +++ b/modules/lang/src/main/kotlin/com/bartlomiejpluta/smnp/ext/lang/method/CharAtMethod.kt @@ -0,0 +1,18 @@ +package com.bartlomiejpluta.smnp.ext.lang.method + +import com.bartlomiejpluta.smnp.callable.method.Method +import com.bartlomiejpluta.smnp.callable.method.MethodDefinitionTool +import com.bartlomiejpluta.smnp.callable.signature.Signature.Companion.simple +import com.bartlomiejpluta.smnp.error.EvaluationException +import com.bartlomiejpluta.smnp.type.enumeration.DataType.INT +import com.bartlomiejpluta.smnp.type.enumeration.DataType.STRING +import com.bartlomiejpluta.smnp.type.matcher.Matcher.Companion.ofType +import com.bartlomiejpluta.smnp.type.model.Value + +class CharAtMethod : Method(ofType(STRING),"charAt") { + override fun define(new: MethodDefinitionTool) { + new method simple(ofType(INT)) body { _, obj, (index) -> + Value.string((obj.value as String).getOrNull(index.value as Int)?.toString() ?: throw EvaluationException("Index '${index.value}' runs out of string bounds")) + } + } +} \ No newline at end of file diff --git a/modules/lang/src/main/kotlin/com/bartlomiejpluta/smnp/ext/lang/method/ListAccessMethod.kt b/modules/lang/src/main/kotlin/com/bartlomiejpluta/smnp/ext/lang/method/ListAccessMethod.kt new file mode 100644 index 0000000..341d4c1 --- /dev/null +++ b/modules/lang/src/main/kotlin/com/bartlomiejpluta/smnp/ext/lang/method/ListAccessMethod.kt @@ -0,0 +1,25 @@ +package com.bartlomiejpluta.smnp.ext.lang.method + +import com.bartlomiejpluta.smnp.callable.method.Method +import com.bartlomiejpluta.smnp.callable.method.MethodDefinitionTool +import com.bartlomiejpluta.smnp.callable.signature.Signature.Companion.simple +import com.bartlomiejpluta.smnp.error.EvaluationException +import com.bartlomiejpluta.smnp.type.enumeration.DataType.INT +import com.bartlomiejpluta.smnp.type.enumeration.DataType.LIST +import com.bartlomiejpluta.smnp.type.matcher.Matcher.Companion.ofType +import com.bartlomiejpluta.smnp.type.model.Value + +class ListAccessMethod : Method(ofType(LIST), "get") { + override fun define(new: MethodDefinitionTool) { + new method simple(ofType(INT)) body { _, value, (index) -> + val list = value.value as List + val i = index.value as Int + + if(i >= list.size) { + throw EvaluationException("Index '$i' runs out of array bounds") + } + + list[i] + } + } +} \ No newline at end of file diff --git a/modules/lang/src/main/kotlin/com/bartlomiejpluta/smnp/ext/lang/method/MapAccessMethod.kt b/modules/lang/src/main/kotlin/com/bartlomiejpluta/smnp/ext/lang/method/MapAccessMethod.kt new file mode 100644 index 0000000..52dc800 --- /dev/null +++ b/modules/lang/src/main/kotlin/com/bartlomiejpluta/smnp/ext/lang/method/MapAccessMethod.kt @@ -0,0 +1,19 @@ +package com.bartlomiejpluta.smnp.ext.lang.method + +import com.bartlomiejpluta.smnp.callable.method.Method +import com.bartlomiejpluta.smnp.callable.method.MethodDefinitionTool +import com.bartlomiejpluta.smnp.callable.signature.Signature.Companion.simple +import com.bartlomiejpluta.smnp.error.EvaluationException +import com.bartlomiejpluta.smnp.type.enumeration.DataType.MAP +import com.bartlomiejpluta.smnp.type.matcher.Matcher.Companion.anyType +import com.bartlomiejpluta.smnp.type.matcher.Matcher.Companion.ofType +import com.bartlomiejpluta.smnp.type.model.Value + +class MapAccessMethod : Method(ofType(MAP), "get") { + override fun define(new: MethodDefinitionTool) { + new method simple(anyType()) body { _, obj, (key) -> + val map = (obj.value as Map) + map[key] ?: throw EvaluationException("Key '${key.value}' not found") + } + } +} \ No newline at end of file diff --git a/modules/lang/src/main/kotlin/com/bartlomiejpluta/smnp/ext/lang/method/StringifyMethod.kt b/modules/lang/src/main/kotlin/com/bartlomiejpluta/smnp/ext/lang/method/StringifyMethod.kt new file mode 100644 index 0000000..c231d70 --- /dev/null +++ b/modules/lang/src/main/kotlin/com/bartlomiejpluta/smnp/ext/lang/method/StringifyMethod.kt @@ -0,0 +1,15 @@ +package com.bartlomiejpluta.smnp.ext.lang.method + +import com.bartlomiejpluta.smnp.callable.method.Method +import com.bartlomiejpluta.smnp.callable.method.MethodDefinitionTool +import com.bartlomiejpluta.smnp.callable.signature.Signature.Companion.simple +import com.bartlomiejpluta.smnp.type.matcher.Matcher.Companion.anyType +import com.bartlomiejpluta.smnp.type.model.Value + +class StringifyMethod : Method(anyType(), "toString") { + override fun define(new: MethodDefinitionTool) { + new method simple() body { _, obj, _ -> + Value.string(obj.stringify()) + } + } +} \ No newline at end of file diff --git a/modules/lang/src/main/kotlin/io/smnp/ext/lang/LangModule.kt b/modules/lang/src/main/kotlin/io/smnp/ext/lang/LangModule.kt deleted file mode 100644 index a4942f4..0000000 --- a/modules/lang/src/main/kotlin/io/smnp/ext/lang/LangModule.kt +++ /dev/null @@ -1,17 +0,0 @@ -package io.smnp.ext.lang - -import io.smnp.ext.provider.NativeModuleProvider -import io.smnp.ext.lang.constructor.IntConstructor -import io.smnp.ext.lang.constructor.NoteConstructor -import io.smnp.ext.lang.function.TypeOfFunction -import io.smnp.ext.lang.method.CharAtMethod -import io.smnp.ext.lang.method.ListAccessMethod -import io.smnp.ext.lang.method.MapAccessMethod -import io.smnp.ext.lang.method.StringifyMethod -import org.pf4j.Extension - -@Extension -class LangModule : NativeModuleProvider("smnp.lang") { - override fun functions() = listOf(IntConstructor(), NoteConstructor(), TypeOfFunction()) - override fun methods() = listOf(ListAccessMethod(), MapAccessMethod(), CharAtMethod(), StringifyMethod()) -} \ No newline at end of file diff --git a/modules/lang/src/main/kotlin/io/smnp/ext/lang/constructor/IntConstructor.kt b/modules/lang/src/main/kotlin/io/smnp/ext/lang/constructor/IntConstructor.kt deleted file mode 100644 index 37593eb..0000000 --- a/modules/lang/src/main/kotlin/io/smnp/ext/lang/constructor/IntConstructor.kt +++ /dev/null @@ -1,21 +0,0 @@ -package io.smnp.ext.lang.constructor - -import io.smnp.callable.function.Function -import io.smnp.callable.function.FunctionDefinitionTool -import io.smnp.callable.signature.Signature.Companion.simple -import io.smnp.type.enumeration.DataType.FLOAT -import io.smnp.type.enumeration.DataType.INT -import io.smnp.type.matcher.Matcher.Companion.ofType -import io.smnp.type.model.Value - -class IntConstructor : Function("Int") { - override fun define(new: FunctionDefinitionTool) { - new function simple(ofType(INT)) body { _, (int) -> - int - } - - new function simple(ofType(FLOAT)) body { _, (float) -> - Value.int((float.value as Float).toInt()) - } - } -} \ No newline at end of file diff --git a/modules/lang/src/main/kotlin/io/smnp/ext/lang/function/TypeOfFunction.kt b/modules/lang/src/main/kotlin/io/smnp/ext/lang/function/TypeOfFunction.kt deleted file mode 100644 index e839010..0000000 --- a/modules/lang/src/main/kotlin/io/smnp/ext/lang/function/TypeOfFunction.kt +++ /dev/null @@ -1,15 +0,0 @@ -package io.smnp.ext.lang.function - -import io.smnp.callable.function.Function -import io.smnp.callable.function.FunctionDefinitionTool -import io.smnp.callable.signature.Signature.Companion.simple -import io.smnp.type.matcher.Matcher.Companion.anyType -import io.smnp.type.model.Value - -class TypeOfFunction : Function("typeOf") { - override fun define(new: FunctionDefinitionTool) { - new function simple(anyType()) body { _, (obj) -> - Value.string(obj.typeName) - } - } -} \ No newline at end of file diff --git a/modules/lang/src/main/kotlin/io/smnp/ext/lang/method/CharAtMethod.kt b/modules/lang/src/main/kotlin/io/smnp/ext/lang/method/CharAtMethod.kt deleted file mode 100644 index 20e0988..0000000 --- a/modules/lang/src/main/kotlin/io/smnp/ext/lang/method/CharAtMethod.kt +++ /dev/null @@ -1,18 +0,0 @@ -package io.smnp.ext.lang.method - -import io.smnp.callable.method.Method -import io.smnp.callable.method.MethodDefinitionTool -import io.smnp.callable.signature.Signature.Companion.simple -import io.smnp.error.EvaluationException -import io.smnp.type.enumeration.DataType.INT -import io.smnp.type.enumeration.DataType.STRING -import io.smnp.type.matcher.Matcher.Companion.ofType -import io.smnp.type.model.Value - -class CharAtMethod : Method(ofType(STRING),"charAt") { - override fun define(new: MethodDefinitionTool) { - new method simple(ofType(INT)) body { _, obj, (index) -> - Value.string((obj.value as String).getOrNull(index.value as Int)?.toString() ?: throw EvaluationException("Index '${index.value}' runs out of string bounds")) - } - } -} \ No newline at end of file diff --git a/modules/lang/src/main/kotlin/io/smnp/ext/lang/method/ListAccessMethod.kt b/modules/lang/src/main/kotlin/io/smnp/ext/lang/method/ListAccessMethod.kt deleted file mode 100644 index e7d3962..0000000 --- a/modules/lang/src/main/kotlin/io/smnp/ext/lang/method/ListAccessMethod.kt +++ /dev/null @@ -1,25 +0,0 @@ -package io.smnp.ext.lang.method - -import io.smnp.callable.method.Method -import io.smnp.callable.method.MethodDefinitionTool -import io.smnp.callable.signature.Signature.Companion.simple -import io.smnp.error.EvaluationException -import io.smnp.type.enumeration.DataType.INT -import io.smnp.type.enumeration.DataType.LIST -import io.smnp.type.matcher.Matcher.Companion.ofType -import io.smnp.type.model.Value - -class ListAccessMethod : Method(ofType(LIST), "get") { - override fun define(new: MethodDefinitionTool) { - new method simple(ofType(INT)) body { _, value, (index) -> - val list = value.value as List - val i = index.value as Int - - if(i >= list.size) { - throw EvaluationException("Index '$i' runs out of array bounds") - } - - list[i] - } - } -} \ No newline at end of file diff --git a/modules/lang/src/main/kotlin/io/smnp/ext/lang/method/MapAccessMethod.kt b/modules/lang/src/main/kotlin/io/smnp/ext/lang/method/MapAccessMethod.kt deleted file mode 100644 index 369c940..0000000 --- a/modules/lang/src/main/kotlin/io/smnp/ext/lang/method/MapAccessMethod.kt +++ /dev/null @@ -1,19 +0,0 @@ -package io.smnp.ext.lang.method - -import io.smnp.callable.method.Method -import io.smnp.callable.method.MethodDefinitionTool -import io.smnp.callable.signature.Signature.Companion.simple -import io.smnp.error.EvaluationException -import io.smnp.type.enumeration.DataType.MAP -import io.smnp.type.matcher.Matcher.Companion.anyType -import io.smnp.type.matcher.Matcher.Companion.ofType -import io.smnp.type.model.Value - -class MapAccessMethod : Method(ofType(MAP), "get") { - override fun define(new: MethodDefinitionTool) { - new method simple(anyType()) body { _, obj, (key) -> - val map = (obj.value as Map) - map[key] ?: throw EvaluationException("Key '${key.value}' not found") - } - } -} \ No newline at end of file diff --git a/modules/lang/src/main/kotlin/io/smnp/ext/lang/method/StringifyMethod.kt b/modules/lang/src/main/kotlin/io/smnp/ext/lang/method/StringifyMethod.kt deleted file mode 100644 index 06ae3a5..0000000 --- a/modules/lang/src/main/kotlin/io/smnp/ext/lang/method/StringifyMethod.kt +++ /dev/null @@ -1,15 +0,0 @@ -package io.smnp.ext.lang.method - -import io.smnp.callable.method.Method -import io.smnp.callable.method.MethodDefinitionTool -import io.smnp.callable.signature.Signature.Companion.simple -import io.smnp.type.matcher.Matcher.Companion.anyType -import io.smnp.type.model.Value - -class StringifyMethod : Method(anyType(), "toString") { - override fun define(new: MethodDefinitionTool) { - new method simple() body { _, obj, _ -> - Value.string(obj.stringify()) - } - } -} \ No newline at end of file diff --git a/modules/math/src/main/kotlin/io/smnp/ext/math/MathModule.kt b/modules/math/src/main/kotlin/com/bartlomiejpluta/smnp/ext/math/MathModule.kt similarity index 50% rename from modules/math/src/main/kotlin/io/smnp/ext/math/MathModule.kt rename to modules/math/src/main/kotlin/com/bartlomiejpluta/smnp/ext/math/MathModule.kt index 9a7e24b..d75a604 100644 --- a/modules/math/src/main/kotlin/io/smnp/ext/math/MathModule.kt +++ b/modules/math/src/main/kotlin/com/bartlomiejpluta/smnp/ext/math/MathModule.kt @@ -1,8 +1,8 @@ -package io.smnp.ext.math +package com.bartlomiejpluta.smnp.ext.math -import io.smnp.ext.math.function.ModuloFunction -import io.smnp.ext.math.function.RandomFunction -import io.smnp.ext.provider.HybridModuleProvider +import com.bartlomiejpluta.smnp.ext.math.function.ModuloFunction +import com.bartlomiejpluta.smnp.ext.math.function.RandomFunction +import com.bartlomiejpluta.smnp.ext.provider.HybridModuleProvider import org.pf4j.Extension @Extension diff --git a/modules/math/src/main/kotlin/com/bartlomiejpluta/smnp/ext/math/function/ModuloFunction.kt b/modules/math/src/main/kotlin/com/bartlomiejpluta/smnp/ext/math/function/ModuloFunction.kt new file mode 100644 index 0000000..92d9bcc --- /dev/null +++ b/modules/math/src/main/kotlin/com/bartlomiejpluta/smnp/ext/math/function/ModuloFunction.kt @@ -0,0 +1,16 @@ +package com.bartlomiejpluta.smnp.ext.math.function + +import com.bartlomiejpluta.smnp.callable.function.Function +import com.bartlomiejpluta.smnp.callable.function.FunctionDefinitionTool +import com.bartlomiejpluta.smnp.callable.signature.Signature.Companion.simple +import com.bartlomiejpluta.smnp.type.enumeration.DataType.INT +import com.bartlomiejpluta.smnp.type.matcher.Matcher.Companion.ofType +import com.bartlomiejpluta.smnp.type.model.Value + +class ModuloFunction : Function("mod") { + override fun define(new: FunctionDefinitionTool) { + new function simple(ofType(INT), ofType(INT)) body { _, (a, b) -> + Value.int(a.value as Int % b.value as Int) + } + } +} \ No newline at end of file diff --git a/modules/math/src/main/kotlin/com/bartlomiejpluta/smnp/ext/math/function/RandomFunction.kt b/modules/math/src/main/kotlin/com/bartlomiejpluta/smnp/ext/math/function/RandomFunction.kt new file mode 100644 index 0000000..caf2e01 --- /dev/null +++ b/modules/math/src/main/kotlin/com/bartlomiejpluta/smnp/ext/math/function/RandomFunction.kt @@ -0,0 +1,15 @@ +package com.bartlomiejpluta.smnp.ext.math.function + +import com.bartlomiejpluta.smnp.callable.function.Function +import com.bartlomiejpluta.smnp.callable.function.FunctionDefinitionTool +import com.bartlomiejpluta.smnp.callable.signature.Signature.Companion.simple +import com.bartlomiejpluta.smnp.type.model.Value +import kotlin.random.Random + +class RandomFunction : Function("random") { + override fun define(new: FunctionDefinitionTool) { + new function simple() body { _, _ -> + Value.float(Random.nextFloat()) + } + } +} \ No newline at end of file diff --git a/modules/math/src/main/kotlin/io/smnp/ext/math/function/ModuloFunction.kt b/modules/math/src/main/kotlin/io/smnp/ext/math/function/ModuloFunction.kt deleted file mode 100644 index f326802..0000000 --- a/modules/math/src/main/kotlin/io/smnp/ext/math/function/ModuloFunction.kt +++ /dev/null @@ -1,16 +0,0 @@ -package io.smnp.ext.math.function - -import io.smnp.callable.function.Function -import io.smnp.callable.function.FunctionDefinitionTool -import io.smnp.callable.signature.Signature.Companion.simple -import io.smnp.type.enumeration.DataType.INT -import io.smnp.type.matcher.Matcher.Companion.ofType -import io.smnp.type.model.Value - -class ModuloFunction : Function("mod") { - override fun define(new: FunctionDefinitionTool) { - new function simple(ofType(INT), ofType(INT)) body { _, (a, b) -> - Value.int(a.value as Int % b.value as Int) - } - } -} \ No newline at end of file diff --git a/modules/math/src/main/kotlin/io/smnp/ext/math/function/RandomFunction.kt b/modules/math/src/main/kotlin/io/smnp/ext/math/function/RandomFunction.kt deleted file mode 100644 index 5d610a3..0000000 --- a/modules/math/src/main/kotlin/io/smnp/ext/math/function/RandomFunction.kt +++ /dev/null @@ -1,15 +0,0 @@ -package io.smnp.ext.math.function - -import io.smnp.callable.function.Function -import io.smnp.callable.function.FunctionDefinitionTool -import io.smnp.callable.signature.Signature.Companion.simple -import io.smnp.type.model.Value -import kotlin.random.Random - -class RandomFunction : Function("random") { - override fun define(new: FunctionDefinitionTool) { - new function simple() body { _, _ -> - Value.float(Random.nextFloat()) - } - } -} \ No newline at end of file diff --git a/modules/mic/src/main/kotlin/com/bartlomiejpluta/smnp/ext/mic/MicrophoneModule.kt b/modules/mic/src/main/kotlin/com/bartlomiejpluta/smnp/ext/mic/MicrophoneModule.kt new file mode 100644 index 0000000..6bf70f3 --- /dev/null +++ b/modules/mic/src/main/kotlin/com/bartlomiejpluta/smnp/ext/mic/MicrophoneModule.kt @@ -0,0 +1,11 @@ +package com.bartlomiejpluta.smnp.ext.mic + +import com.bartlomiejpluta.smnp.ext.mic.function.MicLevelFunction +import com.bartlomiejpluta.smnp.ext.mic.function.WaitFunction +import com.bartlomiejpluta.smnp.ext.provider.NativeModuleProvider +import org.pf4j.Extension + +@Extension +class MicrophoneModule : NativeModuleProvider("smnp.audio.mic") { + override fun functions() = listOf(WaitFunction(), MicLevelFunction()) +} \ No newline at end of file diff --git a/modules/mic/src/main/kotlin/com/bartlomiejpluta/smnp/ext/mic/function/MicLevelFunction.kt b/modules/mic/src/main/kotlin/com/bartlomiejpluta/smnp/ext/mic/function/MicLevelFunction.kt new file mode 100644 index 0000000..8a80a8f --- /dev/null +++ b/modules/mic/src/main/kotlin/com/bartlomiejpluta/smnp/ext/mic/function/MicLevelFunction.kt @@ -0,0 +1,17 @@ +package com.bartlomiejpluta.smnp.ext.mic.function + +import com.bartlomiejpluta.smnp.callable.function.Function +import com.bartlomiejpluta.smnp.callable.function.FunctionDefinitionTool +import com.bartlomiejpluta.smnp.callable.signature.Signature.Companion.simple +import com.bartlomiejpluta.smnp.ext.mic.lib.loop.TestMicrophoneLevelLoop +import com.bartlomiejpluta.smnp.type.model.Value + +class MicLevelFunction : Function("micLevel") { + override fun define(new: FunctionDefinitionTool) { + new function simple() body { _, _ -> + val printer = TestMicrophoneLevelLoop() + printer.run() + Value.void() + } + } +} \ No newline at end of file diff --git a/modules/mic/src/main/kotlin/com/bartlomiejpluta/smnp/ext/mic/function/WaitFunction.kt b/modules/mic/src/main/kotlin/com/bartlomiejpluta/smnp/ext/mic/function/WaitFunction.kt new file mode 100644 index 0000000..6e46b58 --- /dev/null +++ b/modules/mic/src/main/kotlin/com/bartlomiejpluta/smnp/ext/mic/function/WaitFunction.kt @@ -0,0 +1,22 @@ +package com.bartlomiejpluta.smnp.ext.mic.function + +import com.bartlomiejpluta.smnp.callable.function.Function +import com.bartlomiejpluta.smnp.callable.function.FunctionDefinitionTool +import com.bartlomiejpluta.smnp.callable.signature.Signature.Companion.simple +import com.bartlomiejpluta.smnp.ext.mic.lib.loop.SoundListenerLoop +import com.bartlomiejpluta.smnp.type.enumeration.DataType.INT +import com.bartlomiejpluta.smnp.type.matcher.Matcher.Companion.ofType +import com.bartlomiejpluta.smnp.type.model.Value + +class WaitFunction : Function("wait") { + override fun define(new: FunctionDefinitionTool) { + new function simple(ofType(INT), ofType(INT)) body { _, (inThreshold, outThreshold) -> + val loop = SoundListenerLoop( + inThreshold.value as Int, + outThreshold.value as Int + ) + loop.run() + Value.void() + } + } +} \ No newline at end of file diff --git a/modules/mic/src/main/kotlin/io/smnp/ext/mic/lib/loop/MicrophoneLevelLoop.kt b/modules/mic/src/main/kotlin/com/bartlomiejpluta/smnp/ext/mic/lib/loop/MicrophoneLevelLoop.kt similarity index 92% rename from modules/mic/src/main/kotlin/io/smnp/ext/mic/lib/loop/MicrophoneLevelLoop.kt rename to modules/mic/src/main/kotlin/com/bartlomiejpluta/smnp/ext/mic/lib/loop/MicrophoneLevelLoop.kt index 125eacf..44f773c 100644 --- a/modules/mic/src/main/kotlin/io/smnp/ext/mic/lib/loop/MicrophoneLevelLoop.kt +++ b/modules/mic/src/main/kotlin/com/bartlomiejpluta/smnp/ext/mic/lib/loop/MicrophoneLevelLoop.kt @@ -1,6 +1,6 @@ -package io.smnp.ext.mic.lib.loop +package com.bartlomiejpluta.smnp.ext.mic.lib.loop -import io.smnp.error.CustomException +import com.bartlomiejpluta.smnp.error.CustomException import javax.sound.sampled.AudioFormat import javax.sound.sampled.AudioSystem import javax.sound.sampled.DataLine diff --git a/modules/mic/src/main/kotlin/io/smnp/ext/mic/lib/loop/SoundListenerLoop.kt b/modules/mic/src/main/kotlin/com/bartlomiejpluta/smnp/ext/mic/lib/loop/SoundListenerLoop.kt similarity index 90% rename from modules/mic/src/main/kotlin/io/smnp/ext/mic/lib/loop/SoundListenerLoop.kt rename to modules/mic/src/main/kotlin/com/bartlomiejpluta/smnp/ext/mic/lib/loop/SoundListenerLoop.kt index 497342f..f849f7b 100644 --- a/modules/mic/src/main/kotlin/io/smnp/ext/mic/lib/loop/SoundListenerLoop.kt +++ b/modules/mic/src/main/kotlin/com/bartlomiejpluta/smnp/ext/mic/lib/loop/SoundListenerLoop.kt @@ -1,4 +1,4 @@ -package io.smnp.ext.mic.lib.loop +package com.bartlomiejpluta.smnp.ext.mic.lib.loop class SoundListenerLoop(private val inThreshold: Int, private val outThreshold: Int) : MicrophoneLevelLoop() { private var noiseReached = false diff --git a/modules/mic/src/main/kotlin/io/smnp/ext/mic/lib/loop/TestMicrophoneLevelLoop.kt b/modules/mic/src/main/kotlin/com/bartlomiejpluta/smnp/ext/mic/lib/loop/TestMicrophoneLevelLoop.kt similarity index 90% rename from modules/mic/src/main/kotlin/io/smnp/ext/mic/lib/loop/TestMicrophoneLevelLoop.kt rename to modules/mic/src/main/kotlin/com/bartlomiejpluta/smnp/ext/mic/lib/loop/TestMicrophoneLevelLoop.kt index 523da58..5f41f22 100644 --- a/modules/mic/src/main/kotlin/io/smnp/ext/mic/lib/loop/TestMicrophoneLevelLoop.kt +++ b/modules/mic/src/main/kotlin/com/bartlomiejpluta/smnp/ext/mic/lib/loop/TestMicrophoneLevelLoop.kt @@ -1,4 +1,4 @@ -package io.smnp.ext.mic.lib.loop +package com.bartlomiejpluta.smnp.ext.mic.lib.loop import kotlin.math.min diff --git a/modules/mic/src/main/kotlin/io/smnp/ext/mic/MicrophoneModule.kt b/modules/mic/src/main/kotlin/io/smnp/ext/mic/MicrophoneModule.kt deleted file mode 100644 index daed255..0000000 --- a/modules/mic/src/main/kotlin/io/smnp/ext/mic/MicrophoneModule.kt +++ /dev/null @@ -1,11 +0,0 @@ -package io.smnp.ext.mic - -import io.smnp.ext.provider.NativeModuleProvider -import io.smnp.ext.mic.function.MicLevelFunction -import io.smnp.ext.mic.function.WaitFunction -import org.pf4j.Extension - -@Extension -class MicrophoneModule : NativeModuleProvider("smnp.audio.mic") { - override fun functions() = listOf(WaitFunction(), MicLevelFunction()) -} \ No newline at end of file diff --git a/modules/mic/src/main/kotlin/io/smnp/ext/mic/function/MicLevelFunction.kt b/modules/mic/src/main/kotlin/io/smnp/ext/mic/function/MicLevelFunction.kt deleted file mode 100644 index c16f063..0000000 --- a/modules/mic/src/main/kotlin/io/smnp/ext/mic/function/MicLevelFunction.kt +++ /dev/null @@ -1,17 +0,0 @@ -package io.smnp.ext.mic.function - -import io.smnp.callable.function.Function -import io.smnp.callable.function.FunctionDefinitionTool -import io.smnp.callable.signature.Signature.Companion.simple -import io.smnp.ext.mic.lib.loop.TestMicrophoneLevelLoop -import io.smnp.type.model.Value - -class MicLevelFunction : Function("micLevel") { - override fun define(new: FunctionDefinitionTool) { - new function simple() body { _, _ -> - val printer = TestMicrophoneLevelLoop() - printer.run() - Value.void() - } - } -} \ No newline at end of file diff --git a/modules/mic/src/main/kotlin/io/smnp/ext/mic/function/WaitFunction.kt b/modules/mic/src/main/kotlin/io/smnp/ext/mic/function/WaitFunction.kt deleted file mode 100644 index 000c306..0000000 --- a/modules/mic/src/main/kotlin/io/smnp/ext/mic/function/WaitFunction.kt +++ /dev/null @@ -1,22 +0,0 @@ -package io.smnp.ext.mic.function - -import io.smnp.callable.function.Function -import io.smnp.callable.function.FunctionDefinitionTool -import io.smnp.callable.signature.Signature.Companion.simple -import io.smnp.ext.mic.lib.loop.SoundListenerLoop -import io.smnp.type.enumeration.DataType.INT -import io.smnp.type.matcher.Matcher.Companion.ofType -import io.smnp.type.model.Value - -class WaitFunction : Function("wait") { - override fun define(new: FunctionDefinitionTool) { - new function simple(ofType(INT), ofType(INT)) body { _, (inThreshold, outThreshold) -> - val loop = SoundListenerLoop( - inThreshold.value as Int, - outThreshold.value as Int - ) - loop.run() - Value.void() - } - } -} \ No newline at end of file diff --git a/modules/midi/src/main/kotlin/io/smnp/ext/midi/MidiModule.kt b/modules/midi/src/main/kotlin/com/bartlomiejpluta/smnp/ext/midi/MidiModule.kt similarity index 56% rename from modules/midi/src/main/kotlin/io/smnp/ext/midi/MidiModule.kt rename to modules/midi/src/main/kotlin/com/bartlomiejpluta/smnp/ext/midi/MidiModule.kt index e29a344..c3a31ce 100644 --- a/modules/midi/src/main/kotlin/io/smnp/ext/midi/MidiModule.kt +++ b/modules/midi/src/main/kotlin/com/bartlomiejpluta/smnp/ext/midi/MidiModule.kt @@ -1,10 +1,10 @@ -package io.smnp.ext.midi +package com.bartlomiejpluta.smnp.ext.midi -import io.smnp.environment.Environment -import io.smnp.ext.midi.function.MidiFunction -import io.smnp.ext.midi.function.MidiHelpFunction -import io.smnp.ext.midi.lib.midi.Midi -import io.smnp.ext.provider.HybridModuleProvider +import com.bartlomiejpluta.smnp.environment.Environment +import com.bartlomiejpluta.smnp.ext.midi.function.MidiFunction +import com.bartlomiejpluta.smnp.ext.midi.function.MidiHelpFunction +import com.bartlomiejpluta.smnp.ext.midi.lib.midi.Midi +import com.bartlomiejpluta.smnp.ext.provider.HybridModuleProvider import org.pf4j.Extension @Extension diff --git a/modules/midi/src/main/kotlin/io/smnp/ext/midi/function/MidiFunction.kt b/modules/midi/src/main/kotlin/com/bartlomiejpluta/smnp/ext/midi/function/MidiFunction.kt similarity index 72% rename from modules/midi/src/main/kotlin/io/smnp/ext/midi/function/MidiFunction.kt rename to modules/midi/src/main/kotlin/com/bartlomiejpluta/smnp/ext/midi/function/MidiFunction.kt index 4457a9f..18d82e3 100644 --- a/modules/midi/src/main/kotlin/io/smnp/ext/midi/function/MidiFunction.kt +++ b/modules/midi/src/main/kotlin/com/bartlomiejpluta/smnp/ext/midi/function/MidiFunction.kt @@ -1,19 +1,19 @@ -package io.smnp.ext.midi.function +package com.bartlomiejpluta.smnp.ext.midi.function -import io.smnp.callable.function.Function -import io.smnp.callable.function.FunctionDefinitionTool -import io.smnp.callable.signature.Signature.Companion.simple -import io.smnp.callable.signature.Signature.Companion.vararg -import io.smnp.error.CustomException -import io.smnp.ext.midi.lib.midi.Midi -import io.smnp.type.enumeration.DataType.* -import io.smnp.type.matcher.Matcher.Companion.anyType -import io.smnp.type.matcher.Matcher.Companion.listOf -import io.smnp.type.matcher.Matcher.Companion.listOfMatchers -import io.smnp.type.matcher.Matcher.Companion.mapOfMatchers -import io.smnp.type.matcher.Matcher.Companion.ofType -import io.smnp.type.model.Value -import io.smnp.util.config.ConfigMapSchema +import com.bartlomiejpluta.smnp.callable.function.Function +import com.bartlomiejpluta.smnp.callable.function.FunctionDefinitionTool +import com.bartlomiejpluta.smnp.callable.signature.Signature.Companion.simple +import com.bartlomiejpluta.smnp.callable.signature.Signature.Companion.vararg +import com.bartlomiejpluta.smnp.error.CustomException +import com.bartlomiejpluta.smnp.ext.midi.lib.midi.Midi +import com.bartlomiejpluta.smnp.type.enumeration.DataType.* +import com.bartlomiejpluta.smnp.type.matcher.Matcher.Companion.anyType +import com.bartlomiejpluta.smnp.type.matcher.Matcher.Companion.listOf +import com.bartlomiejpluta.smnp.type.matcher.Matcher.Companion.listOfMatchers +import com.bartlomiejpluta.smnp.type.matcher.Matcher.Companion.mapOfMatchers +import com.bartlomiejpluta.smnp.type.matcher.Matcher.Companion.ofType +import com.bartlomiejpluta.smnp.type.model.Value +import com.bartlomiejpluta.smnp.util.config.ConfigMapSchema class MidiFunction : Function("midi") { diff --git a/modules/midi/src/main/kotlin/io/smnp/ext/midi/function/MidiHelpFunction.kt b/modules/midi/src/main/kotlin/com/bartlomiejpluta/smnp/ext/midi/function/MidiHelpFunction.kt similarity index 71% rename from modules/midi/src/main/kotlin/io/smnp/ext/midi/function/MidiHelpFunction.kt rename to modules/midi/src/main/kotlin/com/bartlomiejpluta/smnp/ext/midi/function/MidiHelpFunction.kt index 1e76feb..68de8e0 100644 --- a/modules/midi/src/main/kotlin/io/smnp/ext/midi/function/MidiHelpFunction.kt +++ b/modules/midi/src/main/kotlin/com/bartlomiejpluta/smnp/ext/midi/function/MidiHelpFunction.kt @@ -1,18 +1,18 @@ -package io.smnp.ext.midi.function +package com.bartlomiejpluta.smnp.ext.midi.function -import io.smnp.callable.function.Function -import io.smnp.callable.function.FunctionDefinitionTool -import io.smnp.callable.signature.Signature.Companion.simple -import io.smnp.data.entity.Note -import io.smnp.data.enumeration.Pitch -import io.smnp.error.CustomException -import io.smnp.ext.midi.lib.midi.Midi -import io.smnp.math.Fraction -import io.smnp.type.enumeration.DataType.* -import io.smnp.type.matcher.Matcher.Companion.ofType -import io.smnp.type.matcher.Matcher.Companion.optional -import io.smnp.type.model.Value -import io.smnp.util.config.ConfigMap +import com.bartlomiejpluta.smnp.callable.function.Function +import com.bartlomiejpluta.smnp.callable.function.FunctionDefinitionTool +import com.bartlomiejpluta.smnp.callable.signature.Signature.Companion.simple +import com.bartlomiejpluta.smnp.data.entity.Note +import com.bartlomiejpluta.smnp.data.enumeration.Pitch +import com.bartlomiejpluta.smnp.error.CustomException +import com.bartlomiejpluta.smnp.ext.midi.lib.midi.Midi +import com.bartlomiejpluta.smnp.math.Fraction +import com.bartlomiejpluta.smnp.type.enumeration.DataType.* +import com.bartlomiejpluta.smnp.type.matcher.Matcher.Companion.ofType +import com.bartlomiejpluta.smnp.type.matcher.Matcher.Companion.optional +import com.bartlomiejpluta.smnp.type.model.Value +import com.bartlomiejpluta.smnp.util.config.ConfigMap class MidiHelpFunction : Function("midiHelp") { override fun define(new: FunctionDefinitionTool) { diff --git a/modules/midi/src/main/kotlin/io/smnp/ext/midi/lib/compiler/DefaultSequenceCompiler.kt b/modules/midi/src/main/kotlin/com/bartlomiejpluta/smnp/ext/midi/lib/compiler/DefaultSequenceCompiler.kt similarity index 85% rename from modules/midi/src/main/kotlin/io/smnp/ext/midi/lib/compiler/DefaultSequenceCompiler.kt rename to modules/midi/src/main/kotlin/com/bartlomiejpluta/smnp/ext/midi/lib/compiler/DefaultSequenceCompiler.kt index a8d747c..1863ec2 100644 --- a/modules/midi/src/main/kotlin/io/smnp/ext/midi/lib/compiler/DefaultSequenceCompiler.kt +++ b/modules/midi/src/main/kotlin/com/bartlomiejpluta/smnp/ext/midi/lib/compiler/DefaultSequenceCompiler.kt @@ -1,6 +1,6 @@ -package io.smnp.ext.midi.lib.compiler +package com.bartlomiejpluta.smnp.ext.midi.lib.compiler -import io.smnp.data.entity.Note +import com.bartlomiejpluta.smnp.data.entity.Note import javax.sound.midi.Track class DefaultSequenceCompiler : SequenceCompiler() { diff --git a/modules/midi/src/main/kotlin/io/smnp/ext/midi/lib/compiler/PpqSequenceCompiler.kt b/modules/midi/src/main/kotlin/com/bartlomiejpluta/smnp/ext/midi/lib/compiler/PpqSequenceCompiler.kt similarity index 84% rename from modules/midi/src/main/kotlin/io/smnp/ext/midi/lib/compiler/PpqSequenceCompiler.kt rename to modules/midi/src/main/kotlin/com/bartlomiejpluta/smnp/ext/midi/lib/compiler/PpqSequenceCompiler.kt index f0d4e89..85cada8 100644 --- a/modules/midi/src/main/kotlin/io/smnp/ext/midi/lib/compiler/PpqSequenceCompiler.kt +++ b/modules/midi/src/main/kotlin/com/bartlomiejpluta/smnp/ext/midi/lib/compiler/PpqSequenceCompiler.kt @@ -1,6 +1,6 @@ -package io.smnp.ext.midi.lib.compiler +package com.bartlomiejpluta.smnp.ext.midi.lib.compiler -import io.smnp.data.entity.Note +import com.bartlomiejpluta.smnp.data.entity.Note import javax.sound.midi.Track class PpqSequenceCompiler : SequenceCompiler() { diff --git a/modules/midi/src/main/kotlin/io/smnp/ext/midi/lib/compiler/SequenceCompiler.kt b/modules/midi/src/main/kotlin/com/bartlomiejpluta/smnp/ext/midi/lib/compiler/SequenceCompiler.kt similarity index 92% rename from modules/midi/src/main/kotlin/io/smnp/ext/midi/lib/compiler/SequenceCompiler.kt rename to modules/midi/src/main/kotlin/com/bartlomiejpluta/smnp/ext/midi/lib/compiler/SequenceCompiler.kt index cb803bb..efe0bc4 100644 --- a/modules/midi/src/main/kotlin/io/smnp/ext/midi/lib/compiler/SequenceCompiler.kt +++ b/modules/midi/src/main/kotlin/com/bartlomiejpluta/smnp/ext/midi/lib/compiler/SequenceCompiler.kt @@ -1,9 +1,9 @@ -package io.smnp.ext.midi.lib.compiler +package com.bartlomiejpluta.smnp.ext.midi.lib.compiler -import io.smnp.data.entity.Note -import io.smnp.error.CustomException -import io.smnp.error.ShouldNeverReachThisLineException -import io.smnp.util.config.ConfigMap +import com.bartlomiejpluta.smnp.data.entity.Note +import com.bartlomiejpluta.smnp.error.CustomException +import com.bartlomiejpluta.smnp.error.ShouldNeverReachThisLineException +import com.bartlomiejpluta.smnp.util.config.ConfigMap import javax.sound.midi.MidiEvent import javax.sound.midi.Sequence import javax.sound.midi.ShortMessage diff --git a/modules/midi/src/main/kotlin/io/smnp/ext/midi/lib/midi/Midi.kt b/modules/midi/src/main/kotlin/com/bartlomiejpluta/smnp/ext/midi/lib/midi/Midi.kt similarity index 87% rename from modules/midi/src/main/kotlin/io/smnp/ext/midi/lib/midi/Midi.kt rename to modules/midi/src/main/kotlin/com/bartlomiejpluta/smnp/ext/midi/lib/midi/Midi.kt index 9325397..c354e28 100644 --- a/modules/midi/src/main/kotlin/io/smnp/ext/midi/lib/midi/Midi.kt +++ b/modules/midi/src/main/kotlin/com/bartlomiejpluta/smnp/ext/midi/lib/midi/Midi.kt @@ -1,9 +1,9 @@ -package io.smnp.ext.midi.lib.midi +package com.bartlomiejpluta.smnp.ext.midi.lib.midi -import io.smnp.ext.midi.lib.compiler.DefaultSequenceCompiler -import io.smnp.ext.midi.lib.compiler.PpqSequenceCompiler -import io.smnp.ext.midi.lib.compiler.SequenceCompiler -import io.smnp.util.config.ConfigMap +import com.bartlomiejpluta.smnp.ext.midi.lib.compiler.DefaultSequenceCompiler +import com.bartlomiejpluta.smnp.ext.midi.lib.compiler.PpqSequenceCompiler +import com.bartlomiejpluta.smnp.ext.midi.lib.compiler.SequenceCompiler +import com.bartlomiejpluta.smnp.util.config.ConfigMap import java.io.File import javax.sound.midi.MidiSystem import javax.sound.midi.Sequence diff --git a/modules/music-command/src/main/kotlin/io/smnp/ext/musiccommand/MusicCommandsModule.kt b/modules/music-command/src/main/kotlin/com/bartlomiejpluta/smnp/ext/musiccommand/MusicCommandsModule.kt similarity index 59% rename from modules/music-command/src/main/kotlin/io/smnp/ext/musiccommand/MusicCommandsModule.kt rename to modules/music-command/src/main/kotlin/com/bartlomiejpluta/smnp/ext/musiccommand/MusicCommandsModule.kt index 7e5dcd8..25ee329 100644 --- a/modules/music-command/src/main/kotlin/io/smnp/ext/musiccommand/MusicCommandsModule.kt +++ b/modules/music-command/src/main/kotlin/com/bartlomiejpluta/smnp/ext/musiccommand/MusicCommandsModule.kt @@ -1,6 +1,6 @@ -package io.smnp.ext.musiccommand +package com.bartlomiejpluta.smnp.ext.musiccommand -import io.smnp.ext.provider.LanguageModuleProvider +import com.bartlomiejpluta.smnp.ext.provider.LanguageModuleProvider import org.pf4j.Extension @Extension diff --git a/modules/music-tool/src/main/kotlin/io/smnp/ext/musictool/MusicToolsModule.kt b/modules/music-tool/src/main/kotlin/com/bartlomiejpluta/smnp/ext/musictool/MusicToolsModule.kt similarity index 63% rename from modules/music-tool/src/main/kotlin/io/smnp/ext/musictool/MusicToolsModule.kt rename to modules/music-tool/src/main/kotlin/com/bartlomiejpluta/smnp/ext/musictool/MusicToolsModule.kt index 1019afc..e00cb5f 100644 --- a/modules/music-tool/src/main/kotlin/io/smnp/ext/musictool/MusicToolsModule.kt +++ b/modules/music-tool/src/main/kotlin/com/bartlomiejpluta/smnp/ext/musictool/MusicToolsModule.kt @@ -1,6 +1,6 @@ -package io.smnp.ext.musictool +package com.bartlomiejpluta.smnp.ext.musictool -import io.smnp.ext.provider.LanguageModuleProvider +import com.bartlomiejpluta.smnp.ext.provider.LanguageModuleProvider import org.pf4j.Extension @Extension diff --git a/modules/music/src/main/kotlin/io/smnp/ext/music/MusicModule.kt b/modules/music/src/main/kotlin/com/bartlomiejpluta/smnp/ext/music/MusicModule.kt similarity index 62% rename from modules/music/src/main/kotlin/io/smnp/ext/music/MusicModule.kt rename to modules/music/src/main/kotlin/com/bartlomiejpluta/smnp/ext/music/MusicModule.kt index e3364ef..357722b 100644 --- a/modules/music/src/main/kotlin/io/smnp/ext/music/MusicModule.kt +++ b/modules/music/src/main/kotlin/com/bartlomiejpluta/smnp/ext/music/MusicModule.kt @@ -1,6 +1,6 @@ -package io.smnp.ext.music +package com.bartlomiejpluta.smnp.ext.music -import io.smnp.ext.provider.LanguageModuleProvider +import com.bartlomiejpluta.smnp.ext.provider.LanguageModuleProvider import org.pf4j.Extension @Extension diff --git a/modules/synth/src/main/kotlin/io/smnp/ext/synth/SynthModule.kt b/modules/synth/src/main/kotlin/com/bartlomiejpluta/smnp/ext/synth/SynthModule.kt similarity index 53% rename from modules/synth/src/main/kotlin/io/smnp/ext/synth/SynthModule.kt rename to modules/synth/src/main/kotlin/com/bartlomiejpluta/smnp/ext/synth/SynthModule.kt index fba4749..50a4699 100644 --- a/modules/synth/src/main/kotlin/io/smnp/ext/synth/SynthModule.kt +++ b/modules/synth/src/main/kotlin/com/bartlomiejpluta/smnp/ext/synth/SynthModule.kt @@ -1,10 +1,10 @@ -package io.smnp.ext.synth +package com.bartlomiejpluta.smnp.ext.synth -import io.smnp.environment.Environment -import io.smnp.ext.provider.HybridModuleProvider -import io.smnp.ext.synth.function.SynthFunction -import io.smnp.ext.synth.function.WaveFunction -import io.smnp.ext.synth.lib.synthesizer.Synthesizer +import com.bartlomiejpluta.smnp.environment.Environment +import com.bartlomiejpluta.smnp.ext.provider.HybridModuleProvider +import com.bartlomiejpluta.smnp.ext.synth.function.SynthFunction +import com.bartlomiejpluta.smnp.ext.synth.function.WaveFunction +import com.bartlomiejpluta.smnp.ext.synth.lib.synthesizer.Synthesizer import org.pf4j.Extension @Extension diff --git a/modules/synth/src/main/kotlin/io/smnp/ext/synth/function/SynthFunction.kt b/modules/synth/src/main/kotlin/com/bartlomiejpluta/smnp/ext/synth/function/SynthFunction.kt similarity index 57% rename from modules/synth/src/main/kotlin/io/smnp/ext/synth/function/SynthFunction.kt rename to modules/synth/src/main/kotlin/com/bartlomiejpluta/smnp/ext/synth/function/SynthFunction.kt index c779e29..828485a 100644 --- a/modules/synth/src/main/kotlin/io/smnp/ext/synth/function/SynthFunction.kt +++ b/modules/synth/src/main/kotlin/com/bartlomiejpluta/smnp/ext/synth/function/SynthFunction.kt @@ -1,19 +1,19 @@ -package io.smnp.ext.synth.function +package com.bartlomiejpluta.smnp.ext.synth.function -import io.smnp.callable.function.Function -import io.smnp.callable.function.FunctionDefinitionTool -import io.smnp.callable.signature.Signature -import io.smnp.callable.signature.Signature.Companion.simple -import io.smnp.ext.synth.lib.synthesizer.Synthesizer -import io.smnp.ext.synth.lib.wave.Wave -import io.smnp.ext.synth.lib.wave.WaveCompiler -import io.smnp.type.enumeration.DataType.* -import io.smnp.type.matcher.Matcher.Companion.anyType -import io.smnp.type.matcher.Matcher.Companion.listOf -import io.smnp.type.matcher.Matcher.Companion.listOfMatchers -import io.smnp.type.matcher.Matcher.Companion.mapOfMatchers -import io.smnp.type.matcher.Matcher.Companion.ofType -import io.smnp.type.model.Value +import com.bartlomiejpluta.smnp.callable.function.Function +import com.bartlomiejpluta.smnp.callable.function.FunctionDefinitionTool +import com.bartlomiejpluta.smnp.callable.signature.Signature +import com.bartlomiejpluta.smnp.callable.signature.Signature.Companion.simple +import com.bartlomiejpluta.smnp.ext.synth.lib.synthesizer.Synthesizer +import com.bartlomiejpluta.smnp.ext.synth.lib.wave.Wave +import com.bartlomiejpluta.smnp.ext.synth.lib.wave.WaveCompiler +import com.bartlomiejpluta.smnp.type.enumeration.DataType.* +import com.bartlomiejpluta.smnp.type.matcher.Matcher.Companion.anyType +import com.bartlomiejpluta.smnp.type.matcher.Matcher.Companion.listOf +import com.bartlomiejpluta.smnp.type.matcher.Matcher.Companion.listOfMatchers +import com.bartlomiejpluta.smnp.type.matcher.Matcher.Companion.mapOfMatchers +import com.bartlomiejpluta.smnp.type.matcher.Matcher.Companion.ofType +import com.bartlomiejpluta.smnp.type.model.Value class SynthFunction : Function("synth") { diff --git a/modules/synth/src/main/kotlin/io/smnp/ext/synth/function/WaveFunction.kt b/modules/synth/src/main/kotlin/com/bartlomiejpluta/smnp/ext/synth/function/WaveFunction.kt similarity index 55% rename from modules/synth/src/main/kotlin/io/smnp/ext/synth/function/WaveFunction.kt rename to modules/synth/src/main/kotlin/com/bartlomiejpluta/smnp/ext/synth/function/WaveFunction.kt index b981379..dfda38c 100644 --- a/modules/synth/src/main/kotlin/io/smnp/ext/synth/function/WaveFunction.kt +++ b/modules/synth/src/main/kotlin/com/bartlomiejpluta/smnp/ext/synth/function/WaveFunction.kt @@ -1,16 +1,16 @@ -package io.smnp.ext.synth.function +package com.bartlomiejpluta.smnp.ext.synth.function -import io.smnp.callable.function.Function -import io.smnp.callable.function.FunctionDefinitionTool -import io.smnp.callable.signature.Signature -import io.smnp.ext.synth.lib.synthesizer.Synthesizer -import io.smnp.ext.synth.lib.wave.WaveCompiler -import io.smnp.type.enumeration.DataType.* -import io.smnp.type.matcher.Matcher.Companion.anyType -import io.smnp.type.matcher.Matcher.Companion.listOfMatchers -import io.smnp.type.matcher.Matcher.Companion.mapOfMatchers -import io.smnp.type.matcher.Matcher.Companion.ofType -import io.smnp.type.model.Value +import com.bartlomiejpluta.smnp.callable.function.Function +import com.bartlomiejpluta.smnp.callable.function.FunctionDefinitionTool +import com.bartlomiejpluta.smnp.callable.signature.Signature +import com.bartlomiejpluta.smnp.ext.synth.lib.synthesizer.Synthesizer +import com.bartlomiejpluta.smnp.ext.synth.lib.wave.WaveCompiler +import com.bartlomiejpluta.smnp.type.enumeration.DataType.* +import com.bartlomiejpluta.smnp.type.matcher.Matcher.Companion.anyType +import com.bartlomiejpluta.smnp.type.matcher.Matcher.Companion.listOfMatchers +import com.bartlomiejpluta.smnp.type.matcher.Matcher.Companion.mapOfMatchers +import com.bartlomiejpluta.smnp.type.matcher.Matcher.Companion.ofType +import com.bartlomiejpluta.smnp.type.model.Value class WaveFunction : Function("wave") { diff --git a/modules/synth/src/main/kotlin/io/smnp/ext/synth/lib/envelope/AdsrEnvelope.kt b/modules/synth/src/main/kotlin/com/bartlomiejpluta/smnp/ext/synth/lib/envelope/AdsrEnvelope.kt similarity index 92% rename from modules/synth/src/main/kotlin/io/smnp/ext/synth/lib/envelope/AdsrEnvelope.kt rename to modules/synth/src/main/kotlin/com/bartlomiejpluta/smnp/ext/synth/lib/envelope/AdsrEnvelope.kt index fff736d..7c11608 100644 --- a/modules/synth/src/main/kotlin/io/smnp/ext/synth/lib/envelope/AdsrEnvelope.kt +++ b/modules/synth/src/main/kotlin/com/bartlomiejpluta/smnp/ext/synth/lib/envelope/AdsrEnvelope.kt @@ -1,4 +1,4 @@ -package io.smnp.ext.synth.lib.envelope +package com.bartlomiejpluta.smnp.ext.synth.lib.envelope class AdsrEnvelope(private val p1: Double, private val p2: Double, private val p3: Double, private val s: Double) : Envelope() { diff --git a/modules/synth/src/main/kotlin/io/smnp/ext/synth/lib/envelope/AdsrEnvelopeFactory.kt b/modules/synth/src/main/kotlin/com/bartlomiejpluta/smnp/ext/synth/lib/envelope/AdsrEnvelopeFactory.kt similarity index 65% rename from modules/synth/src/main/kotlin/io/smnp/ext/synth/lib/envelope/AdsrEnvelopeFactory.kt rename to modules/synth/src/main/kotlin/com/bartlomiejpluta/smnp/ext/synth/lib/envelope/AdsrEnvelopeFactory.kt index 007b21d..7554751 100644 --- a/modules/synth/src/main/kotlin/io/smnp/ext/synth/lib/envelope/AdsrEnvelopeFactory.kt +++ b/modules/synth/src/main/kotlin/com/bartlomiejpluta/smnp/ext/synth/lib/envelope/AdsrEnvelopeFactory.kt @@ -1,9 +1,9 @@ -package io.smnp.ext.synth.lib.envelope +package com.bartlomiejpluta.smnp.ext.synth.lib.envelope -import io.smnp.type.enumeration.DataType.FLOAT -import io.smnp.type.matcher.Matcher.Companion.ofType -import io.smnp.type.model.Value -import io.smnp.util.config.ConfigMapSchema +import com.bartlomiejpluta.smnp.type.enumeration.DataType.FLOAT +import com.bartlomiejpluta.smnp.type.matcher.Matcher.Companion.ofType +import com.bartlomiejpluta.smnp.type.model.Value +import com.bartlomiejpluta.smnp.util.config.ConfigMapSchema object AdsrEnvelopeFactory : EnvelopeFactory { private val schema = ConfigMapSchema() diff --git a/modules/synth/src/main/kotlin/io/smnp/ext/synth/lib/envelope/ConstantEnvelope.kt b/modules/synth/src/main/kotlin/com/bartlomiejpluta/smnp/ext/synth/lib/envelope/ConstantEnvelope.kt similarity index 61% rename from modules/synth/src/main/kotlin/io/smnp/ext/synth/lib/envelope/ConstantEnvelope.kt rename to modules/synth/src/main/kotlin/com/bartlomiejpluta/smnp/ext/synth/lib/envelope/ConstantEnvelope.kt index 45b239f..bc97fe3 100644 --- a/modules/synth/src/main/kotlin/io/smnp/ext/synth/lib/envelope/ConstantEnvelope.kt +++ b/modules/synth/src/main/kotlin/com/bartlomiejpluta/smnp/ext/synth/lib/envelope/ConstantEnvelope.kt @@ -1,4 +1,4 @@ -package io.smnp.ext.synth.lib.envelope +package com.bartlomiejpluta.smnp.ext.synth.lib.envelope class ConstantEnvelope : Envelope() { override fun eval(x: Double, length: Int) = 1.0 diff --git a/modules/synth/src/main/kotlin/io/smnp/ext/synth/lib/envelope/ConstantEnvelopeFactory.kt b/modules/synth/src/main/kotlin/com/bartlomiejpluta/smnp/ext/synth/lib/envelope/ConstantEnvelopeFactory.kt similarity index 53% rename from modules/synth/src/main/kotlin/io/smnp/ext/synth/lib/envelope/ConstantEnvelopeFactory.kt rename to modules/synth/src/main/kotlin/com/bartlomiejpluta/smnp/ext/synth/lib/envelope/ConstantEnvelopeFactory.kt index 9c2b959..1068b61 100644 --- a/modules/synth/src/main/kotlin/io/smnp/ext/synth/lib/envelope/ConstantEnvelopeFactory.kt +++ b/modules/synth/src/main/kotlin/com/bartlomiejpluta/smnp/ext/synth/lib/envelope/ConstantEnvelopeFactory.kt @@ -1,6 +1,6 @@ -package io.smnp.ext.synth.lib.envelope +package com.bartlomiejpluta.smnp.ext.synth.lib.envelope -import io.smnp.type.model.Value +import com.bartlomiejpluta.smnp.type.model.Value object ConstantEnvelopeFactory : EnvelopeFactory { override fun createEnvelope(config: Value) = ConstantEnvelope() diff --git a/modules/synth/src/main/kotlin/io/smnp/ext/synth/lib/envelope/Envelope.kt b/modules/synth/src/main/kotlin/com/bartlomiejpluta/smnp/ext/synth/lib/envelope/Envelope.kt similarity index 86% rename from modules/synth/src/main/kotlin/io/smnp/ext/synth/lib/envelope/Envelope.kt rename to modules/synth/src/main/kotlin/com/bartlomiejpluta/smnp/ext/synth/lib/envelope/Envelope.kt index 6d45b9e..27112d3 100644 --- a/modules/synth/src/main/kotlin/io/smnp/ext/synth/lib/envelope/Envelope.kt +++ b/modules/synth/src/main/kotlin/com/bartlomiejpluta/smnp/ext/synth/lib/envelope/Envelope.kt @@ -1,6 +1,6 @@ -package io.smnp.ext.synth.lib.envelope +package com.bartlomiejpluta.smnp.ext.synth.lib.envelope -import io.smnp.ext.synth.lib.wave.Wave +import com.bartlomiejpluta.smnp.ext.synth.lib.wave.Wave abstract class Envelope { abstract fun eval(x: Double, length: Int): Double diff --git a/modules/synth/src/main/kotlin/io/smnp/ext/synth/lib/envelope/EnvelopeFactory.kt b/modules/synth/src/main/kotlin/com/bartlomiejpluta/smnp/ext/synth/lib/envelope/EnvelopeFactory.kt similarity index 63% rename from modules/synth/src/main/kotlin/io/smnp/ext/synth/lib/envelope/EnvelopeFactory.kt rename to modules/synth/src/main/kotlin/com/bartlomiejpluta/smnp/ext/synth/lib/envelope/EnvelopeFactory.kt index b02b558..560f56c 100644 --- a/modules/synth/src/main/kotlin/io/smnp/ext/synth/lib/envelope/EnvelopeFactory.kt +++ b/modules/synth/src/main/kotlin/com/bartlomiejpluta/smnp/ext/synth/lib/envelope/EnvelopeFactory.kt @@ -1,10 +1,10 @@ -package io.smnp.ext.synth.lib.envelope +package com.bartlomiejpluta.smnp.ext.synth.lib.envelope -import io.smnp.error.CustomException -import io.smnp.type.enumeration.DataType -import io.smnp.type.matcher.Matcher -import io.smnp.type.model.Value -import io.smnp.util.config.ConfigMapSchema +import com.bartlomiejpluta.smnp.error.CustomException +import com.bartlomiejpluta.smnp.type.enumeration.DataType +import com.bartlomiejpluta.smnp.type.matcher.Matcher +import com.bartlomiejpluta.smnp.type.model.Value +import com.bartlomiejpluta.smnp.util.config.ConfigMapSchema interface EnvelopeFactory { fun createEnvelope(config: Value): Envelope diff --git a/modules/synth/src/main/kotlin/io/smnp/ext/synth/lib/model/CompilationParameters.kt b/modules/synth/src/main/kotlin/com/bartlomiejpluta/smnp/ext/synth/lib/model/CompilationParameters.kt similarity index 72% rename from modules/synth/src/main/kotlin/io/smnp/ext/synth/lib/model/CompilationParameters.kt rename to modules/synth/src/main/kotlin/com/bartlomiejpluta/smnp/ext/synth/lib/model/CompilationParameters.kt index 75c372e..f019570 100644 --- a/modules/synth/src/main/kotlin/io/smnp/ext/synth/lib/model/CompilationParameters.kt +++ b/modules/synth/src/main/kotlin/com/bartlomiejpluta/smnp/ext/synth/lib/model/CompilationParameters.kt @@ -1,8 +1,8 @@ -package io.smnp.ext.synth.lib.model +package com.bartlomiejpluta.smnp.ext.synth.lib.model -import io.smnp.data.enumeration.Pitch -import io.smnp.ext.synth.lib.envelope.EnvelopeFactory -import io.smnp.util.config.ConfigMap +import com.bartlomiejpluta.smnp.data.enumeration.Pitch +import com.bartlomiejpluta.smnp.ext.synth.lib.envelope.EnvelopeFactory +import com.bartlomiejpluta.smnp.util.config.ConfigMap import kotlin.math.pow private val SEMITONE = 2.0.pow(1.0 / 12.0) diff --git a/modules/synth/src/main/kotlin/io/smnp/ext/synth/lib/synthesizer/Synthesizer.kt b/modules/synth/src/main/kotlin/com/bartlomiejpluta/smnp/ext/synth/lib/synthesizer/Synthesizer.kt similarity index 83% rename from modules/synth/src/main/kotlin/io/smnp/ext/synth/lib/synthesizer/Synthesizer.kt rename to modules/synth/src/main/kotlin/com/bartlomiejpluta/smnp/ext/synth/lib/synthesizer/Synthesizer.kt index e8a13c3..4f85af9 100644 --- a/modules/synth/src/main/kotlin/io/smnp/ext/synth/lib/synthesizer/Synthesizer.kt +++ b/modules/synth/src/main/kotlin/com/bartlomiejpluta/smnp/ext/synth/lib/synthesizer/Synthesizer.kt @@ -1,6 +1,6 @@ -package io.smnp.ext.synth.lib.synthesizer +package com.bartlomiejpluta.smnp.ext.synth.lib.synthesizer -import io.smnp.ext.synth.lib.wave.Wave +import com.bartlomiejpluta.smnp.ext.synth.lib.wave.Wave import javax.sound.sampled.AudioFormat import javax.sound.sampled.AudioSystem import javax.sound.sampled.SourceDataLine diff --git a/modules/synth/src/main/kotlin/io/smnp/ext/synth/lib/wave/Wave.kt b/modules/synth/src/main/kotlin/com/bartlomiejpluta/smnp/ext/synth/lib/wave/Wave.kt similarity index 97% rename from modules/synth/src/main/kotlin/io/smnp/ext/synth/lib/wave/Wave.kt rename to modules/synth/src/main/kotlin/com/bartlomiejpluta/smnp/ext/synth/lib/wave/Wave.kt index 1342ade..c4c8c24 100644 --- a/modules/synth/src/main/kotlin/io/smnp/ext/synth/lib/wave/Wave.kt +++ b/modules/synth/src/main/kotlin/com/bartlomiejpluta/smnp/ext/synth/lib/wave/Wave.kt @@ -1,4 +1,4 @@ -package io.smnp.ext.synth.lib.wave +package com.bartlomiejpluta.smnp.ext.synth.lib.wave import java.io.ByteArrayOutputStream import kotlin.math.roundToInt diff --git a/modules/synth/src/main/kotlin/io/smnp/ext/synth/lib/wave/WaveCompiler.kt b/modules/synth/src/main/kotlin/com/bartlomiejpluta/smnp/ext/synth/lib/wave/WaveCompiler.kt similarity index 84% rename from modules/synth/src/main/kotlin/io/smnp/ext/synth/lib/wave/WaveCompiler.kt rename to modules/synth/src/main/kotlin/com/bartlomiejpluta/smnp/ext/synth/lib/wave/WaveCompiler.kt index a0fe275..20f69b7 100644 --- a/modules/synth/src/main/kotlin/io/smnp/ext/synth/lib/wave/WaveCompiler.kt +++ b/modules/synth/src/main/kotlin/com/bartlomiejpluta/smnp/ext/synth/lib/wave/WaveCompiler.kt @@ -1,13 +1,13 @@ -package io.smnp.ext.synth.lib.wave +package com.bartlomiejpluta.smnp.ext.synth.lib.wave -import io.smnp.data.entity.Note -import io.smnp.error.CustomException -import io.smnp.ext.synth.lib.model.CompilationParameters -import io.smnp.math.Fraction -import io.smnp.type.enumeration.DataType -import io.smnp.type.matcher.Matcher -import io.smnp.type.model.Value -import io.smnp.util.config.ConfigMapSchema +import com.bartlomiejpluta.smnp.data.entity.Note +import com.bartlomiejpluta.smnp.error.CustomException +import com.bartlomiejpluta.smnp.ext.synth.lib.model.CompilationParameters +import com.bartlomiejpluta.smnp.math.Fraction +import com.bartlomiejpluta.smnp.type.enumeration.DataType +import com.bartlomiejpluta.smnp.type.matcher.Matcher +import com.bartlomiejpluta.smnp.type.model.Value +import com.bartlomiejpluta.smnp.util.config.ConfigMapSchema import kotlin.math.log import kotlin.math.pow diff --git a/modules/system/src/main/kotlin/com/bartlomiejpluta/smnp/ext/system/SystemModule.kt b/modules/system/src/main/kotlin/com/bartlomiejpluta/smnp/ext/system/SystemModule.kt new file mode 100644 index 0000000..0ef8dd4 --- /dev/null +++ b/modules/system/src/main/kotlin/com/bartlomiejpluta/smnp/ext/system/SystemModule.kt @@ -0,0 +1,11 @@ +package com.bartlomiejpluta.smnp.ext.system + +import com.bartlomiejpluta.smnp.ext.provider.NativeModuleProvider +import com.bartlomiejpluta.smnp.ext.system.function.ExitFunction +import com.bartlomiejpluta.smnp.ext.system.function.SleepFunction +import org.pf4j.Extension + +@Extension +class SystemModule : NativeModuleProvider("smnp.system") { + override fun functions() = listOf(ExitFunction(), SleepFunction()) +} \ No newline at end of file diff --git a/modules/system/src/main/kotlin/com/bartlomiejpluta/smnp/ext/system/function/ExitFunction.kt b/modules/system/src/main/kotlin/com/bartlomiejpluta/smnp/ext/system/function/ExitFunction.kt new file mode 100644 index 0000000..6054bab --- /dev/null +++ b/modules/system/src/main/kotlin/com/bartlomiejpluta/smnp/ext/system/function/ExitFunction.kt @@ -0,0 +1,19 @@ +package com.bartlomiejpluta.smnp.ext.system.function + +import com.bartlomiejpluta.smnp.callable.function.Function +import com.bartlomiejpluta.smnp.callable.function.FunctionDefinitionTool +import com.bartlomiejpluta.smnp.callable.signature.Signature.Companion.simple +import com.bartlomiejpluta.smnp.type.enumeration.DataType.INT +import com.bartlomiejpluta.smnp.type.matcher.Matcher.Companion.ofType +import com.bartlomiejpluta.smnp.type.matcher.Matcher.Companion.optional +import com.bartlomiejpluta.smnp.type.model.Value +import kotlin.system.exitProcess + +class ExitFunction : Function("exit") { + override fun define(new: FunctionDefinitionTool) { + new function simple(optional(ofType(INT))) body { _, arguments -> + val exitCode = arguments.getOrNull(0) ?: Value.int(0) + exitProcess(exitCode.value as Int) + } + } +} \ No newline at end of file diff --git a/modules/system/src/main/kotlin/com/bartlomiejpluta/smnp/ext/system/function/SleepFunction.kt b/modules/system/src/main/kotlin/com/bartlomiejpluta/smnp/ext/system/function/SleepFunction.kt new file mode 100644 index 0000000..ac77b86 --- /dev/null +++ b/modules/system/src/main/kotlin/com/bartlomiejpluta/smnp/ext/system/function/SleepFunction.kt @@ -0,0 +1,17 @@ +package com.bartlomiejpluta.smnp.ext.system.function + +import com.bartlomiejpluta.smnp.callable.function.Function +import com.bartlomiejpluta.smnp.callable.function.FunctionDefinitionTool +import com.bartlomiejpluta.smnp.callable.signature.Signature.Companion.simple +import com.bartlomiejpluta.smnp.type.enumeration.DataType.INT +import com.bartlomiejpluta.smnp.type.matcher.Matcher.Companion.ofType +import com.bartlomiejpluta.smnp.type.model.Value + +class SleepFunction : Function("sleep") { + override fun define(new: FunctionDefinitionTool) { + new function simple(ofType(INT)) body { _, (milli) -> + Thread.sleep((milli.value as Int).toLong()) + Value.void() + } + } +} \ No newline at end of file diff --git a/modules/system/src/main/kotlin/io/smnp/ext/system/SystemModule.kt b/modules/system/src/main/kotlin/io/smnp/ext/system/SystemModule.kt deleted file mode 100644 index 78b7e0b..0000000 --- a/modules/system/src/main/kotlin/io/smnp/ext/system/SystemModule.kt +++ /dev/null @@ -1,11 +0,0 @@ -package io.smnp.ext.system - -import io.smnp.ext.provider.NativeModuleProvider -import io.smnp.ext.system.function.ExitFunction -import io.smnp.ext.system.function.SleepFunction -import org.pf4j.Extension - -@Extension -class SystemModule : NativeModuleProvider("smnp.system") { - override fun functions() = listOf(ExitFunction(), SleepFunction()) -} \ No newline at end of file diff --git a/modules/system/src/main/kotlin/io/smnp/ext/system/function/ExitFunction.kt b/modules/system/src/main/kotlin/io/smnp/ext/system/function/ExitFunction.kt deleted file mode 100644 index 3dc9274..0000000 --- a/modules/system/src/main/kotlin/io/smnp/ext/system/function/ExitFunction.kt +++ /dev/null @@ -1,19 +0,0 @@ -package io.smnp.ext.system.function - -import io.smnp.callable.function.Function -import io.smnp.callable.function.FunctionDefinitionTool -import io.smnp.callable.signature.Signature.Companion.simple -import io.smnp.type.enumeration.DataType.INT -import io.smnp.type.matcher.Matcher.Companion.ofType -import io.smnp.type.matcher.Matcher.Companion.optional -import io.smnp.type.model.Value -import kotlin.system.exitProcess - -class ExitFunction : Function("exit") { - override fun define(new: FunctionDefinitionTool) { - new function simple(optional(ofType(INT))) body { _, arguments -> - val exitCode = arguments.getOrNull(0) ?: Value.int(0) - exitProcess(exitCode.value as Int) - } - } -} \ No newline at end of file diff --git a/modules/system/src/main/kotlin/io/smnp/ext/system/function/SleepFunction.kt b/modules/system/src/main/kotlin/io/smnp/ext/system/function/SleepFunction.kt deleted file mode 100644 index 428f0e9..0000000 --- a/modules/system/src/main/kotlin/io/smnp/ext/system/function/SleepFunction.kt +++ /dev/null @@ -1,17 +0,0 @@ -package io.smnp.ext.system.function - -import io.smnp.callable.function.Function -import io.smnp.callable.function.FunctionDefinitionTool -import io.smnp.callable.signature.Signature.Companion.simple -import io.smnp.type.enumeration.DataType.INT -import io.smnp.type.matcher.Matcher.Companion.ofType -import io.smnp.type.model.Value - -class SleepFunction : Function("sleep") { - override fun define(new: FunctionDefinitionTool) { - new function simple(ofType(INT)) body { _, (milli) -> - Thread.sleep((milli.value as Int).toLong()) - Value.void() - } - } -} \ No newline at end of file diff --git a/modules/text/src/main/kotlin/io/smnp/ext/text/TextModule.kt b/modules/text/src/main/kotlin/com/bartlomiejpluta/smnp/ext/text/TextModule.kt similarity index 60% rename from modules/text/src/main/kotlin/io/smnp/ext/text/TextModule.kt rename to modules/text/src/main/kotlin/com/bartlomiejpluta/smnp/ext/text/TextModule.kt index 60574de..1c8f5f7 100644 --- a/modules/text/src/main/kotlin/io/smnp/ext/text/TextModule.kt +++ b/modules/text/src/main/kotlin/com/bartlomiejpluta/smnp/ext/text/TextModule.kt @@ -1,6 +1,6 @@ -package io.smnp.ext.text +package com.bartlomiejpluta.smnp.ext.text -import io.smnp.ext.provider.LanguageModuleProvider +import com.bartlomiejpluta.smnp.ext.provider.LanguageModuleProvider import org.pf4j.Extension @Extension diff --git a/settings.gradle b/settings.gradle index a2e363c..8d49c02 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,4 +1,4 @@ -rootProject.name = 'io.smnp' +rootProject.name = 'com.bartlomiejpluta.smnp' include 'api' include 'core' include 'app'