diff --git a/src/commonMain/kotlin/de/timklge/jackrat/And.kt b/src/commonMain/kotlin/de/timklge/jackrat/And.kt index 710a9601557ad984cda2cf37fdc79327837d1cca..acf27d01855c65df396d27662fed1dd6a899d44c 100644 --- a/src/commonMain/kotlin/de/timklge/jackrat/And.kt +++ b/src/commonMain/kotlin/de/timklge/jackrat/And.kt @@ -24,18 +24,3 @@ class AndParser(children: List<Parser>, nodeFunc: NodeTransform = ::emptyNodeTra } } -class OrParser(children: List<Parser>, nodeFunc: NodeTransform = ::emptyNodeTransform): ParserWithChildren(children, nodeFunc) { - override val typeName: String = "OrParser" - - override fun Match(s: Scanner): Node? { - val startPosition = s.position - children.forEach { - val node = s.applyRule(it) - if(node != null){ - return Node(node.matched, this, listOf(node)) - } - s.position = startPosition - } - return null - } -} \ No newline at end of file diff --git a/src/commonMain/kotlin/de/timklge/jackrat/Empty.kt b/src/commonMain/kotlin/de/timklge/jackrat/Empty.kt index 729466d323c856233a9cd8e0ea074a3abb5b3f3f..b639d892a160194c37b75dae7744151f147c61dd 100644 --- a/src/commonMain/kotlin/de/timklge/jackrat/Empty.kt +++ b/src/commonMain/kotlin/de/timklge/jackrat/Empty.kt @@ -10,20 +10,3 @@ class EmptyParser(transform: NodeTransform = ::emptyNodeTransform) : Parser(tran } } -class EndParser(val skipWhitespace: Boolean = true) : Parser() { - override val typeName: String = "EndParser" - - override fun Match(s: Scanner): Node? { - val startPosition = s.position - if(skipWhitespace){ - s.skipWhitespace() - } - - if(s.position == s.input.length){ - return Node("", this, listOf()) - } - - s.position = startPosition - return null - } -} \ No newline at end of file diff --git a/src/commonMain/kotlin/de/timklge/jackrat/End.kt b/src/commonMain/kotlin/de/timklge/jackrat/End.kt new file mode 100644 index 0000000000000000000000000000000000000000..259987ffd4331ca84a229c6f26cba54c34222cd1 --- /dev/null +++ b/src/commonMain/kotlin/de/timklge/jackrat/End.kt @@ -0,0 +1,21 @@ +package de.timklge.jackrat + +import jackrat.de.timklge.jackrat.Scanner + +class EndParser(val skipWhitespace: Boolean = true) : Parser() { + override val typeName: String = "EndParser" + + override fun Match(s: Scanner): Node? { + val startPosition = s.position + if(skipWhitespace){ + s.skipWhitespace() + } + + if(s.position == s.input.length){ + return Node("", this, listOf()) + } + + s.position = startPosition + return null + } +} \ No newline at end of file diff --git a/src/commonMain/kotlin/de/timklge/jackrat/Or.kt b/src/commonMain/kotlin/de/timklge/jackrat/Or.kt new file mode 100644 index 0000000000000000000000000000000000000000..fb54908736006ffbc433a2e876d071091d5b9ca0 --- /dev/null +++ b/src/commonMain/kotlin/de/timklge/jackrat/Or.kt @@ -0,0 +1,19 @@ +package de.timklge.jackrat + +import jackrat.de.timklge.jackrat.Scanner + +class OrParser(children: List<Parser>, nodeFunc: NodeTransform = ::emptyNodeTransform): ParserWithChildren(children, nodeFunc) { + override val typeName: String = "OrParser" + + override fun Match(s: Scanner): Node? { + val startPosition = s.position + children.forEach { + val node = s.applyRule(it) + if(node != null){ + return Node(node.matched, this, listOf(node)) + } + s.position = startPosition + } + return null + } +} \ No newline at end of file diff --git a/src/commonMain/kotlin/de/timklge/jackrat/RegexParser.kt b/src/commonMain/kotlin/de/timklge/jackrat/Regex.kt similarity index 100% rename from src/commonMain/kotlin/de/timklge/jackrat/RegexParser.kt rename to src/commonMain/kotlin/de/timklge/jackrat/Regex.kt