Migrate import parser to Kotlin

This commit is contained in:
2020-03-06 22:31:06 +01:00
parent df4b923356
commit 74d42588a4
2 changed files with 35 additions and 0 deletions

View File

@@ -0,0 +1,12 @@
package dsl.ast.model.node
import dsl.token.model.entity.TokenPosition
class ImportNode(path: Node, position: TokenPosition) : Node(1, position) {
val path: Node
get() = children[0]
init {
children[0] = path
}
}

View File

@@ -0,0 +1,23 @@
package 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
class ImportParser : Parser() {
override fun tryToParse(input: TokenList): ParserOutput {
val pathParser = oneOf(
UnitParser(),
SimpleIdentifierParser(),
StringLiteralParser()
)
return allOf(
terminal(TokenType.IMPORT),
pathParser
) {
ImportNode(it[1], it[0].position)
}.parse(input)
}
}