removed unneeded changes

This commit is contained in:
Ilya Puchka
2017-12-26 21:32:28 +01:00
parent abeb30bb1c
commit cb124319ec
4 changed files with 25 additions and 41 deletions

View File

@@ -28,21 +28,22 @@ class ForNode : NodeType {
let forNodes = try parser.parse(until(["endfor", "empty"]))
if let token = parser.nextToken() {
if token.contents == "empty" {
emptyNodes = try parser.parse(until(["endfor"]))
_ = parser.nextToken()
}
} else {
throw TemplateSyntaxError("`endfor` was not found.")
}
let `where`: Expression?
if components.count >= 6 {
`where` = try parseExpression(components: Array(components.suffix(from: 5)), tokenParser: parser, token: token)
} else {
`where` = nil
}
guard let token = parser.nextToken() else {
throw TemplateSyntaxError("`endfor` was not found.")
}
if token.contents == "empty" {
emptyNodes = try parser.parse(until(["endfor"]))
_ = parser.nextToken()
}
return ForNode(resolvable: filter, loopVariables: loopVariables, nodes: forNodes, emptyNodes:emptyNodes, where: `where`, token: token)
}

View File

@@ -226,18 +226,18 @@ class IfNode : NodeType {
var trueNodes = [NodeType]()
var falseNodes = [NodeType]()
let expression = try parseExpression(components: components, tokenParser: parser, token: token)
falseNodes = try parser.parse(until(["endif", "else"]))
if let token = parser.nextToken() {
guard let token = parser.nextToken() else {
throw TemplateSyntaxError("`endif` was not found.")
}
if token.contents == "else" {
trueNodes = try parser.parse(until(["endif"]))
_ = parser.nextToken()
}
} else {
throw TemplateSyntaxError("`endif` was not found.")
}
let expression = try parseExpression(components: components, tokenParser: parser, token: token)
return IfNode(conditions: [
IfCondition(expression: expression, nodes: trueNodes),
IfCondition(expression: nil, nodes: falseNodes),

View File

@@ -56,24 +56,6 @@ struct Lexer {
return tokens
}
func tokenLine(_ token: Token) -> (content: String, number: Int, offset: String.IndexDistance) {
var lineNumber: Int = 0
var offset = 0
var lineContent = ""
for line in templateString.components(separatedBy: CharacterSet.newlines) {
lineNumber += 1
lineContent = line
if let rangeOfLine = templateString.range(of: line), rangeOfLine.contains(token.range.lowerBound) {
offset = templateString.distance(from: rangeOfLine.lowerBound, to:
token.range.lowerBound)
break
}
}
return (lineContent, lineNumber, offset)
}
}
class Scanner {

View File

@@ -54,9 +54,9 @@ public class TokenParser {
let node = try parser(self, token)
nodes.append(node)
} catch {
if var syntaxError = error as? TemplateSyntaxError, syntaxError.token == nil {
syntaxError.token = token
throw syntaxError
if var error = error as? TemplateSyntaxError {
error.token = error.token ?? token
throw error
} else {
throw error
}
@@ -106,13 +106,14 @@ public class TokenParser {
do {
return try FilterExpression(token: filterToken, parser: self)
} catch {
if var syntaxError = error as? TemplateSyntaxError, syntaxError.token == nil {
if var error = error as? TemplateSyntaxError, error.token == nil {
// find range of filter in the containing token so that only filter is highligted, not the whole token
if let filterTokenRange = environment.template?.templateString.range(of: filterToken, range: containingToken.range) {
syntaxError.token = Token.block(value: filterToken, at: filterTokenRange)
error.token = Token.variable(value: filterToken, at: filterTokenRange)
} else {
syntaxError.token = containingToken
error.token = containingToken
}
throw syntaxError
throw error
} else {
throw error
}