mirror of
https://github.com/nim-lang/Nim.git
synced 2026-06-04 19:04:46 +00:00
Fix accents in enums
This commit is contained in:
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user