Move all classes to new io.smnp package

This commit is contained in:
2020-03-07 13:46:33 +01:00
parent fff817b0fd
commit 6ef7d346ff
135 changed files with 480 additions and 481 deletions

View File

@@ -1,6 +0,0 @@
import interpreter.Interpreter
fun main(args: Array<String>) {
val interpreter = Interpreter()
interpreter.run("extend list<note, int> as this { function play() { play(this); return null; } function x() {} }")
}

View File

@@ -1,5 +0,0 @@
package dsl.ast.model.node
import dsl.token.model.entity.Token
class BoolLiteralNode(token: Token) : AtomAbstractNode(token)

View File

@@ -1,5 +0,0 @@
package dsl.ast.model.node
import dsl.token.model.entity.Token
class FloatLiteralNode(token: Token) : AtomAbstractNode(token)

View File

@@ -1,5 +0,0 @@
package dsl.ast.model.node
import dsl.token.model.entity.Token
class IdentifierNode(token: Token) : AtomAbstractNode(token)

View File

@@ -1,5 +0,0 @@
package dsl.ast.model.node
import dsl.token.model.entity.Token
class IntegerLiteralNode(token: Token) : AtomAbstractNode(token)

View File

@@ -1,7 +0,0 @@
package dsl.ast.model.node
import dsl.token.model.entity.TokenPosition
class NoneNode : Node(0,
TokenPosition.NONE
)

View File

@@ -1,5 +0,0 @@
package dsl.ast.model.node
import dsl.token.model.entity.Token
class NoteLiteralNode(token: Token) : AtomAbstractNode(token)

View File

@@ -1,5 +0,0 @@
package dsl.ast.model.node
import dsl.token.model.entity.TokenPosition
class RootNode(nodes: List<Node>, position: TokenPosition) : Node(nodes, position)

View File

@@ -1,5 +0,0 @@
package dsl.ast.model.node
import dsl.token.model.entity.Token
class StringLiteralNode(token: Token) : AtomAbstractNode(token)

View File

@@ -1,5 +0,0 @@
package dsl.ast.model.node
import dsl.token.model.entity.Token
class TokenNode(token: Token) : AtomAbstractNode(token)

View File

@@ -1,12 +0,0 @@
package dsl.ast.parser
import dsl.ast.model.entity.ParserOutput
import dsl.ast.model.node.BoolLiteralNode
import dsl.token.model.entity.TokenList
import dsl.token.model.enumeration.TokenType
class BoolLiteralParser : Parser() {
override fun tryToParse(input: TokenList): ParserOutput {
return terminal(TokenType.BOOL) { BoolLiteralNode(it) }.parse(input)
}
}

View File

@@ -1,12 +0,0 @@
package dsl.ast.parser
import dsl.ast.model.entity.ParserOutput
import dsl.ast.model.node.FloatLiteralNode
import dsl.token.model.entity.TokenList
import dsl.token.model.enumeration.TokenType
class FloatLiteralParser : Parser() {
override fun tryToParse(input: TokenList): ParserOutput {
return terminal(TokenType.FLOAT) { FloatLiteralNode(it) }.parse(input)
}
}

View File

@@ -1,12 +0,0 @@
package dsl.ast.parser
import dsl.ast.model.entity.ParserOutput
import dsl.ast.model.node.IntegerLiteralNode
import dsl.token.model.entity.TokenList
import dsl.token.model.enumeration.TokenType
class IntegerLiteralParser : Parser() {
override fun tryToParse(input: TokenList): ParserOutput {
return terminal(TokenType.INTEGER) { IntegerLiteralNode(it) }.parse(input)
}
}

View File

@@ -1,12 +0,0 @@
package dsl.ast.parser
import dsl.ast.model.entity.ParserOutput
import dsl.ast.model.node.NoteLiteralNode
import dsl.token.model.entity.TokenList
import dsl.token.model.enumeration.TokenType
class NoteLiteralParser : Parser() {
override fun tryToParse(input: TokenList): ParserOutput {
return terminal(TokenType.NOTE) { NoteLiteralNode(it) }.parse(input)
}
}

View File

@@ -1,12 +0,0 @@
package dsl.ast.parser
import dsl.ast.model.entity.ParserOutput
import dsl.ast.model.node.StringLiteralNode
import dsl.token.model.entity.TokenList
import dsl.token.model.enumeration.TokenType
class StringLiteralParser : Parser() {
override fun tryToParse(input: TokenList): ParserOutput {
return terminal(TokenType.STRING) { StringLiteralNode(it) }.parse(input)
}
}

View File

@@ -1,4 +0,0 @@
package evaluation.environment
class Environment {
}

View File

