Fix filter_tmpl errors (#7763)
This commit is contained in:
parent
8f7bd6cf5c
commit
27631b1112
1 changed files with 15 additions and 12 deletions
|
|
@ -45,7 +45,6 @@ proc scanPar(p: var TTmplParser, d: int) =
|
||||||
let hi = p.x.len - 1
|
let hi = p.x.len - 1
|
||||||
while i <= hi:
|
while i <= hi:
|
||||||
case p.x[i]
|
case p.x[i]
|
||||||
of '\0': break
|
|
||||||
of '(': inc(p.par)
|
of '(': inc(p.par)
|
||||||
of ')': dec(p.par)
|
of ')': dec(p.par)
|
||||||
of '[': inc(p.bracket)
|
of '[': inc(p.bracket)
|
||||||
|
|
@ -64,16 +63,22 @@ const
|
||||||
|
|
||||||
proc parseLine(p: var TTmplParser) =
|
proc parseLine(p: var TTmplParser) =
|
||||||
var j = 0
|
var j = 0
|
||||||
while p.x[j] == ' ': inc(j)
|
let hi = p.x.len - 1
|
||||||
|
|
||||||
|
if hi == 0:
|
||||||
|
return
|
||||||
|
|
||||||
|
while j <= hi and p.x[j] == ' ': inc(j)
|
||||||
|
|
||||||
if p.x[0] == p.nimDirective and p.x[1] == '?':
|
if p.x[0] == p.nimDirective and p.x[1] == '?':
|
||||||
newLine(p)
|
newLine(p)
|
||||||
elif p.x[j] == p.nimDirective:
|
elif p.x[j] == p.nimDirective:
|
||||||
newLine(p)
|
newLine(p)
|
||||||
inc(j)
|
inc(j)
|
||||||
while p.x[j] == ' ': inc(j)
|
while j <= hi and p.x[j] == ' ': inc(j)
|
||||||
let d = j
|
let d = j
|
||||||
var keyw = ""
|
var keyw = ""
|
||||||
while p.x[j] in PatternChars:
|
while j <= hi and p.x[j] in PatternChars:
|
||||||
add(keyw, p.x[j])
|
add(keyw, p.x[j])
|
||||||
inc(j)
|
inc(j)
|
||||||
|
|
||||||
|
|
@ -127,10 +132,8 @@ proc parseLine(p: var TTmplParser) =
|
||||||
llStreamWrite(p.outp, "(\"")
|
llStreamWrite(p.outp, "(\"")
|
||||||
inc(p.emitPar)
|
inc(p.emitPar)
|
||||||
p.state = psTempl
|
p.state = psTempl
|
||||||
while true:
|
while j <= hi:
|
||||||
case p.x[j]
|
case p.x[j]
|
||||||
of '\0':
|
|
||||||
break
|
|
||||||
of '\x01'..'\x1F', '\x80'..'\xFF':
|
of '\x01'..'\x1F', '\x80'..'\xFF':
|
||||||
llStreamWrite(p.outp, "\\x")
|
llStreamWrite(p.outp, "\\x")
|
||||||
llStreamWrite(p.outp, toHex(ord(p.x[j]), 2))
|
llStreamWrite(p.outp, toHex(ord(p.x[j]), 2))
|
||||||
|
|
@ -157,11 +160,8 @@ proc parseLine(p: var TTmplParser) =
|
||||||
llStreamWrite(p.outp, '(')
|
llStreamWrite(p.outp, '(')
|
||||||
inc(j)
|
inc(j)
|
||||||
var curly = 0
|
var curly = 0
|
||||||
while true:
|
while j <= hi:
|
||||||
case p.x[j]
|
case p.x[j]
|
||||||
of '\0':
|
|
||||||
localError(p.info, errXExpected, "}")
|
|
||||||
break
|
|
||||||
of '{':
|
of '{':
|
||||||
inc(j)
|
inc(j)
|
||||||
inc(curly)
|
inc(curly)
|
||||||
|
|
@ -174,6 +174,9 @@ proc parseLine(p: var TTmplParser) =
|
||||||
else:
|
else:
|
||||||
llStreamWrite(p.outp, p.x[j])
|
llStreamWrite(p.outp, p.x[j])
|
||||||
inc(j)
|
inc(j)
|
||||||
|
if curly > 0:
|
||||||
|
localError(p.info, errXExpected, "}")
|
||||||
|
break
|
||||||
llStreamWrite(p.outp, ')')
|
llStreamWrite(p.outp, ')')
|
||||||
llStreamWrite(p.outp, p.conc)
|
llStreamWrite(p.outp, p.conc)
|
||||||
llStreamWrite(p.outp, '\"')
|
llStreamWrite(p.outp, '\"')
|
||||||
|
|
@ -182,7 +185,7 @@ proc parseLine(p: var TTmplParser) =
|
||||||
llStreamWrite(p.outp, p.conc)
|
llStreamWrite(p.outp, p.conc)
|
||||||
llStreamWrite(p.outp, p.toStr)
|
llStreamWrite(p.outp, p.toStr)
|
||||||
llStreamWrite(p.outp, '(')
|
llStreamWrite(p.outp, '(')
|
||||||
while p.x[j] in PatternChars:
|
while j <= hi and p.x[j] in PatternChars:
|
||||||
llStreamWrite(p.outp, p.x[j])
|
llStreamWrite(p.outp, p.x[j])
|
||||||
inc(j)
|
inc(j)
|
||||||
llStreamWrite(p.outp, ')')
|
llStreamWrite(p.outp, ')')
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue