diff options
author | Araq <rumpf_a@web.de> | 2013-12-05 00:03:27 +0100 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2013-12-05 00:03:27 +0100 |
commit | 5eba93d584d5446256d05f0eef111ace5e12bac3 (patch) | |
tree | 7b638031f3e77c16ca0c27b9c83630d78846f19e /compiler/parser.nim | |
parent | 9035d15ed22de1f80486d94ec63e720a4d04cbc0 (diff) | |
parent | 2264875237cb72cf0288f2bd3d4a930c2a1acc50 (diff) | |
download | Nim-5eba93d584d5446256d05f0eef111ace5e12bac3.tar.gz |
Merge branch 'master' into vm2
Conflicts: compiler/sem.nim
Diffstat (limited to 'compiler/parser.nim')
-rw-r--r-- | compiler/parser.nim | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/compiler/parser.nim b/compiler/parser.nim index e8439466a..fd51b04ec 100644 --- a/compiler/parser.nim +++ b/compiler/parser.nim @@ -1624,10 +1624,23 @@ proc parseObject(p: var TParser): PNode = return addSon(result, parseObjectPart(p)) +proc parseTypeClassParam(p: var TParser): PNode = + if p.tok.tokType == tkVar: + getTok(p) + result = newNode(nkVarTy) + result.addSon(p.parseSymbol) + else: + result = p.parseSymbol + proc parseTypeClass(p: var TParser): PNode = result = newNodeP(nkTypeClassTy, p) getTok(p) - addSon(result, p.parseSymbol) + var args = newNode(nkArgList) + addSon(result, args) + addSon(args, p.parseTypeClassParam) + while p.tok.TokType == tkComma: + getTok(p) + addSon(args, p.parseTypeClassParam) if p.tok.tokType == tkCurlyDotLe and p.validInd: addSon(result, parsePragma(p)) else: |