@@ -1,14 +0,0 @@
package evaluation.evaluator
import data.model.Value
import dsl.ast.model.node.BoolLiteralNode
import dsl.ast.model.node.Node
import evaluation.environment.Environment
import evaluation.model.entity.EvaluatorOutput
class BoolLiteralEvaluator : Evaluator {
override fun evaluate(node: Node, environment: Environment): EvaluatorOutput {
val value = (node as BoolLiteralNode).token.value as Boolean
return EvaluatorOutput.value(Value.bool(value))
}
}

View File

@@ -1,14 +0,0 @@
package evaluation.evaluator
import data.model.Value
import dsl.ast.model.node.FloatLiteralNode
import dsl.ast.model.node.Node
import evaluation.environment.Environment
import evaluation.model.entity.EvaluatorOutput
class FloatLiteralEvaluator : Evaluator {
override fun evaluate(node: Node, environment: Environment): EvaluatorOutput {
val value = (node as FloatLiteralNode).token.value as Float
return EvaluatorOutput.value(Value.float(value))
}
}

View File

@@ -1,14 +0,0 @@
package evaluation.evaluator
import data.model.Value
import dsl.ast.model.node.IntegerLiteralNode
import dsl.ast.model.node.Node
import evaluation.environment.Environment
import evaluation.model.entity.EvaluatorOutput
class IntegerLiteralEvaluator : Evaluator {
override fun evaluate(node: Node, environment: Environment): EvaluatorOutput {
val value = (node as IntegerLiteralNode).token.value as Int
return EvaluatorOutput.value(Value.int(value))
}
}

View File

@@ -1,15 +0,0 @@
package evaluation.evaluator
import data.entity.Note
import data.model.Value
import dsl.ast.model.node.Node
import dsl.ast.model.node.NoteLiteralNode
import evaluation.environment.Environment
import evaluation.model.entity.EvaluatorOutput
class NoteLiteralEvaluator : Evaluator {
override fun evaluate(node: Node, environment: Environment): EvaluatorOutput {
val value = (node as NoteLiteralNode).token.value as Note
return EvaluatorOutput.value(Value.note(value))
}
}

View File

@@ -1,14 +0,0 @@
package evaluation.evaluator
import data.model.Value
import dsl.ast.model.node.Node
import dsl.ast.model.node.StringLiteralNode
import evaluation.environment.Environment
import evaluation.model.entity.EvaluatorOutput
class StringLiteralEvaluator : Evaluator {
override fun evaluate(node: Node, environment: Environment): EvaluatorOutput {
val value = (node as StringLiteralNode).token.value as String
return EvaluatorOutput.value(Value.string(value))
}
}

View File

@@ -0,0 +1,5 @@
package io.smnp
fun main(args: Array<String>) {
}

View File

