Support swift 5.0

This commit is contained in:
kawoou
2019-01-29 15:17:26 +09:00
parent 3394929008
commit 305dc31abd
2 changed files with 32 additions and 3 deletions

23
Package@swift-5.swift Normal file
View File

@@ -0,0 +1,23 @@
// swift-tools-version:5.0
import PackageDescription
let package = Package(
name: "Stencil",
products: [
.library(name: "Stencil", targets: ["Stencil"])
],
dependencies: [
.package(url: "https://github.com/kylef/PathKit.git", from: "0.9.0"),
.package(url: "https://github.com/kylef/Spectre.git", from: "0.9.0")
],
targets: [
.target(name: "Stencil", dependencies: [
"PathKit"
], path: "Sources"),
.testTarget(name: "StencilTests", dependencies: [
"Stencil",
"Spectre"
])
],
swiftLanguageVersions: [.v4, .v4_2, .v5]
)

View File

@@ -71,9 +71,15 @@ public class VariableNode: NodeType {
if hasToken("if", at: 1) { if hasToken("if", at: 1) {
let components = components.suffix(from: 2) let components = components.suffix(from: 2)
if let elseIndex = components.index(of: "else") { #if swift(<5.0)
condition = try parser.compileExpression(components: Array(components.prefix(upTo: elseIndex)), token: token) let elseIndex = components.index(of: "else")
let elseToken = components.suffix(from: elseIndex.advanced(by: 1)).joined(separator: " ") #else
let elseIndex = components.firstIndex(of: "else")
#endif
if let safeElseIndex = elseIndex {
condition = try parser.compileExpression(components: Array(components.prefix(upTo: safeElseIndex)), token: token)
let elseToken = components.suffix(from: safeElseIndex.advanced(by: 1)).joined(separator: " ")
elseExpression = try parser.compileResolvable(elseToken, containedIn: token) elseExpression = try parser.compileResolvable(elseToken, containedIn: token)
} else { } else {
condition = try parser.compileExpression(components: Array(components), token: token) condition = try parser.compileExpression(components: Array(components), token: token)