Change root package

This commit is contained in:
2020-05-23 11:52:06 +02:00
parent 4ad81f68e4
commit 88f2089310
313 changed files with 1553 additions and 1556 deletions

View File

@@ -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<FunctionDefinition> = mutableListOf()

View File

@@ -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>) -> Value)

View File

@@ -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<FunctionDefinition> = mutableListOf()

View File

@@ -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<MethodDefinition> = mutableListOf()

View File

@@ -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>) -> Value)

View File

@@ -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<MethodDefinition> = mutableListOf()

View File

@@ -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 {

View File

@@ -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<Value>) {
operator fun get(index: Int) = arguments[index]

View File

@@ -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<Value>): ArgumentsList

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -1,4 +1,4 @@
package io.smnp.collection
package com.bartlomiejpluta.smnp.collection
class Stack<T> private constructor(private val list: MutableList<T>) : List<T> by list {
fun push(item: T) {

View File

@@ -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

View File

@@ -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;

View File

@@ -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)

View File

@@ -1,3 +1,3 @@
package io.smnp.error
package com.bartlomiejpluta.smnp.error
class CustomException(message: String?) : SmnpException("Error", message)

View File

@@ -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

View File

@@ -1,3 +1,3 @@
package io.smnp.error
package com.bartlomiejpluta.smnp.error
class EvaluationException(message: String?) : SmnpException("Runtime error", message)

View File

@@ -1,3 +1,3 @@
package io.smnp.error
package com.bartlomiejpluta.smnp.error
class FunctionInvocationException(message: String?) : SmnpException("Function invocation error", message)

View File

@@ -1,3 +1,3 @@
package io.smnp.error
package com.bartlomiejpluta.smnp.error
class MethodInvocationException(message: String?) : SmnpException("Method invocation error", message)

View File

@@ -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."

View File

@@ -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<SmnpException>

View File

@@ -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<Function> = emptyList()

View File

@@ -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")

View File

@@ -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 {

View File

@@ -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<Function> = emptyList()

View File

@@ -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?

View File

@@ -0,0 +1,7 @@
package com.bartlomiejpluta.smnp.interpreter
import com.bartlomiejpluta.smnp.environment.Environment
interface LanguageModuleInterpreter {
fun run(code: String, source: String): Environment
}

View File

@@ -1,4 +1,4 @@
package io.smnp.math
package com.bartlomiejpluta.smnp.math
class Fraction(val numerator: Int, val denominator: Int) : Comparable<Fraction> {
init {

View File

@@ -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 {

View File

@@ -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,

View File

@@ -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<out Any>, val stringifier: (Any) -> String) {

View File

@@ -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) {

View File

@@ -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<String, Value> = emptyMap()) {
init {

View File

@@ -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,

View File

@@ -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<Value, Value>) {
private val raw by lazy { map.map { (key, value) -> key.unwrap() to value }.toMap() as Map<String, Value> }

View File

@@ -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)

View File

@@ -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>) -> Value)

View File

@@ -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>) -> Value)

View File

@@ -1,7 +0,0 @@
package io.smnp.interpreter
import io.smnp.environment.Environment
interface LanguageModuleInterpreter {
fun run(code: String, source: String): Environment
}