Migrate list parser to Kotlin

This commit is contained in:
2020-03-06 17:46:48 +01:00
parent 5cd0b47415
commit 6e9d3d06fb
5 changed files with 20 additions and 3 deletions

View File

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

View File

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

View File

@@ -6,8 +6,6 @@ import dsl.token.model.entity.TokenList
import dsl.token.model.entity.TokenPosition
import dsl.token.model.enumeration.TokenType
class AbstractIterableNode(beginNode: Node, items: List<Node>) : Node(items, beginNode.position)
abstract class AbstractIterableParser(
private val beginTokenType: TokenType,
private val itemParser: Parser,

View File

@@ -23,7 +23,8 @@ class AtomParser : Parser() {
FloatLiteralParser(),
IntegerLiteralParser(),
NoteLiteralParser(),
StringLiteralParser()
StringLiteralParser(),
ListParser()
)
)

View File

@@ -0,0 +1,8 @@
package dsl.ast.parser
import dsl.ast.model.node.ListNode
import dsl.token.model.enumeration.TokenType
class ListParser : AbstractIterableParser(TokenType.OPEN_SQUARE, ExpressionParser(), TokenType.CLOSE_SQUARE, {
list, tokenPosition -> ListNode(list, tokenPosition)
})