From 20cb567bf5e404a30bb4b898b87865e4304b1130 Mon Sep 17 00:00:00 2001 From: flaviut Date: Tue, 3 Jun 2014 10:22:12 -0400 Subject: Fix accents in enums --- compiler/parser.nim | 8 +++++--- compiler/semtypes.nim | 5 +++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/compiler/parser.nim b/compiler/parser.nim index 61816f443..f89aee119 100644 --- a/compiler/parser.nim +++ b/compiler/parser.nim @@ -296,20 +296,22 @@ proc parseSymbol(p: var TParser, allowNil = false): PNode = of tkAccent: result = newNodeP(nkAccQuoted, p) getTok(p) + var bracketAccm = "" while true: case p.tok.tokType of tkIntLit..tkCharLit, tkBracketLe, tkBracketRi, tkParLe, tkParRi, tkCurlyRi, tkCurlyLe, tkEquals: - add(result, newIdentNodeP(getIdent(tokToStr(p.tok)), p)) + bracketAccm.add(tokToStr(p.tok)) getTok(p) of tokKeywordLow..tokKeywordHigh, tkSymbol, tkOpr, tkDot, tkDotDot: add(result, newIdentNodeP(p.tok.ident, p)) getTok(p) else: - if result.len == 0: - echo repr p.tok + if result.len == 0 and bracketAccm == "": parMessage(p, errIdentifierExpected, p.tok) break + if bracketAccm != "": + result.add(newIdentNodeP(getIdent(bracketAccm), p)) eat(p, tkAccent) else: if allowNil and p.tok.tokType == tkNil: diff --git a/compiler/semtypes.nim b/compiler/semtypes.nim index d70ed3465..2dcca8f1e 100644 --- a/compiler/semtypes.nim +++ b/compiler/semtypes.nim @@ -70,9 +70,10 @@ proc semEnum(c: PContext, n: PNode, prev: PType): PType = counter = x of nkSym: e = n.sons[i].sym - of nkIdent: + of nkIdent, nkAccQuoted: e = newSymS(skEnumField, n.sons[i], c) - else: illFormedAst(n[i]) + else: + illFormedAst(n[i]) e.typ = result e.position = int(counter) if e.position == 0: hasNull = true -- cgit 1.4.1-2-gfad0 a>
path: root/tests/template/thygienictempl.nim
blob: 5e4f534f84bc0c45374e8fd96103871a49c4ade7 (plain) (tree)
1
2
3
4
5
6
7
8
9
10