-
Notifications
You must be signed in to change notification settings - Fork 49
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Use the Swift template for the Swift swift-package-manager samples.
- Loading branch information
1 parent
89ab56f
commit 9b56ff7
Showing
18 changed files
with
350 additions
and
92 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,7 @@ | ||
import Greeter | ||
/* | ||
* A simple hello world application. Uses a library to tokenize and join a string and prints the result. | ||
*/ | ||
import Utilities | ||
|
||
let greeter = Greeter() | ||
greeter.sayHello() | ||
let tokens = Util.split("Hello, World!") | ||
print(Util.join(tokens)) |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
/* | ||
* A linked list implementation. | ||
*/ | ||
|
||
public class LinkedList { | ||
var head: Node? | ||
var tail: Node? | ||
|
||
public init() { | ||
} | ||
|
||
/* | ||
* Adds the given string to this list. | ||
*/ | ||
public func add(_ s: String) { | ||
let n = Node(data: s) | ||
if (head == nil) { | ||
head = n | ||
tail = head | ||
} else { | ||
tail!.next = n | ||
tail = n | ||
} | ||
} | ||
|
||
/* | ||
* Returns the string at the given index. | ||
*/ | ||
public func get(_ i: Int) -> String { | ||
var n = head | ||
var c = i | ||
while (c > 0 && n != nil) { | ||
n = n!.next | ||
c = c - 1 | ||
} | ||
return n!.data | ||
} | ||
|
||
/* | ||
* Returns the size of this list. | ||
*/ | ||
public func size() -> Int { | ||
var c = 0 | ||
var n = head | ||
while (n != nil) { | ||
c = c + 1 | ||
n = n!.next | ||
} | ||
return c | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
// A linked list node | ||
class Node { | ||
let data: String | ||
var next: Node? | ||
|
||
init(data: String) { | ||
self.data = data | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
/* | ||
* A class that provides several string utility functions. | ||
*/ | ||
import List | ||
|
||
public class Util { | ||
/* | ||
* Splits the given string into a list of tokens. Tokens are separated by one or more whitespace characters. | ||
*/ | ||
public class func split(_ s: String) -> LinkedList { | ||
let l = LinkedList() | ||
var pos = s.startIndex | ||
var current = String() | ||
while (pos < s.endIndex) { | ||
if (s[pos] != " ") { | ||
current.append(s[pos]) | ||
pos = s.index(after: pos) | ||
} else { | ||
if (!current.isEmpty) { | ||
l.add(current) | ||
} | ||
current = String() | ||
repeat { | ||
pos = s.index(after: pos) | ||
} while (pos < s.endIndex && s[pos] == " ") | ||
} | ||
} | ||
if (!current.isEmpty) { | ||
l.add(current) | ||
} | ||
return l | ||
} | ||
|
||
/* | ||
* Joins the list of tokens into a string, separated by space characters. | ||
*/ | ||
public class func join(_ l: LinkedList) -> String { | ||
var i = 0 | ||
var formatted = "" | ||
while (i < l.size()) { | ||
if (i > 0) { | ||
formatted.append(" ") | ||
} | ||
formatted.append(l.get(i)) | ||
i = i + 1 | ||
} | ||
return formatted | ||
} | ||
} |
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.