proper error reporting for concepts and the introduction of the {.explain.} pragma
This commit is contained in:
parent
644d645ea7
commit
74a80988d9
13 changed files with 302 additions and 139 deletions
|
|
@ -66,6 +66,7 @@ proc parseSymbol*(p: var TParser, allowNil = false): PNode
|
|||
proc parseTry(p: var TParser; isExpr: bool): PNode
|
||||
proc parseCase(p: var TParser): PNode
|
||||
proc parseStmtPragma(p: var TParser): PNode
|
||||
proc parsePragma(p: var TParser): PNode
|
||||
# implementation
|
||||
|
||||
proc getTok(p: var TParser) =
|
||||
|
|
@ -770,6 +771,13 @@ proc parseOperators(p: var TParser, headNode: PNode,
|
|||
|
||||
proc simpleExprAux(p: var TParser, limit: int, mode: TPrimaryMode): PNode =
|
||||
result = primary(p, mode)
|
||||
if p.tok.tokType == tkCurlyDotLe and
|
||||
p.lex.lineNumber == result.info.line and
|
||||
mode == pmNormal:
|
||||
var pragmaExp = newNodeP(nkPragmaExpr, p)
|
||||
pragmaExp.addSon result
|
||||
pragmaExp.addSon p.parsePragma
|
||||
result = pragmaExp
|
||||
result = parseOperators(p, result, limit, mode)
|
||||
|
||||
proc simpleExpr(p: var TParser, mode = pmNormal): PNode =
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue