textx-dsldoc

Autogeneration of DSL documentation for TextX


Keywords
textx, subcommand, doc, generation, documentation-generator, python3
License
GPL-2.0+
Install
pip install textx-dsldoc==0.0.1

Documentation

TextX DSL autodocumentation tool

A non-official TextX poc-project aiming to autogenerate documentation of DSL.

For testing the TextX integration, you will be required to install from repository since the CLI extending is not available in 1.8.

Files

  • example.py: example of DSL definition directly taken from another project
  • out.html: the HTML output file (take a look to get a feeling of the current project achievements)
  • poc.py: first implementation, absolutely bad, but few functions are worth saving
  • poc_as_cls.py: use some functions of poc.py to implement the same thing, but in a clearer manner
  • poc_render_peg.py: rendering of arpeggio (textx backend) grammars

Current results are encouraging.

F(unny )eatures

  • support of docstrings (those at user classes level)
  • auto-generation of examples for regexes, and complete linking to pythex.org

TODO

  • integrate complete example (either randomly or author-provided)
  • get a complete example with advanced features like references and other textx/arpeggio constructs
  • fix detection and handling of terminal for the description of rules
  • generate few examples for each documented rule (randomly, probably)
  • make the generation deterministic
  • humanize the phrasing (ex: when choice only on raw strings, avoid the bullet list and list them inline directly with an or for the last join: Type either a, b or c)
  • integration into textx with textx subcommands (see doc)