mirror of
https://github.com/nim-lang/Nim.git
synced 2026-06-03 18:34:43 +00:00
Creating and setting comment nodes in macros (#5850)
* strVal assingnable comment statement ast nodes * Set comment instead of strVal for comment nodes * Added test code for creating and setting comment nodes * Modified the AST spec documentation for documentation comments
This commit is contained in:
committed by
Andreas Rumpf
parent
eb83ec2685
commit
6652ae9741
@@ -1406,6 +1406,8 @@ proc rawExecute(c: PCtx, start: int, tos: PStackFrame): TFullReg =
|
||||
if dest.kind in {nkStrLit..nkTripleStrLit} and
|
||||
regs[rb].kind in {rkNode}:
|
||||
dest.strVal = regs[rb].node.strVal
|
||||
elif dest.kind == nkCommentStmt:
|
||||
dest.comment = regs[rb].node.strVal
|
||||
else:
|
||||
stackTrace(c, tos, pc, errFieldXNotFound, "strVal")
|
||||
of opcNNewNimNode:
|
||||
|
||||
@@ -461,8 +461,8 @@ Documentation Comments
|
||||
----------------------
|
||||
|
||||
Double-hash (``##``) comments in the code actually have their own format,
|
||||
but the comments do not yet show up in the AST, which will only show that
|
||||
a comment exists, not what it contains. Single-hash (``#``) comments are ignored.
|
||||
using ``strVal`` to get and set the comment text. Single-hash (``#``)
|
||||
comments are ignored.
|
||||
|
||||
Concrete syntax:
|
||||
|
||||
|
||||
@@ -72,3 +72,11 @@ static:
|
||||
echo "OK"
|
||||
|
||||
|
||||
static:
|
||||
echo "testing creation of comment node"
|
||||
var docComment: NimNode = newNimNode(nnkCommentStmt)
|
||||
docComment.strVal = "This is a doc comment"
|
||||
|
||||
assertEq repr(docComment), "## This is a doc comment"
|
||||
|
||||
echo "OK"
|
||||
|
||||
Reference in New Issue
Block a user