From d0de1fc336477231f6f0905f587ad33bfddaca35 Mon Sep 17 00:00:00 2001 From: Araq Date: Thu, 22 Nov 2012 07:53:50 +0100 Subject: [PATCH] made 'shared' a keyword --- compiler/lexer.nim | 5 +++-- compiler/renderer.nim | 17 ++++++++++++++++- compiler/wordrecg.nim | 5 +++-- doc/keywords.txt | 2 +- packages/docutils/rst.nim | 2 +- web/news.txt | 1 + 6 files changed, 25 insertions(+), 7 deletions(-) diff --git a/compiler/lexer.nim b/compiler/lexer.nim index 59e367962d..abb25541be 100755 --- a/compiler/lexer.nim +++ b/compiler/lexer.nim @@ -43,7 +43,7 @@ type tkLambda, tkLet, tkMacro, tkMethod, tkMixin, tkMod, tkNil, tkNot, tkNotin, tkObject, tkOf, tkOr, tkOut, - tkProc, tkPtr, tkRaise, tkRef, tkReturn, tkShl, tkShr, tkStatic, + tkProc, tkPtr, tkRaise, tkRef, tkReturn, tkShared, tkShl, tkShr, tkStatic, tkTemplate, tkTry, tkTuple, tkType, tkVar, tkWhen, tkWhile, tkWith, tkWithout, tkXor, tkYield, # end of keywords @@ -78,7 +78,8 @@ const "lambda", "let", "macro", "method", "mixin", "mod", "nil", "not", "notin", "object", "of", "or", - "out", "proc", "ptr", "raise", "ref", "return", "shl", "shr", "static", + "out", "proc", "ptr", "raise", "ref", "return", + "shared", "shl", "shr", "static", "template", "try", "tuple", "type", "var", "when", "while", "with", "without", "xor", "yield", diff --git a/compiler/renderer.nim b/compiler/renderer.nim index de642eccb9..b9d522694f 100755 --- a/compiler/renderer.nim +++ b/compiler/renderer.nim @@ -425,6 +425,8 @@ proc lsub(n: PNode): int = of nkTypeDef: result = lsons(n) + 3 of nkOfInherit: result = lsub(n.sons[0]) + len("of_") of nkProcTy: result = lsons(n) + len("proc_") + of nkIteratorTy: result = lsons(n) + len("iterator_") + of nkSharedTy: result = lsons(n) + len("shared_") of nkEnumTy: if sonsLen(n) > 0: result = lsub(n.sons[0]) + lcomma(n, 1) + len("enum_") @@ -1025,7 +1027,20 @@ proc gsub(g: var TSrcGen, n: PNode, c: TContext) = gsub(g, n.sons[1]) else: put(g, tkProc, "proc") - of nkEnumTy: + of nkIteratorTy: + if sonsLen(n) > 0: + putWithSpace(g, tkIterator, "iterator") + gsub(g, n.sons[0]) + gsub(g, n.sons[1]) + else: + put(g, tkIterator, "iterator") + of nkSharedTy: + if sonsLen(n) > 0: + putWithSpace(g, tkShared, "shared") + gsub(g, n.sons[0]) + else: + put(g, tkShared, "shared") + of nkEnumTy: if sonsLen(n) > 0: putWithSpace(g, tkEnum, "enum") gsub(g, n.sons[0]) diff --git a/compiler/wordrecg.nim b/compiler/wordrecg.nim index 1cc3269ddd..3ad2f45cae 100755 --- a/compiler/wordrecg.nim +++ b/compiler/wordrecg.nim @@ -30,7 +30,7 @@ type wInclude, wInterface, wIs, wIsnot, wIterator, wLambda, wLet, wMacro, wMethod, wMixin, wMod, wNil, wNot, wNotin, wObject, wOf, wOr, wOut, wProc, wPtr, wRaise, wRef, wReturn, - wShl, wShr, wStatic, wTemplate, wTry, wTuple, wType, wVar, + wShared, wShl, wShr, wStatic, wTemplate, wTry, wTuple, wType, wVar, wWhen, wWhile, wWith, wWithout, wXor, wYield, wColon, wColonColon, wEquals, wDot, wDotDot, @@ -108,7 +108,8 @@ const "lambda", "let", "macro", "method", "mixin", "mod", "nil", "not", "notin", "object", "of", "or", - "out", "proc", "ptr", "raise", "ref", "return", "shl", "shr", "static", + "out", "proc", "ptr", "raise", "ref", "return", + "shared", "shl", "shr", "static", "template", "try", "tuple", "type", "var", "when", "while", "with", "without", "xor", "yield", diff --git a/doc/keywords.txt b/doc/keywords.txt index 03e9cc6fdc..2a775cd94c 100755 --- a/doc/keywords.txt +++ b/doc/keywords.txt @@ -12,7 +12,7 @@ nil not notin object of or out proc ptr raise ref return -shl shr static +shared shl shr static template try tuple type var when while with without diff --git a/packages/docutils/rst.nim b/packages/docutils/rst.nim index 7507e15964..f594a39f52 100755 --- a/packages/docutils/rst.nim +++ b/packages/docutils/rst.nim @@ -672,7 +672,7 @@ when false: add(n, newLeaf(p)) inc(p.idx) add(father, n) - elif not verbatim and roSupportSmilies in p.shared.options: + elif not verbatim and roSupportSmilies in p.sharedState.options: let n = parseSmiley(p) if s != nil: add(father, n) diff --git a/web/news.txt b/web/news.txt index 4ed549a628..5ea0dfde9c 100755 --- a/web/news.txt +++ b/web/news.txt @@ -22,6 +22,7 @@ Library Additions Changes affecting backwards compatibility ----------------------------------------- +- ``shared`` is a keyword now. Compiler Additions