This module implements an AST for the reStructuredText parser.
Note: Import packages/docutils/rstast to use this module
Types
RstNodeKind = enum rnInner, rnHeadline, rnOverline, rnTransition, rnParagraph, rnBulletList, rnBulletItem, rnEnumList, rnEnumItem, rnDefList, rnDefItem, rnDefName, rnDefBody, rnFieldList, rnField, rnFieldName, rnFieldBody, rnOptionList, rnOptionListItem, rnOptionGroup, rnOption, rnOptionString, rnOptionArgument, rnDescription, rnLiteralBlock, rnQuotedLiteralBlock, rnLineBlock, rnLineBlockItem, rnBlockQuote, rnTable, rnGridTable, rnTableRow, rnTableHeaderCell, rnTableDataCell, rnLabel, rnFootnote, rnCitation, rnStandaloneHyperlink, rnHyperlink, rnRef, rnDirective, rnDirArg, rnRaw, rnTitle, rnContents, rnImage, rnFigure, rnCodeBlock, rnRawHtml, rnRawLatex, rnContainer, rnIndex, rnSubstitutionDef, rnGeneralRole, rnSub, rnSup, rnIdx, rnEmphasis, rnStrongEmphasis, rnTripleEmphasis, rnInterpretedText, rnInlineLiteral, rnSubstitutionReferences, rnSmiley, rnLeaf
- the possible node kinds of an PRstNode Source Edit
 PRstNode = ref RstNode
- an RST node Source Edit
 RstNodeSeq = seq[PRstNode]
- Source Edit
 RstNode {...}{.acyclic, final.} = object kind*: RstNodeKind ## the node's kind text*: string ## valid for leafs in the AST; and the title of ## the document or the section level*: int ## valid for some node kinds sons*: RstNodeSeq ## the node's sons
- an RST node's description Source Edit
 
Procs
proc len(n: PRstNode): int {...}{.raises: [], tags: [].}
- Source Edit
 proc newRstNode(kind: RstNodeKind): PRstNode {...}{.raises: [], tags: [].}
- Source Edit
 proc newRstNode(kind: RstNodeKind; s: string): PRstNode {...}{.raises: [], tags: [].}
- Source Edit
 proc lastSon(n: PRstNode): PRstNode {...}{.raises: [], tags: [].}
- Source Edit
 proc add(father, son: PRstNode) {...}{.raises: [], tags: [].}
- Source Edit
 proc add(father: PRstNode; s: string) {...}{.raises: [], tags: [].}
- Source Edit
 proc addIfNotNil(father, son: PRstNode) {...}{.raises: [], tags: [].}
- Source Edit
 proc renderRstToRst(n: PRstNode; result: var string) {...}{.raises: [Exception], tags: [RootEffect].}
- renders n into its string representation and appends to result. Source Edit
 proc renderRstToJson(node: PRstNode): string {...}{.raises: [], tags: [].}
- 
Writes the given RST node as JSON that is in the form
{ "kind":string node.kind, "text":optional string node.text, "level":optional int node.level, "sons":optional node array }Source Edit