cleaner toArray magic
This commit is contained in:
parent
9b44ca17c2
commit
4686f485a6
2 changed files with 25 additions and 22 deletions
|
|
@ -1435,12 +1435,8 @@ proc genConStrStrPHP(p: PProc, n: PNode, r: var TCompRes) =
|
||||||
else:
|
else:
|
||||||
r.res.add(".$1" % [a.res])
|
r.res.add(".$1" % [a.res])
|
||||||
|
|
||||||
proc genRepr(p: PProc, n: PNode, r: var TCompRes) =
|
proc genToArray(p: PProc; n: PNode; r: var TCompRes) =
|
||||||
if p.target == targetPHP:
|
# we map mArray to PHP's array constructor, a mild hack:
|
||||||
if n.sons[0].sym.name.s == "repr":
|
|
||||||
localError(n.info, "'repr' not available for PHP backend")
|
|
||||||
else:
|
|
||||||
# we map mRepr to PHP's array constructor, a mild hack:
|
|
||||||
var a, b: TCompRes
|
var a, b: TCompRes
|
||||||
r.kind = resExpr
|
r.kind = resExpr
|
||||||
r.res = rope("array(")
|
r.res = rope("array(")
|
||||||
|
|
@ -1458,6 +1454,10 @@ proc genRepr(p: PProc, n: PNode, r: var TCompRes) =
|
||||||
else:
|
else:
|
||||||
localError(x.info, "'toArray' needs an array literal")
|
localError(x.info, "'toArray' needs an array literal")
|
||||||
r.res.add(")")
|
r.res.add(")")
|
||||||
|
|
||||||
|
proc genRepr(p: PProc, n: PNode, r: var TCompRes) =
|
||||||
|
if p.target == targetPHP:
|
||||||
|
localError(n.info, "'repr' not available for PHP backend")
|
||||||
return
|
return
|
||||||
let t = skipTypes(n.sons[1].typ, abstractVarRange)
|
let t = skipTypes(n.sons[1].typ, abstractVarRange)
|
||||||
case t.kind
|
case t.kind
|
||||||
|
|
@ -1621,6 +1621,9 @@ proc genMagic(p: PProc, n: PNode, r: var TCompRes) =
|
||||||
of mParseBiggestFloat:
|
of mParseBiggestFloat:
|
||||||
useMagic(p, "nimParseBiggestFloat")
|
useMagic(p, "nimParseBiggestFloat")
|
||||||
genCall(p, n, r)
|
genCall(p, n, r)
|
||||||
|
of mArray:
|
||||||
|
if p.target == targetPHP: genToArray(p, n, r)
|
||||||
|
else: genCall(p, n, r)
|
||||||
else:
|
else:
|
||||||
genCall(p, n, r)
|
genCall(p, n, r)
|
||||||
#else internalError(e.info, 'genMagic: ' + magicToStr[op]);
|
#else internalError(e.info, 'genMagic: ' + magicToStr[op]);
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ proc strtr*(s: string, replacePairs: PhpArray[string, string]): string {.importc
|
||||||
proc strtr*(s, fromm, to: string): string {.importc.}
|
proc strtr*(s, fromm, to: string): string {.importc.}
|
||||||
|
|
||||||
proc toArray*[K,V](pairs: openarray[(K,V)]): PhpArray[K,V] {.magic:
|
proc toArray*[K,V](pairs: openarray[(K,V)]): PhpArray[K,V] {.magic:
|
||||||
"Repr".}
|
"Array".}
|
||||||
template strtr*(s: string, replacePairs: openarray[(string, string)]): string =
|
template strtr*(s: string, replacePairs: openarray[(string, string)]): string =
|
||||||
strtr(toArray(replacePairs))
|
strtr(toArray(replacePairs))
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue