Skip to content

Commit

Permalink
Generator → Iterator
Browse files Browse the repository at this point in the history
  • Loading branch information
davedelong committed Aug 11, 2016
1 parent 240f8e1 commit 7a0243d
Show file tree
Hide file tree
Showing 14 changed files with 26 additions and 26 deletions.
8 changes: 4 additions & 4 deletions DDMathParser.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
559B3EFC1B74063600000108 /* MathParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 559B3EFB1B74063600000108 /* MathParser.h */; settings = {ATTRIBUTES = (Public, ); }; };
559B3F031B74063600000108 /* MathParser.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 559B3EF91B74063600000108 /* MathParser.framework */; };
559B3F111B7406D800000108 /* Tokenizer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 559B3F101B7406D800000108 /* Tokenizer.swift */; };
559B3F161B7407CE00000108 /* TokenGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 559B3F151B7407CE00000108 /* TokenGenerator.swift */; };
559B3F161B7407CE00000108 /* TokenIterator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 559B3F151B7407CE00000108 /* TokenIterator.swift */; };
559B3F181B7408A900000108 /* Either.swift in Sources */ = {isa = PBXBuildFile; fileRef = 559B3F171B7408A900000108 /* Either.swift */; };
559B3F1C1B740C0B00000108 /* TokenExtractor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 559B3F1B1B740C0B00000108 /* TokenExtractor.swift */; };
55AE3A1C1B7E757D0022D1CF /* PeekingGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55AE3A1B1B7E757D0022D1CF /* PeekingGenerator.swift */; };
Expand Down Expand Up @@ -105,7 +105,7 @@
559B3F021B74063600000108 /* MathParserTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MathParserTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
559B3F091B74063600000108 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
559B3F101B7406D800000108 /* Tokenizer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Tokenizer.swift; sourceTree = "<group>"; };
559B3F151B7407CE00000108 /* TokenGenerator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TokenGenerator.swift; sourceTree = "<group>"; };
559B3F151B7407CE00000108 /* TokenIterator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TokenIterator.swift; sourceTree = "<group>"; };
559B3F171B7408A900000108 /* Either.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Either.swift; sourceTree = "<group>"; };
559B3F1B1B740C0B00000108 /* TokenExtractor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TokenExtractor.swift; sourceTree = "<group>"; };
55AE3A1B1B7E757D0022D1CF /* PeekingGenerator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeekingGenerator.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -284,7 +284,7 @@
isa = PBXGroup;
children = (
559B3F171B7408A900000108 /* Either.swift */,
559B3F151B7407CE00000108 /* TokenGenerator.swift */,
559B3F151B7407CE00000108 /* TokenIterator.swift */,
55D48BE81B7414420050331F /* TokenCharacterBuffer.swift */,
55D48BEF1B7415DD0050331F /* Extractors */,
55D48BE61B740F3E0050331F /* Character.swift */,
Expand Down Expand Up @@ -456,7 +456,7 @@
55D48BF11B7415E80050331F /* HexNumberExtractor.swift in Sources */,
551C2D201B8B63EC00876E68 /* DynamicResolution.swift in Sources */,
55B6AF631B8D870600778033 /* RewriteRule+Defaults.swift in Sources */,
559B3F161B7407CE00000108 /* TokenGenerator.swift in Sources */,
559B3F161B7407CE00000108 /* TokenIterator.swift in Sources */,
551DC7741BAC55FA00C27DB9 /* FunctionSet.swift in Sources */,
55AE3A481B823D9B0022D1CF /* Expression.swift in Sources */,
5514B1741B7BDF57007431D0 /* RawToken.swift in Sources */,
Expand Down
2 changes: 1 addition & 1 deletion MathParser/ExponentExtractor.swift
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ internal struct ExponentExtractor: TokenExtractor {
return true
}

func extract(_ buffer: TokenCharacterBuffer) -> TokenGenerator.Element {
func extract(_ buffer: TokenCharacterBuffer) -> TokenIterator.Element {
let start = buffer.currentIndex

var exponent = ""
Expand Down
4 changes: 2 additions & 2 deletions MathParser/HexNumberExtractor.swift
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ internal struct HexNumberExtractor: TokenExtractor {
return buffer.peekNext() == "0" && buffer.peekNext(1, lowercase: true) == "x"
}

func extract(_ buffer: TokenCharacterBuffer) -> TokenGenerator.Element {
func extract(_ buffer: TokenCharacterBuffer) -> TokenIterator.Element {
let start = buffer.currentIndex

guard buffer.peekNext() == "0" && buffer.peekNext(1, lowercase: true) == "x" else {
Expand All @@ -35,7 +35,7 @@ internal struct HexNumberExtractor: TokenExtractor {
buffer.resetTo(start)
}

let result: TokenGenerator.Element
let result: TokenIterator.Element

if buffer.currentIndex - start > 0 {
let range: Range<Int> = indexBeforeHexNumbers ..< buffer.currentIndex
Expand Down
4 changes: 2 additions & 2 deletions MathParser/IdentifierExtractor.swift
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,15 @@ internal struct IdentifierExtractor: TokenExtractor {
return next != "$" && next?.isDigit == false && next != "\"" && next != "'"
}

func extract(_ buffer: TokenCharacterBuffer) -> TokenGenerator.Element {
func extract(_ buffer: TokenCharacterBuffer) -> TokenIterator.Element {
let start = buffer.currentIndex

while let next = buffer.peekNext(), next.isWhitespace == false && operatorTokens.isOperatorCharacter(next) == false {
buffer.consume()
}

let range: Range<Int> = start ..< buffer.currentIndex
let result: TokenGenerator.Element
let result: TokenIterator.Element

if buffer.currentIndex - start > 0 {
let raw = buffer[range]
Expand Down
2 changes: 1 addition & 1 deletion MathParser/LocalizedNumberExtractor.swift
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ internal struct LocalizedNumberExtractor: TokenExtractor {
return buffer.peekNext() != nil
}

func extract(_ buffer: TokenCharacterBuffer) -> TokenGenerator.Element {
func extract(_ buffer: TokenCharacterBuffer) -> TokenIterator.Element {
let start = buffer.currentIndex
var indexBeforeDecimal: Int?

Expand Down
4 changes: 2 additions & 2 deletions MathParser/NumberExtractor.swift
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ internal struct NumberExtractor: TokenExtractor {
return buffer.peekNext()?.isDigit == true
}

func extract(_ buffer: TokenCharacterBuffer) -> TokenGenerator.Element {
func extract(_ buffer: TokenCharacterBuffer) -> TokenIterator.Element {
let start = buffer.currentIndex

while buffer.peekNext()?.isDigit == true {
Expand Down Expand Up @@ -56,7 +56,7 @@ internal struct NumberExtractor: TokenExtractor {
let range: Range<Int> = start ..< buffer.currentIndex
let error = MathParserError(kind: .cannotParseNumber, range: range)

var result = TokenGenerator.Element.Error(error)
var result = TokenIterator.Element.Error(error)
if length > 0 {
if length != 1 || buffer[start] != "." {
let raw = buffer[range]
Expand Down
4 changes: 2 additions & 2 deletions MathParser/OctalNumberExtractor.swift
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ internal struct OctalNumberExtractor: TokenExtractor {
return buffer.peekNext() == "0" && buffer.peekNext(1, lowercase: true) == "o"
}

func extract(_ buffer: TokenCharacterBuffer) -> TokenGenerator.Element {
func extract(_ buffer: TokenCharacterBuffer) -> TokenIterator.Element {
let start = buffer.currentIndex

guard buffer.peekNext() == "0" && buffer.peekNext(1, lowercase: true) == "o" else {
Expand All @@ -35,7 +35,7 @@ internal struct OctalNumberExtractor: TokenExtractor {
buffer.resetTo(start)
}

let result: TokenGenerator.Element
let result: TokenIterator.Element

if buffer.currentIndex - start > 0 {
let range: Range<Int> = indexBeforeOctalNumbers ..< buffer.currentIndex
Expand Down
4 changes: 2 additions & 2 deletions MathParser/OperatorExtractor.swift
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ internal struct OperatorExtractor: TokenExtractor {
return operatorTokens.hasOperatorWithPrefix(String(peek))
}

func extract(_ buffer: TokenCharacterBuffer) -> TokenGenerator.Element {
func extract(_ buffer: TokenCharacterBuffer) -> TokenIterator.Element {
let start = buffer.currentIndex

var lastGoodIndex = start
Expand All @@ -42,7 +42,7 @@ internal struct OperatorExtractor: TokenExtractor {
buffer.resetTo(lastGoodIndex)

let range: Range<Int> = start ..< buffer.currentIndex
let result: TokenGenerator.Element
let result: TokenIterator.Element

if buffer[start].isAlphabetic && buffer.peekNext()?.isAlphabetic == true {
// This operator starts with an alphabetic character and
Expand Down
4 changes: 2 additions & 2 deletions MathParser/QuotedVariableExtractor.swift
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ internal struct QuotedVariableExtractor: TokenExtractor {
return buffer.peekNext() == "\"" || buffer.peekNext() == "'"
}

func extract(_ buffer: TokenCharacterBuffer) -> TokenGenerator.Element {
func extract(_ buffer: TokenCharacterBuffer) -> TokenIterator.Element {
let start = buffer.currentIndex

// consume the opening quote
Expand Down Expand Up @@ -44,7 +44,7 @@ internal struct QuotedVariableExtractor: TokenExtractor {

}

let result: TokenGenerator.Element
let result: TokenIterator.Element

if buffer.peekNext() != quoteCharacter {
let errorRange: Range<Int> = start ..< buffer.currentIndex
Expand Down
2 changes: 1 addition & 1 deletion MathParser/SpecialNumberExtractor.swift
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ internal struct SpecialNumberExtractor: TokenExtractor {
return true
}

func extract(_ buffer: TokenCharacterBuffer) -> TokenGenerator.Element {
func extract(_ buffer: TokenCharacterBuffer) -> TokenIterator.Element {
let start = buffer.currentIndex

// consume the character
Expand Down
2 changes: 1 addition & 1 deletion MathParser/TokenExtractor.swift
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,6 @@ import Foundation
internal protocol TokenExtractor {

func matchesPreconditions(_ buffer: TokenCharacterBuffer) -> Bool
func extract(_ buffer: TokenCharacterBuffer) -> TokenGenerator.Element
func extract(_ buffer: TokenCharacterBuffer) -> TokenIterator.Element

}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//
// TokenGenerator.swift
// TokenIterator.swift
// DDMathParser
//
// Created by Dave DeLong on 8/6/15.
Expand All @@ -8,7 +8,7 @@

import Foundation

internal class TokenGenerator: IteratorProtocol {
internal class TokenIterator: IteratorProtocol {
typealias Element = Either<RawToken, MathParserError>

private let buffer: TokenCharacterBuffer
Expand Down
2 changes: 1 addition & 1 deletion MathParser/Tokenizer.swift
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public struct Tokenizer {
}

public func tokenize() throws -> Array<RawToken> {
let g = TokenGenerator(string: string, operatorSet: operatorSet, locale: locale)
let g = TokenIterator(string: string, operatorSet: operatorSet, locale: locale)
var tokens = Array<RawToken>()

while let next = g.next() {
Expand Down
6 changes: 3 additions & 3 deletions MathParser/VariableExtractor.swift
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ internal struct VariableExtractor: TokenExtractor {
return buffer.peekNext() == "$"
}

func extract(_ buffer: TokenCharacterBuffer) -> TokenGenerator.Element {
func extract(_ buffer: TokenCharacterBuffer) -> TokenIterator.Element {
let start = buffer.currentIndex

buffer.consume() // consume the opening $
Expand All @@ -28,12 +28,12 @@ internal struct VariableExtractor: TokenExtractor {
// the stuff that follow "$" must be a valid identifier
let range: Range<Int> = start ..< start
let error = MathParserError(kind: .cannotParseVariable, range: range)
return TokenGenerator.Element.Error(error)
return TokenIterator.Element.Error(error)
}

let identifierResult = identifierExtractor.extract(buffer)

let result: TokenGenerator.Element
let result: TokenIterator.Element

switch identifierResult {
case .Error(let e):
Expand Down

0 comments on commit 7a0243d

Please sign in to comment.