Skip to content

Commit

Permalink
Clang-Format // Use dual-space indentation. (#18)
Browse files Browse the repository at this point in the history
  • Loading branch information
ShikiSuen authored May 10, 2022
1 parent 9a9608f commit 439b3bb
Show file tree
Hide file tree
Showing 14 changed files with 946 additions and 945 deletions.
4 changes: 2 additions & 2 deletions .clang-format-swift.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"accessLevel" : "private"
},
"indentation" : {
"tabs" : 1
"spaces" : 2
},
"indentConditionalCompilationBlocks" : true,
"indentSwitchCaseLabels" : true,
Expand Down Expand Up @@ -51,6 +51,6 @@
"UseWhereClausesInForLoops" : false,
"ValidateDocumentationComments" : false
},
"tabWidth" : 4,
"tabWidth" : 8,
"version" : 1
}
36 changes: 18 additions & 18 deletions Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,22 @@
import PackageDescription

let package = Package(
name: "Megrez",
products: [
.library(
name: "Megrez",
targets: ["Megrez"]
)
],
dependencies: [],
targets: [
.target(
name: "Megrez",
dependencies: []
),
.testTarget(
name: "MegrezTests",
dependencies: ["Megrez"]
),
]
name: "Megrez",
products: [
.library(
name: "Megrez",
targets: ["Megrez"]
)
],
dependencies: [],
targets: [
.target(
name: "Megrez",
dependencies: []
),
.testTarget(
name: "MegrezTests",
dependencies: ["Megrez"]
),
]
)
238 changes: 119 additions & 119 deletions Sources/Megrez/1_BlockReadingBuilder.swift
Original file line number Diff line number Diff line change
Expand Up @@ -24,123 +24,123 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/

extension Megrez {
public class BlockReadingBuilder {
let kMaximumBuildSpanLength = 10 // 規定最多可以組成的詞的字數上限為 10
var mutCursorIndex: Int = 0
var mutReadings: [String] = []
var mutGrid: Grid = .init()
var mutLM: LanguageModel
var mutJoinSeparator: String = ""

public init(lm: LanguageModel) {
mutLM = lm
}

public func clear() {
mutCursorIndex = 0
mutReadings.removeAll()
mutGrid.clear()
}

public func length() -> Int { mutReadings.count }

public func cursorIndex() -> Int { mutCursorIndex }

public func setCursorIndex(newIndex: Int) {
mutCursorIndex = min(newIndex, mutReadings.count)
}

public func insertReadingAtCursor(reading: String) {
mutReadings.insert(reading, at: mutCursorIndex)
mutGrid.expandGridByOneAt(location: mutCursorIndex)
build()
mutCursorIndex += 1
}

public func readings() -> [String] { mutReadings }

@discardableResult public func deleteReadingBeforeCursor() -> Bool {
if mutCursorIndex == 0 {
return false
}

mutReadings.remove(at: mutCursorIndex - 1)
mutCursorIndex -= 1
mutGrid.shrinkGridByOneAt(location: mutCursorIndex)
build()
return true
}

@discardableResult public func deleteReadingAfterCursor() -> Bool {
if mutCursorIndex == mutReadings.count {
return false
}

mutReadings.remove(at: mutCursorIndex)
mutGrid.shrinkGridByOneAt(location: mutCursorIndex)
build()
return true
}

@discardableResult public func removeHeadReadings(count: Int) -> Bool {
if count > length() {
return false
}

var i = 0
while i < count {
if mutCursorIndex != 0 {
mutCursorIndex -= 1
}
mutReadings.removeFirst()
mutGrid.shrinkGridByOneAt(location: 0)
build()
i += 1
}

return true
}

public func setJoinSeparator(separator: String) {
mutJoinSeparator = separator
}

public func joinSeparator() -> String { mutJoinSeparator }

public func grid() -> Grid { mutGrid }

public func build() {
// if (mutLM == nil) { return } // 這個出不了 nil,所以註釋掉。

let itrBegin: Int =
(mutCursorIndex < kMaximumBuildSpanLength) ? 0 : mutCursorIndex - kMaximumBuildSpanLength
let itrEnd: Int = min(mutCursorIndex + kMaximumBuildSpanLength, mutReadings.count)

var p = itrBegin
while p < itrEnd {
var q = 1
while q <= kMaximumBuildSpanLength, p + q <= itrEnd {
let strSlice = mutReadings[p..<(p + q)]
let combinedReading: String = join(slice: strSlice, separator: mutJoinSeparator)
if !mutGrid.hasMatchedNode(location: p, spanningLength: q, key: combinedReading) {
let unigrams: [Unigram] = mutLM.unigramsFor(key: combinedReading)
if !unigrams.isEmpty {
let n = Node(key: combinedReading, unigrams: unigrams)
mutGrid.insertNode(node: n, location: p, spanningLength: q)
}
}
q += 1
}
p += 1
}
}

public func join(slice strSlice: ArraySlice<String>, separator: String) -> String {
var arrResult: [String] = []
for value in strSlice {
arrResult.append(value)
}
return arrResult.joined(separator: separator)
}
}
public class BlockReadingBuilder {
let kMaximumBuildSpanLength = 10 // 規定最多可以組成的詞的字數上限為 10
var mutCursorIndex: Int = 0
var mutReadings: [String] = []
var mutGrid: Grid = .init()
var mutLM: LanguageModel
var mutJoinSeparator: String = ""

public init(lm: LanguageModel) {
mutLM = lm
}

public func clear() {
mutCursorIndex = 0
mutReadings.removeAll()
mutGrid.clear()
}

public func length() -> Int { mutReadings.count }

public func cursorIndex() -> Int { mutCursorIndex }

public func setCursorIndex(newIndex: Int) {
mutCursorIndex = min(newIndex, mutReadings.count)
}

public func insertReadingAtCursor(reading: String) {
mutReadings.insert(reading, at: mutCursorIndex)
mutGrid.expandGridByOneAt(location: mutCursorIndex)
build()
mutCursorIndex += 1
}

public func readings() -> [String] { mutReadings }

@discardableResult public func deleteReadingBeforeCursor() -> Bool {
if mutCursorIndex == 0 {
return false
}

mutReadings.remove(at: mutCursorIndex - 1)
mutCursorIndex -= 1
mutGrid.shrinkGridByOneAt(location: mutCursorIndex)
build()
return true
}

@discardableResult public func deleteReadingAfterCursor() -> Bool {
if mutCursorIndex == mutReadings.count {
return false
}

mutReadings.remove(at: mutCursorIndex)
mutGrid.shrinkGridByOneAt(location: mutCursorIndex)
build()
return true
}

@discardableResult public func removeHeadReadings(count: Int) -> Bool {
if count > length() {
return false
}

var i = 0
while i < count {
if mutCursorIndex != 0 {
mutCursorIndex -= 1
}
mutReadings.removeFirst()
mutGrid.shrinkGridByOneAt(location: 0)
build()
i += 1
}

return true
}

public func setJoinSeparator(separator: String) {
mutJoinSeparator = separator
}

public func joinSeparator() -> String { mutJoinSeparator }

public func grid() -> Grid { mutGrid }

public func build() {
// if (mutLM == nil) { return } // 這個出不了 nil,所以註釋掉。

let itrBegin: Int =
(mutCursorIndex < kMaximumBuildSpanLength) ? 0 : mutCursorIndex - kMaximumBuildSpanLength
let itrEnd: Int = min(mutCursorIndex + kMaximumBuildSpanLength, mutReadings.count)

var p = itrBegin
while p < itrEnd {
var q = 1
while q <= kMaximumBuildSpanLength, p + q <= itrEnd {
let strSlice = mutReadings[p..<(p + q)]
let combinedReading: String = join(slice: strSlice, separator: mutJoinSeparator)
if !mutGrid.hasMatchedNode(location: p, spanningLength: q, key: combinedReading) {
let unigrams: [Unigram] = mutLM.unigramsFor(key: combinedReading)
if !unigrams.isEmpty {
let n = Node(key: combinedReading, unigrams: unigrams)
mutGrid.insertNode(node: n, location: p, spanningLength: q)
}
}
q += 1
}
p += 1
}
}

public func join(slice strSlice: ArraySlice<String>, separator: String) -> String {
var arrResult: [String] = []
for value in strSlice {
arrResult.append(value)
}
return arrResult.joined(separator: separator)
}
}
}
Loading

0 comments on commit 439b3bb

Please sign in to comment.