@@ -1,6 +1,6 @@
package data.entity
package io.smnp.data.entity
import data.enumeration.Pitch
import io.smnp.data.enumeration.Pitch
class Note private constructor(val pitch: Pitch, val octave: Int, val duration: Int, val dot: Boolean) {
data class Builder(var pitch: Pitch = Pitch.A, var octave: Int = 4, var duration: Int = 4, var dot: Boolean = false) {

View File

@@ -1,6 +1,6 @@
package data.enumeration
package io.smnp.data.enumeration
import data.entity.Note
import io.smnp.data.entity.Note
import kotlin.reflect.KClass
enum class DataType(val kotlinType: KClass<out Any>?) {

View File

@@ -1,4 +1,4 @@
package data.enumeration
package io.smnp.data.enumeration
enum class Pitch {
C, C_S, D, D_S, E, F, F_S, G, G_S, A, A_S, H;

View File

@@ -1,7 +1,7 @@
package data.model
package io.smnp.data.model
import data.entity.Note
import data.enumeration.DataType
import io.smnp.data.entity.Note
import io.smnp.data.enumeration.DataType
class Value private constructor(val type: DataType, val value: Any?, val properties: Map<String, Value> = emptyMap()) {
init {

View File

@@ -1,7 +1,7 @@
package dsl.ast.model.entity
package io.smnp.dsl.ast.model.entity
import dsl.ast.model.enumeration.ParsingResult
import dsl.ast.model.node.Node
import io.smnp.dsl.ast.model.enumeration.ParsingResult
import io.smnp.dsl.ast.model.node.Node
class ParserOutput private constructor(val result: ParsingResult, val node: Node) {
fun map(mapper: (Node) -> Node): ParserOutput {

View File

@@ -1,4 +1,4 @@
package dsl.ast.model.enumeration
package io.smnp.dsl.ast.model.enumeration
enum class ParsingResult {
OK,

View File

@@ -1,6 +1,6 @@
package dsl.ast.model.node
package io.smnp.dsl.ast.model.node
import dsl.token.model.entity.TokenPosition
import io.smnp.dsl.token.model.entity.TokenPosition
abstract class AbstractIterableNode(items: List<Node>, position: TokenPosition) : Node(items, position) {
val items: List<Node>

View File

@@ -1,3 +1,3 @@
package dsl.ast.model.node
package io.smnp.dsl.ast.model.node
class AccessOperatorNode(lhs: Node, operator: Node, rhs: Node) : BinaryOperatorAbstractNode(lhs, operator, rhs)

View File

@@ -1,3 +1,3 @@
package dsl.ast.model.node
package io.smnp.dsl.ast.model.node
class AssignmentOperatorNode(lhs: Node, operator: Node, rhs: Node) : BinaryOperatorAbstractNode(lhs, operator, rhs)

View File

@@ -1,6 +1,6 @@
package dsl.ast.model.node
package io.smnp.dsl.ast.model.node
import dsl.token.model.entity.Token
import io.smnp.dsl.token.model.entity.Token
abstract class AtomAbstractNode(val token: Token) : Node(1, token.position) {
override fun pretty(prefix: String, last: Boolean, first: Boolean) {

View File

@@ -1,4 +1,4 @@
package dsl.ast.model.node
package io.smnp.dsl.ast.model.node
abstract class BinaryOperatorAbstractNode(lhs: Node, operator: Node, rhs: Node) : Node(3, operator.position) {
val lhs: Node

View File

@@ -1,4 +1,4 @@
package dsl.ast.model.node
package io.smnp.dsl.ast.model.node
class BlockNode(begin: Node, statements: List<Node>, end: Node) : Node(statements, begin.position) {
val statements: List<Node>

View File

@@ -0,0 +1,5 @@
package io.smnp.dsl.ast.model.node
import io.smnp.dsl.token.model.entity.Token
class BoolLiteralNode(token: Token) : AtomAbstractNode(token)

View File

@@ -1,4 +1,4 @@
package dsl.ast.model.node
package io.smnp.dsl.ast.model.node
class ConditionNode(trueBranchToken: Node, condition: Node, trueBranch: Node, falseBranchToken: Node, falseBranch: Node) : Node(3, trueBranchToken.position) {
val condition: Node

View File

@@ -1,6 +1,6 @@
package dsl.ast.model.node
package io.smnp.dsl.ast.model.node
import dsl.token.model.entity.TokenPosition
import io.smnp.dsl.token.model.entity.TokenPosition
class ExtendNode(type: Node, identifier: Node, functions: Node, position: TokenPosition) : Node(3, position) {
val type: Node

View File

@@ -0,0 +1,5 @@
package io.smnp.dsl.ast.model.node
import io.smnp.dsl.token.model.entity.Token
class FloatLiteralNode(token: Token) : AtomAbstractNode(token)

View File

@@ -1,5 +1,5 @@
package dsl.ast.model.node
package io.smnp.dsl.ast.model.node
import dsl.token.model.entity.TokenPosition
import io.smnp.dsl.token.model.entity.TokenPosition
class FunctionCallArgumentsNode(items: List<Node>, position: TokenPosition) : AbstractIterableNode(items, position)

View File

@@ -1,4 +1,4 @@
package dsl.ast.model.node
package io.smnp.dsl.ast.model.node
class FunctionCallNode(identifier: Node, arguments: Node) : Node(2, identifier.position) {
val identifier: Node

View File

@@ -1,5 +1,5 @@
package dsl.ast.model.node
package io.smnp.dsl.ast.model.node
import dsl.token.model.entity.TokenPosition
import io.smnp.dsl.token.model.entity.TokenPosition
class FunctionDefinitionArgumentsNode(items: List<Node>, position: TokenPosition) : AbstractIterableNode(items, position)

View File

@@ -1,6 +1,6 @@
package dsl.ast.model.node
package io.smnp.dsl.ast.model.node
import dsl.token.model.entity.TokenPosition
import io.smnp.dsl.token.model.entity.TokenPosition
class FunctionDefinitionNode(identifier: Node, arguments: Node, body: Node, position: TokenPosition) : Node(3, position) {
val identifier: Node

View File

@@ -0,0 +1,5 @@
package io.smnp.dsl.ast.model.node
import io.smnp.dsl.token.model.entity.Token
class IdentifierNode(token: Token) : AtomAbstractNode(token)

View File

@@ -1,6 +1,6 @@
package dsl.ast.model.node
package io.smnp.dsl.ast.model.node
import dsl.token.model.entity.TokenPosition
import io.smnp.dsl.token.model.entity.TokenPosition
class ImportNode(path: Node, position: TokenPosition) : Node(1, position) {
val path: Node

View File

@@ -0,0 +1,5 @@
package io.smnp.dsl.ast.model.node
import io.smnp.dsl.token.model.entity.Token
class IntegerLiteralNode(token: Token) : AtomAbstractNode(token)

View File

@@ -1,5 +1,5 @@
package dsl.ast.model.node
package io.smnp.dsl.ast.model.node
import dsl.token.model.entity.TokenPosition
import io.smnp.dsl.token.model.entity.TokenPosition
class ListNode(items: List<Node>, position: TokenPosition) : AbstractIterableNode(items, position)

View File

@@ -1,3 +1,3 @@
package dsl.ast.model.node
package io.smnp.dsl.ast.model.node
class LogicOperatorNode(lhs: Node, operator: Node, rhs: Node) : BinaryOperatorAbstractNode(lhs, operator, rhs)

View File

@@ -1,4 +1,4 @@
package dsl.ast.model.node
package io.smnp.dsl.ast.model.node
class LoopNode(iterator: Node, parameters: Node, operator: Node, statement: Node, filter: Node): Node(4, operator.position) {
val iterator: Node

View File

@@ -1,5 +1,5 @@
package dsl.ast.model.node
package io.smnp.dsl.ast.model.node
import dsl.token.model.entity.TokenPosition
import io.smnp.dsl.token.model.entity.TokenPosition
class LoopParametersNode(items: List<Node>, position: TokenPosition) : AbstractIterableNode(items, position)

View File

@@ -1,4 +1,4 @@
package dsl.ast.model.node
package io.smnp.dsl.ast.model.node
class MapEntryNode(key: Node, operator: Node, value: Node) : Node(2, operator.position) {
val key: Node

View File

@@ -1,5 +1,5 @@
package dsl.ast.model.node
package io.smnp.dsl.ast.model.node
import dsl.token.model.entity.TokenPosition
import io.smnp.dsl.token.model.entity.TokenPosition
class MapNode(items: List<Node>, position: TokenPosition) : AbstractIterableNode(items, position)

View File

@@ -1,3 +1,3 @@
package dsl.ast.model.node
package io.smnp.dsl.ast.model.node
class MinusOperatorNode(operator: Node, operand: Node) : UnaryOperatorAbstractNode(operator, operand)

View File

@@ -1,6 +1,6 @@
package dsl.ast.model.node
package io.smnp.dsl.ast.model.node
import dsl.token.model.entity.TokenPosition
import io.smnp.dsl.token.model.entity.TokenPosition
abstract class Node(numberOfChildren: Int, val position: TokenPosition) {
var children: MutableList<Node> = MutableList(numberOfChildren) { NONE }

View File

@@ -0,0 +1,7 @@
package io.smnp.dsl.ast.model.node
import io.smnp.dsl.token.model.entity.TokenPosition
class NoneNode : Node(0,
TokenPosition.NONE
)

View File

@@ -1,3 +1,3 @@
package dsl.ast.model.node
package io.smnp.dsl.ast.model.node
class NotOperatorNode(operator: Node, operand: Node) : UnaryOperatorAbstractNode(operator, operand)

View File

@@ -0,0 +1,5 @@
package io.smnp.dsl.ast.model.node
import io.smnp.dsl.token.model.entity.Token
class NoteLiteralNode(token: Token) : AtomAbstractNode(token)

View File

@@ -1,4 +1,4 @@
package dsl.ast.model.node
package io.smnp.dsl.ast.model.node
class OptionalFunctionDefinitionArgumentNode(identifier: Node, type: Node, defaultValue: Node) : Node(3, identifier.position) {
val identifier: Node

View File

@@ -1,3 +1,3 @@
package dsl.ast.model.node
package io.smnp.dsl.ast.model.node
class PowerOperatorNode(lhs: Node, operator: Node, rhs: Node) : BinaryOperatorAbstractNode(lhs, operator, rhs)

View File

@@ -1,3 +1,3 @@
package dsl.ast.model.node
package io.smnp.dsl.ast.model.node
class ProductOperatorNode(lhs: Node, operator: Node, rhs: Node) : BinaryOperatorAbstractNode(lhs, operator, rhs)

View File

@@ -1,4 +1,4 @@
package dsl.ast.model.node
package io.smnp.dsl.ast.model.node
class RegularFunctionDefinitionArgumentNode(identifier: Node, type: Node, vararg: Node) : Node(3, identifier.position) {
val identifier

View File

@@ -1,3 +1,3 @@
package dsl.ast.model.node
package io.smnp.dsl.ast.model.node
class RelationOperatorNode(lhs: Node, operator: Node, rhs: Node) : BinaryOperatorAbstractNode(lhs, operator, rhs)

View File

@@ -1,4 +1,4 @@
package dsl.ast.model.node
package io.smnp.dsl.ast.model.node
class ReturnNode(value: Node) : Node(1, value.position) {
val value: Node

View File

@@ -0,0 +1,5 @@
package io.smnp.dsl.ast.model.node
import io.smnp.dsl.token.model.entity.TokenPosition
class RootNode(nodes: List<Node>, position: TokenPosition) : Node(nodes, position)

View File

@@ -0,0 +1,5 @@
package io.smnp.dsl.ast.model.node
import io.smnp.dsl.token.model.entity.Token
class StringLiteralNode(token: Token) : AtomAbstractNode(token)

View File

@@ -1,3 +1,3 @@
package dsl.ast.model.node
package io.smnp.dsl.ast.model.node
class SumOperatorNode(lhs: Node, operator: Node, rhs: Node) : BinaryOperatorAbstractNode(lhs, operator, rhs)

View File

@@ -1,4 +1,4 @@
package dsl.ast.model.node
package io.smnp.dsl.ast.model.node
class ThrowNode(value: Node) : Node(1, value.position) {
val value: Node

View File

@@ -0,0 +1,5 @@
package io.smnp.dsl.ast.model.node
import io.smnp.dsl.token.model.entity.Token
class TokenNode(token: Token) : AtomAbstractNode(token)

View File

@@ -1,4 +1,4 @@
package dsl.ast.model.node
package io.smnp.dsl.ast.model.node
class TypeNode(type: Node, specifiers: Node) : Node(2, type.position) {
val type: Node

View File

@@ -1,5 +1,5 @@
package dsl.ast.model.node
package io.smnp.dsl.ast.model.node
import dsl.token.model.entity.TokenPosition
import io.smnp.dsl.token.model.entity.TokenPosition
class TypeSpecifierNode(items: List<Node>, position: TokenPosition) : AbstractIterableNode(items, position)

View File

@@ -1,5 +1,5 @@
package dsl.ast.model.node
package io.smnp.dsl.ast.model.node
import dsl.token.model.entity.TokenPosition
import io.smnp.dsl.token.model.entity.TokenPosition
class TypeSpecifiersNode(specifiers: List<Node>, position: TokenPosition) : Node(specifiers, position)

View File

@@ -1,4 +1,4 @@
package dsl.ast.model.node
package io.smnp.dsl.ast.model.node
abstract class UnaryOperatorAbstractNode(operator: Node, operand: Node) : Node(2, operator.position) {
val operator: Node

View File

@@ -1,10 +1,10 @@
package dsl.ast.parser
package io.smnp.dsl.ast.parser
import dsl.ast.model.entity.ParserOutput
import dsl.ast.model.node.Node
import dsl.token.model.entity.TokenList
import dsl.token.model.entity.TokenPosition
import dsl.token.model.enumeration.TokenType
import io.smnp.dsl.ast.model.entity.ParserOutput
import io.smnp.dsl.ast.model.node.Node
import io.smnp.dsl.token.model.entity.TokenList
import io.smnp.dsl.token.model.entity.TokenPosition
import io.smnp.dsl.token.model.enumeration.TokenType
abstract class AbstractIterableParser(
private val beginTokenType: TokenType,

View File

@@ -1,9 +1,9 @@
package dsl.ast.parser
package io.smnp.dsl.ast.parser
import dsl.ast.model.entity.ParserOutput
import dsl.ast.model.node.AssignmentOperatorNode
import dsl.token.model.entity.TokenList
import dsl.token.model.enumeration.TokenType
import io.smnp.dsl.ast.model.entity.ParserOutput
import io.smnp.dsl.ast.model.node.AssignmentOperatorNode
import io.smnp.dsl.token.model.entity.TokenList
import io.smnp.dsl.token.model.enumeration.TokenType
class AssignmentOperatorParser : Parser() {
override fun tryToParse(input: TokenList): ParserOutput {

View File

@@ -1,8 +1,8 @@
package dsl.ast.parser
package io.smnp.dsl.ast.parser
import dsl.ast.model.entity.ParserOutput
import dsl.token.model.entity.TokenList
import dsl.token.model.enumeration.TokenType
import io.smnp.dsl.ast.model.entity.ParserOutput
import io.smnp.dsl.token.model.entity.TokenList
import io.smnp.dsl.token.model.enumeration.TokenType
class AtomParser : Parser() {
override fun tryToParse(input: TokenList): ParserOutput {

View File

@@ -1,9 +1,9 @@
package dsl.ast.parser
package io.smnp.dsl.ast.parser
import dsl.ast.model.entity.ParserOutput
import dsl.ast.model.node.BlockNode
import dsl.token.model.entity.TokenList
import dsl.token.model.enumeration.TokenType
import io.smnp.dsl.ast.model.entity.ParserOutput
import io.smnp.dsl.ast.model.node.BlockNode
import io.smnp.dsl.token.model.entity.TokenList
import io.smnp.dsl.token.model.enumeration.TokenType
class BlockParser : Parser() {
override fun tryToParse(input: TokenList): ParserOutput {

View File

@@ -0,0 +1,12 @@
package io.smnp.dsl.ast.parser
import io.smnp.dsl.ast.model.entity.ParserOutput
import io.smnp.dsl.ast.model.node.BoolLiteralNode
import io.smnp.dsl.token.model.entity.TokenList
import io.smnp.dsl.token.model.enumeration.TokenType
class BoolLiteralParser : Parser() {
override fun tryToParse(input: TokenList): ParserOutput {
return terminal(TokenType.BOOL) { BoolLiteralNode(it) }.parse(input)
}
}

View File

@@ -1,7 +1,7 @@
package dsl.ast.parser
package io.smnp.dsl.ast.parser
import dsl.ast.model.entity.ParserOutput
import dsl.token.model.entity.TokenList
import io.smnp.dsl.ast.model.entity.ParserOutput
import io.smnp.dsl.token.model.entity.TokenList
class ComplexIdentifierParser : Parser() {
override fun tryToParse(input: TokenList): ParserOutput {

View File

@@ -1,10 +1,10 @@
package dsl.ast.parser
package io.smnp.dsl.ast.parser
import dsl.ast.model.entity.ParserOutput
import dsl.ast.model.node.ConditionNode
import dsl.ast.model.node.Node
import dsl.token.model.entity.TokenList
import dsl.token.model.enumeration.TokenType
import io.smnp.dsl.ast.model.entity.ParserOutput
import io.smnp.dsl.ast.model.node.ConditionNode
import io.smnp.dsl.ast.model.node.Node
import io.smnp.dsl.token.model.entity.TokenList
import io.smnp.dsl.token.model.enumeration.TokenType
class ConditionParser : Parser() {
override fun tryToParse(input: TokenList): ParserOutput {

View File

@@ -1,7 +1,7 @@
package dsl.ast.parser
package io.smnp.dsl.ast.parser
import dsl.ast.model.entity.ParserOutput
import dsl.token.model.entity.TokenList
import io.smnp.dsl.ast.model.entity.ParserOutput
import io.smnp.dsl.token.model.entity.TokenList
class ExpressionParser : Parser() {
override fun tryToParse(input: TokenList): ParserOutput {

View File

@@ -1,11 +1,11 @@
package dsl.ast.parser
package io.smnp.dsl.ast.parser
import dsl.ast.model.entity.ParserOutput
import dsl.ast.model.node.BlockNode
import dsl.ast.model.node.ExtendNode
import dsl.ast.model.node.Node
import dsl.token.model.entity.TokenList
import dsl.token.model.enumeration.TokenType
import io.smnp.dsl.ast.model.entity.ParserOutput
import io.smnp.dsl.ast.model.node.BlockNode
import io.smnp.dsl.ast.model.node.ExtendNode
import io.smnp.dsl.ast.model.node.Node
import io.smnp.dsl.token.model.entity.TokenList
import io.smnp.dsl.token.model.enumeration.TokenType
class ExtendParser : Parser() {
override fun tryToParse(input: TokenList): ParserOutput {

View File

@@ -1,10 +1,10 @@
package dsl.ast.parser
package io.smnp.dsl.ast.parser
import dsl.ast.model.entity.ParserOutput
import dsl.ast.model.node.NotOperatorNode
import dsl.ast.model.node.PowerOperatorNode
import dsl.token.model.entity.TokenList
import dsl.token.model.enumeration.TokenType
import io.smnp.dsl.ast.model.entity.ParserOutput
import io.smnp.dsl.ast.model.node.NotOperatorNode
import io.smnp.dsl.ast.model.node.PowerOperatorNode
import io.smnp.dsl.token.model.entity.TokenList
import io.smnp.dsl.token.model.enumeration.TokenType
class FactorParser : Parser() {
override fun tryToParse(input: TokenList): ParserOutput {

View File

@@ -0,0 +1,12 @@
package io.smnp.dsl.ast.parser
import io.smnp.dsl.ast.model.entity.ParserOutput
import io.smnp.dsl.ast.model.node.FloatLiteralNode
import io.smnp.dsl.token.model.entity.TokenList
import io.smnp.dsl.token.model.enumeration.TokenType
class FloatLiteralParser : Parser() {
override fun tryToParse(input: TokenList): ParserOutput {
return terminal(TokenType.FLOAT) { FloatLiteralNode(it) }.parse(input)
}
}

View File

@@ -1,7 +1,7 @@
package dsl.ast.parser
package io.smnp.dsl.ast.parser
import dsl.ast.model.node.FunctionCallArgumentsNode
import dsl.token.model.enumeration.TokenType
import io.smnp.dsl.ast.model.node.FunctionCallArgumentsNode
import io.smnp.dsl.token.model.enumeration.TokenType
class FunctionCallArgumentsParser :
AbstractIterableParser(TokenType.OPEN_PAREN, ExpressionParser(), TokenType.CLOSE_PAREN, { list, tokenPosition ->

View File

@@ -1,8 +1,8 @@
package dsl.ast.parser
package io.smnp.dsl.ast.parser
import dsl.ast.model.entity.ParserOutput
import dsl.ast.model.node.FunctionCallNode
import dsl.token.model.entity.TokenList
import io.smnp.dsl.ast.model.entity.ParserOutput
import io.smnp.dsl.ast.model.node.FunctionCallNode
import io.smnp.dsl.token.model.entity.TokenList
class FunctionCallParser : Parser() {
override fun tryToParse(input: TokenList): ParserOutput {

View File

@@ -1,7 +1,7 @@
package dsl.ast.parser
package io.smnp.dsl.ast.parser
import dsl.ast.model.entity.ParserOutput
import dsl.token.model.entity.TokenList
import io.smnp.dsl.ast.model.entity.ParserOutput
import io.smnp.dsl.token.model.entity.TokenList
class FunctionDefinitionArgumentParser : Parser() {
override fun tryToParse(input: TokenList): ParserOutput {

View File

@@ -1,7 +1,7 @@
package dsl.ast.parser
package io.smnp.dsl.ast.parser
import dsl.ast.model.node.FunctionDefinitionArgumentsNode
import dsl.token.model.enumeration.TokenType
import io.smnp.dsl.ast.model.node.FunctionDefinitionArgumentsNode
import io.smnp.dsl.token.model.enumeration.TokenType
class FunctionDefinitionArgumentsParser : AbstractIterableParser(
TokenType.OPEN_PAREN,

View File

@@ -1,9 +1,9 @@
package dsl.ast.parser
package io.smnp.dsl.ast.parser
import dsl.ast.model.entity.ParserOutput
import dsl.ast.model.node.FunctionDefinitionNode
import dsl.token.model.entity.TokenList
import dsl.token.model.enumeration.TokenType
import io.smnp.dsl.ast.model.entity.ParserOutput
import io.smnp.dsl.ast.model.node.FunctionDefinitionNode
import io.smnp.dsl.token.model.entity.TokenList
import io.smnp.dsl.token.model.enumeration.TokenType
class FunctionDefinitionParser : Parser() {
override fun tryToParse(input: TokenList): ParserOutput {

View File

@@ -1,9 +1,9 @@
package dsl.ast.parser
package io.smnp.dsl.ast.parser
import dsl.ast.model.entity.ParserOutput
import dsl.ast.model.node.ImportNode
import dsl.token.model.entity.TokenList
import dsl.token.model.enumeration.TokenType
import io.smnp.dsl.ast.model.entity.ParserOutput
import io.smnp.dsl.ast.model.node.ImportNode
import io.smnp.dsl.token.model.entity.TokenList
import io.smnp.dsl.token.model.enumeration.TokenType
class ImportParser : Parser() {
override fun tryToParse(input: TokenList): ParserOutput {

View File

@@ -0,0 +1,12 @@
package io.smnp.dsl.ast.parser
import io.smnp.dsl.ast.model.entity.ParserOutput
import io.smnp.dsl.ast.model.node.IntegerLiteralNode
import io.smnp.dsl.token.model.entity.TokenList
import io.smnp.dsl.token.model.enumeration.TokenType
class IntegerLiteralParser : Parser() {
override fun tryToParse(input: TokenList): ParserOutput {
return terminal(TokenType.INTEGER) { IntegerLiteralNode(it) }.parse(input)
}
}

View File

@@ -1,7 +1,7 @@
package dsl.ast.parser
package io.smnp.dsl.ast.parser
import dsl.ast.model.node.ListNode
import dsl.token.model.enumeration.TokenType
import io.smnp.dsl.ast.model.node.ListNode
import io.smnp.dsl.token.model.enumeration.TokenType
class ListParser : AbstractIterableParser(
TokenType.OPEN_SQUARE,

View File

@@ -1,7 +1,7 @@
package dsl.ast.parser
package io.smnp.dsl.ast.parser
import dsl.ast.model.entity.ParserOutput
import dsl.token.model.entity.TokenList
import io.smnp.dsl.ast.model.entity.ParserOutput
import io.smnp.dsl.token.model.entity.TokenList
class LiteralParser : Parser() {
override fun tryToParse(input: TokenList): ParserOutput {

View File

@@ -1,7 +1,7 @@
package dsl.ast.parser
package io.smnp.dsl.ast.parser
import dsl.ast.model.node.LoopParametersNode
import dsl.token.model.enumeration.TokenType
import io.smnp.dsl.ast.model.node.LoopParametersNode
import io.smnp.dsl.token.model.enumeration.TokenType
class LoopParametersParser : AbstractIterableParser(
TokenType.OPEN_PAREN,

View File

@@ -1,10 +1,10 @@
package dsl.ast.parser
package io.smnp.dsl.ast.parser
import dsl.ast.model.entity.ParserOutput
import dsl.ast.model.node.LoopNode
import dsl.ast.model.node.LoopParametersNode
import dsl.token.model.entity.TokenList
import dsl.token.model.enumeration.TokenType
import io.smnp.dsl.ast.model.entity.ParserOutput
import io.smnp.dsl.ast.model.node.LoopNode
import io.smnp.dsl.ast.model.node.LoopParametersNode
import io.smnp.dsl.token.model.entity.TokenList
import io.smnp.dsl.token.model.enumeration.TokenType
class LoopParser : Parser() {
override fun tryToParse(input: TokenList): ParserOutput {

View File

@@ -1,9 +1,9 @@
package dsl.ast.parser
package io.smnp.dsl.ast.parser
import dsl.ast.model.entity.ParserOutput
import dsl.ast.model.node.MapEntryNode
import dsl.token.model.entity.TokenList
import dsl.token.model.enumeration.TokenType
import io.smnp.dsl.ast.model.entity.ParserOutput
import io.smnp.dsl.ast.model.node.MapEntryNode
import io.smnp.dsl.token.model.entity.TokenList
import io.smnp.dsl.token.model.enumeration.TokenType
class MapEntryParser : Parser() {
override fun tryToParse(input: TokenList): ParserOutput {

View File

@@ -1,7 +1,7 @@
package dsl.ast.parser
package io.smnp.dsl.ast.parser
import dsl.ast.model.node.MapNode
import dsl.token.model.enumeration.TokenType
import io.smnp.dsl.ast.model.node.MapNode
import io.smnp.dsl.token.model.enumeration.TokenType
class MapParser :
AbstractIterableParser(TokenType.OPEN_CURLY, MapEntryParser(), TokenType.CLOSE_CURLY, { list, tokenPosition ->

View File

@@ -0,0 +1,12 @@
package io.smnp.dsl.ast.parser
import io.smnp.dsl.ast.model.entity.ParserOutput
import io.smnp.dsl.ast.model.node.NoteLiteralNode
import io.smnp.dsl.token.model.entity.TokenList
import io.smnp.dsl.token.model.enumeration.TokenType
class NoteLiteralParser : Parser() {
override fun tryToParse(input: TokenList): ParserOutput {
return terminal(TokenType.NOTE) { NoteLiteralNode(it) }.parse(input)
}
}

View File

@@ -1,9 +1,9 @@
package dsl.ast.parser
package io.smnp.dsl.ast.parser
import dsl.ast.model.entity.ParserOutput
import dsl.ast.model.node.OptionalFunctionDefinitionArgumentNode
import dsl.token.model.entity.TokenList
import dsl.token.model.enumeration.TokenType
import io.smnp.dsl.ast.model.entity.ParserOutput
import io.smnp.dsl.ast.model.node.OptionalFunctionDefinitionArgumentNode
import io.smnp.dsl.token.model.entity.TokenList
import io.smnp.dsl.token.model.enumeration.TokenType
class OptionalFunctionDefinitionArgumentParser : Parser() {
override fun tryToParse(input: TokenList): ParserOutput {

View File

@@ -1,14 +1,14 @@
package dsl.ast.parser
package io.smnp.dsl.ast.parser
import dsl.ast.model.entity.ParserOutput
import dsl.ast.model.enumeration.ParsingResult
import dsl.ast.model.node.Node
import dsl.ast.model.node.TokenNode
import dsl.token.model.entity.Token
import dsl.token.model.entity.TokenList
import dsl.token.model.entity.TokenPosition
import dsl.token.model.enumeration.TokenType
import error.InvalidSyntaxException
import io.smnp.dsl.ast.model.entity.ParserOutput
import io.smnp.dsl.ast.model.enumeration.ParsingResult
import io.smnp.dsl.ast.model.node.Node
import io.smnp.dsl.ast.model.node.TokenNode
import io.smnp.dsl.token.model.entity.Token
import io.smnp.dsl.token.model.entity.TokenList
import io.smnp.dsl.token.model.entity.TokenPosition
import io.smnp.dsl.token.model.enumeration.TokenType
import io.smnp.error.InvalidSyntaxException
abstract class Parser {
fun parse(input: TokenList): ParserOutput {

View File

@@ -1,9 +1,9 @@
package dsl.ast.parser
package io.smnp.dsl.ast.parser
import dsl.ast.model.entity.ParserOutput
import dsl.ast.model.node.RegularFunctionDefinitionArgumentNode
import dsl.token.model.entity.TokenList
import dsl.token.model.enumeration.TokenType
import io.smnp.dsl.ast.model.entity.ParserOutput
import io.smnp.dsl.ast.model.node.RegularFunctionDefinitionArgumentNode
import io.smnp.dsl.token.model.entity.TokenList
import io.smnp.dsl.token.model.enumeration.TokenType
class RegularFunctionDefinitionArgumentParser : Parser() {
override fun tryToParse(input: TokenList): ParserOutput {

View File

@@ -1,9 +1,9 @@
package dsl.ast.parser
package io.smnp.dsl.ast.parser
import dsl.ast.model.entity.ParserOutput
import dsl.ast.model.node.ReturnNode
import dsl.token.model.entity.TokenList
import dsl.token.model.enumeration.TokenType
import io.smnp.dsl.ast.model.entity.ParserOutput
import io.smnp.dsl.ast.model.node.ReturnNode
import io.smnp.dsl.token.model.entity.TokenList
import io.smnp.dsl.token.model.enumeration.TokenType
class ReturnParser : Parser() {
override fun tryToParse(input: TokenList): ParserOutput {

Some files were not shown because too many files have changed in this diff Show More