Skip to content

Commit

Permalink
adopt more consistent style
Browse files Browse the repository at this point in the history
  • Loading branch information
loiclec committed Oct 30, 2016
1 parent 8d28825 commit 92647d3
Show file tree
Hide file tree
Showing 9 changed files with 49 additions and 47 deletions.
6 changes: 3 additions & 3 deletions Sources/Apodimark/BlockParsing/BlockParsing.swift
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@ extension MarkdownParser {

case .lastLeafIsCodeBlock:
// optimization to avoid deeply nested list + fence + empty lines worst case scenario
let lastLeaf = blockTree.buffer.last!.data
let lastLeaf = blockTree.lastLeaf
switch lastLeaf {
case .code(let c) : _ = add(line: preparedLine, to: c)
case .fence(let f): _ = add(line: preparedLine, to: f)
Expand All @@ -213,7 +213,7 @@ extension MarkdownParser {

let result = lastItemContent.map { add(line: preparedLine, to: $0, depthLevel: itemContentLevel) } ?? .failure

let lastLeaf = blockTree.buffer.last!.data
let lastLeaf = blockTree.lastLeaf
switch lastLeaf {
case .fence, .code:
list.state = .lastLeafIsCodeBlock
Expand Down Expand Up @@ -257,7 +257,7 @@ extension MarkdownParser {
}

fileprivate func add(line: Line<View>, to list: ListNode<View>, listLevel: DepthLevel) -> AddLineResult {
guard let line = preparedLine(from: line, for: list) else {
guard case let line? = preparedLine(from: line, for: list) else {
return .failure
}
addPreparedLine(line, to: list, listLevel: listLevel)
Expand Down
28 changes: 14 additions & 14 deletions Sources/Apodimark/BlockParsing/LineLexer.swift
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ extension MarkdownParser {
/// - returns: the kind of the list marker
fileprivate static func readListMarker(_ scanner: inout Scanner<View>) throws -> ListKind {

guard let firstToken = scanner.pop() else {
guard case let firstToken? = scanner.pop() else {
preconditionFailure()
}

Expand All @@ -53,7 +53,7 @@ extension MarkdownParser {
var length = 1
try scanner.popWhile { token in

guard let token = token, token != Codec.linefeed else {
guard case let token? = token, token != Codec.linefeed else {
throw ListParsingError.notAListMarker // e.g. 1234 followed by end of line / end of string
}

Expand Down Expand Up @@ -100,7 +100,7 @@ extension MarkdownParser {
// 1234)
// |_<---

guard let token = scanner.pop(ifNot: Codec.linefeed) else {
guard case let token? = scanner.pop(ifNot: Codec.linefeed) else {
throw ListParsingError.emptyListItem(kind)
}
guard token == Codec.space else {
Expand Down Expand Up @@ -148,7 +148,7 @@ extension MarkdownParser {
var state = HeaderTextReadingState.textSpaces
var end = scanner.startIndex

while let token = scanner.pop(ifNot: Codec.linefeed) {
while case let token? = scanner.pop(ifNot: Codec.linefeed) {
switch state {

case .text:
Expand Down Expand Up @@ -198,7 +198,7 @@ extension MarkdownParser {
var level: Int32 = 0
try scanner.popWhile { token in

guard let token = token else {
guard case let token? = token else {
throw HeaderParsingError.emptyHeader(level)
}

Expand Down Expand Up @@ -273,7 +273,7 @@ extension MarkdownParser {
// |_<---
var end = scanner.startIndex

while let token = scanner.pop(ifNot: Codec.linefeed) {
while case let token? = scanner.pop(ifNot: Codec.linefeed) {
switch token {

case Codec.space:
Expand Down Expand Up @@ -316,7 +316,7 @@ extension MarkdownParser {
var level: Int32 = 1
try scanner.popWhile { token in

guard let token = token else {
guard case let token? = token else {
throw FenceParsingError.emptyFence(kind, level)
}

Expand Down Expand Up @@ -397,7 +397,7 @@ extension MarkdownParser {
var level = 0
try scanner.popWhile { token in

guard let token = token, token != Codec.linefeed else {
guard case let token? = token, token != Codec.linefeed else {
guard level >= 3 else {
throw NotAThematicBreakError() // e.g. * * -> not enough stars -> not a thematic break
}
Expand Down Expand Up @@ -447,7 +447,7 @@ extension MarkdownParser {
var escapeNext = false
try scanner.popWhile { (token: Codec.CodeUnit?) throws -> PopOrStop in

guard let token = token, token != Codec.linefeed else {
guard case let token? = token, token != Codec.linefeed else {
throw NotAReferenceDefinitionError()
}

Expand Down Expand Up @@ -515,11 +515,11 @@ extension MarkdownParser {
var indent = Indent()
scanner.popWhile { (token: Codec.CodeUnit?) -> PopOrStop in

guard let token = token else {
guard case let token? = token else {
return .stop
}

guard let indentKind = IndentKind(token, codec: Codec.self) else {
guard case let indentKind? = IndentKind(token, codec: Codec.self) else {
return .stop
}

Expand All @@ -530,7 +530,7 @@ extension MarkdownParser {
// xxxx
// |_<--- (after indent)

guard let firstToken = scanner.peek() else {
guard case let firstToken? = scanner.peek() else {
return Line(.empty, Indent(), scanner.indices)
}

Expand All @@ -543,7 +543,7 @@ extension MarkdownParser {


case Codec.underscore:
guard let _ = try? readThematicBreak(&scanner, firstToken: firstToken) else {
guard case .some = try? readThematicBreak(&scanner, firstToken: firstToken) else {
scanner.popUntil(Codec.linefeed)
return Line(.text, indent, indexAfterIndent ..< scanner.startIndex)
}
Expand Down Expand Up @@ -577,7 +577,7 @@ extension MarkdownParser {


case Codec.leftsqbck:
guard let line = try? parseReferenceDefinition(&scanner, indent: indent) else {
guard case let line? = try? parseReferenceDefinition(&scanner, indent: indent) else {
scanner.popUntil(Codec.linefeed)
return Line(.text, indent, indexAfterIndent ..< scanner.startIndex)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ extension MarkdownParser {
var firstOpeningEmph: Int? = nil

for i in indices {
guard let del = delimiters[i], case let .emph(kind, state, lvl) = del.kind else {
guard case let .emph(kind, state, level)? = delimiters[i]?.kind else {
continue
}
if state.contains(.closing), let fstDelIdx = (kind == .underscore ? openingEmph.underscore : openingEmph.asterisk) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,15 @@
// Apodimark
//


extension MarkdownParser {

func processAllEscapingBackslashes(_ delimiters: [NonTextDelimiter?], appendingTo nodes: inout [NonTextInlineNode<View>]) {
for case let del? in delimiters {
if case .ignored = del.kind {
nodes.append(.init(
kind: .escapingBackslash,
start: view.index(before: del.idx),
end: del.idx
))
}
for case (let idx, .escapingBackslash)? in delimiters {
nodes.append(.init(
kind: .escapingBackslash,
start: view.index(before: idx),
end: idx
))
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,19 +22,19 @@ extension MarkdownParser {

for i in indices {

guard let del = delimiters[i] else {
guard case let del? = delimiters[i] else {
escaping = nil
continue
}

switch del.kind {
case .ignored:
case .escapingBackslash:
escaping = del.idx

case .code(let level):
defer { escaping = nil }
var level = level
if let escapingIdx = escaping, escapingIdx == view.index(before: del.idx) {
if case let escapingIdx? = escaping, escapingIdx == view.index(before: del.idx) {
level -= 1
view.formIndex(after: &delimiters[i]!.idx)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,11 @@ extension MarkdownParser {
var opener: (index: Int, del: NonTextDelimiter, kind: ReferenceKind)?

for i in indices {
guard let del = delimiters[i] else { continue }
guard case let del? = delimiters[i] else { continue }

switch del.kind {
case .refCloser:
if let o = opener {
if case let o? = opener {
return (firstOpeningReferenceIdx!, o.index, o.del, i, del, o.kind)
}

Expand Down Expand Up @@ -63,8 +63,9 @@ extension MarkdownParser {
delimiters[nextDelIdx] = nil
guard let (valueCloserDelIdx, valueCloserDel) = { () -> (Int, NonTextDelimiter)? in
for i in nextDelIdx ..< indices.upperBound {
guard let del = delimiters[i] else { continue }
if case .rightParen = del.kind { return (i, del) }
if case let del? = delimiters[i], case .rightParen = del.kind {
return (i, del)
}
}
return nil
}() else {
Expand All @@ -86,8 +87,9 @@ extension MarkdownParser {
delimiters[nextDelIdx] = nil
guard let (aliasCloserIdx, aliasCloserDel) = { () -> (Int, NonTextDelimiter)? in
for i in nextDelIdx ..< indices.upperBound {
guard let del = delimiters[i] else { continue }
if case .refCloser = del.kind { return (i, del) }
if case let del? = delimiters[i], case .refCloser = del.kind {
return (i, del)
}
}
return nil
}()
Expand All @@ -96,7 +98,7 @@ extension MarkdownParser {
}

let s = Codec.string(fromTokens: view[nextDel!.idx ..< view.index(before: aliasCloserDel.idx)]).lowercased()
guard let definition = referenceDefinitions[s] else {
guard case let definition? = referenceDefinitions[s] else {
var newNextDel = nextDel!
newNextDel.kind = .refOpener
delimiters[nextDelIdx] = newNextDel
Expand All @@ -113,7 +115,7 @@ extension MarkdownParser {

default:
let s = Codec.string(fromTokens: view[openingTitleDel.idx ..< view.index(before: closingTitleDel.idx)]).lowercased()
guard let definition = referenceDefinitions[s] else {
guard case let definition? = referenceDefinitions[s] else {
return nil
}

Expand Down Expand Up @@ -141,9 +143,9 @@ extension MarkdownParser {
let delimiterRangeForSpan = openingTitleDelIdx ... spanEndDelIdx

for i in delimiterRangeForTitle {
guard let del = delimiters[i] else { continue }
guard case let del? = delimiters[i] else { continue }
switch del.kind {
case .ignored: continue
case .escapingBackslash: continue
default: delimiters[i] = nil
}
}
Expand Down
2 changes: 1 addition & 1 deletion Sources/Apodimark/InlineParsing/InlineAST.swift
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ extension MarkdownParser {
let tree = Tree<InlineNode<View>>()

var builder = InlineTreeBuilder(text, nonText, view, tree)
while let (n, level) = builder.next() {
while case let (n, level)? = builder.next() {
tree.append(n, depthLevel: level)
}

Expand Down
13 changes: 8 additions & 5 deletions Sources/Apodimark/InlineParsing/InlineParsing.swift
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,10 @@ extension MarkdownParser {

func parseInlines(_ text: [Range<View.Index>]) -> Tree<InlineNode<View>> {

var (nonTextDels, textDels) = delimiters(in: text)
let textDels: [TextDelimiter]
var nonTextDels: [NonTextDelimiter?]
(nonTextDels, textDels) = delimiters(in: text)

guard !textDels.isEmpty else { return .init() }

var nodes: [NonTextInlineNode<View>] = []
Expand Down Expand Up @@ -45,7 +48,7 @@ extension MarkdownParser {

textDels.append((scanner.startIndex, .start))

while let token = scanner.pop() {
while case let token? = scanner.pop() {
let curTokenKind = MarkdownParser.tokenKind(token)
defer { prevTokenKind = curTokenKind }

Expand All @@ -56,7 +59,7 @@ extension MarkdownParser {
defer { numberOfPreviousSpaces = 0 }
}

// TODO evaluate if necessary, this is a micro-optimization
// avoid going into the switch if token is not punctuation (optimization)
guard case .punctuation = curTokenKind else {
continue
}
Expand Down Expand Up @@ -100,12 +103,12 @@ extension MarkdownParser {
nonTextDels.append((scanner.startIndex, .rightParen))

case Codec.backslash:
guard let el = scanner.peek() else {
guard case let el? = scanner.peek() else {
potentialBackslashHardbreak = true
break
}
if Codec.isPunctuation(el) {
nonTextDels.append((scanner.startIndex, .ignored))
nonTextDels.append((scanner.startIndex, .escapingBackslash))
if el != Codec.backtick { _ = scanner.pop() }
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ enum NonTextDelimiterKind {
case leftParen // ( used to allow pair of brackets in direct reference value definition. e.g. [link]((here))
case rightParen // ) used to close a direct reference value definition

case ignored // (used for backslash escaping)
case escapingBackslash // \ followed by punctuation
}


Expand Down

0 comments on commit 92647d3

Please sign in to comment.