renderer knows about nkStaticTy and nkTypeClassTy
This commit is contained in:
parent
3e5cb6644f
commit
f332ac1d37
1 changed files with 23 additions and 0 deletions
|
|
@ -426,6 +426,8 @@ proc lsub(n: PNode): int =
|
||||||
of nkVarTy: result = (if n.len > 0: lsub(n.sons[0])+1 else: 0) + len("var")
|
of nkVarTy: result = (if n.len > 0: lsub(n.sons[0])+1 else: 0) + len("var")
|
||||||
of nkDistinctTy: result = (if n.len > 0: lsub(n.sons[0])+1 else: 0) +
|
of nkDistinctTy: result = (if n.len > 0: lsub(n.sons[0])+1 else: 0) +
|
||||||
len("Distinct")
|
len("Distinct")
|
||||||
|
of nkStaticTy: result = (if n.len > 0: lsub(n.sons[0]) else: 0) +
|
||||||
|
len("static[]")
|
||||||
of nkTypeDef: result = lsons(n) + 3
|
of nkTypeDef: result = lsons(n) + 3
|
||||||
of nkOfInherit: result = lsub(n.sons[0]) + len("of_")
|
of nkOfInherit: result = lsub(n.sons[0]) + len("of_")
|
||||||
of nkProcTy: result = lsons(n) + len("proc_")
|
of nkProcTy: result = lsons(n) + len("proc_")
|
||||||
|
|
@ -701,6 +703,19 @@ proc gproc(g: var TSrcGen, n: PNode) =
|
||||||
gcoms(g)
|
gcoms(g)
|
||||||
dedent(g)
|
dedent(g)
|
||||||
|
|
||||||
|
proc gTypeClassTy(g: var TSrcGen, n: PNode) =
|
||||||
|
var c: TContext
|
||||||
|
initContext(c)
|
||||||
|
putWithSpace(g, tkGeneric, "generic")
|
||||||
|
gsons(g, n[0], c) # arglist
|
||||||
|
gsub(g, n[1]) # pragmas
|
||||||
|
gsub(g, n[2]) # of
|
||||||
|
gcoms(g)
|
||||||
|
indentNL(g)
|
||||||
|
gcoms(g)
|
||||||
|
gstmts(g, n[3], c)
|
||||||
|
dedent(g)
|
||||||
|
|
||||||
proc gblock(g: var TSrcGen, n: PNode) =
|
proc gblock(g: var TSrcGen, n: PNode) =
|
||||||
var c: TContext
|
var c: TContext
|
||||||
initContext(c)
|
initContext(c)
|
||||||
|
|
@ -1054,6 +1069,12 @@ proc gsub(g: var TSrcGen, n: PNode, c: TContext) =
|
||||||
gsub(g, n.sons[0])
|
gsub(g, n.sons[0])
|
||||||
else:
|
else:
|
||||||
put(g, tkShared, "shared")
|
put(g, tkShared, "shared")
|
||||||
|
of nkStaticTy:
|
||||||
|
put(g, tkStatic, "static")
|
||||||
|
put(g, tkBracketLe, "[")
|
||||||
|
if n.len > 0:
|
||||||
|
gsub(g, n.sons[0])
|
||||||
|
put(g, tkBracketRi, "]")
|
||||||
of nkEnumTy:
|
of nkEnumTy:
|
||||||
if sonsLen(n) > 0:
|
if sonsLen(n) > 0:
|
||||||
putWithSpace(g, tkEnum, "enum")
|
putWithSpace(g, tkEnum, "enum")
|
||||||
|
|
@ -1256,6 +1277,8 @@ proc gsub(g: var TSrcGen, n: PNode, c: TContext) =
|
||||||
initContext c
|
initContext c
|
||||||
putWithSpace g, tkSymbol, if n.kind == nkState: "state" else: "goto"
|
putWithSpace g, tkSymbol, if n.kind == nkState: "state" else: "goto"
|
||||||
gsons(g, n, c)
|
gsons(g, n, c)
|
||||||
|
of nkTypeClassTy:
|
||||||
|
gTypeClassTy(g, n)
|
||||||
else:
|
else:
|
||||||
#nkNone, nkExplicitTypeListCall:
|
#nkNone, nkExplicitTypeListCall:
|
||||||
internalError(n.info, "rnimsyn.gsub(" & $n.kind & ')')
|
internalError(n.info, "rnimsyn.gsub(" & $n.kind & ')')
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue