This module implements an AST for the reStructuredText parser.
Types
TRstNodeKind = 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
PRstNode = ref TRstNode
- an RST node Source
TRstNodeSeq = seq[PRstNode]
- Source
TRstNode = object kind*: TRstNodeKind ## 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*: TRstNodeSeq ## the node's sons
- an RST node's description Source
Procs
proc len(n: PRstNode): int {.raises: [], tags: [].}
- Source
proc newRstNode(kind: TRstNodeKind): PRstNode {.raises: [], tags: [].}
- Source
proc newRstNode(kind: TRstNodeKind; s: string): PRstNode {.raises: [], tags: [].}
- Source
proc lastSon(n: PRstNode): PRstNode {.raises: [], tags: [].}
- Source
proc add(father, son: PRstNode) {.raises: [], tags: [].}
- Source
proc addIfNotNil(father, son: PRstNode) {.raises: [], tags: [].}
- Source
proc renderRstToRst(n: PRstNode; result: var string) {.raises: [Exception], tags: [RootEffect].}
- renders n into its string representation and appends to result. Source
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