mirror of
https://github.com/nim-lang/Nim.git
synced 2026-04-18 21:40:32 +00:00
and a leftover bug: priority of option list inside definition list
This commit is contained in:
@@ -2245,7 +2245,7 @@ proc parseOptionList(p: var RstParser): PRstNode =
|
||||
popInd(p)
|
||||
else:
|
||||
parseLine(p, b)
|
||||
if currentTok(p).kind == tkIndent: inc p.idx
|
||||
while currentTok(p).kind == tkIndent: inc p.idx
|
||||
c.add(a)
|
||||
c.add(b)
|
||||
c.order = order; inc order
|
||||
@@ -2262,6 +2262,8 @@ proc parseDefinitionList(p: var RstParser): PRstNode =
|
||||
var col = currentTok(p).col
|
||||
result = newRstNodeA(p, rnDefList)
|
||||
while true:
|
||||
if isOptionList(p):
|
||||
break # option list has priority over def.list
|
||||
j = p.idx
|
||||
var a = newRstNode(rnDefName)
|
||||
parseLine(p, a)
|
||||
|
||||
@@ -83,6 +83,53 @@ suite "RST parsing":
|
||||
rnLeaf 'set'
|
||||
""")
|
||||
|
||||
test "items of 1 option list can be separated by blank lines":
|
||||
check(dedent"""
|
||||
-a desc1
|
||||
|
||||
-b desc2
|
||||
""".toAst ==
|
||||
dedent"""
|
||||
rnOptionList
|
||||
rnOptionListItem order=1
|
||||
rnOptionGroup
|
||||
rnLeaf '-'
|
||||
rnLeaf 'a'
|
||||
rnDescription
|
||||
rnLeaf 'desc1'
|
||||
rnOptionListItem order=2
|
||||
rnOptionGroup
|
||||
rnLeaf '-'
|
||||
rnLeaf 'b'
|
||||
rnDescription
|
||||
rnLeaf 'desc2'
|
||||
""")
|
||||
|
||||
test "option list has priority over definition list":
|
||||
check(dedent"""
|
||||
defName
|
||||
defBody
|
||||
|
||||
-b desc2
|
||||
""".toAst ==
|
||||
dedent"""
|
||||
rnInner
|
||||
rnDefList
|
||||
rnDefItem
|
||||
rnDefName
|
||||
rnLeaf 'defName'
|
||||
rnDefBody
|
||||
rnInner
|
||||
rnLeaf 'defBody'
|
||||
rnOptionList
|
||||
rnOptionListItem order=1
|
||||
rnOptionGroup
|
||||
rnLeaf '-'
|
||||
rnLeaf 'b'
|
||||
rnDescription
|
||||
rnLeaf 'desc2'
|
||||
""")
|
||||
|
||||
test "RST comment":
|
||||
check(dedent"""
|
||||
.. comment1
|
||||
|
||||
Reference in New Issue
Block a user