Skip to content

Commit a4de3fc

Browse files
committed
Setup klint
1 parent 6d81ba2 commit a4de3fc

File tree

10 files changed

+33
-13
lines changed

10 files changed

+33
-13
lines changed

.editorconfig

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
[*.{kt,kts}]
2+
disabled_rules=no-wildcard-imports

.idea/modules/cyk-algorithm.jvmTest.iml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

build.gradle.kts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
1+
val kotlinResultVersion: String by project
2+
13
plugins {
2-
kotlin("multiplatform") version "1.4.10"
4+
kotlin("multiplatform")
5+
id("org.jetbrains.dokka")
6+
id("org.jlleitschuh.gradle.ktlint")
37
}
8+
49
group = "eu.yeger"
510
version = "1.0-SNAPSHOT"
611

@@ -40,7 +45,7 @@ kotlin {
4045

4146
val commonMain by getting {
4247
dependencies {
43-
implementation("com.michael-bull.kotlin-result:kotlin-result:1.1.9")
48+
implementation("com.michael-bull.kotlin-result:kotlin-result:$kotlinResultVersion")
4449
}
4550
}
4651
val commonTest by getting {

gradle.properties

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
11
kotlin.code.style=official
22
kotlin.js.generate.executable.default=false
33
kotlin.mpp.stability.nowarn=true
4+
5+
dokkaVersion=1.4.10
6+
kotlinVersion=1.4.10
7+
ktlintVersion=9.4.1
8+
kotlinResultVersion=1.1.9

settings.gradle.kts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,13 @@
1+
pluginManagement {
2+
val dokkaVersion: String by settings
3+
val kotlinVersion: String by settings
4+
val ktlintVersion: String by settings
15

2-
rootProject.name = "cyk-algorithm"
6+
plugins {
7+
kotlin("multiplatform") version kotlinVersion
8+
id("org.jetbrains.dokka") version dokkaVersion
9+
id("org.jlleitschuh.gradle.ktlint") version ktlintVersion
10+
}
11+
}
312

13+
rootProject.name = "cyk-algorithm"

src/commonMain/kotlin/eu/yeger/cyk/CYK.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ private fun CYKModel.findProductionRulesForNonTerminalSymbols(
4646
): CYKModel {
4747
return grammar.productionRuleSet.nonTerminatingRules.fold(this) { model: CYKModel, rule: NonTerminatingRule ->
4848
when {
49-
model.allowsNonTerminalRuleAt(rule, l = l, s = s, p = p) -> model.withSymbolAt(rule.left, l - 1, s - 1)
49+
model.allowsNonTerminalRuleAt(rule, l = l, s = s, p = p) -> model.withSymbolAt(rule.left, l - 1, s - 1)
5050
else -> model
5151
}
5252
}
@@ -58,6 +58,6 @@ private fun CYKModel.allowsNonTerminalRuleAt(
5858
s: Int,
5959
p: Int,
6060
): Boolean {
61-
return this.containsSymbolAt(nonTerminatingRule.firstRight, p - 1, s - 1)
62-
&& this.containsSymbolAt(nonTerminatingRule.secondRight, l - p - 1, s + p - 1)
61+
return this.containsSymbolAt(nonTerminatingRule.firstRight, p - 1, s - 1) &&
62+
this.containsSymbolAt(nonTerminatingRule.secondRight, l - p - 1, s + p - 1)
6363
}

src/commonMain/kotlin/eu/yeger/cyk/ProductionRuleSet.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package eu.yeger.cyk
33
data class ProductionRuleSet(
44
val nonTerminatingRules: Set<NonTerminatingRule>,
55
val terminatingRules: Set<TerminatingRule>
6-
): Set<ProductionRule> by (nonTerminatingRules + terminatingRules)
6+
) : Set<ProductionRule> by (nonTerminatingRules + terminatingRules)
77

88
@Suppress("UNCHECKED_CAST")
99
fun productionRuleSet(

src/commonMain/kotlin/eu/yeger/cyk/RuleParser.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import kotlin.collections.fold
55

66
typealias Line = String
77

8-
private val productionRuleRegex = Regex("[A-Z]+[a-z]* -> ([A-Z]+[a-z]* [A-Z]+[a-z]*|[a-z]+|${epsilon})")
8+
private val productionRuleRegex = Regex("[A-Z]+[a-z]* -> ([A-Z]+[a-z]* [A-Z]+[a-z]*|[a-z]+|$epsilon)")
99

1010
fun grammar(startSymbol: String, block: () -> String): Result<Grammar, String> {
1111
return parseAsGrammar(rulesString = block(), startSymbol = startSymbol)
@@ -63,4 +63,4 @@ private fun List<String>.asTerminatingProductionRule(inputSymbol: NonTerminalSym
6363
else -> RegularTerminalSymbol(terminalSymbol)
6464
}
6565
return Ok(TerminatingRule(inputSymbol, outputSymbol))
66-
}
66+
}

src/commonMain/kotlin/eu/yeger/cyk/Symbol.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ data class RegularTerminalSymbol(override val symbol: String) : TerminalSymbol {
1818

1919
interface NonTerminalSymbol : Symbol
2020

21-
data class StartSymbol(override val symbol: String): NonTerminalSymbol {
21+
data class StartSymbol(override val symbol: String) : NonTerminalSymbol {
2222
override fun toString() = symbol
2323
}
2424

src/commonMain/kotlin/eu/yeger/cyk/Utilities.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,6 @@ fun word(word: String): Sequence<TerminalSymbol> {
2020
.asSequence()
2121
}
2222

23-
2423
fun word(block: () -> String): Sequence<TerminalSymbol> {
2524
return word(block())
2625
}
27-

0 commit comments

Comments
 (0)